segfault after backup->master recovery
Stuart Henderson
stu at spacehopper.org
Fri Apr 11 03:29:02 CEST 2008
this is from my server (not router) running 1.1.2 plus the "Fixed packet
stream destroy crashes when closing connections" diff from git, on openbsd
sparc64. Starts connected to router and backup router, then the router
shuts down to load new code. Backup router takes over, main router comes
back and crashes at reconnect:
[Fri Apr 11 01:52:25 2008] [Info] Disconnected by xxx.xx.28.2 (xxx-backup-router): (0) Server is shutting down
[Fri Apr 11 01:52:25 2008] [Info] New primary router is backup router xxx.xx.187.146
[Fri Apr 11 01:52:27 2008] [Info] Closing connection xxx-backup-router:706 []
[...clients connect...]
[Fri Apr 11 01:52:48 2008] [Info] Starting backup resuming protocol
[Fri Apr 11 01:52:48 2008] [Info] Connecting to the router xxx.xx.28.2 on port 706
<boom>
Core was generated by `silcd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/libiconv.so.4.0...done.
Loaded symbols for /usr/local/lib/libiconv.so.4.0
Reading symbols from /usr/lib/libpthread.so.10.0...done.
Loaded symbols for /usr/lib/libpthread.so.10.0
Reading symbols from /usr/lib/libc.so.44.0...done.
Loaded symbols for /usr/lib/libc.so.44.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
#0 0x0000000000178648 in silc_packet_send_raw (stream=0x4c91dc00,
type=12 '\f', flags=0 '\0', src_id_type=0, src_id=0x0, src_id_len=0,
dst_id_type=0, dst_id=0x0, dst_id_len=0, data=0x447ade00 "", data_len=34,
cipher=0x0, hmac=0x0) at silcpacket.c:1611
1611 for (i = 0; i < padlen; i++) tmppad[i] =
(gdb) bt full
#0 0x0000000000178648 in silc_packet_send_raw (stream=0x4c91dc00,
type=12 '\f', flags=0 '\0', src_id_type=0, src_id=0x0, src_id_len=0,
dst_id_type=0, dst_id=0x0, dst_id_len=0, data=0x447ade00 "", data_len=34,
cipher=0x0, hmac=0x0) at silcpacket.c:1611
tmppad = "\000\000\000\000F/x\000\000\000\000\000L6[\000\000\000\000\000\000\207e\020\000\000\000\000\0003« \000\000\000\000\000\000\000\001\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\002\000\000\000\000\0003&xÿÿÿÿÿÿ\032á·\016+EU¡\207\000\000\000\000\000\207e\020\000\000\000\000\0003« \000\000\000\000\000\000\000\001\000\000\000\000ÿÿñðGþ¶n\000\000\001z\000\000\000\000Bf À"
iv = "\000\000\000\000\000\000\000\035\000\000\000\000I&¹à\000\000\000\000\0003\000Ý\000\000\000\000\000\000\000\001"
psn = "\000\000\000"
block_len = 0
i = 0
enclen = 64
truelen = 44
padlen = 20
ivlen = 0
psnlen = 0
ctr = 0 '\0'
packet = {head = 0x1d "",
data = 0x4926b9e0 "Sending COMMAND REPLY packet", tail = 0x3300dd "",
end = 0x1 ""}
#1 0x0000000000178c58 in silc_packet_send (stream=0x4c91dc00, type=12 '\f',
flags=0 '\0', data=0x447ade00 "", data_len=34) at silcpacket.c:1690
ret = 112 'p'
#2 0x000000000012d928 in silc_server_packet_send (server=0x434b2000,
sock=0x4c91dc00, type=12 '\f', flags=0 '\0', data=0x447ade00 "",
data_len=34) at packet_send.c:49
idata = 0x0
#3 0x0000000000132634 in silc_server_send_command_reply (server=0x434b2000,
sock=0x4c91dc00, command=26 '\032', status=0 '\0', error=0 '\0',
ident=3974, argc=2) at packet_send.c:1497
packet = 0x4926ba40
ap = 0xffffffffffff2658
#4 0x0000000000154b24 in silc_server_command_getkey (context=0x4266bb80,
context2=0x4266b900) at command.c:5146
cmd = 0x4266bb80
server = 0x434b2000
client = 0x4f44d900
server_entry = 0x4926b9e0
client_id = {ip = {data = "Ã_»6", '\0' <repeats 11 times>,
data_len = 4 '\004'}, rnd = 47 '/', hash = "¨¡ïíÒ\211Ò'bÊ!"}
server_id = {ip = {data = '\0' <repeats 15 times>, data_len = 255 'ÿ'},
port = 65535, rnd = 65535}
idp = 0x4a3c94f0
ident = 3974
tmp = (unsigned char *) 0x462f8120 ""
tmp_len = 20
pk = 0x0
id_type = 2
public_key = 0x0
#5 0x0000000000144860 in silc_server_command_pending_timeout (
schedule=0x4c91cd00, app_context=0x434b2000, type=SILC_TASK_EXPIRE, fd=0,
context=0x4266bf40) at command.c:367
server = 0x434b2000
reply = (SilcServerCommandPending *) 0x4266bf40
cmdr = 0x4266b900
tmpreply = 0x4926b9e0
i = 0
#6 0x0000000000198e48 in silc_schedule_dispatch_timeout (schedule=0x4c91cd00,
dispatch_all=0 '\0') at silcschedule.c:114
t = 0x4266bc80
task = 0x4266bc80
curtime = {tv_sec = 1207875182, tv_usec = 376803}
count = 0
#7 0x0000000000199594 in silc_schedule_select_timeout (schedule=0x4c91cd00)
at silcschedule.c:159
t = 0x4266bc80
task = 0x4266bc80
curtime = {tv_sec = 1207875182, tv_usec = 376614}
dispatch = 1 '\001'
#8 0x0000000000199110 in silc_schedule_iterate (schedule=0x4c91cd00,
timeout_usecs=-1) at silcschedule.c:424
timeout = {tv_sec = -7023322803194003151, tv_usec = 1114022784}
ret = 1
#9 0x000000000019667c in silc_schedule (schedule=0x4c91cd00)
at silcschedule.c:499
No locals.
#10 0x000000000011d670 in silc_server_run (server=0x434b2000) at server.c:1190
No locals.
#11 0x000000000010dc9c in main (argc=3, argv=0xffffffffffff3318) at silcd.c:753
ret = 1
opt = -1
option_index = 1060152
foreground = 1 '\001'
opt_create_keypair = 0 '\0'
silcd_config_file = 0x43622020 "/etc/silcd/silcd.conf"
sa = {__sigaction_u = {__sa_handler = 0x1, __sa_sigaction = 0x1},
sa_mask = 0, sa_flags = 0}
More information about the silc-devel
mailing list