Hi,

On 01/09/2015 05:38 AM, Ken Shin wrote:
> Hi.
> Can anybody figure out the possible reason why i caused the next error?
> 

Any chance you are reusing the write request before the callback is called?

Can you print the req structure?

> The program crash at:
> 
> Program received signal SIGSEGV, Segmentation fault.
> uv__write (stream=0x675898) at src/unix/stream.c:828
> 828           size_t len = buf->len;
> 
> 
> backtrace output:
> 
> (gdb) bt
> #0  uv__write (stream=0x675898) at src/unix/stream.c:828
> #1  0x000000000042b6e6 in uv__stream_io (loop=<value optimized out>,
> w=0x675920, events=<value optimized out>) at src/unix/stream.c:1229
> #2  0x00000000004262e3 in uv__run_pending (loop=0x642a20,
> mode=UV_RUN_DEFAULT) at src/unix/core.c:702
> #3  uv_run (loop=0x642a20, mode=UV_RUN_DEFAULT) at src/unix/core.c:315
> #4  0x000000000040a04b in server_run () at server.c:1273
> #5  0x0000000000404245 in main (argc=1, argv=0x7fffffffe448) at nproxy.c:174
> 
> (gdb) f 0
> #0  uv__write (stream=0x675898) at src/unix/stream.c:828
> 828           size_t len = buf->len;
> 
> (gdb) p buf
> $8 = (uv_buf_t *) 0x10
> (gdb) p buf->len
> Cannot access memory at address 0x18
> 
> (gdb) p *stream
> $10 = {data = 0x675880, loop = 0x642a20, type = UV_TCP, close_cb = 0,
> handle_queue = {0x6759b0, 0x6664f0}, reserved = {0xe8c93a4155c08e2a,
> 0x9e48a03bc96b2226, 0x286b377c4174719a, 0x30b8a716f31422af},
> next_closing = 0x0, flags = 24932, 
>   write_queue_size = 1380, alloc_cb = 0x4079ae <server_on_alloc_cb>,
> read_cb = 0x409603 <server_on_read_done>, connect_req = 0x0,
> shutdown_req = 0x0, io_watcher = {cb = 0x42b570 <uv__stream_io>,
> pending_queue = {0x675928, 0x675928}, watcher_queue = {
>       0x675938, 0x675938}, pevents = 5, events = 5, fd = 40},
> write_queue = {0x675a80, 0x675a80}, write_completed_queue = {0x675968,
> 0x675968}, connection_cb = 0, delayed_error = 0, accepted_fd = -1,
> queued_fds = 0x0}
> 
> 
> And the follow is part of my associated uv_write code:
> 
> ```
> uv_buf_t buf;
> 
> buf.base = (char *)data;
> buf.len = len;
> 
> r = uv_write(&conn->write_req, (uv_stream_t *)&conn->handle, &buf, 1 ,
> server_on_write_done);
> ```
> 
> Thanks
> 
> 
> kenshin
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "libuv" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected]
> <mailto:[email protected]>.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>.
> Visit this group at http://groups.google.com/group/libuv.
> For more options, visit https://groups.google.com/d/optout.


-- 
Saúl Ibarra Corretgé
bettercallsaghul.com


-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to