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)
Change History (6)
by , 7 weeks ago
Attachment: | Screenshot_2024-11-07_12-20-03.png added |
---|
comment:1 by , 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 , 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 , 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 , 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 , 6 weeks ago
Milestone: | Unscheduled → R1/beta6 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed in hrev58327.
KDL screenshot