# Can't get crash dump



## CyberCr33p (Sep 15, 2019)

I use 12-STABLE and I try to get a crash dump.


```
config -x /boot/kernel/kernel | egrep -i 'db|deb'
makeoptions     DEBUG=-g
options USB_DEBUG
options IEEE80211_DEBUG
options KDB_TRACE
options KDB
options DDB_CTF
device  cardbus
```


```
dumpon -v /dev/mirror/gm0p3
kernel dumps on /dev/mirror/gm0p3
```

My /etc/rc.conf has:


```
dumpdev="AUTO"
```

Then I run:


```
sysctl debug.kdb.panic=1
```

System reboots but the only file in /var/crash is minfree.

Any idea if I miss something?


----------



## CyberCr33p (Sep 15, 2019)

The problem is finally the gmirror swap.

If I use dumpdev with /dev/ada0p3 then I get the files in /var/crash.

But then mirror/gm0p3 is degraded:


```
gmirror status
        Name    Status  Components
mirror/gm0p2  COMPLETE  ada0p2 (ACTIVE)
                        ada1p2 (ACTIVE)
mirror/gm0p4  COMPLETE  ada0p4 (ACTIVE)
                        ada1p4 (ACTIVE)
mirror/gm0p5  DEGRADED  ada0p5 (SYNCHRONIZING, 94%)
                        ada1p5 (ACTIVE)
mirror/gm0p6  COMPLETE  ada0p6 (ACTIVE)
                        ada1p6 (ACTIVE)
mirror/gm0p7  COMPLETE  ada0p7 (ACTIVE)
                        ada1p7 (ACTIVE)
mirror/gm0p8  DEGRADED  ada0p8 (SYNCHRONIZING, 0%)
                        ada1p8 (ACTIVE)
mirror/gm0p3  DEGRADED  ada1p3 (ACTIVE)
```


----------



## CyberCr33p (Sep 15, 2019)

And the notes from gmirror man page:


```
Doing kernel dumps to gmirror providers is possible, but some conditions
     have to be met.  First of all, a kernel dump will go only to one
     component and gmirror always chooses the component with the highest
     priority.  Reading a dump from the mirror on boot will only work if the
     prefer balance algorithm is used (that way gmirror will read only from
     the component with the highest priority).  If you use a different balance
     algorithm, you should add:

           gmirror configure -b prefer data

     to the /etc/rc.early script and:

           gmirror configure -b round-robin data

     to the /etc/rc.local script.  The decision which component to choose for
     dumping is made when dumpon(8) is called.  If on the next boot a
     component with a higher priority will be available, the prefer algorithm
     will choose to read from it and savecore(8) will find nothing.  If on the
     next boot a component with the highest priority will be synchronized, the
     prefer balance algorithm will read from the next one, thus will find
     nothing there.
```


----------

