[Eric] eric4-4.4.10-0.3872 snapshot evaluates a project member module on startup

Hans-Peter Jansen hpj at urpla.net
Sun Nov 7 17:02:10 GMT 2010


Hi Detlev,

I see a strange behavior with current eric4:

a projects module is called browsermainwindow.py, which is in broken 
state, as I'm on the way to convert it from C++ to python. When I 
start eric with the project, it gets into an endless loop without any 
UI responses. The only thing I can do is to kill eric, then. The same 
happens, if run eric and open that project. It does not happen, if I 
rename the browsermainwindow.py to browsermainwindow.p, it opens the 
project with many other similar broken modules and just warns about 
the missing member browsermainwindow.py.

Stracing the startup reveals something strange (comments inlined):

# check, if module exists: yes
[pid 19196] stat64(".../browser/browsermainwindow.py", {st_mode=S_IFREG|0644, st_size=35825, ...})
# check, if directory has __init__.py fails:
[pid 19196] stat64(".../browser/__init__.py", 0xad5e2f48) = -1 ENOENT (No such file or directory
# now for something really strange: eric tries to execute the module
# in some way, otherwise this won't happen:
[pid 19196] stat64(".../browser/browsermainwindow", 0xad5dfe94) = -1 ENOENT (No such file or directory)
[pid 19196] open(".../browser/browsermainwindow.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid 19196] open(".../browser/browsermainwindowmodule.so", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid 19196] open(".../browser/browsermainwindow.py", O_RDONLY|O_LARGEFILE) = 28
[pid 19196] fstat64(28, {st_mode=S_IFREG|0644, st_size=35825, ...}) = 0
[pid 19196] fstat64(28, {st_mode=S_IFREG|0644, st_size=35825, ...}) = 0
[pid 19196] _llseek(28, 0, [0], SEEK_CUR) = 0
[pid 19196] fstat64(28, {st_mode=S_IFREG|0644, st_size=35825, ...}) = 0
[pid 19196] mmap2(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacc61000
[pid 19196] _llseek(28, 0, [0], SEEK_CUR) = 0
[pid 19196] mprotect(0xae7f9000, 28672, PROT_READ|PROT_WRITE) = 0
[pid 19196] futex(0x8064280, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 19196] read(28, "################################"..., 1048576) = 35825

Then, after a couple of mprotect, mremap, mmap2 calls, eric stalls.

Obviously, the evaluation ends in some endless looping, but the big
question is, why does eric try to eval the module in the first place.
This can lead do really silly things to happen..

python -v seems to be of no help, as it doesn't show this module loading
at all (probably you're forking on startup, and -v traces the wrong track).

The last message is:
import QScintilla.TypingCompleters.CompleterBase # precompiled 
from /usr/lib/python2.6/site-packages/eric4/QScintilla/TypingCompleters/CompleterBase.pyc

Executing the module directly leads to:

  File "browsermainwindow.py", line 15
    from bookmarks import ..
                          ^
SyntaxError: invalid syntax

as expected. Let me know, if I can do more for this to resolve.

Pete
-------------- next part --------------
A non-text attachment was scrubbed...
Name: browsermainwindow.py
Type: application/x-python
Size: 35825 bytes
Desc: not available
URL: <http://www.riverbankcomputing.com/pipermail/eric/attachments/20101107/ab4d7783/attachment-0001.bin>


More information about the Eric mailing list