fuzzball-muck / fuzzball

Ongoing development of the Fuzzball MUCK server software and associated functionality.
Other
47 stars 27 forks source link

"Program not compilable" error lacks useful detail #587

Closed theconnstruct closed 1 year ago

theconnstruct commented 3 years ago

"Program not compilable. Cannot run."

This error message does not indicate which program failed to compile or why. In this instance, it's also failing to write the relevant details to the muf-errors log. As a result, we have an issue on SPR where everyone logging in gets the above error message, with no clue as to why.

wyld-sw commented 3 years ago

I think adding more detail to that message is a good idea. I’d recommend looking through the main _connect queue and trying to compile each of those programs to see where the issue lies. I can be on hand at SPR shortly. If it’s a problem with FB7, wel’ll fix it.

wyld-sw commented 3 years ago

Just was on SPR and it may look like it has been resolved (let us know if that's not the case!). If it is something that we should fix on the server side, please let us know.

Keeping this issue open so we can improve that message and consider writing compilation errors to that log.

theconnstruct commented 3 years ago

Thanks again, @wyld-sw.

tanabi commented 3 years ago

Yeah, that is a really weird message to get -- I remember when I was new to FB I found it awful confusing until I figured out you could compile the program manually and see what error it was throwing. When it happens in a propqueue it is super annoying to track down.

tanabi commented 3 years ago

@wyld-sw Propose we put this in 7.2 (unless @f0x1de has an immediate need, in which case we can tackle it sooner). My finger in the wind on this one is that it will be easy-ish ... the code around where this happens is somewhat tricky as I recall and not quite a "sneak it in" kind of issue. Though if SPR needs it ASAP then that makes it a higher priority.

theconnstruct commented 3 years ago

No complaints here.

wyld-sw commented 3 years ago

Not here either.

TogarUshindi commented 3 years ago

I'm receiving this message for every program I try to run on the newly compiled test MUCK I just made. Many of the programs are giving me this error, among them include: WHO, 3who, laston, ansi, meetme, cp, lsedit, watchfor, @shout, @exits, @stats, @view, page, pose, say, whereare, etc.

wyld-sw commented 3 years ago

You might not have the actual MUF files installed in the right location. The files in dbs/starterdb/muf/ should also be copied to the installation’s game/muf .

This might be something to clarify in the documentation.

TogarUshindi commented 3 years ago

Hmm.. okay, I did that, the files are there.

~/fuzzball/game/muf$ ls
10.m   13.m  17.m  23.m  29.m  34.m  40.m  48.m  54.m  60.m  68.m  73.m  8.m   87.m  93.m  README
101.m  14.m  18.m  25.m  3.m   36.m  42.m  5.m   56.m  62.m  7.m   75.m  81.m  89.m  95.m  macros
103.m  15.m  19.m  27.m  30.m  38.m  44.m  50.m  58.m  64.m  70.m  77.m  83.m  9.m   97.m
11.m   16.m  21.m  28.m  32.m  4.m   46.m  52.m  6.m   66.m  71.m  79.m  85.m  91.m  99.m

Then I hit @restart in-world, then $ sudo /usr/local/sbin/fb-restart in SSH, got the server running, but still cannot run the programs.

TogarUshindi commented 3 years ago

Something I noticed while examining one of the broken commands:

ex #101
cmd-page(#101FVM3)  Owner: Keeper
Type: PROGRAM  Flags: MUCKER3 VIEWABLE
A scroll containing a spell called cmd-page
Created:  Tue Dec  8 01:37:06 2020 UTC
Modified: Tue Dec  8 02:41:24 2020 UTC
Lastused: Tue Dec  8 02:41:24 2020 UTC
Usecount: 11     Instances: 0
[ Use 'examine <object>=/' to list root properties. ]
Memory used: 323 bytes
Program not compiled.
Location: Keeper(#2PWQBM2)

Notice it says "Program not compiled"?

wyld-sw commented 3 years ago

Hmm, for that to happen for all of the files makes me think they're still not in the right place. You could check by using @edit #101 and checking if a command to list lines (1 99 l) shows anything.

After exiting the editor with q and completely shutting down the MUCK, could you try copying that MUCK folder to /usr/local/game/muf and seeing if that helps?

tanabi commented 3 years ago

@TogarUshindi just FYI -- the MUCK "just in time" compiles programs so it is normal for them to say Program not compiled. Fuzzball doesn't save "binaries", it just saves the program code, so the program is compiled on the fly the first time it is run and it is kept compiled in memory for awhile.

But Wyld is probably right, this looks like a path problem. If you can't figure it out on your own, feel free to reach out to me and we can either do like a skype screenshare thing or you can give me a temporary shell password to your server (if accessible) so that I can fuss with it. It's likely something pretty easy.

TogarUshindi commented 3 years ago
@edit #101
Entering editor for cmd-page(#101FVM3).
Line not available for display.

I copied the ~/fuzzball/game/muf files to /usr/local/game/muf/ and the programs are working now. The editor still says Line not available for display. though.

Question: What are the contents of ~/fuzzball/* for and what are the /usr/local/* contents for? If the program was compiled and installed as super-user, wouldn't/shouldn't all contents be installed to and be called from the /usr/local location?

TogarUshindi commented 3 years ago

But Wyld is probably right, this looks like a path problem. If you can't figure it out on your own, feel free to reach out to me and we can either do like a skype screenshare thing or you can give me a temporary shell password to your server (if accessible) so that I can fuss with it. It's likely something pretty easy.

Wyld was mentioning he was interested in making a Discord Server for muckymuck stuff, so I'd love to tallk to you all there whenever that gets running!

wyld-sw commented 3 years ago

That's good to hear.

It does appear that the editor still says "Line not available for display." when you first open a program for editing - somewhere along the way this broke, so I think this is a good candidate for a bug fix!

The fuzzball distribution does come with the starterdb, but it does need to be copied to the /usr/local/game location (or a prefix you set) to be used. Both the source files and the database are kept in case there's a need to re-compile (version updates, etc) or revert. I hope that made sense.

You had mentioned in another thread that you had experience with WinFuzz. That comes pre-compiled, since not everyone has the tools available to compile for Windows.

We'll discuss the Discord server idea (or IRC, or Telegram) and let you know. Thanks for the idea!

TogarUshindi commented 3 years ago

Matrix! One protocol to link them all...

theconnstruct commented 3 years ago

fbmuck on freenode

theconnstruct commented 3 years ago

I could register it on furnet instead, if that's preferred. I'm fine with either.

TogarUshindi commented 3 years ago

Hey @conws are you around? We're in the freednode channel.

wyld-sw commented 1 year ago

691 adds the unparsed object name into the message.