Euphoria
Ticket #786:
Meaningless error points wrong line of code
-
Reported by
jmduro
Sep 22, 2012
I got this error with eui on Linux X86_64 (kubuntu 12.04 LTS): eui ftp_server.ex
/home/duro/data/euphoria/DFS/ftplib.e:266
<0158>:: Wrong number of arguments supplied for forward reference
/home/duro/data/euphoria/DFS/ftplib.e (266): procedure logMsg. Expected 1, but found 2.
data = breakup(sent, bs)
^
but 1) line 266 of ftplib.e contents "data = sock:receive(connection[1], 0)"
2) "data = breakup(sent, bs)" is at line 344
3) on both lines number of arguments are correct
Details
1. Comment by jmduro
Sep 22, 2012
Error was at previous line: "logMsg("socket_receive: nothing received from %s via socket %s, trying once more",{connection[2], sprint(connection[1])})" instead of "logMsg(sprintf("socket_receive: nothing received from %s via socket %s, trying once more",{connection[2], sprint(connection[1])}))". Missing sprintf.
2. Comment by mattlewis
Sep 24, 2012
Is it possible to post the code somewhere? Ideally, gather the relevant files using eudist. If this isn't something that can / should be released publicly, even sharing it privately would be very beneficial in tracking down this issue.
3. Comment by SDPringle
Sep 25, 2012
Is this logMsg call at line 265 or line 343 in ftplib.e?
4. Comment by SDPringle
Sep 25, 2012
Is the procedure set_error_info the procedure we should call before all forward referenced error messages? It sets several parameters from the forward reference passed in. It seems to me we should replace all of these statements that only set the parameters with calls to this. In particular before line 370 in fwdref.e.
5. Comment by mattlewis
Sep 25, 2012
Yes, it looks like we miss setting some of the information before that call, and should be calling either prep_forward_error or set_error_info, which appear to be duplicating each other.
It sounds like we got the line number wrong, plus the issue of not setting up for the error with the information that we had.