← Back to team overview

kicad-developers team mailing list archive

Re: wxFileSystemWatcher bug.

 

On 6/14/2016 4:34 PM, Simon Wells wrote:
> It was when opening pcbnew, in each project.
> 
> I will test your patch locally as soon as my updated build is done and
> see whether it causes any issues. Just thought i would test without
> first to see if it would be better for it to be ifdef'd out on osx.
> 
> I haven't actually looked into the code but based on what you have
> said i assume a fresh filesystemwacther is being created for each
> project open? Would it not be better to just create once on invocation
> and then use RemoveAll()/RemoveTree() on project switch?

That's what I changed.  I got rid of the deleting a creating a new
wxFileSystemWatcher on every project change.  I just call RemoveAll() on
every project switch().  I'll check to see if I need to call
RemoveTree().  I would have thought RemoveAll() would include the tree
but I could be wrong.  It's odd that it only happens when switching from
a remote project to a local project.

> 
> Simon
> 
> On Wed, Jun 15, 2016 at 8:28 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>> Hey Simon,
>>
>> I was seeing the crash when switching back to a local project using the
>> MRU list as well before my patch.  After my patch, the problem went
>> away.  I didn't test opening a new local project but I suspect the crash
>> would occur since the same code is called.  I'm not sure how the GAL
>> changes would effect kicad since it doesn't contain any GAL code and the
>> windows the require GAL are not created until you launch them from KiCad
>> unless something has changed since the last time I looked.  Thanks for
>> testing this.  I'm going to try to allocate m_watcher on the stack and
>> see if destroying the wxFileSystemWatcher object at a different time
>> makes a difference.
>>
>> Wayne
>>
>> On 6/14/2016 4:21 PM, Simon Wells wrote:
>>> Hi Wayne,
>>>
>>> I have tested this on OSX with a mounted network drive, i think that
>>> is the most equivalent to a mapped network drive on windows. And do
>>> not see a crash, But i switched back to the local project using the
>>> recent project list. Does it occur if you use that list as well or
>>> only if you do a fresh open project?
>>>
>>> I am running 6923 currently, Will update as i had a different crash
>>> occur but believe its due to the opengl changes which have been fixed
>>> in 6931/2
>>>
>>> Simon
>>>
>>> On Wed, Jun 15, 2016 at 2:39 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>>>> I found a nasty wxFileSystemWatcher bug on windows (and possibly other
>>>> platforms) when switching between a project on a mapped network drive to
>>>> a project on a local drive.  This crashes kicad every time.  It doesn't
>>>> crash when switching from a local drive to a mapped network drive.  I
>>>> fixed the project switching crash by not deleting and creating a new
>>>> m_watcher object every time a project is loaded.  However, kicad still
>>>> segfaults when running in gdb in the tree view window dtor when the
>>>> m_watcher object is deleted.  I tried disconnecting and unlinking the
>>>> event handler with no luck.  The only thing I didn't try was allocating
>>>> m_watcher on the stack rather than the heap which I would prefer not to
>>>> do.  Before I commit this patch, could I get one of our OSX devs and
>>>> Linux devs to test this patch to make sure it doesn't break anything on
>>>> these platforms.  If you could test the current code by switching
>>>> between remote and local projects to see if it crashes, that would
>>>> useful information to have as well.
>>>>
>>>> Thanks,
>>>>
>>>> Wayne
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>


Follow ups

References