Project

General

Profile

Actions

Bug #13455

open

assert in zfs dmu_send when doing zfs send

Added by Jorge Schrauwen 11 months ago. Updated 11 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

panic[cpu3]/thread=fffffeb5d004e820: assertion failed: zb->zb_object > dsa->dsa_resume_object || (zb->zb_object == dsa->dsa_resume_object && zb->zb_blkid * blksz >= dsa->dsa_resume_offset), file: ../../common/fs/zfs/dmu_send.c, line: 878

fffffe00fa0526f0 genunix:process_type+12a09d ()
fffffe00fa0527b0 zfs:do_dump+36b ()
fffffe00fa052960 zfs:dmu_send_impl+737 ()
fffffe00fa052ab0 zfs:dmu_send+282 ()
fffffe00fa052b80 zfs:zfs_ioc_send_new+15a ()
fffffe00fa052c60 zfs:zfsdev_ioctl+557 ()
fffffe00fa052ca0 genunix:cdev_ioctl+2b ()
fffffe00fa052cf0 specfs:spec_ioctl+45 ()
fffffe00fa052d80 genunix:fop_ioctl+5b ()
fffffe00fa052ea0 genunix:ioctl+153 ()
fffffe00fa052f00 unix:brand_sys_sysenter+2dc ()

Got woken up by this, will upload dump in the morning.

Actions #1

Updated by Jorge Schrauwen 11 months ago

Looks like i never tripped this before because this was the first time using resumable send/recv

Actions #3

Updated by Jorge Schrauwen 11 months ago

I can easily reproduce it with zrepl...

But I think any zfs send that is being resumed will trigger it.

global:
  logging:
    - type: "stdout" 
      level:  "debug" 
      format: "human" 

jobs:
- name: zdata
  type: push
  connect:
    type: tls
    address: "bck.acheron.be:8888" 
    ca: "/opt/custom/etc/zrepl-ca.crt" 
    cert: "/opt/custom/etc/zrepl-server.crt" 
    key: "/opt/custom/etc/zrepl-server.key" 
    server_cn: "bck.acheron.be" 
  filesystems: {
    "zones/data<": true,
  }
  snapshotting:
    type: periodic
    prefix: zrepl_
    interval: 3h
  pruning:
    keep_sender:
    - type: not_replicated
    - type: regex
      regex: "^manual_" 
    - type: last_n
      count: 16
    keep_receiver:
    - type: last_n
      count: 8
    - type: grid
      regex: "^zrepl_" 
      grid: 30x1d | 12x30d

Just start a replication, stop zrepl before it completes and start zrepl again. Once it tries to resume the send the assert is tripped.

Actions #4

Updated by Jorge Schrauwen 11 months ago

 zfs send data/test | zfs recv -s data/newtest
<ctrl-c> to abort the send 
zfs get -H -o value receive_resume_token data/newtest
zfs send -t '<token here>' | zfs recv -s data/newtest

Will also trigger it, which is basically what zrepl was doing.

Actions

Also available in: Atom PDF