Migration error - failed: got signal 13

aqwserf

Active Member
Nov 25, 2019
12
0
41
56
Hi!
I recently played around with PDM, and although I managed to migrate between two hosts a while ago, I tried again today and got the same error again ang again (PDM log):

Code:
...
2025-11-24 14:16:08 local WS tunnel version: 2
2025-11-24 14:16:08 remote WS tunnel version: 2
2025-11-24 14:16:08 minimum required WS tunnel version: 2
2025-11-24 14:16:08 websocket tunnel started
2025-11-24 14:16:08 starting migration of CT 1033100 to node 'proxmox-2' (192.168.33.30)
tunnel: -> sending command "bwlimit" to remote
tunnel: <- got reply
2025-11-24 14:16:08 found local volume 'local-lvm:vm-1033100-disk-0' (in current VM config)
tunnel: -> sending command "disk-import" to remote
tunnel: <- got reply
tunnel: accepted new connection on '/run/pve/1033100.storage'
tunnel: requesting WS ticket via tunnel
tunnel: established new WS for forwarding '/run/pve/1033100.storage'

119144448 bytes (119 MB, 114 MiB) copied, 1 s, 119 MB/s
236650496 bytes (237 MB, 226 MiB) copied, 2 s, 118 MB/s
354222080 bytes (354 MB, 338 MiB) copied, 3 s, 118 MB/stunnel: done handling forwarded connection from '/run/pve/1033100.storage'
command 'dd 'if=/dev/pve/vm-1033100-disk-0' 'bs=64k' 'status=progress'' failed: got signal 13
command 'set -o pipefail && pvesm export local-lvm:vm-1033100-disk-0 raw+size - -with-snapshots 0' failed: exit code 255

tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:13 disk-import:   Logical volume "vm-1033100-disk-0" created.
tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:14 disk-import:   Logical volume pve/vm-1033100-disk-0 changed.
tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:15 disk-import: 260+20749 records in
tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:16 disk-import: 260+20749 records out
tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:17 disk-import: 370540544 bytes (371 MB, 353 MiB) copied, 3.14029 s, 118 MB/s
tunnel: -> sending command "query-disk-import" to remote
tunnel: <- got reply
2025-11-24 14:16:18 ERROR: storage migration for 'local-lvm:vm-1033100-disk-0' to storage 'local-lvm' failed - command 'set -o pipefail && pvesm export local-lvm:vm-1033100-disk-0 raw+size - -with-snapshots 0' failed: exit code 255
2025-11-24 14:16:18 aborting phase 1 - cleanup resources
2025-11-24 14:16:18 ERROR: found stale volume copy 'local-lvm:vm-1033100-disk-0' on node 'proxmox-2'
tunnel: -> sending command "quit" to remote
tunnel: <- got reply
2025-11-24 14:16:19 start final cleanup
2025-11-24 14:16:19 ERROR: migration aborted (duration 00:00:11): storage migration for 'local-lvm:vm-1033100-disk-0' to storage 'local-lvm' failed - command 'set -o pipefail && pvesm export local-lvm:vm-1033100-disk-0 raw+size - -with-snapshots 0' failed: exit code 255
TASK ERROR: migration aborted

As the 2 hosts were not on the exact same version, I've upgraded them, as well as PDM to their latest version, but no success either (without rebooting them though...):
Code:
$ pveversion
pve-manager/9.1.1/42db4a6cf33dac83 (running kernel: 6.14.11-3-pve)

$ pveversion
pve-manager/9.1.1/42db4a6cf33dac83 (running kernel: 6.14.11-1-pve)

Source and destination storage are almost identical (lvmthin):
Code:
$ cat /etc/pve/storage.cfg
dir: local
    path /var/lib/vz
    content snippets
    prune-backups keep-last=1
    shared 0

lvmthin: local-lvm
    thinpool data
    vgname pve
    content images,rootdir

dir: vm
    path /mnt/vm
    content iso,backup,images,rootdir,vztmpl
    shared 0

$ 
cat /etc/pve/storage.cfg
dir: local
    path /var/lib/vz
    content snippets,iso,backup,vztmpl
    shared 0

lvmthin: local-lvm
    thinpool data
    vgname pve
    content images,rootdir

I managed to find a working command to migrate the storage using a third host for reference (so the pvesm export between hosts work):
ssh host1 pvesm export local-lvm:vm-1123140-disk-0 raw+size - | ssh host2 pvesm import local-lvm:vm-1123140-disk-0 raw+size -

Is that a known issue? Or am I missing something?

Thanks!
 
I've just upgraded and rebooted everything and now I'm still getting this signal 13 error but apparently now I have a possible cause, located at /usr/share/perl5/PVE/Tunnel.pm line 11:

Code:
2025-12-12 13:41:37 remote: started tunnel worker 'UPID:proxmox-2:00002B68:00006CE7:693C0D81:qmtunnel:1033100:root@pam!pdm-admin:'
tunnel: -> sending command "version" to remote
tunnel: <- got reply
2025-12-12 13:41:37 local WS tunnel version: 2
2025-12-12 13:41:37 remote WS tunnel version: 2
2025-12-12 13:41:37 minimum required WS tunnel version: 2
websocket tunnel started
2025-12-12 13:41:37 starting migration of VM 1033102 to node 'proxmox-2' (192.168.33.30)
tunnel: -> sending command "bwlimit" to remote
tunnel: <- got reply
2025-12-12 13:41:37 found local disk 'local-lvm:vm-1033102-disk-0' (attached)
2025-12-12 13:41:37 copying local disk images
tunnel: -> sending command "disk-import" to remote
tunnel: <- got reply
tunnel: accepted new connection on '/run/pve/1033102.storage'
tunnel: requesting WS ticket via tunnel
tunnel: established new WS for forwarding '/run/pve/1033102.storage'

119472128 bytes (119 MB, 114 MiB) copied, 1 s, 119 MB/s
236257280 bytes (236 MB, 225 MiB) copied, 2 s, 118 MB/s
354484224 bytes (354 MB, 338 MiB) copied, 3 s, 118 MB/s
471007232 bytes (471 MB, 449 MiB) copied, 4 s, 118 MB/s
588775424 bytes (589 MB, 562 MiB) copied, 5 s, 118 MB/s
706347008 bytes (706 MB, 674 MiB) copied, 6 s, 118 MB/stunnel: done handling forwarded connection from '/run/pve/1033102.storage'
command 'dd 'if=/dev/pve/vm-1033102-disk-0' 'bs=64k' 'status=progress'' failed: got signal 13
command 'set -o pipefail && pvesm export local-lvm:vm-1033102-disk-0 raw+size - -with-snapshots 0' failed: exit code 255

tunnel: -> sending command "query-disk-import" to remote
tunnel: Tunnel to https://192.168.33.30:8006/api2/json/nodes/proxmox-2/qemu/1033100/mtunnelwebsocket?ticket=PVETUNNEL%3A693C0D81%3A%3AjIDMxpBZW76Qu8W3r6Os4u9kmwWgDRW5mRTEU1zfiy8v4tI5%2FaUKErctllVskydwVuITGiLWXMcRrj%2FOv4VZ1owi2vg01L3tXIhWZjMsqXfw81mBthEnnWcvg3NxArcCBbKMEcdhvA8JTKv%2BWbmGfNIlJifPHHOonGr%2FbaDG4U3%2BXnHzOj2ztzz%2FN4FeYS3GWegiJ6wKRUoh%2FQi14R2Yic5rWjFb5P9SzTS0TSPC%2FANEBi61f%2FuPDVXoREBryWOEMCoztgJfpuL6agAUWHWb9iKslfD6eW98Ye0hWVwcAvYfWKXNzD2ptBSabTCfpRxNz8oOCP2TmBw18SZEhMrfig%3D%3D&socket=%2Frun%2Fqemu-server%2F1033100.mtunnel failed - WS closed unexpectedly
tunnel: Error: channel closed
CMD websocket tunnel died: command 'proxmox-websocket-tunnel' failed: exit code 1

Use of uninitialized value $res in concatenation (.) or string at /usr/share/perl5/PVE/Tunnel.pm line 120, <GEN752> line 4.
2025-12-12 13:41:46 ERROR: failed to decode tunnel reply '' (command '{"cmd":"query-disk-import"}') - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at /usr/share/perl5/PVE/Tunnel.pm line 119, <GEN752> line 4.
2025-12-12 13:41:46 aborting phase 1 - cleanup resources
2025-12-12 13:41:47 ERROR: writing to tunnel failed: broken pipe
2025-12-12 13:41:47 ERROR: migration aborted (duration 00:00:10): failed to decode tunnel reply '' (command '{"cmd":"query-disk-import"}') - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at /usr/share/perl5/PVE/Tunnel.pm line 119, <GEN752> line 4.
TASK ERROR: migration aborted

Or is it related to the failed dd command that cause this issue?
Is it a lack or RAM or something?
I don't know what else to test...

Thanks!
 
Alright. Don't know why but know it's working again :rolleyes:
I believe it was due to the usb-c -> ethernet adaptor used on the laptop but who knows...
anyhow, an upgrade of both pve did it!
 
Signal 13 means the pipe broke while dd was writing. In your log the websocket tunnel closes first, then dd fails with SIGPIPE. So dd is not the root cause.

This usually happens if the migration data stream drops for a moment. Common reasons are unstable network links, USB Ethernet adapters, MTU mismatch, or interface resets.

Since it started working after the upgrade and you mentioned the USB-C Ethernet adapter, a short network interruption during the transfer is the most likely cause.