sparc64: bridge: mtx 0x400191ba5e0: locking against myself

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

sparc64: bridge: mtx 0x400191ba5e0: locking against myself

Klemens Nanni-2
Running latest snapshot on a T5240.

The machine paniced while removing interfaces from protected domains.
Here is the console log showing both the bridge's configuration as well
as the commands used:

        index 16 llprio 3
        groups: bridge
        priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
        vnet2 flags=7<LEARNING,DISCOVER,BLOCKNONIP>
                port 3 ifpriority 0 ifcost 0 protected 1
        vnet1 flags=7<LEARNING,DISCOVER,BLOCKNONIP>
                port 2 ifpriority 0 ifcost 0 protected 1
        vnet0 flags=7<LEARNING,DISCOVER,BLOCKNONIP>
                port 1 ifpriority 0 ifcost 0 protected 1
        vether0 flags=3<LEARNING,DISCOVER>
                port 13 ifpriority 0 ifcost 0 protected 2
        trunk0 flags=3<LEARNING,DISCOVER>
                port 11 ifpriority 0 ifcost 0 protected 2
root:/home/kn:2546# ifconfig bridge0 -protected vnet0
root:/home/kn:2547# ifconfig bridge0 -protected vnet1
root:/home/kn:2548# ifconfig bridge0 -protected vnet2
root:/home/kn:2549# ifconfig bridge0 -protected vether0
root:/home/kn:2550# ifconfig bridge0 -protected trunk0
root:/home/kn:2551# ifconfig bridge0
bridge0: flags=41<UP,RUNNING>
        description: LDOMs
        index 16 llprio 3
        groups: bridge
        priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
        designated: id 00:00:00:00:00:00 priority 0
        vnet2 flags=7<LEARNING,DISCOVER,BLOCKNONIP>
                port 3 ifpriority 0 ifcost 0

The beginning is lost to tmux, the end is the moment it paniced.
I'll leave it in ddb in case more information is required.

ddb{17}> show panic
mtx 0x400191ba5e0: locking against myself

ddb{17}> bt
mtx_enter_try(400191ba5e0, 0, 0, 0, 0, 0) at mtx_enter_try+0xd0
mtx_enter(400191ba5e0, 400189f6068, 0, 0, 0, 0) at mtx_enter+0x2c
bridge_rtfind(400191ba000, 40398005c60, 40398005c60, 0, 0, 400191ba5e0) at brid
ge_rtfind+0xc
bridge_ioctl(400191ba000, c0206943, 40398005c60, 1, 400191ba000, 40017a67ba0) a
t bridge_ioctl+0x1c4
ifioctl(2d, c0206943, 40398005c60, 40017a67ba0, 1012f50, 6) at ifioctl+0xd70
sys_ioctl(0, 40398005db0, 40398005df0, 1758090, 129ae60, 6) at sys_ioctl+0x2e0
syscall(40398005ed0, 436, ea82c21ec8, ea82c21ecc, 140, 0) at syscall+0x390
syscall_setup(3, c0206943, fffffffffffe54b0, 0, 4000, ecd699a830) at syscall_se
tup+0x134

ddb{17}> ps      
   PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
*27344  120026  29584      0  7         0x3                ifconfig
  8166  301842  48343   1000  3        0x80  select        rsync
 48343  313961  91045   1000  7         0x2                rsync
 91045  517815  13323   1000  3    0x10008a  pause         sh
 13323  326377  93466      0  3    0x100090  piperd        cron
 96013   68407  65075     76  3    0x100093  netio         tcpdump
 65075   22473  68942     76  3    0x100093  bpf           tcpdump
 32889  111664  23842     76  3    0x100093  netio         tcpdump
 23842   59589  41147     76  3    0x100093  bpf           tcpdump
 68942  270194  98499      0  3    0x10008b  pause         ksh
 98499  464783  85082   1000  3    0x10008b  pause         ksh
 54587  239357  93598   1000  3    0x100083  kqread        tmux
 93598  130669  22147   1000  3    0x10008b  pause         ksh
 22147  406782  65717   1000  3        0x90  select        sshd
 65717   44590  20620      0  3        0x92  poll          sshd
 59278  378975      1     53  3        0x90  kqread        unbound
 28623  224553  62544     94  3    0x100092  kqread        rad
 54120  226083  62544     94  3    0x100092  kqread        rad
 62544  303352      1      0  3    0x100080  kqread        rad
 55024  192324  72936     76  3    0x100093  netio         tcpdump
 72936  421965  70644     76  3    0x100093  bpf           tcpdump
 32889  111664  23842     76  3    0x100093  netio         tcpdump
 23842   59589  41147     76  3    0x100093  bpf           tcpdump
 68942  270194  98499      0  3    0x10008b  pause         ksh
 98499  464783  85082   1000  3    0x10008b  pause         ksh
 54587  239357  93598   1000  3    0x100083  kqread        tmux
 93598  130669  22147   1000  3    0x10008b  pause         ksh
 22147  406782  65717   1000  3        0x90  select        sshd
 65717   44590  20620      0  3        0x92  poll          sshd
 59278  378975      1     53  3        0x90  kqread        unbound
 28623  224553  62544     94  3    0x100092  kqread        rad
 54120  226083  62544     94  3    0x100092  kqread        rad
 62544  303352      1      0  3    0x100080  kqread        rad
 55024  192324  72936     76  3    0x100093  netio         tcpdump
 72936  421965  70644     76  3    0x100093  bpf           tcpdump
 19178  260787  53586     83  3    0x100092  poll          ntpd
 53586  357583  69499     83  3    0x100092  poll          ntpd
 69499  338623      1      0  3    0x100080  poll          ntpd
 29584  394430  73187      0  3    0x10008b  pause         ksh
 73187  217406  85082   1000  3    0x10008b  pause         ksh
 41147  465705  53084      0  3    0x10008b  pause         ksh
 53084  458751  85082   1000  3    0x10008b  pause         ksh
 68993  328643  68027      0  3    0x100083  kqread        cu
 69414  175952  83328      0  3    0x100083  ttyin         ksh
 68027  377139  33250      0  3    0x10008b  pause         ksh
 33250  157507  85082   1000  3    0x10008b  pause         ksh
 83328  335869  85082   1000  3    0x10008b  pause         ksh
 17665  240624  14347      0  3    0x100083  kqread        cu
 14347  334712  34935      0  3    0x10008b  pause         ksh
 34935  247289  85082   1000  3    0x10008b  pause         ksh
 70644  438372  75482      0  3    0x10008b  pause         ksh
 75482  167717  85082   1000  3    0x10008b  pause         ksh
 90359  453164  31889      0  3    0x100083  kqread        cu
 76622  389652  85082   1000  3    0x100083  ttyin         ksh
 31889   18977  28125      0  3    0x10008b  pause         ksh
 28125  409254  85082   1000  3    0x10008b  pause         ksh
 51664  158208  85830      0  3    0x100083  ttyin         ksh
 85830  236109  85082   1000  3    0x10008b  pause         ksh
 48512  466103  38119   1000  3    0x100083  select        ssh
 38119  274229  85082   1000  3        0x8b  pause         autossh
 85082  460224      1   1000  7    0x100000                tmux
 20782  371651  59918   1000  3    0x100083  kqread        tmux
 59918  522444  82726   1000  3    0x10008b  pause         ksh
 82726  406869  71920   1000  3        0x90  select        sshd
 71920  492886  20620      0  3        0x92  poll          sshd
 80780   42194      1      0  3    0x100083  ttyin         getty
 93466   88890      1      0  3    0x100098  poll          cron
 84663  224379  19620      0  3    0x100081  piperd        sh
 10439  467427  19620      0  3    0x100083  piperd        fgrep
 76344  178854  19620      0  3    0x100083  kqread        tail
 19620  497516      1      0  3    0x10008b  pause         sh
  8546   85414      1    509  3        0x80  poll          bitlbee
 46692  375943      1    566  3        0x90  kqread        tor
  3449  493855      1      0  3    0x100080  kqread        httpd
 85940  369644      1     67  3    0x100092  kqread        httpd
 15526  260285      1     67  3    0x100092  kqread        httpd
 35597  360932      1     67  3    0x100092  kqread        httpd
 12015   74205      1     67  3    0x100092  kqread        httpd
 20620  457372      1      0  3        0x80  select        sshd
 13260  148245      1      0  3        0x80  poll          ldomd
 38646  481639  13627      0  3        0x80  nfsd          nfsd
 75473   91270  13627      0  3        0x80  nfsd          nfsd
 87061  144208  13627      0  3        0x80  nfsd          nfsd
 46710  508286  13627      0  3        0x80  nfsd          nfsd
 13627  295591      1      0  3        0x80  netcon        nfsd
  4639  112898  59196      0  3        0x80  poll          mountd
 59196  211855      1      0  3    0x100080  poll          mountd
 47813  295852      1     28  3    0x100090  poll          portmap
 65618  225164  26812     74  3    0x100092  bpf           pflogd
 26812  316883      1      0  3        0x80  netio         pflogd
 36774  442015  97555     73  3    0x100090  kqread        syslogd
 97555  473817      1      0  3    0x100082  netio         syslogd
 37268  344745      1      0  3        0x80  mfsidl        mount_mfs
 75303  434670      1      0  3        0x80  mfsidl        mount_mfs
 90120   41031      1      0  3        0x80  mfsidl        mount_mfs
  6595  303899      0      0  3     0x14200  pgzero        zerothread
 17711  269104      0      0  3     0x14200  aiodoned      aiodoned
 14309  170610      0      0  3     0x14200  syncer        update
  2524  175873      0      0  3     0x14200  cleaner       cleaner
 14602  340204      0      0  3     0x14200  reaper        reaper
  4574  215929      0      0  3     0x14200  pgdaemon      pagedaemon
 83922  165543      0      0  3     0x14200  bored         sensors
 39527  345805      0      0  3     0x14200  bored         srdis
 27416  171632      0      0  3     0x14200  bored         crynlk
 70924  126387      0      0  3     0x14200  bored         crypto
 11197  189071      0      0  3     0x14200  usbtsk        usbtask
  8334  509759      0      0  3     0x14200  usbatsk       usbatsk
 36429  511407      0      0  7  0x40014200                idle31
 68897  498503      0      0  7  0x40014200                idle30
 75688  157199      0      0  7  0x40014200                idle29
 38067  512668      0      0  7  0x40014200                idle28
 28662  132490      0      0  7  0x40014200                idle27
 19467  213141      0      0  7  0x40014200                idle26
    18  268297      0      0  7  0x40014200                idle25
 23254  455388      0      0  7  0x40014200                idle24
 87573  335638      0      0  7  0x40014200                idle23
 36823  338948      0      0  7  0x40014200                idle22
 83895  451631      0      0  7  0x40014200                idle21
 51953    9982      0      0  7  0x40014200                idle20
 59634    6778      0      0  7  0x40014200                idle19
 77871  398743      0      0  7  0x40014200                idle18
 72224  349185      0      0  3  0x40014200                idle17
 95363  269467      0      0  7  0x40014200                idle16
 65392  449646      0      0  7  0x40014200                idle15
 94129  522807      0      0  7  0x40014200                idle14
  2289  313978      0      0  7  0x40014200                idle13
 27452  196866      0      0  7  0x40014200                idle12
 75850  471059      0      0  7  0x40014200                idle11
 79505  286437      0      0  7  0x40014200                idle10
 55122  219114      0      0  7  0x40014200                idle9
 59026  357875      0      0  7  0x40014200                idle8
 60285  461412      0      0  7  0x40014200                idle7
 31213   28858      0      0  7  0x40014200                idle6
 29814  323580      0      0  7  0x40014200                idle5
 79847  290100      0      0  7  0x40014200                idle4
 44955  492148      0      0  7  0x40014200                idle3
 75225   21152      0      0  3  0x40014200                idle2
 21376  136109      0      0  3  0x40014200                idle1
 72381  401002      0      0  3     0x14200  bored         softnet
 21087  114173      0      0  3     0x14200  bored         systqmp
 88857  246849      0      0  3     0x14200  bored         systq
 85318  465556      0      0  3  0x40014200  bored         softclock
  9387  179973      0      0  7  0x40014200                idle0
 55348  303948      0      0  3     0x14200  bored         smr
 19242  103349      0      0  3     0x14200  kmalloc       kmthread
     1  231443      0      0  3        0x82  wait          init
     0       0     -1      0  3     0x10200  scheduler     swapper

Reply | Threaded
Open this post in threaded view
|

Re: sparc64: bridge: mtx 0x400191ba5e0: locking against myself

Klemens Nanni-2
`mach ddbcpu 0' locked up ddb, not printing or doing anything so I just
reset the machine.

Reply | Threaded
Open this post in threaded view
|

Re: sparc64: bridge: mtx 0x400191ba5e0: locking against myself

Martin Pieuchot
In reply to this post by Klemens Nanni-2
On 06/07/19(Sat) 20:17, Klemens Nanni wrote:
> Running latest snapshot on a T5240.
>
> The machine paniced while removing interfaces from protected domains.
> Here is the console log showing both the bridge's configuration as well
> as the commands used:

There's a mtx_leave() missing in bridge_rtfind(), I guess that's what
caused your panic.

Index: net/bridgectl.c
===================================================================
RCS file: /cvs/src/sys/net/bridgectl.c,v
retrieving revision 1.19
diff -u -p -r1.19 bridgectl.c
--- net/bridgectl.c 12 May 2019 19:53:22 -0000 1.19
+++ net/bridgectl.c 8 Jul 2019 19:03:08 -0000
@@ -531,8 +531,10 @@ bridge_rtfind(struct bridge_softc *sc, s
  LIST_FOREACH(n, &sc->sc_rts[k], brt_next) {
  struct ifnet *ifp;
 
- if (i >= total)
+ if (i >= total) {
+ mtx_leave(&sc->sc_mtx);
  goto done;
+ }
  bareq = &bareqs[i];
 
  ifp = if_get(n->brt_ifidx);

Reply | Threaded
Open this post in threaded view
|

Re: sparc64: bridge: mtx 0x400191ba5e0: locking against myself

Klemens Nanni-2
On Mon, Jul 08, 2019 at 04:06:17PM -0300, Martin Pieuchot wrote:
> There's a mtx_leave() missing in bridge_rtfind(), I guess that's what
> caused your panic.
Thanks!  I was about to test it this evening but just saw it being
committed already with OK visa.