delve golang debugger can't read vvar on arm64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Delve |
Fix Released
|
Unknown
|
|||
delve (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Also documented upstream:
https:/
In version 1.6.1 of the delve golang debugger, a 'dump' feature was added.
https:/
Since that time, arm64 autopkgtest of delve has been failing like so:
https:/
=== RUN TestDump
proc_
proc_
--- FAIL: TestDump (0.98s)
The test fails becaue MemDone != MemTotal.
The decision on what to dump or not is based on smaps.
The failing item is vvar.
err when attempting to read is
error(syscall.
Notably however, this test passes in debian CI. (kernel 4.19)
Also, running on older series such as bionic/focal does pass.
vvar section from vm with kernel 5.4 (test pass):
ffff924a4000-
Size: 4 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
FilePmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd mr de
vvar from failing case
ffffac144000-
Size: 8 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
FilePmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd mr pf de
Two noticible differences
1) 4kB vs 8kB size
2) Failing case adds the "pf" flag ("pure PFN range")
Open questions:
1) Would we expect that a debugger could read vvar on arm64?
2) Any thoughts on why this seems to work on older kernels?
3) Do we believe this to be a kernel bug,
or should the delve debugger not expect to read vvar?
4) Is it sensible for a debugger to attempt to read things with the "pf"
flag? Note that the "dd" ("do not include area into core dump")
flag is not set.
ProblemType: Bug
DistroRelease: Ubuntu 21.10
Package: linux-image-
ProcVersionSign
Uname: Linux 5.11.0-20-generic aarch64
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Jul 29 21:21 seq
crw-rw---- 1 root audio 116, 33 Jul 29 21:21 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.11-0ubuntu67
Architecture: arm64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
CasperMD5CheckR
Date: Thu Jul 29 21:34:34 2021
InstallationDate: Installed on 2021-07-29 (0 days ago)
InstallationMedia: Ubuntu-Server 21.10 "Impish Indri" - Alpha arm64 (20210729)
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Lsusb-t:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=
MachineType: QEMU QEMU Virtual Machine
PciMultimedia:
ProcEnviron:
TERM=screen-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=C.UTF-8
SHELL=/bin/bash
ProcFB:
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.199
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/06/2015
dmi.bios.release: 0.0
dmi.bios.vendor: EFI Development Kit II / OVMF
dmi.bios.version: 0.0.0
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.
dmi.modalias: dmi:bvnEFIDevel
dmi.product.name: QEMU Virtual Machine
dmi.product.
dmi.sys.vendor: QEMU
Related branches
- Ubuntu Release Team: Pending requested
-
Diff: 13 lines (+5/-0)1 file modifiedubuntu-release (+5/-0)
tags: | added: update-excuse |
description: | updated |
affects: | linux → delve |
Changed in delve: | |
status: | Unknown → Fix Released |
This change was made by a bot.