Thank you for trying out SWISH - here are the bugs
Torbjörn Lager <[email protected]>
| Newsgroups | gmane.comp.ai.prolog.swi |
|---|---|
| Message-ID | <CA+Y3JZjUZ13Q5_uunhOCsdqXWOG9z7V=reTyhUv2N=19cqJ6ag@mail.gmail.com> |
Hi All,
Thanks to all of you who played with SWISH. The test release went well
I think, since only two bugs unknown to me has surfaced so far.
Norbert Fuchs found that when saving a program containing "\+" the
+-sign disappeared. Likely an encoding issue. Will fix it tomorrow or
on Monday.
A more serios bug is related to the ending of sessions. Three times
last night the server crashed with the following message:
[Thread 19] pl-thread.c:2899: destroy_message_queue: Assertion failed:
!queue->waiting && !queue->wait_for_drain
Stack trace labeled "crash":
[0] swipl() [0x80eea93]
[1] swipl() [0x80bcf0a]
[2] swipl() [0x80bf0df]
[3] swipl() [0x80c0b57]
[4] swipl() [0x80c1d4b]
[5] /lib/i686/cmov/libpthread.so.0(+0x5955) [0xb763b955]
[6] /lib/i686/cmov/libc.so.6(clone+0x5e) [0xb75bbe7e]
Aborted
I *think* that this occured when a session timed out (after ten
minutes of inactivity) and was supposed to clean up a few resources.
The relevant code is here:
% When a client session ends, the currently running goal (if any)
% is aborted, the output queue is destroyed, and the client module
% is emptied.
:- listen(http_session(end(SessionId, _Peer)), end_session(SessionId)).
end_session(SessionId) :-
catch(thread_signal(SessionId, abort), _, true),
atom_concat(SessionId, '.out', Output),
message_queue_destroy(Output),
forall(current_predicate(SessionId:PI),
( memberchk(PI, [read/1, write/1, writeln/1, nl/0])
-> true
; abolish(SessionId:PI)
)
).
The message queue is created when the session begins and as far as I
can see it should be possible to destroy it in this way. Maybe you can
spot the problem?
I will have to return to this on Monday. I will leave the server
running, but I guess it is likely to crash again and then I won't be
here to restart it.
Best,
Torbjörn
--
Torbjörn Lager
Professor of General and Computational Linguistics
Department of Philosophy, Linguistics and Theory of Science
University of Gothenburg
Box 200, SE-405 30 Gothenburg, Sweden
Phone: +46317864962