Project

General

Profile

Actions

Bug #2780

closed

NLSR on raspberry pi - runtime error

Added by Ashlesh Gawande almost 9 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
04/29/2015
Due date:
% Done:

0%

Estimated time:

Description

Cross compiled NLSR starts on raspberry pi but quits with the error:
ERROR: error while connecting to the forwarder

The following is the back trace of it in gdb:

pi@raspberrypi1 ~/Desktop $ gdb ./pi/bin/nlsr 
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/Desktop/pi/bin/nlsr...done.

(gdb) run
Starting program: /home/pi/Desktop/pi/bin/nlsr 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0xb6c76600 in _armv7_neon_probe () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0

(gdb) bt
#0  0xb6c76600 in _armv7_neon_probe () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
#1  0xb6c72fe4 in OPENSSL_cpuid_setup () at armcap.c:69
#2  0xb6fe8254 in ?? () from /lib/ld-linux.so.3
#3  0xbefff908 in ?? ()
Cannot access memory at address 0x0
#4  0xbefff908 in ?? ()
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

(gdb) continue
Continuing.

Program received signal SIGILL, Illegal instruction.

_armv7_tick () at armv4cpuid.S:17
17  armv4cpuid.S: No such file or directory.

(gdb) continue
Continuing.

log4cxx: setFile(/home/pi/Desktop/nlsrLog/nlsr.log,true) call failed.
log4cxx: IO Exception : status code = 13
log4cxx: setFile(/home/pi/Desktop/nlsrLog/nlsr.log,true) call failed.
log4cxx: IO Exception : status code = 13
log4cxx: No output stream or file set for the appender named [].
ERROR: error while connecting to the forwarder

[New Thread 0xb4bc0420 (LWP 2319)]
[Thread 0xb4bc0420 (LWP 2319) exited]
[Inferior 1 (process 2316) exited normally]
Actions #1

Updated by Ashlesh Gawande almost 9 years ago

  • Description updated (diff)
Actions #2

Updated by Junxiao Shi almost 9 years ago

  • Description updated (diff)
Actions #3

Updated by Davide Pesavento almost 9 years ago

The two SIGILL caused by openssl are expected. Openssl tries to detect the capabilities of the host CPU by executing some instruction that are available only on some versions of arm, and checking if they trigger a SIGILL or not. Normally openssl installs its own signal handler that traps and ignores the SIGILL, but when run under gdb all signals are sent to the debugger first (and typing continue at the gdb prompt is the right thing to do).

Is nfd still alive after nlsr terminates?

Actions #4

Updated by Ashlesh Gawande almost 9 years ago

Yes nfd is still alive after nlsr terminates.

Actions #5

Updated by Ashlesh Gawande almost 9 years ago

  • Subject changed from NLSR on raspberry pi - OpenSSL error to NLSR on raspberry pi - runtime error
Actions #6

Updated by Lan Wang almost 9 years ago

So the problem has something to do with log4cxx?

Actions #7

Updated by Ashlesh Gawande almost 9 years ago

I cannot reproduce the log4cxx error that I got earlier. I changed the permissions of the folder to which nlsr was writing earlier, seems like that corrected it. This is what the new gdb trace looks like:

pi@raspberrypi1 ~/Desktop $ gdb ./pi/bin/nlsr 
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/Desktop/pi/bin/nlsr...done.

(gdb) run

Starting program: /home/pi/Desktop/pi/bin/nlsr 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0xb6c76600 in _armv7_neon_probe ()
   from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0

(gdb) continue 

Continuing.

Program received signal SIGILL, Illegal instruction.
_armv7_tick () at armv4cpuid.S:17
17  armv4cpuid.S: No such file or directory.

(gdb) continue 

Continuing.

ERROR: error while connecting to the forwarder
[New Thread 0xb4bc2420 (LWP 2294)]
[Thread 0xb4bc2420 (LWP 2294) exited]
[Inferior 1 (process 2278) exited normally]

(gdb) bt

No stack.

(gdb) continue 

The program is not being run.

(gdb) 

Actions #8

Updated by Vince Lehman almost 9 years ago

  • Target version set to v0.6.0
Actions #9

Updated by Ashlesh Gawande about 8 years ago

  • Status changed from New to Resolved

ndn-cxx, NFD, NLSR were cross compiled (using the crosstool-ng to build the gcc for cross compilation).
cryptopp, openssl, protobuf were also cross compiled this time (as copying the lib and include from the Pi did not work for these).

NLSR has no run time error and runs correctly.

Actions #10

Updated by Nicholas Gordon almost 7 years ago

  • Status changed from Resolved to Closed
Actions #11

Updated by Ashlesh Gawande over 5 years ago

  • Target version deleted (v0.6.0)
Actions

Also available in: Atom PDF