Re: tar crashing?, chunker hanging with 3.4.5

Orion Poplawski <[email protected]> Tue, 19 Sep 2017 11:17:28 -0600
Newsgroups gmane.comp.archivers.amanda.devel
Message-ID <[email protected]>
On 06/28/2017 11:46 AM, Orion Poplawski wrote:
> Since updating to 3.4 (now 3.4.5) I've had a couple instances where tar seems
> to have died and amanda simply hangs waiting for it.

This is happening pretty regularly - once or twice a week.

At this point I think it is chunker that is getting stuck.  Large amounts of
data is stuck being written to it:

netstat shows:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0 267308 localhost:1024          localhost:45755         ESTABLISHED
tcp   5871739      0 localhost:45755         localhost:1024          ESTABLISHED


chunker 24975 amandabackup    0u     unix 0xffff8801014cbc00         0t0
56399951 socket
chunker 24975 amandabackup    1u     unix 0xffff8801014cbc00         0t0
56399951 socket
chunker 24975 amandabackup    2w      REG             253,56      328897
10517668 /var/lib/amanda/Data/amdump.20170918210023
chunker 24975 amandabackup    3u  a_inode                0,9           0
7003 [eventfd]
chunker 24975 amandabackup    4u      REG             253,41 66304638976
108809
/export/amanda/Data/slot3/holding/20170918210023/csdisk1ib._export_cora3_lindsey.0.tmp
chunker 24975 amandabackup    5u     IPv4           56390190         0t0
TCP localhost:45755->localhost:1024 (ESTABLISHED)
chunker 24975 amandabackup    7r      REG              253,3       68654
1062575 /usr/share/perl5/vendor_perl/JSON.pm
chunker 24975 amandabackup   10w      REG             253,55        8476
51001 /var/log/amanda/server/Data/chunker.20170918233723003.debug


(gdb) thr app all bt

Thread 3 (Thread 0x2ae455d67700 (LWP 25000)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00002ae44ea7289f in g_cond_wait (cond=0x294f120, mutex=0x294f110) at
gthread-posix.c:1395
#2  0x00002ae453bfcbd2 in holding_thread () from /lib64/libamserver-3.4.5.so
#3  0x00002ae44ea54f35 in g_thread_proxy (data=0x2974400) at gthread.c:784
#4  0x00002ae44d0b3e25 in start_thread (arg=0x2ae455d67700) at
pthread_create.c:308
#5  0x00002ae44d3c034d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x2ae455f68700 (LWP 25004)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00002ae44ea7289f in g_cond_wait (cond=0x294f130, mutex=0x294f110) at
gthread-posix.c:1395
#2  0x00002ae44dca3143 in read_to_mem_ring () from /lib64/libamxfer-3.4.5.so
#3  0x00002ae44dca5a7f in worker_thread () from /lib64/libamxfer-3.4.5.so
#4  0x00002ae44ea54f35 in g_thread_proxy (data=0x2974450) at gthread.c:784
#5  0x00002ae44d0b3e25 in start_thread (arg=0x2ae455f68700) at
pthread_create.c:308
#6  0x00002ae44d3c034d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x2ae44bdb9540 (LWP 24975)):
#0  0x00002ae44d3b5a3d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00002ae44ea2e7ac in g_main_context_poll (priority=2147483647, n_fds=2,
fds=0x295bd90,
    timeout=-1, context=0x295aa70) at gmain.c:4226
#2  g_main_context_iterate (context=context@entry=0x295aa70, block=block@entry=1,
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3922
#3  0x00002ae44ea2e8cc in g_main_context_iteration (context=0x295aa70,
may_block=1)
    at gmain.c:3988
#4  0x00002ae44dee9515 in event_loop_wait () from /lib64/libamanda-3.4.5.so
#5  0x00002ae45491a900 in _wrap_run_c ()
   from /usr/lib64/perl5/vendor_perl/auto/Amanda/MainLoop/libMainLoop.so
#6  0x00002ae44c06742f in Perl_pp_entersub () from
/usr/lib64/perl5/CORE/libperl.so
#7  0x00002ae44c05fba6 in Perl_runops_standard () from
/usr/lib64/perl5/CORE/libperl.so
#8  0x00002ae44bffc9a5 in perl_run () from /usr/lib64/perl5/CORE/libperl.so
#9  0x0000000000400d99 in main ()
(gdb) list
76      #else
77
78      /* This is a "normal" system call stub: if there is an error,
79         it returns -1 and sets errno.  */
80
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
82              ret
83      T_PSEUDO_END (SYSCALL_SYMBOL)
84
85      #endif
(gdb) up
#1  0x00002ae44ea2e7ac in g_main_context_poll (priority=2147483647, n_fds=2,
fds=0x295bd90,
    timeout=-1, context=0x295aa70) at gmain.c:4226
4226          if ((*poll_func) (fds, n_fds, timeout) < 0 && errno != EINTR)
(gdb) print fds
$1 = (GPollFD *) 0x295bd90
(gdb) print *fds
$2 = {fd = 0, events = 1, revents = 0}
(gdb) print timeout
$3 = -1
(gdb) print n_fds
$4 = 2
(gdb) print fds[1]
$5 = {fd = 3, events = 1, revents = 0}


So it looks like poll() is waiting for fd 0 and fd 3, but not fd 5 which is
where the compressed data is coming from.

#4  0x00002ae44dee9515 in event_loop_wait (wait_eh=0x0, nonblock=0,
return_when_empty=0)
    at event.c:427
427             g_main_context_iteration(NULL, !nonblock);
(gdb) list
422                 break;
423
424             /* Do an iteration */
425             /* Relese the lock before running an iteration */
426             g_static_mutex_unlock(&event_mutex);
427             g_main_context_iteration(NULL, !nonblock);
428             g_static_mutex_lock(&event_mutex);
429
430             /* stop if we're told to */
431             if (!return_when_empty && stop)


-- 
Orion Poplawski
Technical Manager                          720-772-5637
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       [email protected]
Boulder, CO 80301                   http://www.nwra.com
amdump.20170918210023.gz (application/gzip, 31.6 KB) - not displayed
chunker.20170918233723003.debug.gz (application/gzip, 2.1 KB) - not displayed