When running the latest cgminer with "cgminer -k poclbm --benchmark", it segfaults. Gdb says (bt with current master):
Program terminated with signal 11, Segmentation fault.
#0 0x000000000040a099 in reap_curl (pool=0xd5fab0) at cgminer.c:4036
4036 list_for_each_entry_safe(ent, iter, &pool->curlring, node) {
(gdb) bt
#0 0x000000000040a099 in reap_curl (pool=0xd5fab0) at cgminer.c:4036
#1 watchpool_thread (userdata=) at cgminer.c:4061
#2 0x00007f116e9edb50 in start_thread (arg=) at pthread_create.c:304
#3 0x00007f116d9fc90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4 0x0000000000000000 in ?? ()
According to a quick git bisect, the following commit introduced a first segfault:
4cd973264f6426c9b3db73b420bb33768f1f3d90 is the first bad commit
commit 4cd973264f6426c9b3db73b420bb33768f1f3d90
Author: Con Kolivas
Date: Thu Apr 26 23:29:21 2012 +1000
Create discrete persistent submit and get work threads per pool, thus allowing all submitworks belonging to the same pool to reuse the same curl handle, and all getworks to reuse their own handle.
Use separate handles for submission to not make getwork potentially delay share submission which is time critical.
This will allow much more reusing of persistent connections instead of opening new ones which can flood routers.
This mandated a rework of the extra longpoll support (for when pools are switched) and this is managed by restarting longpoll cleanly and waiting for a thread join.
However, that segfault has a different backtrace. According to git bisect, that exact backtrace was introduced by:
85008a78539f79bbec1f25fcffafe6a232e2597b is the first bad commit
commit 85008a78539f79bbec1f25fcffafe6a232e2597b
Author: ckolivas
Date: Wed May 2 10:12:07 2012 +1000
Reap curls that are unused for over a minute.
This allows connections to be closed, thereby allowing the number of curl handles to always be the minimum necessary to not delay networking.
However, you should probably do some further testing...
The backtrace produced by 4cd973264f6426c9b3db73b420bb33768f1f3d90 is:
Program terminated with signal 11, Segmentation fault.
#0 __pthread_mutex_lock (mutex=0x18) at pthread_mutex_lock.c:50
50 pthread_mutex_lock.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 __pthread_mutex_lock (mutex=0x18) at pthread_mutex_lock.c:50
#1 0x00000000004130e3 in mutex_lock (lock=0x18) at miner.h:410
#2 tq_push (tq=0x0, data=) at util.c:625
#3 0x0000000000409705 in workio_get_work (wc=0x3621ff0) at cgminer.c:2068
#4 workio_thread (userdata=0x17414c0) at cgminer.c:3105
#5 0x00007ff96d476b50 in start_thread (arg=) at pthread_create.c:304
#6 0x00007ff96c48590d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()