simojenki / bonob

sonos SMAPI implementation allowing integrating different music sources with sonos.
GNU General Public License v3.0
208 stars 15 forks source link

bonob exited with code 132 #166

Closed madgoose closed 11 months ago

madgoose commented 11 months ago

Hi,

I'm using docker-compose to create a navidrome + bonob stack, on Ubuntu 22.04.2 LTS, running via LiveUSB on an old NAS box which has a Intel® Atom™ D525 1.8GHz dual core processor.

The Navidrome part runs okay but the console also displays

bonob exited with code 132

A quick search online suggests code 132 is related to cpu architecture. I vaguely recall some unrelated hardware issue I had at some point in the past and maybe that specific Atom processor isn't capable of 64 bit 🤷‍♂️

I added this to the docker-compose.yml file but it hasn't made a difference:

bonob:
    image: simojenki/bonob:latest
    platform: linux/amd64

I'm inclined to accept defeat and upgrade my 10+ year old hardware but just wanted a second opinion before opening my wallet…

simojenki commented 11 months ago

It's interesting as the Atom D525 is a 64 bit chip; https://ark.intel.com/content/www/us/en/ark/products/49490/intel-atom-processor-d525-1m-cache-1-80-ghz.html

Perhaps that's not enough to run an amd64 image?

madgoose commented 11 months ago

Yeh, on paper it looks it should work. And even lscpu

Architecture:           x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        36 bits physical, 48 bits virtual
  Byte Order:           Little Endian
CPU(s):                 4
  On-line CPU(s) list:  0-3
Vendor ID:              GenuineIntel
  Model name:           Intel(R) Atom(TM) CPU D525   @ 1.80GHz
    CPU family:         6
    Model:              28
    Thread(s) per core: 2
    Core(s) per socket: 2
    Socket(s):          1
    Stepping:           10
    BogoMIPS:           3590.73

I found this on stack overflow, but have no idea how to apply the concept to your docker image. edit: this is day 2 in my journey with using docker 😂

To solve the problem, run an image built to support amd64 and not amd64-avx this may mean you have to run an earlier version. A good example of this is the mongodb docker images, the latest version supports amd64-avx and will refuse to run on CPUs that don't support avx and exist with error code 132. https://stackoverflow.com/questions/60930359/docker-containers-exit-code-132#:~:text=To%20solve%20the%20problem%2C%20run,exist%20with%20error%20code%20132.

I can't find any evidence in my browser history but I think it was some minor detail of different batches of the chipset…

simojenki commented 11 months ago

I see, so not all amd64 are equal.

I'll try build an i386 image perhaps 32bit will work.

madgoose commented 11 months ago

I have no idea how complex or time-consuming that would be, but if you're happy to do so, I would be eternally grateful ^_^

simojenki commented 11 months ago

Unfortunately that is not going to work as there is no 32 bit node binary or image to use.

madgoose commented 11 months ago

oh well… thank you for investigating this further 🙂 looks like I need to go shopping for a new home server 😆

simojenki commented 11 months ago

It will run on a raspberry pi so you could try using one of those before shelling out for an entire new nas... unless of course this is a good excuse...

madgoose commented 11 months ago

but will it run on a raspberry pi 1 model B? as that's what I've got in the cupboard 😬 …so I just ordered a raspberry pi 4 instead, which I reckon will be sufficient to run a dedicated music server. not sure what I will use for data storage yet but that's all part of the fun 🤣

simojenki commented 11 months ago

Could mount the storage on your existing d525 over nfs? Alternatively if you can get navidrome running on the d525 you could run bonob on the RPi and point it at navidrome on the d525?