It looks like this node aborted while we were sending a QRT update. I
think that a check for "NODE_IS_CONNECTED(n)" in node_send_qrt() or
node_send_patch_step() might be ok. Alternatively the
"NODE_IS_CONNECTED(n)" could be added to the
"if (NODE_MQUEUE_PERCENT_USED(n) > QRT_MIN_QUEUE_FILL)"
in qrt_update_send_next()... but this seems to make the most sense to
me.
===================================================================
--- nodes.c (revision 13204)
+++ nodes.c (working copy)
@@ -3461,7 +3461,7 @@
*/
if (
- NODE_IS_ULTRA(n) &&
+ NODE_IS_ULTRA(n) && NODE_IS_CONNECTED(n) &&
(current_peermode == NODE_P_LEAF ||
(current_peermode == NODE_P_ULTRA && (n->attrs &
NODE_A_UP_QRP)))
) {
but the function is called "node_is_now_connected()", so maybe there
is a deeper problems?
Fwiw,
Bill Pringlemeir.
(gdb) bt
#0 0x4046970d in sigsuspend () from /lib/libc.so.6
#1 0x081214e5 in crash_handler (signo=6) at crash.c:131
#2 0x404693a8 in killpg () from /lib/libc.so.6
#3 0x4046a80b in abort () from /lib/libc.so.6
#4 0x08122230 in assertion_failure (data=Variable "data" is not available.
) at fast_assert.c:97
#5 0x080d4e9b in qrt_update_send_next (handle=0x40d5d4d0) at qrp.c:2725
#6 0x080b20ec in node_send_patch_step (n=0x41938508) at nodes.c:7782
#7 0x080b2319 in node_send_qrt (n=0x41938508, query_table=0x41443a14)
at nodes.c:7766
#8 0x080b9f59 in node_is_now_connected (n=0x41938508) at nodes.c:3479
#9 0x080bcfb9 in call_node_process_handshake_ack (obj=0x41938508,
header=0x410e080c) at nodes.c:4522
#10 0x080a6a9b in io_header_parse (ih=0x40fb124c) at ioheader.c:330
#11 0x0812b70d in dispatch_poll (unused_source=0x4001a000,
unused_cond=G_IO_IN, udata=0x82391a0) at inputevt.c:722
#12 0x400b79be in g_io_unix_dispatch (source=Variable "source" is not available.
) at giounix.c:162
#13 0x4008eb61 in IA__g_main_context_dispatch (context=Variable "context" is
not available.
) at gmain.c:2043
#14 0x40091c86 in g_main_context_iterate (context=Variable "context" is not
available.
) at gmain.c:2675
#15 0x40091ff7 in IA__g_main_loop_run (loop=Variable "loop" is not available.
) at gmain.c:2879
#16 0x0804df04 in main (argc=Cannot access memory at address 0x8
) at gui.h:63
(gdb) up 5
#5 0x080d4e9b in qrt_update_send_next (handle=0x40d5d4d0) at qrp.c:2725
(gdb) p n
$1 = (struct gnutella_node *) 0x41938508
(gdb) p *n
$2 = {magic = NODE_MAGIC, peermode = NODE_P_ULTRA,
start_peermode = NODE_P_ULTRA,
error_str = "Write failed: Connection reset by peer", '\0' <repeats 217
times>, socket = 0x0, proto_major = 0 '\0', proto_minor = 6 '\006',
qrp_major = 0 '\0', qrp_minor = 1 '\001', uqrp_major = 0 '\0',
uqrp_minor = 1 '\001', vendor = 0x41261fdc "LimeWire/4.9.37", country = 669,
vcode = {be32 = 0}, io_opaque = 0x0, header = '\0' <repeats 22 times>,
extvec = {{ext_name = 0x0, ext_token = EXT_T_UNKNOWN,
ext_type = EXT_UNKNOWN, opaque = 0x0} <repeats 32 times>}, extcount = 0,
size = 0, header_flags = 0, data = 0x0, pos = 0, status = GTA_NODE_REMOVING,
flags = 1045, attrs = 790850, hops_flow = 255 'ÿ', max_ttl = 3 '\003',
degree = 32, qseen = 0x0, qrelayed = 0x0, qrelayed_old = 0x0,
qrelayed_created = 0, sent = 0, received = 0, tx_dropped = 0,
rx_dropped = 0, n_bad = 0, n_dups = 0, n_hard_ttl = 0, n_weird = 0,
n_hostile = 0, n_spam = 0, n_evil = 0, allocated = 0, have_header = 0,
last_update = 1175085632, last_tx = 1175085631, last_rx = 1175085631,
connect_date = 1175085632, tx_flowc_date = 0, rxfc = 0x0, shutdown_date = 0,
up_date = 0, leaf_flowc_start = 0, shutdown_delay = 0,
remove_msg = 0x41938514 "Write failed: Connection reset by peer", addr = {
net = 4, addr = {ipv6 = "G[ÇÔ¸·\"Axsá¿z\r\022\b", ipv4 = 3569834823,
u8 = "G[ÇÔ¸·\"Axsá¿z\r\022\b", u16 = {23367, 54471, 47032, 16674, 29560,
49121, 3450, 2066}, u32 = {3569834823, 1092794296, 3219223416,
135400826}}}, port = 33711, proxy_addr = {net = 0, addr = {
ipv6 = '\0' <repeats 15 times>, ipv4 = 0, u8 = '\0' <repeats 15 times>,
u16 = {0, 0, 0, 0, 0, 0, 0, 0}, u32 = {0, 0, 0, 0}}}, proxy_port = 0,
outq = 0x41ac2e70, searchq = 0x0, rx = 0x42b5b3f0, routing_data = 0x0,
sent_query_table = 0x41443a14, recv_query_table = 0x0,
qrt_update = 0x40d5d4d0, qrt_receive = 0x0, qrt_info = 0x0,
alive_pings = 0x4195ad00, last_alive_ping = 0, alive_period = 20, hello = {
pos = 0, len = 0, size = 0, ptr = 0x0}, tcp_rtt = 0, udp_rtt = 0,
tsync_ev = 0x0, id = 0x420424c4, ping_throttle = 3, ping_accept = 0,
next_ping = 0, ping_guid = '\0' <repeats 15 times>,
pong_needed = "\000\000\000\000\000\000", pong_missing = 0 '\0',
gnet_addr = {net = 4, addr = {ipv6 = "G[ÇÔß\003\001A\f\b\016Aøná¿",
ipv4 = 3569834823, u8 = "G[ÇÔß\003\001A\f\b\016Aøná¿", u16 = {23367,
54471, 991, 16641, 2060, 16654, 28408, 49121}, u32 = {3569834823,
1090585567, 1091438604, 3219222264}}}, gnet_port = 32776,
gnet_files_count = 0, gnet_kbytes_count = 0, gnet_pong_addr = {net = 4,
addr = {ipv6 = "G[ÇÔß\003\001A\f\b\016Aøná¿", ipv4 = 3569834823,
u8 = "G[ÇÔß\003\001A\f\b\016Aøná¿", u16 = {23367, 54471, 991, 16641,
2060, 16654, 28408, 49121}, u32 = {3569834823, 1090585567, 1091438604,
3219222264}}}, gnet_qhit_addr = {net = 0, addr = {
ipv6 = '\0' <repeats 15 times>, ipv4 = 0, u8 = '\0' <repeats 15 times>,
u16 = {0, 0, 0, 0, 0, 0, 0, 0}, u32 = {0, 0, 0, 0}}}, guid = 0x0,
n_ping_throttle = 0, n_ping_accepted = 0, n_ping_special = 0,
n_ping_sent = 0, n_pong_received = 0, n_pong_sent = 0, tx_given = 0,
tx_deflated = 0, tx_written = 0, rx_given = 0, rx_inflated = 0, rx_read = 0,
qrp_queries = 0, qrp_matches = 0, rx_queries = 0, tx_queries = 0,
rx_qhits = 0, tx_qhits = 0, hsep = 0x0}
(gdb) up
#6 0x080b20ec in node_send_patch_step (n=0x41938508) at nodes.c:7782
(gdb) p n
$3 = (struct gnutella_node *) 0x41938508
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Gtk-gnutella-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel