Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#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)

strftime_fix.patch (683 bytes) - added by dmik 11 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 11 years ago by andib

Another one today -

Killed by SIGFPE
pid=0x0080 ppid=0x0028 tid=0x0001 slot=0x00a2 pri=0x0200 mc=0x0001
P:\UTIL\PSI0.15\PSI.EXE
QTCORE4 0:001b15e4
cs:eip=005b:1d4f15e4      ss:esp=0053:00effd00      ebp=00effdb8
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010246
eax=00800001 ebx=2003c6a0 ecx=00000024 edx=00000000 edi=00effd5c esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

The roaster works rather reliable. As long as you do not open accounts or other settings it works for weeks (few hours a day).

comment:2 Changed 11 years ago by andib

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)

Last edited 11 years ago by andib (previous) (diff)

comment:3 Changed 11 years ago by andib

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.
Version 0, edited 11 years ago by andib (next)

comment:4 Changed 11 years ago by Silvan Scherrer

Owner: set to Silvan Scherrer
Status: newaccepted

comment:5 Changed 11 years ago by Silvan Scherrer

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 Changed 11 years ago by dmik

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 Changed 11 years ago by dmik

The strange assert has been fixed in r 1110 in Qt. Now I get the crash you describe. Good.

comment:8 Changed 11 years ago by dmik

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.

Changed 11 years ago by dmik

Attachment: strftime_fix.patch added

comment:9 Changed 11 years ago by dmik

Herwig confirms that this fixes the crashes for him as well.

comment:10 Changed 11 years ago by Silvan Scherrer

hmm it still crashes here with the above patch applied

comment:11 Changed 11 years ago by dmik

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 Changed 11 years ago by dmik

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 Changed 11 years ago by dmik

Resolution: fixed
Status: acceptedclosed

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 Changed 11 years ago by andib

Where can I get this 'revision 1111'? I still suffer from PSI traps regularly.

comment:15 Changed 11 years ago by andib

##################################

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

Last edited 11 years ago by andib (previous) (diff)
Note: See TracTickets for help on using tickets.