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

Reply via email to