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 <[email protected]> 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 <[email protected]> >>> 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 : [email protected] >>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>> More help : https://help.launchpad.net/ListHelp >>>> _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

