-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.0.2
-
None
-
12.04.5 LTS : 5.0.2 (SIGBUS) & Ubuntu 15.04 : 5.4.1 (SIGSEGV)
Greetings,
I'm experiencing a seg fault like so,
mock processing on: 18
mock processing on: 19
mock processing on: 20
[Thread 0x7ffff341a700 (LWP 29295) exited]
[New Thread 0x7ffff341a700 (LWP 29343)]
Program received signal SIGSEGV, Segmentation fault.
__GI_getenv (name=0x7ffff6d522a5 "CALDOMAIN", name@entry=0x7ffff6d522a3 "LOCALDOMAIN") at getenv.c:85
85 getenv.c: No such file or directory.
(gdb) bt
#0 __GI_getenv (name=0x7ffff6d522a5 "CALDOMAIN", name@entry=0x7ffff6d522a3 "LOCALDOMAIN") at getenv.c:85
#1 0x00007ffff6ce9c54 in __res_vinit (statp=0x7ffff6f8bfc0 <_res>, preinit=<optimized out>) at res_init.c:198
#2 0x00007ffff7f31a30 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#3 0x00007ffff7f25791 in QHostInfo::fromName(QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#4 0x00007ffff7f475d8 in QAbstractSocket::waitForConnected(int) () from /usr/lib/x86_64-linux-gnu/libQt5Network.so.5
#5 0x0000000000405078 in SQS::get (this=0x7fffffffdac0) at src/SQS.cpp:145
#6 0x000000000040248f in main (argc=1, argv=0x7fffffffde28) at src/main.cpp:43
From this code,
QTcpSocket socket;
socket.connectToHost(awsHost, 80);
if (socket.waitForConnected(5000))
{
socket.write(buffer);
socket.waitForBytesWritten(60000);
socket.waitForReadyRead(5000);
...
This code is called repeatedly, pretty quickly; it looks like a thread exited, and when i resumed processing its spun a new thread and immediately SIGSEGV
The exception is a little different on my work computer:
mock processing on: 1
mock processing on: 1
[New Thread 0x7ffff39d5700 (LWP 26323)]
Program received signal SIGBUS, Bus error.
[Switching to Thread 0x7ffff39d5700 (LWP 26323)]
__GI_getenv (name=0x7ffff7331eb1 "_NO_GLIB") at getenv.c:90
(gdb) bt
#0 __GI_getenv (name=0x7ffff7331eb1 "_NO_GLIB") at getenv.c:90
#1 0x00007ffff7101cb9 in qEnvironmentVariableIsEmpty(char const*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2 0x00007ffff7111cb5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3 0x00007ffff7112a96 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4 0x00007ffff6182e9a in start_thread (arg=0x7ffff39d5700) at pthread_create.c:308
#5 0x00007ffff68a638d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6 0x0000000000000000 in ?? ()
same function, different ENV variable is being checked – i've been searching getenv crashes on google, seems could be threading/race related; i think this is the jist of the function:
const char * const value = ::getenv(varName);
return !value || !*value;
while this code involves the network code i ponder if its a greater issue with qEnvironmentVariableIsEmpty in general?