Kernel core dump analysis:
crash> set
PID: 23697
COMMAND: "kworker/u82:0"
TASK: 88370bcfaa80 [THREAD_INFO: 883708104000]
CPU: 33
STATE: TASK_RUNNING (PANIC)
crash> bt
PID: 23697 TASK: 88370bcfaa80 CPU: 33 COMMAND: "kworker/u82:0"
[...]
#3 [883708107b78] __bad_area_nosemaphore at 8106a889
#4 [883708107bc0] bad_area_nosemaphore at 8106a9a3
#5 [883708107bd0] __do_page_fault at 8106aff2
#6 [883708107c30] trace_do_page_fault at 8106b3f7
#7 [883708107c60] do_async_page_fault at 81063e19
#8 [883708107c70] async_page_fault at 81822958
#9 [883708107cf8] n_tty_receive_buf_common at 814e676a
#10 [883708107dc8] n_tty_receive_buf2 at 814e71f4
#11 [883708107dd8] flush_to_ldisc at 814e9be5
#12 [883708107e20] process_one_work at 8109b0b6
#13 [883708107e68] worker_thread at 8109ba9a
[...]
crash> bt -f
[...]
#9 [883708107cf8] n_tty_receive_buf_common at 814e676a
[...]
883708107d80: 881bc78e4c20 0000000000000000
883708107d90: 0000000000000014 881bc78e4c00
883708107da0: 881bc78e7800 881cba173d80
883708107db0: 883706cae828 883706cae808
883708107dc0: 883708107dd0 814e71f4
#10 [883708107dc8] n_tty_receive_buf2 at 814e71f4
[...]
>From the stack frame, we can infer that "struct tty_struct" is at
0x881bc78e7800 :
crash> tty_struct -x 881bc78e7800 | grep name
name = "pts3\000...
Also, from the stack frame we see a value 0x14 there, which represents
the count value in the function:
static int n_tty_receive_buf2(struct tty_struct *tty, const unsigned char *cp,
char *fp, int count)
{
return n_tty_receive_buf_common(tty, cp, fp, count, 1);
}
Since 0x14 mean 20 in decimal, I'd expect a 20 characters string,
which turns to be true ( char *cp is at 881bc78e4c20):
crash> rd -a 881bc78e4c20
881bc78e4c20: source /root/openrc
Something is issuing the command "source /root/openrc" to PTS/3.
Checking the "files" command, we get:
crash> foreach files -R dev/pts/3
PID: 2288 TASK: 883786e2ea40 CPU: 29 COMMAND: "sshd"
ROOT: / CWD: /
FD FILE DENTRY INODE TYPE PATH
9 8839b4ce9a00 881a0ba4da40 8838f71fcf88 CHR /dev/pts/3
And checking ssh processes:
crash> ps|grep ssh
2236 7180 18 8836f9dd2a80 IN 0.0 149480 8636 sshd
2275 2274 37 883706e01540 IN 0.0 37836 4940 ssh
2288 2236 29 883786e2ea40 UN 0.0 149480 1372 sshd
7180 1 17 881cb99b6a40 IN 0.0 57204 5240 sshd
14319 7180 2 8836dfd91540 IN 0.0 149480 8460 sshd
All except 2288 are scheduled after a select() syscall.
PID 2288 looks interesting:
crash> bt 2288
PID: 2288 TASK: 883786e2ea40 CPU: 29 COMMAND: "sshd"
[...]
#4 [88373e0bfb48] down_write at 8181e42d
#5 [88373e0bfb60] tty_unthrottle at 814e75be
#6 [88373e0bfb80] n_tty_open at 814e4fb9
#7 [88373e0bfba0] tty_ldisc_open at 814e8bd5
#8 [88373e0bfbc0] tty_ldisc_reinit at 814e9112
#9 [88373e0bfbf0] tty_reopen at 814df50a
#10 [88373e0bfc08] tty_open at 814e318e
#11 [88373e0bfc70] chrdev_open at 8120d5c4
#12 [88373e0bfcb0] do_dentry_open at 81206a6a
#13 [88373e0bfcf8] vfs_open at 81207b35
#14 [88373e0bfd20] path_openat at 81215fed
[...]
This is the one that seems to be racing with the flush_work from CPU 33
that led to the crash.
Since we have the tty_reopen() in the call trace, it's clear it's re-opening
an existing tty after it was closed, but the flush work was running and
the crash happened.
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1791758
Title:
ldisc crash on reopened tty
Status in linux package in Ubuntu:
In Progress
Status in linux source package in Trusty:
Confirmed
Status in linux source package in Xenial:
Confirmed
Status in linux source package in Bionic:
Confirmed
Bug description:
[Impact]
The following Oops was discovered by user:
[684766.666639] BUG: unable to handle kernel paging request at
0000000000002268
[684766.667642] IP: [<ffffffff814e2a5a>] n_tty_receive_buf_common+0x6a/0xae0
[684766.668487] PGD 80000019574fe067 PUD 19574ff067 PMD 0
[684766.669194] Oops: 0000 [#1] SMP
[684766.669687] Modules linked in: xt_nat dccp_diag dccp tcp_diag udp_diag
inet_diag unix_diag xt_connmark ipt_REJECT nf_reject_ipv4 nf_conntrack_netlink
nfnetlink veth ip6table_filter ip6_tables xt_tcpmss xt_multiport xt_conntrack
iptable_filter xt_CHECKSUM xt_tcpudp iptable_mangle xt_CT iptable_raw
ipt_MASQUERADE nf_nat_masquerade_ipv4 xt_comment iptable_nat ip_tables x_tables
target_core_mod configfs softdog scini(POE) ib_iser rdma_cm iw_cm ib_cm ib_sa
ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi
openvswitch(OE) nf_nat_ipv6 nf_nat_ipv4 nf_nat gre kvm_intel kvm irqbypass ttm
crct10dif_pclmul drm_kms_helper crc32_pclmul ghash_clmulni_intel drm
aesni_intel aes_x86_64 i2c_piix4 lrw gf128mul fb_sys_fops syscopyarea
glue_helper sysfillrect ablk_helper cryptd sysimgblt joydev
[684766.679406] input_leds mac_hid serio_raw 8250_fintek br_netfilter bridge
stp llc nf_conntrack_proto_gre nf_conntrack_ipv6 nf_defrag_ipv6
nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack xfs raid10 raid456
async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq
libcrc32c raid1 raid0 psmouse multipath floppy pata_acpi linear dm_multipath
[684766.683585] CPU: 15 PID: 7470 Comm: kworker/u40:1 Tainted: P OE
4.4.0-124-generic #148~14.04.1-Ubuntu
[684766.684967] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
Bochs 01/01/2011
[684766.686062] Workqueue: events_unbound flush_to_ldisc
[684766.686703] task: ffff88165e5d8000 ti: ffff88170dc2c000 task.ti:
ffff88170dc2c000
[684766.687670] RIP: 0010:[<ffffffff814e2a5a>] [<ffffffff814e2a5a>]
n_tty_receive_buf_common+0x6a/0xae0
[684766.688870] RSP: 0018:ffff88170dc2fd28 EFLAGS: 00010202
[684766.689521] RAX: 0000000000000000 RBX: ffff88162c895000 RCX:
0000000000000001
[684766.690488] RDX: 0000000000000000 RSI: ffff88162c895020 RDI:
ffff8819c2d3d4d8
[684766.691518] RBP: ffff88170dc2fdc0 R08: 0000000000000001 R09:
ffffffff81ec2ba0
[684766.692480] R10: 0000000000000004 R11: 0000000000000000 R12:
ffff8819c2d3d400
[684766.693423] R13: ffff8819c45b2670 R14: ffff8816a358c028 R15:
ffff8819c2d3d400
[684766.694390] FS: 0000000000000000(0000) GS:ffff8819d73c0000(0000)
knlGS:0000000000000000
[684766.695484] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[684766.696182] CR2: 0000000000002268 CR3: 0000001957520000 CR4:
0000000000360670
[684766.697141] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[684766.698114] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
0000000000000400
[684766.699079] Stack:
[684766.699412] 0000000000000000 ffff8819c2d3d4d8 0000000000000000
ffff8819c2d3d648
[684766.700467] ffff8819c2d3d620 ffff8819c9c10400 ffff88170dc2fd68
ffffffff8106312e
[684766.701501] ffff88170dc2fd78 0000000000000001 0000000000000000
ffff88162c895020
[684766.702534] Call Trace:
[684766.702905] [<ffffffff8106312e>] ? kvm_sched_clock_read+0x1e/0x30
[684766.703685] [<ffffffff814e34e4>] n_tty_receive_buf2+0x14/0x20
[684766.704505] [<ffffffff814e5f05>] flush_to_ldisc+0xd5/0x120
[684766.705269] [<ffffffff81099506>] process_one_work+0x156/0x400
[684766.706008] [<ffffffff81099eea>] worker_thread+0x11a/0x480
[684766.706686] [<ffffffff81099dd0>] ? rescuer_thread+0x310/0x310
[684766.707386] [<ffffffff8109f3b8>] kthread+0xd8/0xf0
[684766.707993] [<ffffffff8109f2e0>] ? kthread_park+0x60/0x60
[684766.708664] [<ffffffff8181a9b5>] ret_from_fork+0x55/0x80
[684766.709335] [<ffffffff8109f2e0>] ? kthread_park+0x60/0x60
[684766.709998] Code: 85 70 ff ff ff e8 97 5f 33 00 49 8d 87 20 02 00 00 c7
45 b4 00 00 00 00 48 89 45 88 49 8d 87 48 02 00 00 48 89 45 80 48 8b 45 b8 <48>
8b b0 68 22 00 00 48 8b 08 89 f0 29 c8 41 f6 87 30 01 00 00
[684766.713290] RIP [<ffffffff814e2a5a>] n_tty_receive_buf_common+0x6a/0xae0
[684766.714105] RSP <ffff88170dc2fd28>
[684766.714609] CR2: 0000000000002268
The issue happened in a VM
KDUMP was configured, so a full Kernel crashdump was created
User has Ubuntu Trusty, Kernel 4.4.0-124 on its VM
[Test Case]
* Deploy a Trusty KVM instance with a LTS Xenial kernel (v4.4 series)
* SSH in frequently while system is under load, send commands before the
prompt has returned.
----
Check comment #5 for a summary about the upstream proposals to resolve
this issue.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1791758/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp