Opened 3 years ago

Last modified 6 months ago

#63424 assigned defect

lua51-luarocks @3.7.0_1: Lua runtime panics

Reported by: GarrettAlbright (Garrett Albright) Owned by: l2dy (Zero King)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: cooljeanius (Eric Gallager)
Port: lua51-luarocks

Description

The port installs correctly, but the script it installs causes the LuaJIT interpreter to panic. Any invocation causes:

PANIC: unprotected error in call to Lua API (7)

I believe the 7 here is an error code and not a line number.

My system is a "Mac mini (M1, 2020)" running macOS 11.3 (20E232).

luarocks not working means none of the packages that MacPorts tries to install via luarocks will install either.

lua52-luarocks and lua53-luarocks seem to be behaving themselves, but I was hoping to be able to use lua51-related tools since I've been experimenting with the LÖVE game framework which is stuck on 5.1 for now.

Change History (10)

comment:1 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to l2dy
Status: newassigned

comment:2 Changed 3 years ago by l2dy (Zero King)

Which luajit port are you using? Can you try the latest luajit (@2.1.0-beta3_3) or install luajit-openresty instead?

comment:3 Changed 3 years ago by GarrettAlbright (Garrett Albright)

I confirmed that the luajit I installed was @2.1.0-beta3_3. luajit -v shows LuaJIT 2.1.0-beta3.

I installed luajit-openresty (which required uninstalling luajit first) and using lua51-luarocks seems to work as expected after doing so. Interesting. Just for fun I then uninstalled luajit-openresty and reinstalled the standard luajit and got the the same error as in the OP. So whatever the breakage is, it seems to only be happening on the non-openresty luajit.

comment:4 Changed 3 years ago by l2dy (Zero King)

Can you provide minimal steps to reproduce the error?

comment:5 Changed 3 years ago by GarrettAlbright (Garrett Albright)

I take it you're not able to replicate it, then. :/ Are you using an M1, as I am? Maybe that's the difference here.

I'm on my work computer now and can't mess with it too much, but when I get back home on my M1 MBA I'll try uninstalling all of my ports and then installing only lua51-luarocks and see if I can replicate it there.

comment:6 Changed 3 years ago by GarrettAlbright (Garrett Albright)

Oh, to answer your question, the minimal steps for me to reproduce this error currently is just run luarocks. Not even any other flags or parameters are necessary. If you want steps starting from installing the ports, I can get that to you later today.

comment:7 Changed 3 years ago by l2dy (Zero King)

Yes, I'm still using an Intel processor. I'll try to find a CI or cloud that supports Apple Silicon to reproduce this.

comment:8 Changed 3 years ago by GarrettAlbright (Garrett Albright)

And I just confirmed this can be replicated on my M1 MBA (so this isn't exclusive to the mini at my office) with no other ports installed except those necessary for luarocks:

Warhead ~% port installed
No ports are installed.
Warhead ~% sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.7.1 installed,
MacPorts base version 2.7.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated
Warhead ~% sudo port install lua51-luarocks
--->  Computing dependencies for lua51-luarocks
The following dependencies will be installed: 
 lua51
 luajit
 luarocks_select
 ncurses
 readline
Continue? [Y/n]: 
--->  Fetching archive for ncurses
[…snip…]
--->  Cleaning lua51-luarocks
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
--->  No broken ports found.
--->  Some of the ports you installed have notes:
  lua51-luarocks has the following notes:
    To make this the default LuaRocks (i.e., the version run by the 'luarocks' or 'luarocks-admin' commands), run:
    
        sudo port select --set luarocks lua51-luarocks
Warhead ~% sudo port select --set luarocks lua51-luarocks
Selecting 'lua51-luarocks' for 'luarocks' succeeded. 'lua51-luarocks' is now active.
Warhead ~% luarocks
PANIC: unprotected error in call to Lua API (7)
Warhead 1 ~% 

comment:9 Changed 2 years ago by l2dy (Zero King)

Please try luajit @2.1.0-beta3_5, which contains some arm64 fixes.

comment:10 Changed 6 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.