Opened 7 weeks ago

Closed 6 weeks ago

#19233 closed bug (fixed)

KDL when compiling using Clang and RAMFS

Reported by: dovsienko Owned by: nobody
Priority: high Milestone: R1/beta6
Component: File Systems/RAMFS Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Using the most current nightly snapshot of Haiku and the most current snapshot of tcpdump, the build matrix script eventually causes the host (VM with 4 cores and %GB RAM) to invoke KDL (screenshot attached). Steps to reproduce:

git clone https://git.tcpdump.org/tcpdump/
cd tcpdump
./build_matrix.sh
[...]
===== SETUP 23: CC=clang BUILD_LIBPCAP=yes REMOTE=no CMAKE=yes CRYPTO=yes SMB=no =====
$ ./build.sh
clang version 19.1.3
Target: x86_64-unknown-haiku
Thread model: posix
InstalledDir: /boot/system/bin
Compiler identification: clang-19.1.3
$ rm -rf CMakeFiles/ CMakeCache.txt build/
$ mkdir build
$ cd build
$ cmake -Werror=dev -DWITH_CRYPTO=yes -DENABLE_SMB=no -DEXTRA_CFLAGS=-Werror -DCMAKE_INSTALL_PREFIX=/boot/system/var/shared_memory/tcpdump_build_matrix.QeZ9OrbH -DCMAKE_PREFIX_PATH=/boot/system/var/shared_memory/tcpdump_build_matrix.QeZ9OrbH ..
-- The C compiler identification is Clang 19.1.3
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /boot/home/config/non-packaged/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Building 64-bit
-- Checking C compiler flag -std=gnu99
-- Performing Test std-gnu99
-- Performing Test std-gnu99 - Success
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Looking for rpc/rpc.h
-- Looking for rpc/rpc.h - not found
-- Looking for strlcat
-- Looking for strlcat - found
-- Looking for strlcpy
-- Looking for strlcpy - found
-- Looking for strsep
-- Looking for strsep - not found
-- Looking for gethostbyaddr
-- Looking for gethostbyaddr - not found
-- Looking for gethostbyaddr in socket
-- Looking for gethostbyaddr in socket - not found
-- Looking for gethostbyaddr in nsl
-- Looking for gethostbyaddr in nsl - not found
-- Looking for gethostbyaddr in network
-- Looking for gethostbyaddr in network - found
-- Looking for getservent
-- Looking for getservent - found
-- Performing Test SUITABLE_SNPRINTF
-- Performing Test SUITABLE_SNPRINTF - Success
-- Looking for getopt_long
-- Looking for getopt_long - found
-- Looking for fork
-- Looking for fork - found
-- Looking for vfork
-- Looking for vfork - found
-- Looking for getrpcbynumber
-- Looking for getrpcbynumber - not found
-- Looking for getrpcbynumber
-- Looking for getrpcbynumber - not found
-- Looking for ether_ntohost
-- Looking for ether_ntohost - not found
-- Found PkgConfig: /bin/pkg-config (found version "0.29.2")
-- Checking for one of the modules 'libpcap'
-- Looking for pcap/pcap-inttypes.h
-- Looking for pcap/pcap-inttypes.h - found
-- Looking for pcap_create
-- Looking for pcap_create - found
-- Looking for pcap_set_tstamp_type
-- Looking for pcap_set_tstamp_type - found
-- Looking for pcap_set_tstamp_precision
-- Looking for pcap_set_tstamp_precision - found
-- Looking for pcap_set_immediate_mode
-- Looking for pcap_set_immediate_mode - found
-- Looking for pcap_dump_ftell64
-- Looking for pcap_dump_ftell64 - found
-- Looking for pcap_open
-- Looking for pcap_open - found
-- Looking for pcap_findalldevs_ex
-- Looking for pcap_findalldevs_ex - found
-- Looking for pcap_set_parser_debug
-- Looking for pcap_set_parser_debug - not found
-- Looking for pcap_debug
-- Looking for pcap_debug - not found
-- Looking for yydebug
-- Looking for yydebug - not found
-- Looking for pcap_set_optimizer_debug
-- Looking for pcap_set_optimizer_debug - not found
-- Looking for bpf_dump
-- Looking for bpf_dump - found
-- Could NOT find SMI (missing: SMI_INCLUDE_DIR SMI_LIBRARY) 
-- Checking for module 'libcrypto'
--   Found libcrypto, version 1.1.1w
-- Found CRYPTO: /packages/openssl-1.1.1w-2/.self/develop/headers
-- Looking for EVP_CIPHER_CTX_new
-- Looking for EVP_CIPHER_CTX_new - found
-- Looking for EVP_DecryptInit_ex
-- Looking for EVP_DecryptInit_ex - found
-- Looking for include file sys/capsicum.h
-- Looking for include file sys/capsicum.h - not found
-- Looking for cap-ng.h
-- Looking for cap-ng.h - not found
-- Looking for capng_change_id in cap-ng
-- Looking for capng_change_id in cap-ng - not found
-- Checking C compiler flag -W
-- Performing Test W
-- Performing Test W - Success
-- Checking C compiler flag -Wall
-- Performing Test Wall
-- Performing Test Wall - Success
-- Checking C compiler flag -Wassign-enum
-- Performing Test Wassign-enum
-- Performing Test Wassign-enum - Success
-- Checking C compiler flag -Wcast-qual
-- Performing Test Wcast-qual
-- Performing Test Wcast-qual - Success
-- Checking C compiler flag -Wmissing-prototypes
-- Performing Test Wmissing-prototypes
-- Performing Test Wmissing-prototypes - Success
-- Checking C compiler flag -Wmissing-variable-declarations
-- Performing Test Wmissing-variable-declarations
-- Performing Test Wmissing-variable-declarations - Success
-- Checking C compiler flag -Wold-style-definition
-- Performing Test Wold-style-definition
-- Performing Test Wold-style-definition - Success
-- Checking C compiler flag -Wpedantic
-- Performing Test Wpedantic
-- Performing Test Wpedantic - Success
-- Checking C compiler flag -Wpointer-arith
-- Performing Test Wpointer-arith
-- Performing Test Wpointer-arith - Success
-- Checking C compiler flag -Wpointer-sign
-- Performing Test Wpointer-sign
-- Performing Test Wpointer-sign - Success
-- Checking C compiler flag -Wshadow
-- Performing Test Wshadow
-- Performing Test Wshadow - Success
-- Checking C compiler flag -Wsign-compare
-- Performing Test Wsign-compare
-- Performing Test Wsign-compare - Success
-- Checking C compiler flag -Wstrict-prototypes
-- Performing Test Wstrict-prototypes
-- Performing Test Wstrict-prototypes - Success
-- Checking C compiler flag -Wundef
-- Performing Test Wundef
-- Performing Test Wundef - Success
-- Checking C compiler flag -Wunreachable-code-return
-- Performing Test Wunreachable-code-return
-- Performing Test Wunreachable-code-return - Success
-- Checking C compiler flag -Wused-but-marked-unused
-- Performing Test Wused-but-marked-unused
-- Performing Test Wused-but-marked-unused - Success
-- Checking C compiler flag -Wwrite-strings
-- Performing Test Wwrite-strings
-- Performing Test Wwrite-strings - Success
-- Added extra compile options (-Werror)
-- Found perl at /bin/perl
-- Configuring done (41.1s)
-- Generating done (0.1s)
-- Build files have been written to: /boot/home/gitrepos/tcpdump/build
$ make -s clean
$ make
[  0%] Building C object CMakeFiles/netdissect.dir/addrtoname.c.o
[  1%] Building C object CMakeFiles/netdissect.dir/addrtostr.c.o
[  1%] Building C object CMakeFiles/netdissect.dir/af.c.o
[  2%] Building C object CMakeFiles/netdissect.dir/ascii_strcasecmp.c.o
[  2%] Building C object CMakeFiles/netdissect.dir/checksum.c.o
[  3%] Building C object CMakeFiles/netdissect.dir/cpack.c.o
[  3%] Building C object CMakeFiles/netdissect.dir/gmpls.c.o
[  4%] Building C object CMakeFiles/netdissect.dir/in_cksum.c.o
[  4%] Building C object CMakeFiles/netdissect.dir/ipproto.c.o
[  5%] Building C object CMakeFiles/netdissect.dir/l2vpn.c.o
[  5%] Building C object CMakeFiles/netdissect.dir/netdissect.c.o
[  6%] Building C object CMakeFiles/netdissect.dir/netdissect-alloc.c.o
[  6%] Building C object CMakeFiles/netdissect.dir/nlpid.c.o
[  7%] Building C object CMakeFiles/netdissect.dir/ntp.c.o
[  8%] Building C object CMakeFiles/netdissect.dir/oui.c.o
[  8%] Building C object CMakeFiles/netdissect.dir/parsenfsfh.c.o
[  9%] Building C object CMakeFiles/netdissect.dir/print.c.o
[  9%] Building C object CMakeFiles/netdissect.dir/print-802_11.c.o
[ 10%] Building C object CMakeFiles/netdissect.dir/print-802_15_4.c.o
[ 10%] Building C object CMakeFiles/netdissect.dir/print-ah.c.o
[ 10%] Building C object CMakeFiles/netdissect.dir/print-aodv.c.o
[ 11%] Building C object CMakeFiles/netdissect.dir/print-ahcp.c.o
[ 11%] Building C object CMakeFiles/netdissect.dir/print-ap1394.c.o
[ 12%] Building C object CMakeFiles/netdissect.dir/print-aoe.c.o
[ 13%] Building C object CMakeFiles/netdissect.dir/print-arcnet.c.o
[ 13%] Building C object CMakeFiles/netdissect.dir/print-arista.c.o
[ 14%] Building C object CMakeFiles/netdissect.dir/print-arp.c.o
[ 15%] Building C object CMakeFiles/netdissect.dir/print-ascii.c.o
[ 15%] Building C object CMakeFiles/netdissect.dir/print-atalk.c.o
[ 15%] Building C object CMakeFiles/netdissect.dir/print-babel.c.o
[ 16%] Building C object CMakeFiles/netdissect.dir/print-atm.c.o
[ 17%] Building C object CMakeFiles/netdissect.dir/print-bcm-li.c.o
[ 17%] Building C object CMakeFiles/netdissect.dir/print-beep.c.o
[ 18%] Building C object CMakeFiles/netdissect.dir/print-bfd.c.o
[ 18%] Building C object CMakeFiles/netdissect.dir/print-bgp.c.o
[ 19%] Building C object CMakeFiles/netdissect.dir/print-bootp.c.o
[ 19%] Building C object CMakeFiles/netdissect.dir/print-brcmtag.c.o
[ 20%] Building C object CMakeFiles/netdissect.dir/print-bt.c.o
[ 20%] Building C object CMakeFiles/netdissect.dir/print-calm-fast.c.o
[ 21%] Building C object CMakeFiles/netdissect.dir/print-carp.c.o
[ 22%] Building C object CMakeFiles/netdissect.dir/print-cdp.c.o
[ 22%] Building C object CMakeFiles/netdissect.dir/print-cfm.c.o
[ 23%] Building C object CMakeFiles/netdissect.dir/print-chdlc.c.o
[ 23%] Building C object CMakeFiles/netdissect.dir/print-cip.c.o
[ 24%] Building C object CMakeFiles/netdissect.dir/print-cnfp.c.o
[ 24%] Building C object CMakeFiles/netdissect.dir/print-dccp.c.o
[ 25%] Building C object CMakeFiles/netdissect.dir/print-decnet.c.o
[ 25%] Building C object CMakeFiles/netdissect.dir/print-dhcp6.c.o
[ 25%] Building C object CMakeFiles/netdissect.dir/print-dsa.c.o
[ 27%] Building C object CMakeFiles/netdissect.dir/print-dtp.c.o
[ 27%] Building C object CMakeFiles/netdissect.dir/print-domain.c.o
[ 27%] Building C object CMakeFiles/netdissect.dir/print-dvmrp.c.o
[ 28%] Building C object CMakeFiles/netdissect.dir/print-eap.c.o
[ 29%] Building C object CMakeFiles/netdissect.dir/print-egp.c.o
[ 29%] Building C object CMakeFiles/netdissect.dir/print-eigrp.c.o
[ 30%] Building C object CMakeFiles/netdissect.dir/print-enc.c.o
[ 30%] Building C object CMakeFiles/netdissect.dir/print-erspan.c.o
[ 31%] Building C object CMakeFiles/netdissect.dir/print-esp.c.o
[ 31%] Building C object CMakeFiles/netdissect.dir/print-ether.c.o
[ 32%] Building C object CMakeFiles/netdissect.dir/print-fddi.c.o
[ 32%] Building C object CMakeFiles/netdissect.dir/print-forces.c.o
[ 33%] Building C object CMakeFiles/netdissect.dir/print-fr.c.o
[ 33%] Building C object CMakeFiles/netdissect.dir/print-frag6.c.o
[ 34%] Building C object CMakeFiles/netdissect.dir/print-ftp.c.o
[ 34%] Building C object CMakeFiles/netdissect.dir/print-geneve.c.o
[ 35%] Building C object CMakeFiles/netdissect.dir/print-geonet.c.o
[ 36%] Building C object CMakeFiles/netdissect.dir/print-gre.c.o
[ 36%] Building C object CMakeFiles/netdissect.dir/print-hncp.c.o
[ 37%] Building C object CMakeFiles/netdissect.dir/print-hsrp.c.o
[ 37%] Building C object CMakeFiles/netdissect.dir/print-http.c.o
[ 38%] Building C object CMakeFiles/netdissect.dir/print-icmp.c.o
[ 38%] Building C object CMakeFiles/netdissect.dir/print-icmp6.c.o
[ 38%] Building C object CMakeFiles/netdissect.dir/print-igrp.c.o
[ 39%] Building C object CMakeFiles/netdissect.dir/print-igmp.c.o
[ 40%] Building C object CMakeFiles/netdissect.dir/print-ip-demux.c.o
[ 40%] Building C object CMakeFiles/netdissect.dir/print-ip.c.o
[ 41%] Building C object CMakeFiles/netdissect.dir/print-ip6.c.o
[ 41%] Building C object CMakeFiles/netdissect.dir/print-ip6opts.c.o
[ 42%] Building C object CMakeFiles/netdissect.dir/print-ipcomp.c.o
[ 43%] Building C object CMakeFiles/netdissect.dir/print-ipfc.c.o
[ 43%] Building C object CMakeFiles/netdissect.dir/print-ipnet.c.o
[ 44%] Building C object CMakeFiles/netdissect.dir/print-ipoib.c.o
[ 44%] Building C object CMakeFiles/netdissect.dir/print-ipx.c.o
[ 45%] Building C object CMakeFiles/netdissect.dir/print-isakmp.c.o
[ 46%] Building C object CMakeFiles/netdissect.dir/print-isoclns.c.o
[ 46%] Building C object CMakeFiles/netdissect.dir/print-juniper.c.o
[ 46%] Building C object CMakeFiles/netdissect.dir/print-krb.c.o
[ 47%] Building C object CMakeFiles/netdissect.dir/print-l2tp.c.o
[ 47%] Building C object CMakeFiles/netdissect.dir/print-lane.c.o
[ 48%] Building C object CMakeFiles/netdissect.dir/print-ldp.c.o
[ 48%] Building C object CMakeFiles/netdissect.dir/print-lisp.c.o
[ 49%] Building C object CMakeFiles/netdissect.dir/print-llc.c.o
[ 50%] Building C object CMakeFiles/netdissect.dir/print-lldp.c.o
[ 50%] Building C object CMakeFiles/netdissect.dir/print-lmp.c.o
[ 51%] Building C object CMakeFiles/netdissect.dir/print-loopback.c.o
[ 51%] Building C object CMakeFiles/netdissect.dir/print-lspping.c.o
(the VM displays KDL and the SSH session times out)

Attachments (1)

Screenshot_2024-11-07_12-20-03.png (37.5 KB ) - added by dovsienko 7 weeks ago.
KDL screenshot

Download all attachments as: .zip

Change History (6)

by dovsienko, 7 weeks ago

KDL screenshot

comment:1 by waddlesplash, 6 weeks ago

The first KDL message and stack trace are cut off. A more full KDL log obtained through a syslog would be more helpful. Also, what hrev is this?

I tried running this exact job from the matrix multiple ways (with Clang 18 and 19) on RAMFS, and didn't see the crash here.

comment:2 by dovsienko, 6 weeks ago

At the time of the bug report it was hrev58305. It isn't really smart of me to forget using the serial console on the VM to extract the stack trace and/or saving the VM state. /var/log/syslog does not seem to contain any relevant error messages now, I tried to reproduce the problem several times over using the current snapshot (hrev58314), but it did not reproduce. Let me see if this happens again.

comment:3 by waddlesplash, 6 weeks ago

I actually just got a KDL somewhat similar to this one randomly while trying to run QtWebEngine:

PANIC: Invalid concurrent access to page 0x4F0EA000 (start), currently accessed by: 438
Welcome to Kernel Debugging Land...
Thread 326 "pthread func" running on CPU 2
stack trace for thread 326 "pthread func"
    kernel stack: 0xffffffff821ee000 to 0xffffffff821f3000
      user stack: 0x00007f7ec3e40000 to 0x00007f7ec3e80000
frame                       caller             <image>:function + offset
 0 ffffffff821f28c0 (+  16) ffffffff8027827c   <kernel_x86_64> arch_debug_stack_trace + 0x13
 1 ffffffff821f28e0 (+  32) ffffffff801a6a15   <kernel_x86_64> stack_trace_trampoline(void*) + 0x11
 2 ffffffff821f2900 (+  32) ffffffff8026b920   <kernel_x86_64> arch_debug_call_with_fault_handler + 0x1a
 3 ffffffff821f2950 (+  80) ffffffff801a8cd6   <kernel_x86_64> debug_call_with_fault_handler + 0x7a
 4 ffffffff821f29e0 (+ 144) ffffffff801a6d0c   <kernel_x86_64> kernel_debugger_loop(char const*, char const*, __va_list_tag*, int) + 0x2f4
 5 ffffffff821f2a20 (+  64) ffffffff801a716b   <kernel_x86_64> kernel_debugger_internal(char const*, char const*, __va_list_tag*, int) + 0x76
 6 ffffffff821f2b10 (+ 240) ffffffff801a9318   <kernel_x86_64> panic + 0xc9
 7 ffffffff821f2b40 (+  48) ffffffff8026f765   <kernel_x86_64> vm_page_debug_access_start(vm_page*) + 0x69
 8 ffffffff821f2c20 (+ 224) ffffffff80270d4f   <kernel_x86_64> X86VMTranslationMap64Bit::UnmapArea(VMArea*, bool, bool) + 0x35d
 9 ffffffff821f2c70 (+  80) ffffffff802451fc   <kernel_x86_64> delete_area(VMAddressSpace*, VMArea*, bool, bool) + 0xfb
10 ffffffff821f2e40 (+ 464) ffffffff80240d5c   <kernel_x86_64> cut_area(VMAddressSpace*, VMArea*, unsigned long, unsigned long, VMArea**, bool) + 0xe1
11 ffffffff821f2ed0 (+ 144) ffffffff80241cbd   <kernel_x86_64> unmap_address_range(VMAddressSpace*, unsigned long, unsigned long, bool) + 0x101
12 ffffffff821f2f20 (+  80) ffffffff8024c32f   <kernel_x86_64> _user_unmap_memory + 0x11c
13 ffffffff821f2f30 (+  16) ffffffff8026d5df   <kernel_x86_64> x86_64_syscall_entry + 0xfb
user iframe at 0xffffffff821f2f30 (end = 0xffffffff821f2ff8)
 rax 0xd5                  rbx 0x10842b655840        rcx 0x1ea5c35026c
 rdx 0x0                   rsi 0xffc7e0              rdi 0x6e75ee8000
 rbp 0x7f7ec3e7f180         r8 0x150                  r9 0x7
 r10 0x0                   r11 0x202                 r12 0x0
 r13 0x108428b2be28        r14 0x10842b50dbe0        r15 0x108428b2bdf0
 rip 0x1ea5c35026c         rsp 0x7f7ec3e7f168     rflags 0x202
 vector: 0x63, error code: 0x0
14 00007f7ec3e7f180 (+   0) 000001ea5c35026c   <libroot.so> _kern_unmap_memory + 0x0c
15 00007f7ec3e7f1a0 (+  32) 00000082ad8bdc3b   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x1a48c3b
16 00007f7ec3e7f1e0 (+  64) 00000082aeae6eb9   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x2c71eb9
17 00007f7ec3e7f200 (+  32) 00000082af833153   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x39be153
18 00007f7ec3e7f220 (+  32) 00000082af833bc1   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x39bebc1
19 00007f7ec3e7f280 (+  96) 00000082ad38db4c   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x1518b4c
20 00007f7ec3e7f3a0 (+ 288) 00000082aeb5bd37   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x2ce6d37
21 00007f7ec3e7f410 (+ 112) 00000082aeb59c67   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x2ce4c67
22 00007f7ec3e7f4d0 (+ 192) 00000082b2b5fdbd   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x6ceadbd
23 00007f7ec3e7f4f0 (+  32) 00000082aeea3e3e   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x302ee3e
24 00007f7ec3e7f510 (+  32) 00000082af332431   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x34bd431
25 00007f7ec3e7f630 (+ 288) 00000082af1faff1   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x3385ff1
26 00007f7ec3e7f7d0 (+ 416) 00000082af21a338   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33a5338
27 00007f7ec3e7f8a0 (+ 208) 00000082af245cb8   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33d0cb8
28 00007f7ec3e7fa10 (+ 368) 00000082af219625   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33a4625
29 00007f7ec3e7fad0 (+ 192) 00000082af221f4d   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33acf4d
30 00007f7ec3e7faf0 (+  32) 00000082af22266d   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33ad66d
31 00007f7ec3e7fb20 (+  48) 00000082af24212b   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33cd12b
32 00007f7ec3e7fb40 (+  32) 000001ea5c35e888   <libroot.so> pthread_exit (nearest) + 0x38
33 0000000000000000 (+   0) 00007f27f5b8a2b0   <commpage> commpage_thread_exit + 0x00
initial commands:  page -m 0xffffffff848af920; sc 438; cache _cache
PAGE: 0xffffffff848af920
queue_next,prev: 0xffffffff848b0460, 0xffffffff848af880
physical_number: 0x4f0ea
cache:           0xffffffff90a4ae08
cache_offset:    32
cache_next:      0xffffffff848b3110
state:           active
wired_count:     0
usage_count:     0
busy:            1
busy_writing:    0
accessed:        1
modified:        1
accessor:        438
area mappings:
all mappings:
  aspace 1, area 1: 0xffffff004f0ea000 (rw modified accessed)
stack trace for thread 438 "pthread func"
    kernel stack: 0xffffffff8227a000 to 0xffffffff8227f000
      user stack: 0x00007f2dc397d000 to 0x00007f2dc39bd000
frame                       caller             <image>:function + offset
 0 ffffffff8227df80 (+  80) ffffffff8027ba10   <kernel_x86_64> arch_thread_context_switch + 0x170
 1 ffffffff8227dfb0 (+  48) ffffffff8017eadc   <kernel_x86_64> switch_thread(BKernel::Thread*, BKernel::Thread*) + 0xbd
 2 ffffffff8227e070 (+ 192) ffffffff8017f0e7   <kernel_x86_64> reschedule(int) + 0x5fc
 3 ffffffff8227e0a0 (+  48) ffffffff8017f17a   <kernel_x86_64> scheduler_reschedule + 0x79
 4 ffffffff8227e0c0 (+  32) ffffffff8016bdc9   <kernel_x86_64> thread_block_locked(BKernel::Thread*) + 0x51
 5 ffffffff8227e0f0 (+  48) ffffffff8016be0d   <kernel_x86_64> thread_block + 0x38
 6 ffffffff8227e150 (+  96) ffffffff801792e7   <kernel_x86_64> rw_lock_wait(rw_lock*, bool, BPrivate::AutoLocker<spinlock, BPrivate::InterruptsSpinLocking>&) + 0x9a
 7 ffffffff8227e1a0 (+  80) ffffffff80179874   <kernel_x86_64> _rw_lock_read_lock + 0x130
 8 ffffffff8227e1d0 (+  48) ffffffff80230808   <kernel_x86_64> rw_lock_read_lock + 0x39
 9 ffffffff8227e1f0 (+  32) ffffffff80238814   <kernel_x86_64> VMAddressSpace::ReadLock() + 0x1c
10 ffffffff8227e220 (+  48) ffffffff80258158   <kernel_x86_64> AddressSpaceReadLocker::SetTo(VMAddressSpace*, bool) + 0x74
11 ffffffff8227e250 (+  48) ffffffff80257fdf   <kernel_x86_64> AddressSpaceReadLocker::AddressSpaceReadLocker(VMAddressSpace*, bool) + 0x3f
12 ffffffff8227e280 (+  48) ffffffff80264c73   <kernel_x86_64> PageFaultContext::PageFaultContext(VMAddressSpace*, bool) + 0x2d
13 ffffffff8227e3f0 (+ 368) ffffffff80248823   <kernel_x86_64> vm_soft_fault(VMAddressSpace*, unsigned long, bool, bool, bool, vm_page**) + 0x5a
14 ffffffff8227e510 (+ 288) ffffffff802481d3   <kernel_x86_64> vm_page_fault + 0x141
15 ffffffff8227e570 (+  96) ffffffff8027a2e3   <kernel_x86_64> x86_page_fault_exception + 0x3b9
16 ffffffff8227e8e8 (+ 888) ffffffff8026d2dc   <kernel_x86_64> int_bottom + 0x80
kernel iframe at 0xffffffff8227e8e8 (end = 0xffffffff8227e9b0)
 rax 0xf8e                 rbx 0xffffffff8020da50    rcx 0xf8e
 rdx 0xffffff004f0a8072    rsi 0xffffff004f0a8072    rdi 0x6e4c4e7000
 rbp 0xffffffff8227e9d0     r8 0x1                    r9 0xffffffff8028a092
 r10 0xffffffff8af84aa3    r11 0x206                 r12 0xffffffff909e2b80
 r13 0x55778b6             r14 0x95                  r15 0x0
 rip 0xffffffff8029a5e9    rsp 0xffffffff8227e9b8 rflags 0x50296
 vector: 0xe, error code: 0x2
17 ffffffff8227e9d0 (+ 232) ffffffff8029a5e9   <kernel_x86_64> _ZN12_GLOBAL(???, memcpy_repmovs, ???, ???, ???) + 0x29
18 ffffffff8227ea10 (+  64) ffffffff8029a7f9   <kernel_x86_64> memcpy + 0x86
19 ffffffff8227ea30 (+  32) ffffffff8023fbfe   <kernel_x86_64> _ZZN12_GLOBAL(???, arch_cpu_user_memcpy, ???, ???, ???, ???, ???, ???, ???, ???, ???) + 0x2e
20 ffffffff8227eab0 (+ 128) ffffffff8024d4f2   <kernel_x86_64> _ZN12_GLOBAL(???, user_access, ???, arch_cpu_user_memcpy, ???, ???, ???, ???, ???, ???, ???, ???) + 0x3d
21 ffffffff8227eb20 (+ 112) ffffffff8023fc54   <kernel_x86_64> _GLOBAL__N_1::arch_cpu_user_memcpy(void*, void const*, unsigned long) + 0x53
22 ffffffff8227eb50 (+  48) ffffffff80249e8e   <kernel_x86_64> user_memcpy + 0x76
23 ffffffff8227eba0 (+  80) ffffffff8028a113   <kernel_x86_64> X86PhysicalPageMapper::MemcpyFromPhysical(void*, unsigned long, unsigned long, bool) + 0x81
24 ffffffff8227ebd0 (+  48) ffffffff80249cea   <kernel_x86_64> vm_memcpy_from_physical + 0x4a
25 ffffffff8227ed00 (+ 304) ffffffff8af7ea2b   </boot/system/add-ons/kernel/file_systems/ramfs> DataContainer::_DoCacheIO[clone .localalias] (long, unsigned char*, long, unsigned long*, bool) + 0x277
26 ffffffff8227ed60 (+  96) ffffffff8af7e471   </boot/system/add-ons/kernel/file_systems/ramfs> DataContainer::ReadAt[clone .localalias] (long, void*, unsigned long, unsigned long*) + 0x16f
27 ffffffff8227edb0 (+  80) ffffffff8af8125a   </boot/system/add-ons/kernel/file_systems/ramfs> File::ReadAt(long, void*, unsigned long, unsigned long*) + 0x42
28 ffffffff8227ee40 (+ 144) ffffffff8af84bcb   </boot/system/add-ons/kernel/file_systems/ramfs> ramfs_read(fs_volume*, fs_vnode*, void*, long, void*, unsigned long*) + 0x128
29 ffffffff8227ee80 (+  64) ffffffff8020db0a   <kernel_x86_64> file_read(file_descriptor*, long, void*, unsigned long*) + 0xba
30 ffffffff8227eef0 (+ 112) ffffffff801f6731   <kernel_x86_64> common_user_io(int, long, void*, unsigned long, bool) + 0x228
31 ffffffff8227ef20 (+  48) ffffffff801f6a28   <kernel_x86_64> _user_read + 0x33
32 ffffffff8227ef30 (+  16) ffffffff8026d5df   <kernel_x86_64> x86_64_syscall_entry + 0xfb
user iframe at 0xffffffff8227ef30 (end = 0xffffffff8227eff8)
 rax 0x95                  rbx 0x10000               rcx 0x1ea5c34fe6c
 rdx 0x6e4c4e7000          rsi 0x10072               rdi 0x0
 rbp 0x7f2dc39bbc20         r8 0x7f2dc39bbad8         r9 0x1
 r10 0x10000               r11 0x206                 r12 0x10842b3897e0
 r13 0x0                   r14 0x6e4c4e7000          r15 0x0
 rip 0x1ea5c34fe6c         rsp 0x7f2dc39bbc08     rflags 0x206
 vector: 0x63, error code: 0x0
33 00007f2dc39bbc20 (+   0) 000001ea5c34fe6c   <libroot.so> _kern_read + 0x0c
34 00007f2dc39bbcf0 (+ 208) 00000082af239be3   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33c4be3
35 00007f2dc39bbd70 (+ 128) 00000082af3454d0   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x34d04d0
36 00007f2dc39bbec0 (+ 336) 00000082af3314cd   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x34bc4cd
37 00007f2dc39bbf20 (+  96) 00000082af2256fc   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33b06fc
38 00007f2dc39bbf90 (+ 112) 00000082af22597b   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33b097b
39 00007f2dc39bc0b0 (+ 288) 00000082af1faff1   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x3385ff1
40 00007f2dc39bc250 (+ 416) 00000082af21a308   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33a5308
41 00007f2dc39bc320 (+ 208) 00000082af245cb8   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33d0cb8
42 00007f2dc39bc490 (+ 368) 00000082af219625   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33a4625
43 00007f2dc39bc550 (+ 192) 00000082af221f4d   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33acf4d
44 00007f2dc39bc570 (+  32) 00000082af22266d   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33ad66d
45 00007f2dc39bc5a0 (+  48) 00000082af24212b   </boot/system/lib/libQt5WebEngineCore.so.5.15.17@0x00000082abe75000> <unknown> + 0x33cd12b
46 00007f2dc39bc5c0 (+  32) 000001ea5c35e888   <libroot.so> pthread_exit (nearest) + 0x38
47 0000000000000000 (+   0) 00007f27f5b8a2b0   <commpage> commpage_thread_exit + 0x00
CACHE 0xffffffff90a4ae08:
  ref_count:    4
  source:       0x0000000000000000
  type:         RAM
  virtual_base: 0x0
  virtual_end:  0xffc7e0
  temporary:    1
  lock:         0xffffffff90a4ae88
  lock.holder:  326
  areas:
    area 0x795f, libQt5WebEngineCore.so.5 mmap a
	base_addr:  0x6e75ee8000, size: 0xffd000
	protection: 0x2033
	owner:      0x110
  consumers:
  pages:
	4093 in cache

comment:4 by waddlesplash, 6 weeks ago

I suppose what's going on here is that the RAMFS read is occurring at the same time that an area is to be deleted, which counts as a concurrent access. I think the problem is that we can't use page accesses without holding the cache lock.

Looking at the file cache, it appears we don't need to use the page access states while busy/busy_writing anyway.

comment:5 by waddlesplash, 6 weeks ago

Milestone: UnscheduledR1/beta6
Resolution: fixed
Status: newclosed

Fixed in hrev58327.

Note: See TracTickets for help on using tickets.