[pkg-go] Bug#963781: mtail: Gets caught in a tight loop and doesn't respond

Micah Anderson micah at debian.org
Fri Jun 26 21:34:48 BST 2020


Package: mtail
Version: 3.0.0~rc19-2
Severity: important

Hi,

It seems the version of mtail that is in buster works for a short period of
time, but then gets into a strange state where it doesn't respond anymore. If
you attempt to curl the port it is listening on it will simply hang and never
respond.

I've run some straces of the process, but they just look like it is caught in a
tight loop, regardless of the mtail programs loaded (I used a simple counter to
eliminate problems with the programs), it just looks like this over and over:

16164 futex(0xbc7760, FUTEX_WAKE_PRIVATE, 1) = 1
16158 <... restart_syscall resumed> )   = 0
16164 read(10,  <unfinished ...>
16158 futex(0xbc4360, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
16164 <... read resumed> 0xc0001229e8, 4096) = -1 EAGAIN (Resource temporarily unavailable)
16164 futex(0xbc4360, FUTEX_WAKE_PRIVATE, 1) = 1
16158 <... futex resumed> )             = 0
16164 futex(0xbc7760, FUTEX_WAIT_PRIVATE, 0, {tv_sec=4, tv_nsec=999609690} <unfinished ...>
16158 epoll_pwait(5, [], 128, 0, NULL, 0) = 0
16158 epoll_pwait(5,  <unfinished ...>
16161 <... sched_yield resumed> )       = 0
16161 futex(0xbc37b0, FUTEX_WAKE_PRIVATE, 1) = 0
16161 nanosleep({tv_sec=0, tv_nsec=20000}, NULL) = 0
16161 futex(0xbc3890, FUTEX_WAIT_PRIVATE, 0, {tv_sec=60, tv_nsec=0} <unfinished ...>
16158 <... epoll_pwait resumed> [{EPOLLIN, {u32=437136944, u64=139848867262000}}], 128, -1, NULL, 0) = 1
16158 futex(0xbc3890, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
16161 <... futex resumed> )             = 0
16158 <... futex resumed> )             = 1
16161 sched_yield( <unfinished ...>
16158 futex(0xbc7760, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
16164 <... futex resumed> )             = 0
16158 <... futex resumed> )             = 1
16164 futex(0xc000041640, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
16158 read(10, 0xc0001229e8, 4096)      = -1 EAGAIN (Resource temporarily unavailable)
16158 futex(0xc000041640, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
16164 <... futex resumed> )             = 0
16158 <... futex resumed> )             = 1
16164 epoll_pwait(5,  <unfinished ...>
16158 futex(0xbc7760, FUTEX_WAIT_PRIVATE, 0, {tv_sec=4, tv_nsec=999784712} <unfinished ...>
16164 <... epoll_pwait resumed> [], 128, 0, NULL, 0) = 0
16164 epoll_pwait(5,  <unfinished ...>
16161 <... sched_yield resumed> )       = 0
16161 futex(0xbc37b0, FUTEX_WAKE_PRIVATE, 1) = 0
16161 nanosleep({tv_sec=0, tv_nsec=20000}, NULL) = 0
16161 futex(0xbc3890, FUTEX_WAIT_PRIVATE, 0, {tv_sec=60, tv_nsec=0} <unfinished ...>
16164 <... epoll_pwait resumed> [{EPOLLIN, {u32=437136944, u64=139848867262000}}], 128, -1, NULL, 0) = 1
16164 futex(0xbc3890, FUTEX_WAKE_PRIVATE, 1) = 1
16161 <... futex resumed> )             = 0
16164 read(10,  <unfinished ...>
16161 sched_yield( <unfinished ...>
16164 futex(0xbc7760, FUTEX_WAKE_PRIVATE, 1) = 1
16158 <... futex resumed> )             = 0
16164 read(10,  <unfinished ...>
16158 futex(0xbc4360, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
16164 <... read resumed> 0xc0001229e8, 4096) = -1 EAGAIN (Resource temporarily unavailable)
16164 futex(0xbc4360, FUTEX_WAKE_PRIVATE, 1) = 1
16158 <... futex resumed> )             = 0
16164 futex(0xbc7760, FUTEX_WAIT_PRIVATE, 0, {tv_sec=4, tv_nsec=999800747} <unfinished ...>
16158 epoll_pwait(5, [], 128, 0, NULL, 0) = 0
16158 epoll_pwait(5,  <unfinished ...>
16161 <... sched_yield resumed> )       = 0
16161 futex(0xbc37b0, FUTEX_WAKE_PRIVATE, 1) = 0
16161 nanosleep({tv_sec=0, tv_nsec=20000}, NULL) = 0
16161 futex(0xbc3890, FUTEX_WAIT_PRIVATE, 0, {tv_sec=60, tv_nsec=0} <unfinished ...>
16158 <... epoll_pwait resumed> [{EPOLLIN, {u32=437136944, u64=139848867262000}}], 128, -1, NULL, 0) = 1
16158 futex(0xbc3890, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
16161 <... futex resumed> )             = 0
16158 <... futex resumed> )             = 1
16161 sched_yield( <unfinished ...>

The stretch-backports and bullseye versions of mtail seem to work fine, but this
version in buster isn't something that we can use in production because it falls
over like this fairly quickly and then we cannot seem to get it to work again.

-- System Information:
Debian Release: 10.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-9-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages mtail depends on:
ii  adduser              3.118
pn  daemon               <none>
ii  init-system-helpers  1.56+nmu1
ii  libc6                2.28-10
ii  tzdata               2020a-0+deb10u1

mtail recommends no packages.

mtail suggests no packages.



More information about the Pkg-go-maintainers mailing list