Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi Crash - "pure virtual method called" #1976

Closed
SafwatHalaby opened this issue May 9, 2015 · 35 comments
Closed

Raspberry Pi Crash - "pure virtual method called" #1976

SafwatHalaby opened this issue May 9, 2015 · 35 comments

Comments

@SafwatHalaby
Copy link
Member

This was reported by 2 different users, MCServer on Raspberry Pi crashes on startup.

Report 1 (libc 2.21):

[artur@pi MCServer]$ ./MCServer
pure virtual method called
terminate called without an active exception
[11:48:46] D: | MCServer has encountered an error and needs to close
[11:48:46] --- Started Log ---

[11:48:46] Details | SIGABRT: Server self-terminated due to an internal fault
[11:48:46] MCServer Jenkins gcc armhf Release (master) build id: #153
[11:48:46] MCServer Jenkins gcc armhf Release (master) build id: #153
[11:48:46] from commit id: 049ff67416d2ed9531927ddc861535a8acedc4b9 built at: Sat May 9 03:11:59 EDT 2015
[11:48:46] from commit id: 049ff67416d2ed9531927ddc861535a8acedc4b9 built at: Sat May 9 03:11:59 EDT 2015
[11:48:46] Creating new server instance...
./MCServer(_Z15PrintStackTracev+0x14)[0x1b65dc]
./MCServer(_Z14NonCtrlHandleri+0x8c)[0x1af3f4]
/usr/lib/libc.so.6(__default_sa_restorer+0x0)[0x76c20a90]
/usr/lib/libc.so.6(gsignal+0x34)[0x76c1f864]
/usr/lib/libc.so.6(abort+0x12c)[0x76c20c08]
/usr/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x154)[0x76e2bafc]
/usr/lib/libstdc++.so.6(+0x4a934)[0x76e29934]
Aborted (core dumped)
[artur@pi MCServer]$ 

Report 2:

minecraft@osmc:~/MCServer$ ./MCServer
pure virtual method called
terminate called without an active exception
[11:31:58] D: | MCServer has encountered an error and needs to close
[11:31:58] --- Started Log ---

[11:31:58] MCServer Jenkins gcc armhf Release build id: #141
[11:31:58] Details | SIGABRT: Server self-terminated due to an internal fault
[11:31:58] from commit id: 18a268a961d1a9d93fda2e4c0b18f9296f7dd768 built at: Tue May 5 17:41:06 EDT 2015
[11:31:58] MCServer Jenkins gcc armhf Release build id: #141
[11:31:58] from commit id: 18a268a961d1a9d93fda2e4c0b18f9296f7dd768 built at: Tue May 5 17:41:06 EDT 2015
[11:31:58] Creating new server instance...
./MCServer(_Z15PrintStackTracev+0x14)[0x1b57dc]
./MCServer(_Z14NonCtrlHandleri+0x8c)[0x1ae5f4]
/lib/arm-linux-gnueabihf/libc.so.6(+0x26ac0)[0x76ce6ac0]
/lib/arm-linux-gnueabihf/libc.so.6(+0x178e6)[0x76cd78e6]
/lib/arm-linux-gnueabihf/libc.so.6(gsignal+0x25)[0x76ce5ec6]
/lib/arm-linux-gnueabihf/libc.so.6(abort+0xbd)[0x76ce6bce]
Afbrudt (SIGABRT)
@FalkAlexander
Copy link

You can try one of my daily builds: https://minefight.org/ftp/MCServer/
Using it on a cubieboard 4.

Maybe a too old or new libc library.

@SafwatHalaby
Copy link
Member Author

Which LIBC version does MCServer require?

@bearbin
Copy link
Member

bearbin commented May 9, 2015

For the buildserver builds, something like 2.13?

@SafwatHalaby
Copy link
Member Author

Report 1 uses libc 2.21, so I guess it's not a version issue.

@bearbin
Copy link
Member

bearbin commented May 9, 2015

Sorry, actually should be libc 2.19 for x86/64

ARM may be different, because of the differences with cross-compilation.

@Woazboat
Copy link
Contributor

Woazboat commented May 9, 2015

Was able to reproduce the issue on my bananapi with jenkins armhf build 153.
http://builds.cuberite.org/job/MCServer%20Linux%20armhf/
Crash dump is here: https://dl.dropboxusercontent.com/u/16465859/crashdump.zip

I'm currently building it from source natively on my bananapi as well. Will post an update when that's finished.

@Woazboat
Copy link
Contributor

Woazboat commented May 9, 2015

Jenkins build 154 crashes as well with the same issue.
https://dl.dropboxusercontent.com/u/16465859/crashdump154.zip

Native build on my bananapi does NOT crash and works fine. Looks like it's an issue with cross compilation.

@Woazboat
Copy link
Contributor

Woazboat commented May 9, 2015

Yup, none of the jenkins armhf builds work, however the builds by @falkseidl work fine.

You can try one of my daily builds: https://minefight.org/ftp/MCServer/

libc* versions:
GLIBC 2.19-18
GLIBCXX_3.4.20

@FalkAlexander
Copy link

I had the same problem on my banana pi and cubieboard. Now I have a cronjob that is starting the compiling every night at 3 clock (CET) on the cubieboard.
I will add the testing branch soon.

@bearbin
Copy link
Member

bearbin commented May 9, 2015

I'm going to try and investigate the problem, perhaps I will update the cross-compiler to the latest version.

@madmaxoft
Copy link
Member

I've just tried build 155 from the buildserver, and it starts up alright on my RasPi.
I have a feeling this is due to the huge variety of operating systems for the Pi, some of them are just incompatible.
Mine is Linux 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux (uname -a)

@SafwatHalaby
Copy link
Member Author

How about providing PI users (or all users)with a "deploy" script, which clones and compiles automatically? It could also serve as an update script.

I could give it a shot.

@bearbin
Copy link
Member

bearbin commented May 10, 2015

You could. But it requires the installation of a compiler as well, which people probably wouldn't want.

I'm re-doing the cross-compilation setup so it should work better with the newer OSes ATM, but IDK if it will work.

@SafwatHalaby
Copy link
Member Author

Alright.

In the meantime, here's a quick workaround for Pi users, just run this script and it'll download and compile everything.
Alternatively, you can use @falkseidl's binaries.

@tigerw
Copy link
Member

tigerw commented May 10, 2015

(About the name, I think we agreed to name the organisation Cuberite, as an umbrella for MCS, ProtoProxy, AnvilStats, etc.)

@bearbin
Copy link
Member

bearbin commented May 11, 2015

OK, I have set up the cross-compilation again and tested on my pi, it works.

Could somebody else with a pi test to confirm the builserver builds now work again.

@SafwatHalaby
Copy link
Member Author

(About the name, I think we agreed to name the organisation Cuberite, as an umbrella for MCS, ProtoProxy, AnvilStats, etc.)

How about we do this?
https://help.github.com/articles/renaming-an-organization/

@Woazboat
Copy link
Contributor

Could somebody else with a pi test to confirm the builserver builds now work again.

Still doesn't work on my BananaPi unfortunately. This is the build I tested: http://builds.cuberite.org/job/MCServer%20Linux%20armhf/3/

@bearbin
Copy link
Member

bearbin commented May 11, 2015

Hm. What's your kernel version?

@madmaxoft
Copy link
Member

The new builds work on my Pi, too. Tested build 3.

@Woazboat
Copy link
Contributor

3.4.104+ armv7l GNU/Linux which explains a lot, since the RaspberryPi is armv6. Didn't realize that the BananaPi had a different architecture. Nevermind then. Though that means the mentioned deploy script will certainly be needed, unless you are planning on providing precompiled binaries for every architectural *Pi flavour out there.

@bearbin
Copy link
Member

bearbin commented May 12, 2015

The piv2 is armv7 as well.

@worktycho worktycho modified the milestone: Testing-0.1 May 12, 2015
@SafwatHalaby
Copy link
Member Author

So, the issue was running armV6 on ArmV7 hardware?

@bearbin
Copy link
Member

bearbin commented May 16, 2015

Probably, but the Pi2 supports running ARMv6 code so that's why it works and the others dont AFAIK.

@SafwatHalaby
Copy link
Member Author

But artur9010@forums reported the issue with Pi2

@bearbin
Copy link
Member

bearbin commented May 16, 2015

I think a recent firmware update to the pi also broke old software, after I recreated the cross-compile build it worked fine on the pi2s.

@SafwatHalaby
Copy link
Member Author

So, closed?

@bearbin
Copy link
Member

bearbin commented May 16, 2015

I think so. Everything works fine on an actual pi now, it's just the pi-likes that have the issue. And your self-compile script helps for those.

@bearbin bearbin closed this as completed May 16, 2015
@SafwatHalaby
Copy link
Member Author

Yes, remember to put it somewhere more accessible such as the homepage some day.

@artur9010
Copy link
Contributor

Unfortunately, this does not work as it should :(

@bearbin
Copy link
Member

bearbin commented May 21, 2015

@artur9010, What do you mean in particular?

@artur9010
Copy link
Contributor

Build 24 (http://builds.cuberite.org/job/MCServer%20Linux%20armhf/24/)
Raspberry Pi 2, Arch Linux arm

[artur@alarmpi MCServer]$ ./MCServer
pure virtual method called
terminate called without an active exception
[18:19:54] from commit id: 6bafff056038ca5909343b454318ea3dc15c0793 built at: Thu May 21 11:13:08 EDT 2015
[18:19:54] --- Started Log ---

[18:19:54] MCServer Jenkins gcc armhf Release (master) build id: #24
[18:19:54] from commit id: 6bafff056038ca5909343b454318ea3dc15c0793 built at: Thu May 21 11:13:08 EDT 2015
[18:19:54] Creating new server instance...
./MCServer(_Z15PrintStackTracev+0x14)[0x1dd71c]
./MCServer(_Z14NonCtrlHandleri+0x8c)[0x1caffc]
/usr/lib/libc.so.6(__default_sa_restorer+0x0)[0x76c42a90]
/usr/lib/libc.so.6(gsignal+0x34)[0x76c41864]
/usr/lib/libc.so.6(abort+0x12c)[0x76c42c08]
/usr/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x154)[0x76e4dafc]
/usr/lib/libstdc++.so.6(+0x4a934)[0x76e4b934]
Aborted (core dumped)
[artur@alarmpi MCServer]$

@bearbin
Copy link
Member

bearbin commented May 21, 2015

Using arch linux is the most likely issue. Please compile the server yourself. @SafwatHalaby made a script that makes it easy.

http://forum.mc-server.org/showthread.php?tid=1937

@artur9010
Copy link
Contributor

It's works.

@SafwatHalaby
Copy link
Member Author

Yay, my script works :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants