View Issue Details

IDProjectCategoryView StatusLast Update
0000875LDMudCompilation, Installationpublic2020-03-26 09:51
ReporterRiftsmud Assigned Tozesstra  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionno change required 
PlatformAmazon LightsailOSUbuntu OS Version16.04.4
Summary0000875: Cannot start driver successfully.
DescriptionFirst, I want to apologize. I am a driver-side noob. I last started a mud driver about 18 years ago and that was an Amylaar LPMUD. So I am struggling to just being able to install the driver, despite reading all the docs included with the LDMUD 3.6.1 files. I was asked to bring back an old mud lib, Riftsmud. I am afraid it may have efuns that have since been depreciated. Have no idea how to correct on my own at this point. Error on starting driver is:

2020.01.12 20:54:30 LDMud 3.6.1 (3.6.1) (release)
2020.01.12 20:54:30 Seeding PRNG from /dev/urandom.
2020.01.12 20:54:30 Attempting to start erq '/home/ubuntu/mud6/bin/erq'.
2020.01.12 20:54:30 [erq] Amylaar ERQ Jan 12 2020: Path 'erq', debuglevel 0
2020.01.12 20:54:30 Hostname 'ip-172-26-15-37' address '172.26.15.37'
2020.01.12 20:54:30 obj/master.c line 74: Unknown efun: file_name before ';'.
2020.01.12 20:54:30 obj/master.c line 508: Undefined function 'strlen' before ' && file[0'
.
2020.01.12 20:54:30 obj/master.c line 722: Warning: Casting a value of an unknown type has
 no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 724: Warning: Casting a value of an unknown type has
 no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 857: Undefined function 'query_shadowing' before ')
for (sh '.
2020.01.12 20:54:30 obj/master.c line 857: Too many arguments to shadow before '; sh; sh =
'.
2020.01.12 20:54:30 obj/master.c line 857: Bad assignment (object vs int) before ' sh; sh
= '.
2020.01.12 20:54:30 obj/master.c line 858: Too many arguments to shadow before ';'.
2020.01.12 20:54:30 obj/master.c line 877: Warning: Casting a value to mixed has no effect
 before ',0) ) {'.
2020.01.12 20:54:30 obj/master.c line 1246: Warning: Missing 'return <value>' statement be
fore end of line.
2020.01.12 20:54:30 obj/master.c line 1294: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1303: Warning: Missing 'return <value>' statement be
fore end of line.
2020.01.12 20:54:30 obj/master.c line 1326: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1332: Warning: Missing 'return <value>' statement be
fore end of line.
2020.01.12 20:54:30 obj/master.c line 1526: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1533: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1542: Warning: Missing 'return <value>' statement be
fore end of line.
2020.01.12 20:54:30 obj/master.c line 1671: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1678: Warning: Casting a value of an unknown type ha
s no effect before end of line.
2020.01.12 20:54:30 obj/master.c line 1729: Warning: Casting a value of an unknown type ha
s no effect before ';'.
2020.01.12 20:54:30 obj/master.c line 1750: Warning: Casting a value of an unknown type ha
s no effect before ';'.
2020.01.12 20:54:30 Error in loading object: 'secure/master'.
]Failed to load master object 'secure/master'!
2020.01.12 20:54:30 Failed to load master object 'secure/master'!
2020.01.12 20:54:30 Current object was <null>
No program counter.
No program to trace.
2020.01.12 20:54:30 LDMud aborting on fatal error.
]Failed to load master object 'secure/master'!
We are sorry, but LDMud just crashed.
Please report this bug at: https://mantis.ldmud.eu/mantis/
Don't forget to include logs, version information and if a
coredump is generated, please store it with the corresponding
executable/binary until requested.
Last Release: 3.6.1 (Wed Jan 08 23:00:00 2020 +0100)
Released by: Gnomi <gnomi@unitopia.de>
Current Commit: 3.6.1
Local Level:
Homepage: http://www.ldmud.eu/
Aborted (core dumped)
ubuntu@ip-172-26-15-37:~/mud6/bin$ 2020.01.12 20:54:31 [erq] read: EOF
2020.01.12 20:54:31 [erq] Read 0, should be 9!
2020.01.12 20:54:31 [erq] Giving up.

Steps To Reproduce./ldmud
from ../mud6/bin directory
TagsNo tags attached.
External Data (URL)

Activities

zesstra

2020-01-12 21:42

administrator   ~0002501

First of all: nice to hear people coming back to muds.

Concerning your problem: it is so far a problem with your old mudlib. The efuns file_name() and strlen() just don't exist anymore and therefore the master objekt can't be compiled. You have to replace them (e.g. file_name by object_name and strlen by sizeof). However, this here is not the right place for support questions.

My suggestions are:
1) try to work with a mudlib known to work with 3.6.1, e.g. the one we supply to verify the driver works for you and get accustomed.
2) go to the mailing list for discussion with others: https://groups.google.com/d/forum/ldmud-talk
3) you could try your old mudlib with an old driver release (3.3.x oder even 3.2.x). Then you can work your way through the changes and release notes of 3.3.x, 3.5.x and 3.6.x...

Riftsmud

2020-01-13 01:23

reporter   ~0002502

zesstra,

Thank you for responding so quickly. I had already tried 3) before contacting.

LDMud 3.2.17 would not compile successfully. On make install, I got the following errors:
./mk-patchlevel.sh
./mk-patchlevel.sh: 5: .: version.sh: not found
Makefile:135: recipe for target 'make-patchlevel' failed
make: *** [make-patchlevel] Error 2

With LDMud 3.3.720, no errors on compile. However, launching the driver does not create an active port. Only log file entry is:
2020.01.13 01:11:13 LDMud 3.3.720 (Build $Revision$) (stable)

Gnomi

2020-01-13 12:58

manager   ~0002503

Let's focus on LDMud 3.3.720. How do you call it? What does it output? What is in the debug.log?

Riftsmud

2020-01-13 14:27

reporter   ~0002504

Call the LDmud driver from the bin subdirectory where it was compiled to with indent and erq. Used ./ldmud &, ./ldmud -N &, and also ./ldmud -N -m=<lib path> &. All produce the same message above only. Nothing else. Debug log in the lib directory shows same message. Netstat shows no ldmud process running. Very bizarre. With so little details, hard for me to know where to look.

Gnomi

2020-01-13 14:48

manager   ~0002505

It seems the driver exits sometime during its initialization, but we don't know where and why. Let's try to determine where.
In the driver sources take a look at the main.c. We get the message on line 412 (and the console) and on line 459 (in the debug.log), but not from line 599 (that's usually the next output, printing the host name).

So I would suggest putting there some debug outputs like printf("I am at line %d\n", __LINE__); between line 459 and 599 to determine where the execution ends.
Alternatively use a debugger and step through these lines.

Gnomi

2020-01-13 14:55

manager   ~0002506

Just one comment: Please try to start the driver without '&', let it run in the foreground while we try to get it running.

Riftsmud

2020-01-14 00:16

reporter   ~0002514

Hi Gnomi,

I did as you said and slowly worked down to where the error is located in main.c. It is right after the start-up of the erq daemon. It is line:

        initialize_host_ip_number(hostname, hostaddr); <-- THIS ONE
        free(hostname); hostname = NULL;
        free(hostaddr); hostaddr = NULL;

printf message shows before it. printf message does not show immediately after it. Hostname and hostaddr values at this point are (null).

Gnomi

2020-01-14 00:24

manager   ~0002515

Please try to start the driver with the following options: --hostname localhost --hostaddr 127.0.0.1
If it does work, you can try to only give hostname and not hostaddr.
And your host has a real name you can then try to give that instead of localhost.

Riftsmud

2020-01-14 03:19

reporter   ~0002516

Gnomi,

Thank you. This worked, but only to find that this driver has similar problems to the 3.6 for me. It has depreciated the lfuns file_name and filter_array. Master.c crashes without them. Thus, I am back to the three options, except this time needing to figure out the version.sh error in 3.2.

Gnomi

2020-01-14 09:33

manager   ~0002517

Working with 3.3.720 needs far fewer changes than 3.6.1, believe me. I would suggest now trying to adapt your mudlib to 3.3.720.
Sadly there is no guide for upgrading from 3.2 to 3.3. So we have to look at the error messages happening.
For the efun file_name(), there is now object_name(). For filter_array() there is now filter(). You'll need to change them in your master, but you can supply a simul-efun for the rest of your mudlib.

zesstra

2020-03-26 09:51

administrator   ~0002522

I will close the issue for now, since it is no error in the driver itself and discussion seems to have stopped.
However, you are welcome to discuss with us and other users on the mailing list:
https://groups.google.com/d/forum/ldmud-talk

Issue History

Date Modified Username Field Change
2020-01-12 21:16 Riftsmud New Issue
2020-01-12 21:42 zesstra Note Added: 0002501
2020-01-13 01:23 Riftsmud Note Added: 0002502
2020-01-13 12:58 Gnomi Note Added: 0002503
2020-01-13 14:27 Riftsmud Note Added: 0002504
2020-01-13 14:48 Gnomi Note Added: 0002505
2020-01-13 14:55 Gnomi Note Added: 0002506
2020-01-14 00:16 Riftsmud Note Added: 0002514
2020-01-14 00:24 Gnomi Note Added: 0002515
2020-01-14 03:19 Riftsmud Note Added: 0002516
2020-01-14 09:33 Gnomi Note Added: 0002517
2020-03-26 09:51 zesstra Assigned To => zesstra
2020-03-26 09:51 zesstra Status new => closed
2020-03-26 09:51 zesstra Resolution open => no change required
2020-03-26 09:51 zesstra Note Added: 0002522