Hi Rodrigo,

Rodrigo Arias <rodar...@gmail.com> wrote:

> Place a breakpoint here:
> 
> https://github.com/dillo-browser/dillo/blob/master/src/IO/IO.c#L189
> 
> Likely with "b IO.c:189", then "c" and "bt".
> 
> That backtrace along with the stderr lines:
> 
> >a_Dpi_ccc   : OpSend  [2F] Info=0xebed4db4980 Flags=0
> >a_Capi_ccc  : OpSend  [2F] Info=0xebee90cbd00 Flags=0  
> 
> Can tell what is the state of the CCC at the moment that error
> happens.
> 
> The backtrace you attach happens later, so we already miss the point 
> where the problem occurs.

I built and installed a clean Dillo with your file dpi patch. 

Here is that backtrace, which is from right before this:
"WRITE Failed with -1: Broken pipe"

[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
a_IO_ccc    : OpSend  [2F] Info=0xb5c0c2eba40 Flags=0
a_Dpi_ccc   : OpSend  [2F] Info=0xb5c0c30d000 Flags=0
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
a_Capi_ccc  : OpSend  [2F] Info=0xb5c0c30de00 Flags=0
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48be80, flags=5 state=12
a_IO_ccc    : OpSend  [2F] Info=0xb5c0c2eba40 Flags=0
a_Dpi_ccc   : OpSend  [2F] Info=0xb5c0c30d000 Flags=0
a_Capi_ccc  : OpSend  [2F] Info=0xb5c0c30de00 Flags=0
a_IO_ccc    : OpEnd   [2F] Info=0xb5c0c2eba40 Flags=0
a_Dpi_ccc   : OpEnd   [2F] Info=0xb5c0c30d000 Flags=0
a_Capi_ccc  : OpEnd   [2F] Info=0xb5c0c30de00 Flags=0
HTTP warning: Content-Length (937694) does NOT match message body (921310) for 
file:/tmp/dillo-doublefree.html
a_Capi_ccc  : OpEnd   [1B] Info=0xb5c0c30d3c0 Flags=0
a_Dpi_ccc   : OpEnd   [1B] Info=0xb5c0c30d0c0 Flags=0
a_IO_ccc    : OpEnd   [1B] Info=0xb5c4883b140 Flags=0

Program received signal SIGPIPE, Broken pipe.
_thread_sys_write () at /tmp/-:2
2       /tmp/-: No such file or directory.
(gdb) bt
#0  _thread_sys_write () at /tmp/-:2
#1  0x0ea252bb530f97da in ?? ()
#2  0x00000b5c41b50c52 in _libc_write_cancel (fd=7, buf=0xb5be6ed0000, 
nbytes=72966)
    at /usr/src/lib/libc/sys/w_write.c:27
#3  0x00000b597324b065 in IO_write (io=0xb5c48870ba0) at IO.c:230
#4  IO_callback (io=0xb5c48870ba0) at IO.c:275
#5  0x00000b597324adc9 in IO_fd_write_cb (fd=7, data=<optimized out>) at 
IO.c:317
#6  0x00000b5c1e858e88 in fl_wait(double) () from /usr/local/lib/libfltk.so.8.0
#7  0x00000b5c1e7e8a6e in Fl::wait(double) () from /usr/local/lib/libfltk.so.8.0
#8  0x00000b5c1e7e8c4d in Fl::run() () from /usr/local/lib/libfltk.so.8.0
#9  0x00000b59731f23b5 in main ()
(gdb) c
Continuing.
WRITE Failed with -1: Broken pipe
a_IO_ccc    : OpAbort [1F] Info=0xb5c4886d440 Flags=0
a_Dpi_ccc   : OpAbort [1F] Info=0xb5c4886d180 Flags=0
a_Capi_ccc  : OpAbort [1F] Info=0xb5c4883ba00 Flags=0


Here is another: 

a_Capi_ccc  : OpStart [2B] Info=0xb5c0c2eba80 Flags=0
a_Dpi_ccc   : OpStart [2B] Info=0xb5c48368640 Flags=0
a_IO_ccc    : OpStart [2B] Info=0xb5c4886d400 Flags=0
a_Capi_ccc  : OpStart [1B] Info=0xb5c4883b0c0 Flags=0
a_Dpi_ccc   : OpStart [1B] Info=0xb5bc9415100 Flags=0
a_IO_ccc    : OpStart [1B] Info=0xb5c483686c0 Flags=0
a_IO_ccc    : OpSend  [1B] Info=0xb5c483686c0 Flags=0
a_Capi_ccc  : OpSend  [1F] Info=0xb5c4883b0c0 Flags=0
a_Capi_ccc  : OpSend  [2B] Info=0xb5c0c2eba80 Flags=0
a_Dpi_ccc   : OpSend  [2B] Info=0xb5c48368640 Flags=0
a_IO_ccc    : OpSend  [2B] Info=0xb5c4886d400 Flags=0
a_Capi_ccc  : OpSend  [1F] Info=0xb5c4883b0c0 Flags=0
a_Capi_ccc  : OpSend  [1B] Info=0xb5c4883b0c0 Flags=0
a_Dpi_ccc   : OpSend  [1B] Info=0xb5bc9415100 Flags=0
a_IO_ccc    : OpSend  [1B] Info=0xb5c483686c0 Flags=0
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
a_IO_ccc    : OpSend  [2F] Info=0xb5c4886d940 Flags=0
a_Dpi_ccc   : OpSend  [2F] Info=0xb5c4886d9c0 Flags=0
a_Capi_ccc  : OpSend  [2F] Info=0xb5c0c30d980 Flags=0
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
a_IO_ccc    : OpSend  [2F] Info=0xb5c4886d940 Flags=0
a_Dpi_ccc   : OpSend  [2F] Info=0xb5c4886d9c0 Flags=0
a_Capi_ccc  : OpSend  [2F] Info=0xb5c0c30d980 Flags=0
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12

Breakpoint 1, IO_read (io=0xb5c08fc3640) at IO.c:189
189                    MSG("READ Failed with %d: %s\n", (int)St, 
strerror(errno));
(gdb) [file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
[file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12
bt
#0  IO_read (io=0xb5c08fc3640) at IO.c:189
#1  IO_callback (io=0xb5c08fc3640) at IO.c:273
#2  0x00000b597324acc9 in IO_fd_read_cb (fd=7, data=0x51) at IO.c:294
#3  0x00000b5c1e858e88 in fl_wait(double) () from /usr/local/lib/libfltk.so.8.0
#4  0x00000b5c1e7e8a6e in Fl::wait(double) () from /usr/local/lib/libfltk.so.8.0
#5  0x00000b5c1e7e8c4d in Fl::run() () from /usr/local/lib/libfltk.so.8.0
#6  0x00000b59731f23b5 in main ()
(gdb) [file dpi]: File_serve_client 0x4b2ed48eb80, flags=5 state=12

(gdb) c
Continuing.
READ Failed with -1: Connection reset by peer
a_IO_ccc    : OpAbort [2F] Info=0xb5c4886d180 Flags=0
a_Dpi_ccc   : OpAbort [2F] Info=0xb5c0c2eb880 Flags=0
** WARNING **: Unused CCC

Program received signal SIGPIPE, Broken pipe.
_thread_sys_write () at /tmp/-:2
2       /tmp/-: No such file or directory.


> This line:
> 
> > READ Failed with -1: Connection reset by peer  
> 
> Is complaining that either a read() call or a Tls_read() failed. I
> will assume it is the read() as there shouldn't be any https traffic
> in your local test. It is communicating with the file DPI via a
> socket.

Thats interesting, in my previous testing a few days ago I noticed
some messages about 'a_Tls_connection' in the debugger, which made no
sense since I'm working with a local file: 

(gdb) break IO_write
Breakpoint 1 at 0x9c0c8fc2fff: file IO.c, line 223.
(gdb) c
Continuing.
WRITE Failed with -1: Broken pipe
a_IO_ccc    : OpAbort [1F] Info=0x9c335b28580 Flags=0
a_Dpi_ccc   : OpAbort [1F] Info=0x9c335b00c40 Flags=0
a_Capi_ccc  : OpAbort [1F] Info=0x9c335b00c00 Flags=0

Breakpoint 1, IO_write (io=0x9c38396eb40) at IO.c:223
223        void *conn = a_Tls_connection(io->FD);


Regards,
Alex
_______________________________________________
Dillo-dev mailing list -- dillo-dev@mailman3.com
To unsubscribe send an email to dillo-dev-le...@mailman3.com

Reply via email to