ACK: [Trusty][SRU][PATCH 0/2] Fixes for LP#1488035
Brad Figg
brad.figg at canonical.com
Tue Aug 25 16:01:54 UTC 2015
On Mon, Aug 24, 2015 at 10:04:50PM +0800, Gavin Guo wrote:
> BugLink: http://bugs.launchpad.net/bugs/1488035
>
> [Impact]
>
> The node which mounts a ceph rbd volume causes a panic when all OSD daemons
> on the all ceph nodes are restarted.
>
> [642981.871592] ------------[ cut here ]------------
> [642981.912255] kernel BUG at
> /build/buildd/linux-3.13.0/net/ceph/osd_client.c:892!
> [642981.994517] invalid opcode: 0000 [#1] SMP
> [642982.037227] Modules linked in: xt_multiport iptable_mangle xt_nat
> xt_tcpudp veth xfs rbd libceph libcrc32c xt_addrtype xt_conntrack
> ipt_MASQUERADE iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4
> iptable_filter ip_tables x_tables nf_nat nf_conntrack bridge aufs
> ipmi_devintf joydev gpio_ich x86_pkg_temp_thermal intel_powerclamp coretemp
> kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel
> aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd hid_generic mei_me
> ioatdma mei lpc_ich wmi ipmi_si 8021q garp stp mrp llc bonding
> acpi_power_meter mac_hid lp parport ixgbe usbhid dca tg3 ahci libahci hid
> ptp megaraid_sas mdio pps_core
> [642982.528519] CPU: 0 PID: 1062099 Comm: kworker/0:6 Not tainted
> 3.13.0-45-generic #74-Ubuntu
> [642982.648057] Hardware name: NEC Express5800/R120f-1M
> [N8100-2203Y]/MS-S0901, BIOS 5.0.4016 12/17/2014
> [642982.775433] Workqueue: ceph-msgr con_work [libceph]
> [642982.841300] task: ffff881028444800 ti: ffff880d92374000 task.ti:
> ffff880d92374000
> [642982.973255] RIP: 0010:[<ffffffffa025f5be>] [<ffffffffa025f5be>]
> osd_reset+0x22e/0x2c0 [libceph]
> [642983.114484] RSP: 0018:ffff880d92375d80 EFLAGS: 00010283
> [642983.188540] RAX: ffff8800197f2ca8 RBX: ffff882028194750 RCX:
> ffff880036bcdc48
> [642983.334096] RDX: ffff8800197f2ca8 RSI: ffff8800197f2c10 RDI:
> 0000000000000286
> [642983.485552] RBP: ffff880d92375dd8 R08: 0000000000000000 R09:
> 0000000000000000
> [642983.643277] R10: ffffffff8160afcf R11: ffffea00710cae00 R12:
> ffff8800197f2c58
> [642983.805364] R13: ffff882028194810 R14: ffff880036bcdbf8 R15:
> ffff880036bcdc18
> [642983.968728] FS: 0000000000000000(0000) GS:ffff88103fa00000(0000)
> knlGS:0000000000000000
> [642984.135368] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [642984.220577] CR2: 00007f60d4cb7868 CR3: 0000000001c0e000 CR4:
> 00000000001407f0
> [642984.383051] Stack:
> [642984.459809] ffff8820281947a8 ffff882028194760 ffff8800197f2800
> ffff8800197f2ca8
> [642984.618038] ffff880d92375da0 ffff880d92375da0 ffff8800197f2c10
> ffff8800197f2830
>
> [Fix]
>
> A linked list to manage OSDs in the kernel was corrupted when restarting
> all OSD daemons on all ceph nodes at the almost same time.
>
> The issues must be fixed by the following.
>
> libceph: must use new tid when watch is resent
> http://tracker.ceph.com/issues/8806
>
> This includes two patched and they has been already released.
>
> http://comments.gmane.org/gmane.comp.file-systems.ceph.devel/20878
> [PATCH 1/2] libceph: abstract out ceph_osd_request enqueue logic
> [PATCH 2/2] libceph: resend lingering requests with a new tid
>
> 3.18 kernel adopts the fixes.
>
> libceph: abstract out ceph_osd_request enqueue logic
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f671b581f1dac61354186b7373af5f97fe420584
> libceph: resend lingering requests with a new tid
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2cc6128ab2afff7864dbdc33a73e2deaa935d9e0
>
> [Test Case]
>
> After setting up the ceph environment, repeatedly issued the following
> command from a node to all ceph nodes.
>
> rsh -i key -l ubuntu sn_hostname sudo service ceph-all restart
>
> And verify if there is panics.
>
> Ilya Dryomov (2):
> libceph: abstract out ceph_osd_request enqueue logic
> libceph: resend lingering requests with a new tid
>
> net/ceph/osd_client.c | 97 +++++++++++++++++++++++++++++++++++++--------------
> 1 file changed, 71 insertions(+), 26 deletions(-)
>
> --
> 2.0.0
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Looks like an accurate backport of the upstream commits and positive
testing.
--
Brad Figg brad.figg at canonical.com http://www.canonical.com
More information about the kernel-team
mailing list