From owner-freebsd-testing@freebsd.org Sun Apr 12 17:45:53 2020 Return-Path: Delivered-To: freebsd-testing@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 425272C44F4 for ; Sun, 12 Apr 2020 17:45:53 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 490fL818PCz4Qqs; Sun, 12 Apr 2020 17:45:51 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yb1-f179.google.com with SMTP id f14so4088709ybr.13; Sun, 12 Apr 2020 10:45:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=U6Htn2SzGY6c5CNspqjoy9dTDQaa2jc2/10eY9toI+4=; b=uj+6atLCwRIfy/zGGdrKV/M8uWfgDyoMWLCAr3XkkdgYox3F2nPRpir7Oikmx7YBPc EAIj/K1iPQ1dq309PQ+PytmSdD+uMgoA1yDCbLCj1ZEcwkBITz88sAebmc0NWhoYOpyD VIywzj1mXHn6aveW4abKDz2i9iM/Mh45HHFvuIqQQyK5oUUhHkPfsvdOSy6BYzpiIcq8 K3p79vFU8CnPZAByiqqgYzW7Rk+IcU8hu8GISPF6cM5QQhndOILbE0gXNWK+G42pQ+7T CbbTEMgcCXgOk+kL4DjMOh/xoJQ3QDLPfXroH00NaIONWsRGNEv6O8hQlyIN0K0eDgLm bXFA== X-Gm-Message-State: AGi0PuZQ/T6deIs1i2O1VQNaQ9OSg0/cAEA4N4WPMnDWyHqyVls1XLx3 PVIg+s5rqgxdTnB9oX8+fW6t6R9OJuAQP695u/SAESri X-Google-Smtp-Source: APiQypKyyopiHpKeNKpgIC20/74Y2RoGs2DDuXTf8CMLBN5engN19TkFKrLyTTeCjCX8uAce5qmDPUlphOwhvcRRoT0= X-Received: by 2002:a25:cd43:: with SMTP id d64mr17501881ybf.451.1586713550736; Sun, 12 Apr 2020 10:45:50 -0700 (PDT) MIME-Version: 1.0 From: Li-Wen Hsu Date: Mon, 13 Apr 2020 01:45:39 +0800 Message-ID: Subject: ipdivert tests and net.inet.ip.fw.default_to_accept To: Alexander Chernikov Cc: freebsd-testing@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 490fL818PCz4Qqs X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of lwhsufreebsd@gmail.com designates 209.85.219.179 as permitted sender) smtp.mailfrom=lwhsufreebsd@gmail.com X-Spamd-Result: default: False [-3.88 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-1.88)[ip: (-8.55), ipnet: 209.85.128.0/17(-0.40), asn: 15169(-0.43), country: US(-0.05)]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[179.219.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[179.219.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-testing@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Testing on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Apr 2020 17:45:53 -0000 (CC freebsd-testing@ for more people can join the discussion) Hi Alexander, I'm checking test failures and panics, and found that the two ipdivert tests we added previously have never been tested correctly. I've loaded ipdivert.ko to unskip them in test VM, and found that these two tests will fail or panic the kernel when net.inet.ip.fw.default_to_accept is not 1. I'm thinking: 1) Also checks for net.inet.ip.fw.default_to_accept=1 at the beginning and skip the test if 0 2) Is this lock order reversal normal? 3) Does this panic indicate a bug in the relative code? How do you think? Details of running the two tests are as following: # kyua test divert:ipdivert_ip_input_local_success divert:ipdivert_ip_input_local_success -> lock order reversal: 1st 0xffffffff81c8e558 allprison (allprison) @ /usr/src/sys/kern/kern_jail.c:953 2nd 0xffffffff81d9a750 vnet_sysinit_sxlock (vnet_sysinit_sxlock) @ /usr/src/sys/net/vnet.c:577 stack backtrace: #0 0xffffffff80c28671 at witness_debugger+0x71 #1 0xffffffff80bc7747 at _sx_slock_int+0x67 #2 0xffffffff80cfd2ce at vnet_alloc+0x11e #3 0xffffffff80b7fd93 at kern_jail_set+0x1a23 #4 0xffffffff80b81670 at sys_jail_set+0x40 #5 0xffffffff8105d09d at amd64_syscall+0x73d #6 0xffffffff810328d0 at fast_syscall_common+0x101 failed: 1 != 0 (1 != 0) [0.814s] # kyua test divert:ipdivert_ip_output_remote_success divert:ipdivert_ip_output_remote_success -> panic: Duplicate free of 0xfffff80003c3fa00 from zone 0xfffffe000a1d0000(mbuf) slab 0xfffff80003c3ffd8(10) cpuid = 3 time = 1586710625 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0038476f70 vpanic() at vpanic+0x182/frame 0xfffffe0038476fc0 panic() at panic+0x43/frame 0xfffffe0038477020 uma_dbg_free() at uma_dbg_free+0x1f2/frame 0xfffffe0038477060 uma_zfree_arg() at uma_zfree_arg+0x130/frame 0xfffffe00384770b0 m_free() at m_free+0xb9/frame 0xfffffe00384770e0 m_freem() at m_freem+0x28/frame 0xfffffe0038477100 div_send() at div_send+0x43c/frame 0xfffffe0038477170 sosend_generic() at sosend_generic+0x44c/frame 0xfffffe0038477220 sosend() at sosend+0x66/frame 0xfffffe0038477250 kern_sendit() at kern_sendit+0x246/frame 0xfffffe00384772f0 sendit() at sendit+0x1cc/frame 0xfffffe0038477340 sys_sendto() at sys_sendto+0x4d/frame 0xfffffe0038477390 amd64_syscall() at amd64_syscall+0x73d/frame 0xfffffe00384774b0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00384774b0 --- syscall (133, FreeBSD ELF64, sys_sendto), rip = 0x8007beeba, rsp = 0x7fffffffdc68, rbp = 0x7fffffffdcb0 --- KDB: enter: panic Best, Li-Wen