#39 closed defect (fixed)
PSI 0.15 sporadic crashes
Reported by: | andib | Owned by: | Silvan Scherrer |
---|---|---|---|
Priority: | major | Component: | qtapps |
Version: | Keywords: | ||
Cc: |
Description
I've sporadic crashes with PSI. Seems to appear only while chatting or changing settings/account. Running only in background it runs for weeks (some hours per day here). But just had 3 traps while playing with opening and closing the options window. See below.
##########################################
Killed by SIGFPE
pid=0x007f ppid=0x0029 tid=0x0001 slot=0x009d pri=0x0200 mc=0x0001
P:\UTIL\PSI0.15\PSI.EXE
QTGUI4 0:000a2c9c
cs:eip=005b:1ca62c9c ss:esp=0053:00efdf48 ebp=00efdfb0
ds=0053 es=0053 fs=150b gs=0000 efl=00010202
eax=01000119 ebx=2070a700 ecx=007f0002 edx=2003013c edi=00000000 esi=00efdf90
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
##########################################
[13:14:01] W:PEPAvatar::setData(): Received data is empty. Bad encoding ?
Killed by SIGFPE
pid=0x007f ppid=0x0029 tid=0x0001 slot=0x009d pri=0x0200 mc=0x0001
P:\UTIL\PSI0.15\PSI.EXE
QTGUI4 0:000a2c9c
cs:eip=005b:1ca62c9c ss:esp=0053:00efdf48 ebp=00efdfb0
ds=0053 es=0053 fs=150b gs=0000 efl=00010202
eax=01000119 ebx=2070a700 ecx=007f0002 edx=2003013c edi=00000000 esi=00efdf90
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
[13:52:03] W:Custom authentication realm not used
[13:52:05] W:PEPAvatar::setData(): Received data is empty. Bad encoding ?
[20:02:37] W:Custom authentication realm not used
[20:02:40] W:PEPAvatar::setData(): Received data is empty. Bad encoding ?
[20:02:40] W:PEPAvatar::setData(): Received data is empty. Bad encoding ?
Killed by SIGFPE
pid=0x00ad ppid=0x0029 tid=0x0001 slot=0x010b pri=0x0200 mc=0x0001
P:\UTIL\PSI0.15\PSI.EXE
QTCORE4 0:001b15e4
cs:eip=005b:1d2815e4 ss:esp=0053:00effd00 ebp=00effdb8
ds=0053 es=0053 fs=150b gs=0000 efl=00010246
eax=00ad0001 ebx=2003c680 ecx=00000024 edx=00000000 edi=00effd5c esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
[20:13:25] W:Custom authentication realm not used
[20:13:28] W:PEPAvatar::setData(): Received data is empty. Bad encoding ?
Killed by SIGFPE
pid=0x00e9 ppid=0x0029 tid=0x0001 slot=0x010b pri=0x0200 mc=0x0001
P:\UTIL\PSI0.15\PSI.EXE
QTCORE4 0:001b15e4
cs:eip=005b:1d2815e4 ss:esp=0053:00effd00 ebp=00effdb8
ds=0053 es=0053 fs=150b gs=0000 efl=00010246
eax=00e90001 ebx=2003c680 ecx=00000024 edx=00000000 edi=00effd5c esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
Attachments (1)
Change History (16)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
And again. Trying to add contacts or open contact card
Killed by SIGFPE pid=0x00ea ppid=0x0028 tid=0x0001 slot=0x0175 pri=0x0200 mc=0x0001 P:\UTIL\PSI0.15\PSI.EXE QTGUI4 0:00207136 cs:eip=005b:13317136 ss:esp=0053:00eff3a8 ebp=00eff3a8 ds=0053 es=0053 fs=150b gs=0000 efl=00010202 eax=206bad14 ebx=206bad00 ecx=206bad00 edx=2003013c edi=2025eed0 esi=00eff528 Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it. [19:46:02] W:Custom authentication realm not used [19:46:05] W:PEPAvatar::setData(): Received data is empty. Bad encoding ? Killed by SIGSEGV pid=0x00ec ppid=0x0028 tid=0x0001 slot=0x0175 pri=0x0200 mc=0x0001 P:\UTIL\PSI0.15\PSI.EXE QTGUI4 0:000a4350 cs:eip=005b:131b4350 ss:esp=0053:00effa04 ebp=00effb3c ds=0053 es=0053 fs=150b gs=0000 efl=00010246 eax=800006af ebx=0000003b ecx=00010001 edx=00000000 edi=2025da20 esi=00000005 Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
Seems to depend on background load (?) or RAM usage (currently 1.8GB used, 1.5GB free)
comment:3 by , 12 years ago
Killed by SIGFPE pid=0x00ee ppid=0x0028 tid=0x0001 slot=0x0150 pri=0x0200 mc=0x0001 P:\UTIL\PSI0.15\PSI.EXE PSI 0:0008d6d5 cs:eip=005b:0009d6d5 ss:esp=0053:00eff5e4 ebp=00eff6dc ds=0053 es=0053 fs=150b gs=0000 efl=00010246 eax=00000c62 ebx=2055f868 ecx=00d9d9d9 edx=00000000 edi=00eff6c0 esi=00d9d9d9 Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
comment:4 by , 12 years ago
Owner: | set to |
---|---|
Status: | new → accepted |
comment:5 by , 12 years ago
i was able to reproduce a psi crash as well. even i'm not sure it's the same. the above never gave me a crash.
my way:
- on the jabber rooster right MB click
- Service discovery
- crash of psi
we will investigate that problem
comment:6 by , 12 years ago
I built the debug version to find the exact place of the crash but it has some several issues uprfont. In particular, it crashes at #666 (fear, fear) in qtextcodec.cpp (ucLeft == 2), have no idea what it could be so far.
comment:7 by , 12 years ago
The strange assert has been fixed in r 1110 in Qt. Now I get the crash you describe. Good.
comment:8 by , 12 years ago
Ok, problem solved. It's a PSI bug. Doesn't happen on other platforms because strftime("%z") works differently there; on OS/2 it returns a zero string since "%z" is not supported and this would cause PSI to access a null memory location. The strftime docs say that for unsupported format specifiers the result is undefined while the PSI code assumes it's never NULL. This clearly shows whose bug it is. The diff is attached below.
by , 12 years ago
Attachment: | strftime_fix.patch added |
---|
comment:11 by , 12 years ago
Okay, I can confirm that the patch is unrelated. Here, it just stopped crashing after I applied it but now when I revert the crash doesn't come back. I have no idea on how to reproduce it again. Will try to create an account at jabber.org.
comment:12 by , 12 years ago
Okay, found the reason. It's division by zero still, #162 in busywidget.cpp. At some point, cos(radangle) returns 0 and this causes a SIGFPE. Normally that should be suppressed and NaN returned (this is the default FPU setup on Win and OS/2), but it seems that someone resets the FPU control word to throwing an exception.
This someone must be the DLL load code - it's a usual reason. I will dig into that direction.
comment:13 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
In Qt revision 1111, I added code that sets the FPU CW to a safe value and then resets it back to what it was before when loading DLLs with QLibrary::load(). This makes sure the DLL init code doesn't reset it to the value that causes SIGFPE in cases like division by zero. According to Silvan, the problem has completely gone.
So, closing this defect.
comment:14 by , 12 years ago
Where can I get this 'revision 1111'? I still suffer from PSI traps regularly.
comment:15 by , 11 years ago
##################################
Date: 2013-08-01 Time: 10:39:22
##################################
[10:39:23] W:QFileSystemWatcher: failed to add paths: e:/HOME/DEFAULT/.cache/psi/tune [10:39:24] W:Custom authentication realm not used [10:39:26] W:PEPAvatar::setData(): Received data is empty. Bad encoding ? [10:39:26] W:PEPAvatar::setData(): Received data is empty. Bad encoding ? [12:23:52] W:PEPAvatar::setData(): Received data is empty. Bad encoding ? [13:07:12] W:Accessing missing option accounts
Killed by SIGFPE pid=0x007d ppid=0x002a tid=0x0001 slot=0x00b8 pri=0x0200 mc=0x0001 P:\UTIL\PSI0.15\PSI.EXE QTCORE4 0:001ac8a0 cs:eip=005b:1d44c8a0 ss:esp=0053:00effc70 ebp=00effc98
ds=0053 es=0053 fs=150b gs=0000 efl=00010202
eax=1b666b70 ebx=00000112 ecx=203fc7c0 edx=1c9ec418 edi=20e07168 esi=010a4ba0 Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
Edit: this is with the latest qt4 rpm packages. f.e. {0}[m:\] bldlevel "P:\usr\lib\QtCore4.dll" Build Level Display Facility Version 6.12.675 Sep 25 2001 (C) Copyright IBM Corporation 1993-2001 Signature: @#Nokia:4.7#@##1## 22 Mar 2013 17:58:23 :T_BUILD_ID:::3::@@Qt4: C++ application development framework. Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). Vendor: Nokia Revision: 4.07 Date/Time: 22 Mar 2013 17:58:23 ASD Feature ID: T_BUILD_ID File Version: 4.7.3 Description: Qt4: C++ application development framework. Copyright (C) 2011 Nokia Corporatio
Another one today -
The roaster works rather reliable. As long as you do not open accounts or other settings it works for weeks (few hours a day).