What steps will reproduce the problem?
1. Install Prosody on a Raspberry Pi Zero
2. Try to run it
What is the expected output?
- Prosody should simply run, like it did on 0.11.2-1+deb10u2 armhf (deb release just before the last update)
What do you see instead?
- Prosody simply dies with the following message:
Illegal instruction
This is the kind of message you see when a binary has been compiled with features not compatible with the Pi Zero (like neon for example).
It's probably linked to a lua dependency hosted on your repository.
What version of the product are you using? On what operating system?
- Raspbian Buster, all updated
- Prosody 0.11.9-1~buster1 armhf
Thanks!
Zash
on
Thanks for the report.
We have recently switched package building infrastructure, so it's possible that it has some issues that need to be worked out.
I tested installing only prosody from our repo (manually downloading it) and that worked fine. However after upgrading other dependencies I could reproduce the 'Illegal instruction' error.
To narrow it down, could you plase run each of the following commands and report whether they start a Lua prompt or give an error:
lua5.2 -l lfs
lua5.2 -l socket
lua5.2 -l ssl
lua5.2 -l lxp
Changes
tags Status-NeedInfo Component-Builder
h.d.
on
Thanks for the quick response.
The following two commands work and open a lua prompt:
lua5.2 -l lfs
lua5.2 -l lxp
The following two give me "Illegal instruction" errors with no further details:
lua5.2 -l socket
lua5.2 -l ssl
Do you think the issue is in the lua-sec and lua-socket packages?
(don't know lua much but guessing from the broken commands)
Zash
on
Looks like it is lua-socket. We will have to investigate whether there's something wrong with the new build infrastructure or something specific to lua-socket. Packages such as the last release were built before we switched over, so would have been built on the previous AWS builder.
In the mean time you can downgrade using a command like this.
apt install lua-socket=3.0~rc1+git+ac3201d-4
The exact version can be found with `apt-cache policy lua-socket`, pick the one that's not from the Prosody repo.
h.d.
on
Downgrading lua-socket to the right version and leaving everything else up to date with the prosody repo worked.
Hopefully this will get fixed soon upstream.
Thanks for the advice and for maintaining the project, that's really good work!
Zash
on
A rebuild of the lua-socket package seems to work on a Raspberry Pi 1B board without issue. Please confirm.
Plausible explanation is that the faulty package was built for what Debian calls armhf, rather than Raspian / Raspberry Pi OS, which is a subtly different architecture target.
FWIW the only real difference between our lua-socket package (and a few other lua libraries we have published) is that it supports the new Lua 5.4, so that Prosody trunk nightly builds can be tested with that.
Changes
tags Status-Fixed
owner Zash
h.d.
on
Confirmed, all works here with the latest updates. Thanks a lot Zash!
h.d.
on
Hello,
Same issue is happening here with the new update to Debian Bullseye.
Running the same lua5.2 tests given before:
- ssl, socket, lfs, all work perfectly.
- 'lua 5.2 -l lxp' gives me the same 'Illegal Instruction' issue faced before.
Could you please help with the situation?
Thanks.
What steps will reproduce the problem? 1. Install Prosody on a Raspberry Pi Zero 2. Try to run it What is the expected output? - Prosody should simply run, like it did on 0.11.2-1+deb10u2 armhf (deb release just before the last update) What do you see instead? - Prosody simply dies with the following message: Illegal instruction This is the kind of message you see when a binary has been compiled with features not compatible with the Pi Zero (like neon for example). It's probably linked to a lua dependency hosted on your repository. What version of the product are you using? On what operating system? - Raspbian Buster, all updated - Prosody 0.11.9-1~buster1 armhf Thanks!
Thanks for the report. We have recently switched package building infrastructure, so it's possible that it has some issues that need to be worked out. I tested installing only prosody from our repo (manually downloading it) and that worked fine. However after upgrading other dependencies I could reproduce the 'Illegal instruction' error. To narrow it down, could you plase run each of the following commands and report whether they start a Lua prompt or give an error: lua5.2 -l lfs lua5.2 -l socket lua5.2 -l ssl lua5.2 -l lxp
ChangesThanks for the quick response. The following two commands work and open a lua prompt: lua5.2 -l lfs lua5.2 -l lxp The following two give me "Illegal instruction" errors with no further details: lua5.2 -l socket lua5.2 -l ssl Do you think the issue is in the lua-sec and lua-socket packages? (don't know lua much but guessing from the broken commands)
Looks like it is lua-socket. We will have to investigate whether there's something wrong with the new build infrastructure or something specific to lua-socket. Packages such as the last release were built before we switched over, so would have been built on the previous AWS builder. In the mean time you can downgrade using a command like this. apt install lua-socket=3.0~rc1+git+ac3201d-4 The exact version can be found with `apt-cache policy lua-socket`, pick the one that's not from the Prosody repo.
Downgrading lua-socket to the right version and leaving everything else up to date with the prosody repo worked. Hopefully this will get fixed soon upstream. Thanks for the advice and for maintaining the project, that's really good work!
A rebuild of the lua-socket package seems to work on a Raspberry Pi 1B board without issue. Please confirm. Plausible explanation is that the faulty package was built for what Debian calls armhf, rather than Raspian / Raspberry Pi OS, which is a subtly different architecture target. FWIW the only real difference between our lua-socket package (and a few other lua libraries we have published) is that it supports the new Lua 5.4, so that Prosody trunk nightly builds can be tested with that.
ChangesConfirmed, all works here with the latest updates. Thanks a lot Zash!
Hello, Same issue is happening here with the new update to Debian Bullseye. Running the same lua5.2 tests given before: - ssl, socket, lfs, all work perfectly. - 'lua 5.2 -l lxp' gives me the same 'Illegal Instruction' issue faced before. Could you please help with the situation? Thanks.