From: Bruno H. <br...@cl...> - 2017-05-27 20:55:31
|
Hi Vladimir, > And here is the output in gdb: > > [1]> (describe nil) > ... > BEFORE: STREAM: 0xb0000005ac0, ENCODING: 0xc000001a280 > AFTER: STREAM: 0xb0000005ac0, ENCODING: 0xc000001a280 > ... /* VTZ: plenty of the above */ > BEFORE: STREAM: 0xb0000005ac0, ENCODING: 0xc000001a280 > AFTER: STREAM: 0xb0000005ac0, ENCODING: 0xc000001a280 > PERFORM GC: 0 /*VTZ: first GC run */ > BEFORE: STREAM: 0xb0000001780, ENCODING: 0xc000001a280 > > *** - handle_fault error2 ! address = 0xc000001a2b8 not in > [0xc0000000000,0xc00000179f0) ! Oh, you are really getting closer! > The stream object has been moved due to compaction but strm_encoding has > either not moved (unlikely - its heap has shrunk) or has not been updated. I'd also guess that it has not been updated. Is the reclength of the stream appropriate? Has the reclength been changed since the allocate_stream call? Meanwhile, I'm seeing a different crash (in a build-porting64-gcc-debug_gcsafety build with -DOLD_GC), but also related to socket streams: (MULTIPLE-VALUE-BIND (RUN ARGS) (CMD-ARGS) (LET ((SE (SOCKET-SERVER))) (RUN-PROGRAM RUN :ARGUMENTS (APPEND ARGS (LIST "-q" "-q" "-x" (FORMAT NIL "(close (socket:socket-connect ~D))" (SOCKET-SERVER-PORT SE)))) :WAIT NIL :INPUT NIL :OUTPUT NIL) (UNWIND-PROTECT (WITH-OPEN-STREAM (SO (SOCKET-ACCEPT SE)) (LIST (SOCKET-STATUS SO) (WRITE-LINE "foo" SO) (SOCKET-STATUS SO) (CHECK-OS-ERROR (READ-CHAR SO) (:ECONNRESET 104)) (NULL (MEMBER (SOCKET-STATUS SO) '(:EOF :APPEND))) (CHECK-OS-ERROR (WRITE-LINE "bar" SO) (:EPIPE 32)) (NULL (MEMBER (SOCKET-STATUS SO) '(:EOF :APPEND))) (HANDLER-CASE (READ-CHAR SO) (END-OF-FILE (C) (PRINC 'READ-CHAR) (PRINC-ERROR C) 'END-OF-FILE)))) (SOCKET-SERVER-CLOSE SE)))) STACK size: 98238 [0x300000bfe00 0x30000000010] [../src/stream.d:6199] [OS-STREAM-ERROR]: OS-STREAM-ERROR(104): Connection reset by peer Makefile:25: die Regel für Ziel „tests“ scheiterte And gdb says: #0 0x000000000056bb30 in ngci_pointable (obj=...) at ../src/lispbibl.d:7402 #1 0x00000000005c3c23 in stream_isbuffered_low (stream=..., avail=0x7ffcea564a18) at ../src/stream.d:17919 #2 0x00000000005ae115 in handle_set (socket=..., readfds=0x7ffcea564b70, writefds=0x7ffcea564bf0, errorfds=0x7ffcea564c70, need_new_list=0x0, non_empty_buffers_p=0x7ffcea564aed) at ../src/stream.d:14401 #3 0x00000000005af029 in C_socket_status () at ../src/stream.d:14517 |