kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #25066
Re: wxFileSystemWatcher bug.
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
>>>>>>>>
Follow ups
References