← Back to team overview

kicad-developers team mailing list archive

Re: wxFileSystemWatcher bug.

 

Tested on Linux with NFS and SSHFS mounts, no issue here either.

On Wed, Jun 15, 2016 at 09:18:21AM -0400, Wayne Stambaugh wrote:
> Thanks Simon.  I'll commit the patch as soon as I get a chance to test
> it on Linux.
> 
> On 6/14/2016 5:12 PM, Simon Wells wrote:
> > Also tested the patch here, and works fine
> > 
> > On Wed, Jun 15, 2016 at 8:49 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
> >> Apparently so.  I just add a dummy text file to the remote project
> >> folder and the text file showed up in the kicad file window.  I deleted
> >> the file and it disappeared from the kicad file window.  Who knew?
> >>
> >> On 6/14/2016 4:47 PM, Simon Wells wrote:
> >>> Does windows even support filesystemwatcher events on network drives?
> >>> as would that not make for quite heavy loads on the network?
> >>>
> >>> On Wed, Jun 15, 2016 at 8:38 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
> >>>> 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
> >>>>>>>>
> 
> _______________________________________________
> 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