Opened 11 years ago

Closed 11 years ago

#2811 closed defect (fixed)

Cacheex SIGABRT causes crash of Oscam

Reported by: superg1972 Owned by: gf
Priority: major Component: General
Severity: medium Keywords: cache-ex
Cc: Sensitive: no

Description

Revision

Tested on 7536 but i get crashes on all the oscam with cacheex from at least from 75XX

Issue Description

The oscam crashes

When the issue occurs

I suppose when you have more traffic of cache...
More cache and the time before a crash is reduced. IF you limit the cache amount, you can increase the time before a crash... but you will have it for sure. Moreover i have seen an increase of the crashes, when i moved the configuration of the groups of the cache to an unique group.

Oscam 7536

b7dfa000-b7dfc000 rw-p 00000000 00:00 0 [Thread 0xb6df3b40 (LWP 13397) exited]
[New Thread 0xb6f5ab40 (LWP 13398)]
[Thread 0xb6f5ab40 (LWP 13398) exited]
[New Thread 0xb6df3b40 (LWP 13399)]
[Thread 0xb6df3b40 (LWP 13399) exited]
[New Thread 0xb6f5ab40 (LWP 13400)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6f42b40 (LWP 3982)]
0xb7fdd424 in kernel_vsyscall ()
(gdb) bt
#0 0xb7fdd424 in
kernel_vsyscall ()
#1 0xb7e341ef in raise () from /lib/i386-linux-gnu/libc.so.6
#2 0xb7e37835 in abort () from /lib/i386-linux-gnu/libc.so.6
#3 0xb7e6f2fa in ?? () from /lib/i386-linux-gnu/libc.so.6
#4 0xb7e79e42 in ?? () from /lib/i386-linux-gnu/libc.so.6
#5 0x0806632d in add_invalid_cw (

cw=0x8911800 "\333\017\377\351\270\364)\325\004\001")
at module-cacheex.c:255

#6 0x0806697f in cacheex_add_to_cache_int (cl=0x87417b0, er=0x8638ed0,

csp=0 '\000') at module-cacheex.c:406

#7 0x080675e5 in cacheex_add_to_cache (cl=0x87417b0, er=0x8638ed0)

at module-cacheex.c:471

#8 0x0806e411 in cc_cache_push_in (cl=0x87417b0, buf=0x8742ffc "\005")

at module-cccam.c:2108

#9 0x080721dc in cc_parse_msg (cl=0x87417b0, buf=0x8742ff8 "", l=85)

at module-cccam.c:2343

#10 0x08074718 in cc_recv (cl=0x87417b0, buf=0x8742ff8 "", l=2048)

at module-cccam.c:3054

#11 0x080e65df in work_thread (ptr=0x83bffd0) at oscam.c:3729
#12 0xb7fb2d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#13 0xb7ef0ace in clone () from /lib/i386-linux-gnu/libc.so.6
(gdb)

Attachments (2)

module-cacheex.c_mutex_tryfix_1.diff (1.1 KB ) - added by gf 11 years ago.
module-cacheex.c_mutex_tryfix_2.diff (1.3 KB ) - added by gf 11 years ago.
Found another possible bug, try this fix.

Download all attachments as: .zip

Change History (10)

comment:1 by gf, 11 years ago

Hmm may be because the access to invalid_cws list is not guarded you are getting these crashes. Try the attached patch, it is not the correct fix but if the crashes are gone that would confirm my suspicion.

comment:2 by CapNCooK, 11 years ago

i'm testing 7561 with this patch.. results follow..

comment:3 by superg1972, 11 years ago

Under test also for me

comment:4 by CapNCooK, 11 years ago

Owner: set to gf

GF, i think you just solved a problem that was there for a long long time..

No crashing since i applied your diff..
Can you apply a final solution for this ?

comment:5 by gf, 11 years ago

Lets wait a bit for corsair to create a proper fix. For now just use my hack.

comment:6 by superg1972, 11 years ago

Re-adding the list of the issue

b7dfa000-b7dfc000 rw-p 00000000 00:00 0 [Thread 0xb6df3b40 (LWP 13397) exited]
[New Thread 0xb6f5ab40 (LWP 13398)]
[Thread 0xb6f5ab40 (LWP 13398) exited]
[New Thread 0xb6df3b40 (LWP 13399)]
[Thread 0xb6df3b40 (LWP 13399) exited]
[New Thread 0xb6f5ab40 (LWP 13400)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6f42b40 (LWP 3982)]
0xb7fdd424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb7fdd424 in __kernel_vsyscall ()
#1  0xb7e341ef in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xb7e37835 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0xb7e6f2fa in ?? () from /lib/i386-linux-gnu/libc.so.6
#4  0xb7e79e42 in ?? () from /lib/i386-linux-gnu/libc.so.6
#5  0x0806632d in add_invalid_cw (
    cw=0x8911800 "\333\017\377\351\270\364)\325\004\001")
    at module-cacheex.c:255
#6  0x0806697f in cacheex_add_to_cache_int (cl=0x87417b0, er=0x8638ed0, 
    csp=0 '\000') at module-cacheex.c:406
#7  0x080675e5 in cacheex_add_to_cache (cl=0x87417b0, er=0x8638ed0)
    at module-cacheex.c:471
#8  0x0806e411 in cc_cache_push_in (cl=0x87417b0, buf=0x8742ffc "\005")
    at module-cccam.c:2108
#9  0x080721dc in cc_parse_msg (cl=0x87417b0, buf=0x8742ff8 "", l=85)
    at module-cccam.c:2343
#10 0x08074718 in cc_recv (cl=0x87417b0, buf=0x8742ff8 "", l=2048)
    at module-cccam.c:3054
#11 0x080e65df in work_thread (ptr=0x83bffd0) at oscam.c:3729
#12 0xb7fb2d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#13 0xb7ef0ace in clone () from /lib/i386-linux-gnu/libc.so.6
(gdb)

by gf, 11 years ago

Found another possible bug, try this fix.

comment:7 by superg1972, 11 years ago

I'm trying 7576 with patch... so far i didn't have a crash. Now i increased the volume of cache in order to test better

comment:8 by gf, 11 years ago

Resolution: fixed
Status: newclosed

Tryfix2 patch was committed in r7594.

Note: See TracTickets for help on using tickets.