Running BOINC server on arm64 machine

Message boards : Questions and problems : Running BOINC server on arm64 machine
Message board moderation

To post messages, you must log in.

AuthorMessage
Andrey

Send message
Joined: 14 Mar 18
Posts: 5
Russia
Message 85198 - Posted: 14 Mar 2018, 10:57:24 UTC

Hello everyone!

I'm having a problem with setting up BOINC server on arm64 machine (armbian nightly 5.41.180312 OS Is used).

I've created a new project, added platforms, workunits, etc., but when I tried to connect to the server to get tasks I got 500 error. I looked it up at the server and found out that something was wrong with executing 'cgi-bin/cgi' file. To define the error, I copied a scheduler request xml file from client to server and tried to run cgi manually with that file as input, and, surprisingly, it stopped with SIGSEGV somewhere in libc.so.6.

So. here is the output and the backtrace:
$ gdb cgi
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 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 "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from cgi...done.
(gdb) r < req.xml 
Starting program: /home/boincadm/projects/bnb/cgi-bin/cgi < req.xml
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000ffffbed1c83c in ?? () from /lib/aarch64-linux-gnu/libc.so.6
(gdb) bt
#0  0x0000ffffbed1c83c in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#1  0x0000fffffff671c0 in ?? ()
#2  0x6572656877207265 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


Therefore, the question is: is it possible to fix it somehow? I've also tried to run it all as root and got the same result.

Thank you!
ID: 85198 · Report as offensive
Juha
Volunteer developer
Volunteer tester
Help desk expert

Send message
Joined: 20 Nov 12
Posts: 801
Finland
Message 85210 - Posted: 14 Mar 2018, 22:03:26 UTC - in response to Message 85198.  

Well, that stacktrace isn't going to help much so you need to resort to printf-debugging. Sprinkle

fprintf(stderr, "I'm here\n");


calls here and there and see how far the program runs. Start with main() in sched_main.cpp.

If the code survives past line 474 you can change the setvbuf() call to

setvbuf(stderr, NULL, _IONBF, 0);


to disable buffering sched log. That should make debugging a bit faster.
ID: 85210 · Report as offensive
Andrey

Send message
Joined: 14 Mar 18
Posts: 5
Russia
Message 85264 - Posted: 16 Mar 2018, 11:25:02 UTC - in response to Message 85210.  

Thank you!

I managed to find where the problem was.
ID: 85264 · Report as offensive
Juha
Volunteer developer
Volunteer tester
Help desk expert

Send message
Joined: 20 Nov 12
Posts: 801
Finland
Message 85274 - Posted: 16 Mar 2018, 19:17:44 UTC - in response to Message 85264.  

Was it something that should be fixed in BOINC?
ID: 85274 · Report as offensive
Andrey

Send message
Joined: 14 Mar 18
Posts: 5
Russia
Message 85276 - Posted: 16 Mar 2018, 19:49:07 UTC - in response to Message 85274.  

No, it was up to MySQL. After some debugging, SIGSEGV turned out to be caused by request to the 'user' table in the project DB. I readded my user and the problem was all gone.
ID: 85276 · Report as offensive

Message boards : Questions and problems : Running BOINC server on arm64 machine

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.