Closed GoogleCodeExporter closed 8 years ago
I think I found what is the cause for the this happening:
Look at ProjectsPane.py Line 1441
def onpopupDelete:
...
def delete():
...
rc = wx.MessageDialog(self,
When an exception is raised by the trash function you have a message dialog
being
created and shown. The problem is that the "delete" function is called on a
separate
thread so when this happens it can cause a crash because of the ui not being
thread safe.
Also a more likely candidate is directly below this in the same function where
you
have calls to the "self.tree" "Delete" and "Collapse" since these are both ui
calls
to the tree they are probably also not thread safe. Try to change the calls to
this.
# If node is a project, remove it
if node in projects:
wx.CallAfter(self.tree.Collapse, node)
wx.CallAfter(self.tree.Delete, node)
self.saveProjects()
I did some testing with these changes made on my local copy and could not get
Editra
to crash. I was not able to get it to consistently crash before though so could
you
double check this if you get a chance so that Move to Trash can be re-enabled.
Thanks,
Original comment by CodyPrec...@gmail.com
on 30 Oct 2007 at 10:51
I don't think that these issues are the cause. The first one would only be an
issue if something happened
where you couldn't delete the requested file (i.e., not sufficient permissions,
read-only file system, etc.). The
second one only happens if you try to delete a top-level project folder. It
probably wouldn't hurt to use the
CallAfter in the project delete, but you'd have to do it on the saveProjects as
well. Otherwise, you'd save the
projects list before the project node was deleted. I did try playing around
with these areas, but still got
crashes. Here is the top of the traceback.
{{{
0 libwx_macud-2.8.0.dylib 0x02237c87
wxGenericTreeCtrl::GetNextChild(wxTreeItemId const&, void*&)
const + 49
1 libwx_macud-2.8.0.dylib 0x02235367
wxGenericTreeCtrl::GetFirstChild(wxTreeItemId const&, void*&)
const + 53
2 _controls_.so 0x035fa2a4 _wrap_TreeCtrl_GetFirstChild + 302
(_controls_wrap.cpp:3226)
}}}
It's crashing when trying to walk through the children of some node. I wish I
could get a traceback from the
Python side to know where in my code this was happening.
Original comment by Kevin.Da...@gmail.com
on 30 Oct 2007 at 2:07
Got another error related to this today while working on somethings and
deleting files from command line
that were expanded in the Projects plugin that I thought I would note here.
This one looks like it could
potentially be from a bug in wx, I haven't seen an error like this before.
*** Wed Jan 23 19:34:41 2008 ***
Traceback (most recent call last):
File %22build/bdist.macosx-10.3-fat/egg/projects/ProjectPane.py%22, line 437, in OnSyncNode
File %22wx/_controls.pyo%22, line 5243, in GetItemText
PyAssertionError: C++ assertion %22stringSrc.GetStringData()->IsValid()%22
failed at /BUILD/wxPython-src-
2.8.7.1/include/wx/string.h(352) in wxStringBase(): did you forget to call
UngetWriteBuf()?
In this case an exceptions was raised but I also later got a crash when
deleting some more files after this
error.
Stack traceback:
Thread 0 Crashed:
0 libwx_macud-2.8.0.dylib 0x1223adb4
wxGenericTreeCtrl::GetItemText(wxTreeItemId const&) const +
28
1 _controls_.so 0x01608c58 wxPyControl::OnInternalIdle() + 510008
2 org.python.python 0x0040e278 PyObject_Call + 45
3 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
4 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
5 org.python.python 0x004975b1 PyEval_EvalFrameEx + 16762
6 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
7 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
8 org.python.python 0x0040e278 PyObject_Call + 45
9 org.python.python 0x00415ee5 PyMethod_New + 2432
10 org.python.python 0x0040e278 PyObject_Call + 45
11 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
12 _core_.so 0x01053192 wxPyCallback::EventThunker(wxEvent&) +
234
13 libwx_macud-2.8.0.dylib 0x120b0fa4
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase
const&, wxEvtHandler*, wxEvent&) + 108
14 libwx_macud-2.8.0.dylib 0x120b104a
wxEvtHandler::SearchDynamicEventTable(wxEvent&) + 80
15 libwx_macud-2.8.0.dylib 0x120b1ddf wxEvtHandler::ProcessEvent(wxEvent&) +
225
16 libwx_macud-2.8.0.dylib 0x120b1abd wxEvtHandler::ProcessPendingEvents() +
103
17 libwx_macud-2.8.0.dylib 0x1200c4ba wxAppConsole::ProcessPendingEvents() +
102
18 libwx_macud-2.8.0.dylib 0x120a9461 wxMacProcessNotifierAndPendingEvents +
33
19 libwx_macud-2.8.0.dylib 0x120d3cde wxApp::MacHandleOneEvent(void*) + 90
20 libwx_macud-2.8.0.dylib 0x120d3d6e wxApp::MacDoOneEvent() + 120
21 libwx_macud-2.8.0.dylib 0x120ed9b4 wxEventLoop::Dispatch() + 32
22 libwx_macud-2.8.0.dylib 0x121a4e93 wxEventLoopManual::Run() + 97
23 libwx_macud-2.8.0.dylib 0x1217b7ec wxAppBase::MainLoop() + 76
24 _core_.so 0x01049e90 wxPyApp::MainLoop() + 52
25 _core_.so 0x01094ad6 wxIntersectRect(wxRect*, wxRect*) +
211280
26 org.python.python 0x0040e278 PyObject_Call + 45
27 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
28 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
29 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
30 org.python.python 0x0040e278 PyObject_Call + 45
31 org.python.python 0x00415ee5 PyMethod_New + 2432
32 org.python.python 0x0040e278 PyObject_Call + 45
33 org.python.python 0x00495851 PyEval_EvalFrameEx + 9242
34 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
35 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
36 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
37 org.python.python 0x00499e90 PyEval_EvalCode + 87
38 org.python.python 0x004bd100 PyRun_FileExFlags + 260
39 org.python.python 0x0048e5e7 PyAST_FromNode + 7521
40 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
41 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
42 org.python.python 0x004975b1 PyEval_EvalFrameEx + 16762
43 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
44 org.python.python 0x00499e90 PyEval_EvalCode + 87
45 org.python.python 0x004bd100 PyRun_FileExFlags + 260
46 org.python.python 0x004bd49a PyRun_SimpleFileExFlags + 640
47 org.python.python 0x004bd63d PyRun_SimpleFile + 40
48 org.editra.Editra 0x000062d7 start + 16867
49 org.editra.Editra 0x00006f3d main + 2097
50 org.editra.Editra 0x00002202 start + 270
51 org.editra.Editra 0x0000211d start + 41
Thread 1:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 2:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 3:
0 libSystem.B.dylib 0x900248c7 semaphore_wait_signal_trap + 7
1 com.apple.ColorSync 0x915a86db
pthreadSemaphoreWait(t_pthreadSemaphore*) + 35
2 com.apple.ColorSync 0x915c2dec CMMConvTask(void*) + 60
3 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 4:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 5:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 6:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 7:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 8:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 9:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 10:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 11:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 12:
0 libSystem.B.dylib 0x9001a1cc select + 12
1 org.python.python 0x0049942a PyEval_EvalFrameEx + 24563
2 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
3 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
4 org.python.python 0x0040e278 PyObject_Call + 45
5 org.python.python 0x00496cad PyEval_EvalFrameEx + 14454
6 org.python.python 0x004994d8 PyEval_EvalFrameEx + 24737
7 org.python.python 0x00499cdc PyEval_EvalCodeEx + 1819
8 org.python.python 0x0042f537 PyFunction_SetClosure + 2019
9 org.python.python 0x0040e278 PyObject_Call + 45
10 org.python.python 0x00415ee5 PyMethod_New + 2432
11 org.python.python 0x0040e278 PyObject_Call + 45
12 org.python.python 0x004925b2 PyEval_CallObjectWithKeywords + 112
13 org.python.python 0x004ccd36 _PyObject_GC_NewVar + 1965
14 libSystem.B.dylib 0x90024227 _pthread_body + 84
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x1223ada6 ecx: 0x0035dde8 edx: 0x01a88000
edi: 0xbfffc4d0 esi: 0x00560043 ebp: 0xbfffc478 esp: 0xbfffc440
ss: 0x0000001f efl: 0x00010202 eip: 0x1223adb4 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
Original comment by CodyPrec...@gmail.com
on 24 Jan 2008 at 8:03
Got yet another different exception raised before a crash today when deleting a
folder from the command
line,
*** Fri Jan 25 08:49:30 2008 ***
Traceback (most recent call last):
File "build/bdist.macosx-10.3-fat/egg/projects/ProjectPane.py", line 170, in OnCompareItems
File "wx/_controls.pyo", line 5243, in GetItemText
PyAssertionError: C++ assertion "item.IsOk()" failed at /BUILD/wxPython-src-
2.8.7.1/src/generic/treectlg.cpp(935) in GetItemText(): invalid tree item
Original comment by CodyPrec...@gmail.com
on 25 Jan 2008 at 2:52
Was getting some more crashes today so I decided to do some more thorough
debugging and think I may
have fixed this issue.
In _updateStatus there where calls to the TreeCtrl for getting an item's text.
I moved these calls into another
method that gets executed when the EVT_UPDATE_STATUS is posted to the main
thread.
I couldn't get any crashes after changing this on my machine, but the crashes
were always a bit inconsistent
to reproduce. If you could do some testing and try to confirm if this has fixed
the issue or not that would be
great.
cody
Original comment by CodyPrec...@gmail.com
on 24 Feb 2008 at 8:57
Been using this fix for quite a few months now and have not had a crash related
to
the move to trash action.
closing as fixed.
cody
Original comment by CodyPrec...@gmail.com
on 21 Aug 2008 at 2:32
Move old 'fixed' issues to verified
Original comment by CodyPrec...@gmail.com
on 3 Feb 2009 at 8:18
Original issue reported on code.google.com by
Kevin.Da...@gmail.com
on 26 Oct 2007 at 7:10