Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault Linux after script execution in new python console #737

Closed
spyder-bot opened this issue Feb 17, 2015 · 14 comments
Closed

Segfault Linux after script execution in new python console #737

spyder-bot opened this issue Feb 17, 2015 · 14 comments

Comments

@spyder-bot
Copy link
Collaborator

From [email protected] on 2011-08-23T08:15:30Z

What steps will reproduce the problem?

  1. Segfault after executing a script in new python console (F5)
    1. The segfaults occur randomly. In most cases it works fine though
    2. The python script is saved properly, but immediately after the crash occurs What version of the product are you using? On what operating system? Ubuntu 10.04 64bit
      Python 2.6.5, Qt 4.6.2, pyqt 4.7.2, IPython 0.10
      Spyder 2.1.0dev () latest repo pull

Please provide any additional information below

. I am not sure how to offer any help on these segfaults. So I followed the basics as explained here https://code.google.com/p/spyderlib/wiki/HowToDebugQtCrash . Reporting back the traceback and thread info here. Please let me know if there is a more useful way of assisting debugging these segfaults.

Program terminated with signal 11, Segmentation fault.
#0 0x00007f87331db73a in ?? () from /lib/libc.so.6
(gdb) bt
#0 0x00007f87331db73a in ?? () from /lib/libc.so.6
#1 0x00007f87331defad in ?? () from /lib/libc.so.6
#2 0x00007f87331e058e in malloc () from /lib/libc.so.6
#3 0x00007f872edf20eb in QTextEngine::LayoutData::reallocate(int) () from /usr/lib/libQtGui.so.4
#4 0x00007f872edf23e5 in QTextEngine::attributes() const () from /usr/lib/libQtGui.so.4
#5 0x00007f872edf9758 in QTextLine::layout_helper(int) () from /usr/lib/libQtGui.so.4
#6 0x00007f872f03d95b in QPlainTextDocumentLayout::layoutBlock(QTextBlock const&) () from /usr/lib/libQtGui.so.4
#7 0x00007f872f03e3e3 in QPlainTextDocumentLayout::blockBoundingRect(QTextBlock const&) const ()
from /usr/lib/libQtGui.so.4
#8 0x00007f872f03c4e4 in ?? () from /usr/lib/libQtGui.so.4
#9 0x00007f872ede01be in ?? () from /usr/lib/libQtGui.so.4
#10 0x00007f872ede16ac in QTextControl::selectionRect(QTextCursor const&) const () from /usr/lib/libQtGui.so.4
#11 0x00007f872ede39f1 in QTextControl::setExtraSelections(QListQTextEdit::ExtraSelection const&) ()
from /usr/lib/libQtGui.so.4
#12 0x00007f872f950139 in ?? () from /usr/lib/pymodules/python2.6/PyQt4/QtGui.so
#13 0x00000000004a7c5e in PyEval_EvalFrameEx ()
#14 0x00000000004a8550 in PyEval_EvalFrameEx ()
#15 0x00000000004a8550 in PyEval_EvalFrameEx ()
#16 0x00000000004a9671 in PyEval_EvalCodeEx ()
#17 0x00000000004a7809 in PyEval_EvalFrameEx ()
#18 0x00000000004a9671 in PyEval_EvalCodeEx ()
#19 0x00000000004a7809 in PyEval_EvalFrameEx ()
#20 0x00000000004a8550 in PyEval_EvalFrameEx ()
#21 0x00000000004a8550 in PyEval_EvalFrameEx ()
#22 0x00000000004a8550 in PyEval_EvalFrameEx ()
#23 0x00000000004a9671 in PyEval_EvalCodeEx ()
#24 0x0000000000537620 in ?? ()
#25 0x000000000041f0c7 in PyObject_Call ()
#26 0x0000000000427dff in ?? ()
#27 0x000000000041f0c7 in PyObject_Call ()
#28 0x00000000004a1b03 in PyEval_CallObjectWithKeywords ()
#29 0x00007f8730347d3b in ?? () from /usr/lib/pymodules/python2.6/sip.so
#30 0x00007f87318b6468 in ?? () from /usr/lib/pymodules/python2.6/PyQt4/QtCore.so
#31 0x00007f87318e6630 in ?? () from /usr/lib/pymodules/python2.6/PyQt4/QtCore.so
#32 0x00007f8731416775 in ?? () from /usr/lib/libQtCore.so.4
#33 0x00007f87343709ca in start_thread () from /lib/libpthread.so.0
#34 0x00007f873324a70d in clone () from /lib/libc.so.6
#35 0x0000000000000000 in ?? ()

(gdb) info threads
11 Thread 11174 0x00007f873325a16e in ?? () from /lib/libc.so.6
10 Thread 11187 0x00007f8734378c3d in accept () from /lib/libpthread.so.0
9 Thread 11188 0x00007f8734378c3d in accept () from /lib/libpthread.so.0
8 Thread 11189 0x00007f8733242ff3 in select () from /lib/libc.so.6
7 Thread 11186 0x00007f873437585c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
6 Thread 11185 0x00007f873323df93 in poll () from /lib/libc.so.6
5 Thread 11191 0x00007f8734378d3c in recv () from /lib/libpthread.so.0
4 Thread 11184 0x00007f873437585c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
3 Thread 11175 0x00007f873437585c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
2 Thread 11228 0x00007f8734378d3c in recv () from /lib/libpthread.so.0

  • 1 Thread 11237 0x00007f87331db73a in ?? () from /lib/libc.so.6

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=737

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-25T13:46:07Z

This issue may be related to this one: https://code.google.com/p/spyderlib/issues/detail?id=710 A quick look to the backtrace makes me suspect the scrollbar flag area feature (this is vertical area aside the editor's left scrollbar showing flags of different colors associated to warnings, occurences, ...): this area is updated after saving, when processing the code analysis results (which are automatically recomputed when saving files).

If this is it, disabling the feature here by replacing "scrollflagarea=True" by "scrollflagarea=False" may prevent these random crashes: https://code.google.com/p/spyderlib/source/browse/spyderlib/widgets/sourcecode/codeeditor.py#640 I'll think about it.

I also had a lot of similar crashes on Windows lately.

Status: Accepted

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-25T22:56:56Z

I will give it a try today. Yesterday I had many other segmentation faults (I am always running the latest code pulled in from the repo). The reason was not always as obvious as described in this issue though. I have another 10 backtraces; is it useful to post them too?

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-26T00:08:57Z

Absolutely. All these backtraces may be useful, especially if you can associate them with steps necessary to reproduce the crash.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-26T00:17:37Z

Brace for impact, here comes another ten... I've attached them as separate text files. Unfortunately, I forgot to note down the event causing the crash in the first cases. Note that these are all from yesterday, and before switching "scrollflagarea" to false. Will report back later today if the scrollflagarea=False performed more stable. If not, I can promise more tracebacks.

Attachment: segmentation_fault_01.txt segmentation_fault_02.txt segmentation_fault_03.txt segmentation_fault_04.txt segmentation_fault_05.txt segmentation_fault_06.txt segmentation_fault_07.txt segmentation_fault_08.txt segmentation_fault_09.txt segmentation_fault_10.txt

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-26T02:18:29Z

Switching of the scrollflagarea does not seem reduce the number of segmentation faults. I have here another three. I also noted that sometimes the line number area flickers once, as it was being refreshed. So I switched that off too, but no help from that one either. I have indicated the different settings and events leading to the traceback in the text files too.

Not sure it has anything to do with it, but I will try now with code analysis (pyflakes and pep8 style) switched off from the preference panel.

Attachment: segmentation_fault_11.txt segmentation_fault_12.txt segmentation_fault_13.txt

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-26T03:13:11Z

Ok after some thinking, I think it might be related to the text highlighting features: occurence highlighting, brace/parenthesis matching and (the new) found results highlighting feature.
Because all these backtraces have something in common: the setExtraSelection call. My guess is that the program might call this function with an argument (this is a list) containing an object which does not exist anymore (I don't know why).

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-26T03:21:30Z

To check if this is related to the text highlighting features, you may try to disable them.
Try to comment line 240 in spyderlib/widgets/sourcecode/base.py
(the one containing the call to setExtraSelection)

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-26T03:27:48Z

I had the impression it was more stable without pyflakes running. However, due to the apparent random nature of the segmentation faults I need more time to confirm that.

Now I will switched back to pyflakes on, scrollflagarea=True, line numbers present but line 240 in spyderlib/widgets/sourcecode/base.py commented.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-26T06:14:22Z

Didn't had any more crashes, but will do some testing after the weekend. To be continued I guess. Enjoy the weekend.
Greetings

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-26T06:16:17Z

Ok, thanks for the feedback. Have a nice weekend!

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-26T10:18:26Z

I've done some changes that may affect Spyder's stability:

  1. you may uncomment line 240 in spyderlib/widgets/sourcecode/base.py
  2. pull changes
  3. test it
  4. if it crashes again, eventually re-comment the line cited above

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-08-29T06:32:39Z

Have been testing the latest and greatest version from the repo without having a single segmentation fault since this morning. I guess I should test it a bit more to be sure, but it seems fixed.

@spyder-bot
Copy link
Collaborator Author

From pierre.raybaut on 2011-08-29T12:42:01Z

Glad to hear that, thanks for the update.
I'm closing this issue then.

Status: Fixed

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2011-09-03T05:52:11Z

Ok, better late than never: thanks for the quick fix!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant