@conman @kanoi: I have a core file I'd like you to take a look at, maybe, please?
System: RPi
OS: Debian Linux 7.6
Miner: Cgminer 4.8.0, compiled from git commit 1f85488262af9dd679b159aa07e35d3eca73bcaa, configured to in a loop shell script to restart after segfault
Hardware: 2 Habanero units, 1 on each usb port of RPi
Conditions:
- Hardware is powered by Corsair RM1000.
- Hardware is operating at 575MHz
- Hardware reported Temps are below 80C
Events/Symptoms: Periodic random segfault of cgminer, either preceeded or proceeded (unsure) by USB bus ids for the Hardware devices e.g.:
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 9, If 0, Class=comm., Driver=usbfs, 12M
|__ Port 2: Dev 9, If 1, Class=data, Driver=usbfs, 12M
|__ Port 3: Dev 8, If 0, Class=comm., Driver=usbfs, 12M
|__ Port 3: Dev 8, If 1, Class=data, Driver=usbfs, 12M
=========================================
Segfault
=========================================
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 10, If 0, Class=comm., Driver=usbfs, 12M
|__ Port 2: Dev 10, If 1, Class=data, Driver=usbfs, 12M
|__ Port 3: Dev 11, If 0, Class=comm., Driver=usbfs, 12M
|__ Port 3: Dev 11, If 1, Class=data, Driver=usbfs, 12M
My concern is that if left unattended this cycle will continue until one of the Hardware devices reaches: Port 3: Dev 127, at which point im not sure if the next hotplug(reset) will succeed, lockup the system, or something else which would need manual intervention.
core dump procedure:
ulimit -c unlimited
./cgstart.sh
gdb cgminer core
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/pi/repos/cgminer/cgminer...done.
[New LWP 3064]
[New LWP 3050]
[New LWP 3057]
[New LWP 3053]
[New LWP 3062]
[New LWP 3063]
[New LWP 3051]
[New LWP 3058]
[New LWP 3055]
[New LWP 3059]
[New LWP 3054]
[New LWP 3052]
[New LWP 3065]
[New LWP 3060]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by `./cgminer --hfa-fan 100 --hfa-temp-overheat 106 --hfa-temp-target 0 --hfa-hash-'.
Program terminated with signal 11, Segmentation fault.
#0 0x00041dc4 in usb_perform_transfer (cgpu=0xbe2910, usbdev=<optimized out>, intinfo=<optimized out>, epinfo=<optimized out>, data=0x0, length=0, transferred=0x0, timeout=0, mode=0, cmd=C_REJECTED,
seq=0, cancellable=false, tt=false) at usbutils.c:3061
3061 else if ((endpoint & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN && *transferred)
(gdb) bt all
No symbol "all" in current context.
(gdb) bt full
#0 0x00041dc4 in usb_perform_transfer (cgpu=0xbe2910, usbdev=<optimized out>, intinfo=<optimized out>, epinfo=<optimized out>, data=0x0, length=0, transferred=0x0, timeout=0, mode=0, cmd=C_REJECTED,
seq=0, cancellable=false, tt=false) at usbutils.c:3061
callback_timeout = 0
err_retries = <optimized out>
dev_handle = 0xbe4c28
usb_epinfo = <optimized out>
ut = {cgsem = {__size = "\000\000\000\000\000\000\000\000\377\377\377\377\000\000\000", __align = 0}, transfer = 0x0, cancellable = false, list = {next = 0x0, prev = 0x0}}
endpoint = 129 '\201'
interrupt = <optimized out>
err = <optimized out>
errn = 110
tv_start = {tv_sec = 0, tv_usec = 0}
tv_finish = {tv_sec = 1417954642, tv_usec = 865150}
buf = "\000\326(\333\000\000\f\221\035\t\273", '\000' <repeats 15 times>, "@\020\000\000\000\000\034\t\271", '\000' <repeats 15 times>, "?\020\252\n\000\000\252\207\376\000\000\000\004\333\000\000\000\000\000\000\000\000\235\005\235\002\000\000\000\000\000\000@\020\000\000\000\000\034\t\271", '\000' <repeats 15 times>, "@\020\252\n\000\000\252\207\376\000\000\000\004\333\000\000\000\000`\000\000\000\350\001=\a", '\000' <repeats 13 times>, ":\237\300\004", '\000' <repeats 20 times>, ":\237\300\004", '\000' <repeats 20 times>, ":\237\300\004", '\000' <repeats 20 times>, ":\237\300\017\000\000\000\000\000F0\000\000F@\000\000\"\000\062\000\004\241Q\213gI\270'\353\301\212/\b\000E\000\000\064\370\314@\000@\006\220\362\300\250\001\r2\037\275\060\263-\r\005n\t\275bv\306\331\177\200\020\002\225\261+\000\000\001\001\b"...
__func__ = "usb_perform_transfer"
#1 0x00000000 in ?? ()
No symbol table info available.
(gdb) quit
IDK if its of note but the core dump file was/is 116MB in size