nixbot

builds

succeeded vm-test-run-zhost-sync checks.x86_64-linux.nixos-sync · build #5 · raw

1Machine state will be reset. To keep it, pass --keep-machine-state2start all VLans3(finished: start all VLans, in 0.00 seconds)4Test will time out and terminate in 3600.0 seconds5run the VM test script6additionally exposed symbols:7 machine,8 vlan1,9 start_all, test_script, machines, machines_qemu, machines_nspawn, vlans, driver, log, os, create_machine, subtest, run_tests, join_all, retry, serial_stdout_off, serial_stdout_on, polling_condition, BaseMachine, QemuMachine, NspawnMachine, t, debug, dump_machine_ssh10machine: waiting for unit postgresql.service11machine: waiting for the VM to finish booting12machine: starting vm13machine # Disk image does not exist, creating the virtualisation disk image...14machine # Formatting '/build/vm-state-machine/tmp.eyJRHoVXaY', fmt=raw size=107374182415machine # mke2fs 1.47.4 (6-Mar-2025)16machine # Discarding device blocks: 0/262144 done17machine # Creating filesystem with 262144 4k blocks and 65536 inodes18machine # Filesystem UUID: 72de9255-9baa-41d3-8bac-67b648a3872519machine # Superblock backups stored on blocks:20machine # 32768, 98304, 163840, 22937621machine # 22machine # Allocating group tables: 0/8 done23machine # Writing inode tables: 0/8 done24machine: QEMU running (pid 45)25machine # Creating journal (8192 blocks): done26machine # Writing superblocks and filesystem accounting information: 0/8 done27machine # 28machine # Virtualisation disk image created.29machine # SeaBIOS (version rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org)30machine # 31machine # 32machine # iPXE (http://ipxe.org) 00:02.0 CA00 PCI2.10 PnP PMM+3EFCC730+3EF2C730 CA0033machine # Press Ctrl-B to configure iPXE (PCI 00:02.0)...34machine # 35machine # 36machine # 37machine # 38machine # iPXE (http://ipxe.org) 00:08.0 CB00 PCI2.10 PnP PMM 3EFCC730 3EF2C730 CB0039machine # Press Ctrl-B to configure iPXE (PCI 00:08.0)...40machine # 41machine # 42machine # Booting from ROM...43machine # Probing EDD (edd=off to disable)... ok44machine # [ 0.000000] Linux version 6.18.49 (nixbld@localhost) (gcc (GCC) 15.3.0, GNU ld (GNU Binutils) 2.46) #1-NixOS SMP PREEMPT_DYNAMIC Wed Sep 2 12:31:51 UTC 202645machine # [ 0.000000] Command line: console=ttyS0 console=tty0 panic=1 boot.panic_on_fail clocksource=acpi_pm root=fstab loglevel=7 net.ifnames=0 lsm=landlock,yama,bpf init=/nix/store/xp6n5r0v6jz9ia648vk2v1ipc9ni851l-nixos-system-machine-test/init regInfo=/nix/store/hhnyqrvlw6mjsaw262j3gsl907fvm2ha-closure-info/registration console=ttyS0,115200n8 console=tty046machine # [ 0.000000] x86 CPU feature dependency check failure: CPU0 has '18*32+31' enabled but '18*32+26' disabled. Kernel might be fine, but no guarantees.47machine # [ 0.000000] BIOS-provided physical RAM map:48machine # [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable49machine # [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved50machine # [ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved51machine # [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003ffd7fff] usable52machine # [ 0.000000] BIOS-e820: [mem 0x000000003ffd8000-0x000000003fffffff] reserved53machine # [ 0.000000] BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved54machine # [ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved55machine # [ 0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved56machine # [ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved57machine # [ 0.000000] BIOS-e820: [mem 0x000000fd00000000-0x000000ffffffffff] reserved58machine # [ 0.000000] NX (Execute Disable) protection: active59machine # [ 0.000000] APIC: Static calls initialized60machine # [ 0.000000] SMBIOS 2.8 present.61machine # [ 0.000000] DMI: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/201462machine # [ 0.000000] DMI: Memory slots populated: 1/163machine # [ 0.000000] Hypervisor detected: KVM64machine # [ 0.000000] last_pfn = 0x3ffd8 max_arch_pfn = 0x40000000065machine # [ 0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d0066machine # [ 0.000000] kvm-clock: using sched offset of 444402224 cycles67machine # [ 0.000001] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns68machine # [ 0.000004] tsc: Detected 3792.874 MHz processor69machine # [ 0.000655] last_pfn = 0x3ffd8 max_arch_pfn = 0x40000000070machine # [ 0.000684] MTRR map: 4 entries (3 fixed + 1 variable; max 19), built from 8 variable MTRRs71machine # [ 0.000686] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT72machine # [ 0.002216] found SMP MP-table at [mem 0x000f5450-0x000f545f]73machine # [ 0.002226] Using GB pages for direct mapping74machine # [ 0.002272] RAMDISK: [mem 0x3e36b000-0x3ffcffff]75machine # [ 0.002277] ACPI: Early table checksum verification disabled76machine # [ 0.002279] ACPI: RSDP 0x00000000000F5270 000014 (v00 BOCHS )77machine # [ 0.002281] ACPI: RSDT 0x000000003FFE2422 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)78machine # [ 0.002285] ACPI: FACP 0x000000003FFE221A 0000F4 (v03 BOCHS BXPC 00000001 BXPC 00000001)79machine # [ 0.002290] ACPI: DSDT 0x000000003FFE0040 0021DA (v01 BOCHS BXPC 00000001 BXPC 00000001)80machine # [ 0.002291] ACPI: FACS 0x000000003FFE0000 00004081machine # [ 0.002293] ACPI: APIC 0x000000003FFE230E 000078 (v03 BOCHS BXPC 00000001 BXPC 00000001)82machine # [ 0.002294] ACPI: HPET 0x000000003FFE2386 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)83machine # [ 0.002295] ACPI: MCFG 0x000000003FFE23BE 00003C (v01 BOCHS BXPC 00000001 BXPC 00000001)84machine # [ 0.002297] ACPI: WAET 0x000000003FFE23FA 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001)85machine # [ 0.002298] ACPI: Reserving FACP table memory at [mem 0x3ffe221a-0x3ffe230d]86machine # [ 0.002299] ACPI: Reserving DSDT table memory at [mem 0x3ffe0040-0x3ffe2219]87machine # [ 0.002299] ACPI: Reserving FACS table memory at [mem 0x3ffe0000-0x3ffe003f]88machine # [ 0.002300] ACPI: Reserving APIC table memory at [mem 0x3ffe230e-0x3ffe2385]89machine # [ 0.002300] ACPI: Reserving HPET table memory at [mem 0x3ffe2386-0x3ffe23bd]90machine # [ 0.002301] ACPI: Reserving MCFG table memory at [mem 0x3ffe23be-0x3ffe23f9]91machine # [ 0.002301] ACPI: Reserving WAET table memory at [mem 0x3ffe23fa-0x3ffe2421]92machine # [ 0.002690] No NUMA configuration found93machine # [ 0.002692] Faking a node at [mem 0x0000000000000000-0x000000003ffd7fff]94machine # [ 0.002694] NODE_DATA(0) allocated [mem 0x3ffd2780-0x3ffd7cff]95machine # [ 0.002767] Zone ranges:96machine # [ 0.002768] DMA [mem 0x0000000000001000-0x0000000000ffffff]97machine # [ 0.002769] DMA32 [mem 0x0000000001000000-0x000000003ffd7fff]98machine # [ 0.002770] Normal empty99machine # [ 0.002770] Device empty100machine # [ 0.002771] Movable zone start for each node101machine # [ 0.002771] Early memory node ranges102machine # [ 0.002771] node 0: [mem 0x0000000000001000-0x000000000009efff]103machine # [ 0.002772] node 0: [mem 0x0000000000100000-0x000000003ffd7fff]104machine # [ 0.002773] Initmem setup node 0 [mem 0x0000000000001000-0x000000003ffd7fff]105machine # [ 0.002790] On node 0, zone DMA: 1 pages in unavailable ranges106machine # [ 0.003010] On node 0, zone DMA: 97 pages in unavailable ranges107machine # [ 0.017459] On node 0, zone DMA32: 40 pages in unavailable ranges108machine # [ 0.018332] ACPI: PM-Timer IO Port: 0x608109machine # [ 0.018340] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])110machine # [ 0.018358] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23111machine # [ 0.018360] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)112machine # [ 0.018361] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)113machine # [ 0.018362] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)114machine # [ 0.018363] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)115machine # [ 0.018363] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)116machine # [ 0.018365] ACPI: Using ACPI (MADT) for SMP configuration information117machine # [ 0.018366] ACPI: HPET id: 0x8086a201 base: 0xfed00000118machine # [ 0.018368] TSC deadline timer available119machine # [ 0.018372] CPU topo: Max. logical packages: 1120machine # [ 0.018372] CPU topo: Max. logical dies: 1121machine # [ 0.018372] CPU topo: Max. dies per package: 1122machine # [ 0.018375] CPU topo: Max. threads per core: 1123machine # [ 0.018376] CPU topo: Num. cores per package: 1124machine # [ 0.018376] CPU topo: Num. threads per package: 1125machine # [ 0.018376] CPU topo: Allowing 1 present CPUs plus 0 hotplug CPUs126machine # [ 0.018387] kvm-guest: APIC: eoi() replaced with kvm_guest_apic_eoi_write()127machine # [ 0.018410] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]128machine # [ 0.018411] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]129machine # [ 0.018412] [mem 0x40000000-0xafffffff] available for PCI devices130machine # [ 0.018413] Booting paravirtualized kernel on KVM131machine # [ 0.018415] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns132machine # [ 0.022078] setup_percpu: NR_CPUS:384 nr_cpumask_bits:1 nr_cpu_ids:1 nr_node_ids:1133machine # [ 0.023839] percpu: Embedded 98 pages/cpu s278528 r8192 d114688 u2097152134machine # [ 0.023871] kvm-guest: PV spinlocks disabled, single CPU135machine # [ 0.023872] Kernel command line: console=ttyS0 console=tty0 panic=1 boot.panic_on_fail clocksource=acpi_pm root=fstab loglevel=7 net.ifnames=0 lsm=landlock,yama,bpf init=/nix/store/xp6n5r0v6jz9ia648vk2v1ipc9ni851l-nixos-system-machine-test/init regInfo=/nix/store/hhnyqrvlw6mjsaw262j3gsl907fvm2ha-closure-info/registration console=ttyS0,115200n8 console=tty0136machine # [ 0.023944] Unknown kernel command line parameters "regInfo=/nix/store/hhnyqrvlw6mjsaw262j3gsl907fvm2ha-closure-info/registration", will be passed to user space.137machine # [ 0.023961] random: crng init done138machine # [ 0.023961] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes139machine # [ 0.024828] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)140machine # [ 0.024853] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)141machine # [ 0.024876] Fallback order for Node 0: 0142machine # [ 0.024877] Built 1 zonelists, mobility grouping on. Total pages: 262006143machine # [ 0.024878] Policy zone: DMA32144machine # [ 0.026871] mem auto-init: stack:all(zero), heap alloc:on, heap free:off145machine # [ 0.029408] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1146machine # [ 0.031411] allocated 2097152 bytes of page_ext147machine # [ 0.039991] ftrace: allocating 48732 entries in 192 pages148machine # [ 0.039992] ftrace: allocated 192 pages with 2 groups149machine # [ 0.040631] Dynamic Preempt: lazy150machine # [ 0.040773] rcu: Preemptible hierarchical RCU implementation.151machine # [ 0.040774] rcu: RCU event tracing is enabled.152machine # [ 0.040774] rcu: RCU restricting CPUs from NR_CPUS=384 to nr_cpu_ids=1.153machine # [ 0.040776] Trampoline variant of Tasks RCU enabled.154machine # [ 0.040776] Rude variant of Tasks RCU enabled.155machine # [ 0.040776] Tracing variant of Tasks RCU enabled.156machine # [ 0.040777] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.157machine # [ 0.040778] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1158machine # [ 0.040795] RCU Tasks: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.159machine # [ 0.040796] RCU Tasks Rude: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.160machine # [ 0.040797] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.161machine # [ 0.044508] NR_IRQS: 24832, nr_irqs: 256, preallocated irqs: 16162machine # [ 0.044747] rcu: srcu_init: Setting srcu_struct sizes based on contention.163machine # [ 0.044751] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns164machine # [ 0.044833] kfence: initialized - using 2097152 bytes for 255 objects at 0x(____ptrval____)-0x(____ptrval____)165machine # [ 0.050426] Console: colour VGA+ 80x25166machine # [ 0.050429] printk: legacy console [tty0] enabled167machine # [ 0.083239] printk: legacy console [ttyS0] enabled168machine # [ 0.231960] ACPI: Core revision 20250807169machine # [ 0.233125] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns170machine # [ 0.235221] APIC: Switch to symmetric I/O mode setup171machine # [ 0.236482] x2apic enabled172machine # [ 0.237372] APIC: Switched APIC routing to: physical x2apic173machine # [ 0.239435] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1174machine # [ 0.240793] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x6d5818a734c, max_idle_ns: 881590694765 ns175machine # [ 0.243061] Calibrating delay loop (skipped) preset value.. 7585.74 BogoMIPS (lpj=3792874)176machine # [ 0.245131] x86/cpu: User Mode Instruction Prevention (UMIP) activated177machine # [ 0.246165] Last level iTLB entries: 4KB 512, 2MB 255, 4MB 127178machine # [ 0.247062] Last level dTLB entries: 4KB 512, 2MB 255, 4MB 127, 1GB 0179machine # [ 0.248064] mitigations: Enabled attack vectors: user_kernel, user_user, guest_host, guest_guest, SMT mitigations: auto180machine # [ 0.249062] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl181machine # [ 0.250062] Spectre V2 : Mitigation: Retpolines182machine # [ 0.251062] Speculative Return Stack Overflow: Mitigation: Safe RET183machine # [ 0.252061] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization184machine # [ 0.254061] Spectre V2 : Spectre v2 / SpectreRSB: Filling RSB on context switch and VMEXIT185machine # [ 0.255061] Spectre V2 : Enabling Restricted Speculation for firmware calls186machine # [ 0.256062] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier187machine # [ 0.258062] active return thunk: srso_alias_return_thunk188machine # [ 0.259080] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'189machine # [ 0.261061] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'190machine # [ 0.263061] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'191machine # [ 0.264062] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'192machine # [ 0.265062] x86/fpu: Supporting XSAVE feature 0x800: 'Control-flow User registers'193machine # [ 0.266061] x86/fpu: Supporting XSAVE feature 0x1000: 'Control-flow Kernel registers (KVM only)'194machine # [ 0.268062] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256195machine # [ 0.269062] x86/fpu: xstate_offset[9]: 832, xstate_sizes[9]: 8196machine # [ 0.270062] x86/fpu: xstate_offset[11]: 840, xstate_sizes[11]: 16197machine # [ 0.271062] x86/fpu: xstate_offset[12]: 856, xstate_sizes[12]: 24198machine # [ 0.273062] x86/fpu: Enabled xstate features 0x1a07, context size is 880 bytes, using 'compacted' format.199machine # [ 0.300477] Freeing SMP alternatives memory: 44K200machine # [ 0.301063] pid_max: default: 32768 minimum: 301201machine # [ 0.302121] LSM: initializing lsm=capability,landlock,yama,bpf,ima202machine # [ 0.304130] landlock: Up and running.203machine # [ 0.304998] Yama: becoming mindful.204machine # [ 0.306066] LSM support for eBPF active205machine # [ 0.307051] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)206machine # [ 0.308088] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)207machine # [ 0.310275] smpboot: CPU0: AMD Ryzen Threadripper PRO 5965WX 24-Cores (family: 0x19, model: 0x8, stepping: 0x2)208machine # [ 0.311516] Performance Events: Fam17h+ core perfctr, AMD PMU driver.209machine # [ 0.312071] ... version: 0210machine # [ 0.313063] ... bit width: 48211machine # [ 0.314063] ... generic counters: 6212machine # [ 0.315059] ... generic bitmap: 000000000000003f213machine # [ 0.316063] ... fixed-purpose counters: 0214machine # [ 0.317059] ... fixed-purpose bitmap: 0000000000000000215machine # [ 0.318063] ... value mask: 0000ffffffffffff216machine # [ 0.319063] ... max period: 00007fffffffffff217machine # [ 0.320063] ... global_ctrl mask: 000000000000003f218machine # [ 0.321153] signal: max sigframe size: 3376219machine # [ 0.322143] rcu: Hierarchical SRCU implementation.220machine # [ 0.323068] rcu: Max phase no-delay instances is 400.221machine # [ 0.327683] smp: Bringing up secondary CPUs ...222machine # [ 0.328077] smp: Brought up 1 node, 1 CPU223machine # [ 0.329045] smpboot: Total of 1 processors activated (7585.74 BogoMIPS)224machine # [ 0.330184] Memory: 943264K/1048024K available (17215K kernel code, 2726K rwdata, 13584K rodata, 3644K init, 2988K bss, 97580K reserved, 0K cma-reserved)225machine # [ 0.331226] devtmpfs: initialized226machine # [ 0.332244] x86/mm: Memory block size: 128MB227machine # [ 0.333907] posixtimers hash table entries: 512 (order: 1, 8192 bytes, linear)228machine # [ 0.335096] futex hash table entries: 256 (16384 bytes on 1 NUMA nodes, total 16 KiB, linear).229machine # [ 0.336137] pinctrl core: initialized pinctrl subsystem230machine # [ 0.337309] PM: RTC time: 21:48:13, date: 2026-09-09231machine # [ 0.340278] NET: Registered PF_NETLINK/PF_ROUTE protocol family232machine # [ 0.341356] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations233machine # [ 0.342085] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations234machine # [ 0.343195] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations235machine # [ 0.344072] audit: initializing netlink subsys (disabled)236machine # [ 0.345305] thermal_sys: Registered thermal governor 'fair_share'237machine # [ 0.345307] thermal_sys: Registered thermal governor 'bang_bang'238machine # [ 0.346064] thermal_sys: Registered thermal governor 'step_wise'239machine # [ 0.347067] audit: type=2000 audit(1788990494.590:1): state=initialized audit_enabled=0 res=1240machine # [ 0.349066] thermal_sys: Registered thermal governor 'user_space'241machine # [ 0.349068] thermal_sys: Registered thermal governor 'power_allocator'242machine # [ 0.350080] cpuidle: using governor menu243machine # [ 0.352891] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5244machine # [ 0.354293] PCI: ECAM [mem 0xb0000000-0xbfffffff] (base 0xb0000000) for domain 0000 [bus 00-ff]245machine # [ 0.355065] PCI: ECAM [mem 0xb0000000-0xbfffffff] reserved as E820 entry246machine # [ 0.356075] PCI: Using configuration type 1 for base access247machine # [ 0.357240] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.248machine # [ 0.362526] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages249machine # [ 0.363064] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page250machine # [ 0.364064] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages251machine # [ 0.371062] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page252machine # [ 0.378339] ACPI: Added _OSI(Module Device)253machine # [ 0.379064] ACPI: Added _OSI(Processor Device)254machine # [ 0.382880] ACPI: Added _OSI(Processor Aggregator Device)255machine # [ 0.388431] ACPI: 1 ACPI AML tables successfully acquired and loaded256machine # [ 0.394300] ACPI: Interpreter enabled257machine # [ 0.395082] ACPI: PM: (supports S0 S3 S4 S5)258machine # [ 0.396065] ACPI: Using IOAPIC for interrupt routing259machine # [ 0.397116] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug260machine # [ 0.400062] PCI: Using E820 reservations for host bridge windows261machine # [ 0.401207] ACPI: Enabled 2 GPEs in block 00 to 3F262machine # [ 0.406052] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])263machine # [ 0.407069] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]264machine # [ 0.408142] acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug LTR]265machine # [ 0.409190] acpi PNP0A08:00: _OSC: OS now controls [PME AER PCIeCapability]266machine # [ 0.410503] PCI host bridge to bus 0000:00267machine # [ 0.411070] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]268machine # [ 0.412064] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]269machine # [ 0.413065] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]270machine # [ 0.414068] pci_bus 0000:00: root bus resource [mem 0x40000000-0xafffffff window]271machine # [ 0.415083] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window]272machine # [ 0.416064] pci_bus 0000:00: root bus resource [mem 0x100000000-0x8ffffffff window]273machine # [ 0.417065] pci_bus 0000:00: root bus resource [bus 00-ff]274machine # [ 0.418146] pci 0000:00:00.0: [8086:29c0] type 00 class 0x060000 conventional PCI endpoint275machine # [ 0.419779] pci 0000:00:01.0: [1234:1111] type 00 class 0x030000 conventional PCI endpoint276machine # [ 0.423116] pci 0000:00:01.0: BAR 0 [mem 0xfd000000-0xfdffffff pref]277machine # [ 0.424089] pci 0000:00:01.0: BAR 2 [mem 0xfebd0000-0xfebd0fff]278machine # [ 0.425111] pci 0000:00:01.0: ROM [mem 0xfebc0000-0xfebcffff pref]279machine # [ 0.426298] pci 0000:00:01.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]280machine # [ 0.427875] pci 0000:00:02.0: [1af4:1000] type 00 class 0x020000 conventional PCI endpoint281machine # [ 0.431074] pci 0000:00:02.0: BAR 0 [io 0xc140-0xc15f]282machine # [ 0.432078] pci 0000:00:02.0: BAR 1 [mem 0xfebd1000-0xfebd1fff]283machine # [ 0.433110] pci 0000:00:02.0: BAR 4 [mem 0xfe000000-0xfe003fff 64bit pref]284machine # [ 0.434077] pci 0000:00:02.0: ROM [mem 0xfeb40000-0xfeb7ffff pref]285machine # [ 0.436025] pci 0000:00:03.0: [1af4:1005] type 00 class 0x00ff00 conventional PCI endpoint286machine # [ 0.438074] pci 0000:00:03.0: BAR 0 [io 0xc160-0xc17f]287machine # [ 0.439077] pci 0000:00:03.0: BAR 1 [mem 0xfebd2000-0xfebd2fff]288machine # [ 0.440110] pci 0000:00:03.0: BAR 4 [mem 0xfe004000-0xfe007fff 64bit pref]289machine # [ 0.442026] pci 0000:00:04.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint290machine # [ 0.445308] pci 0000:00:04.0: BAR 0 [io 0xc080-0xc0bf]291machine # [ 0.446078] pci 0000:00:04.0: BAR 1 [mem 0xfebd3000-0xfebd3fff]292machine # [ 0.447110] pci 0000:00:04.0: BAR 4 [mem 0xfe008000-0xfe00bfff 64bit pref]293machine # [ 0.449031] pci 0000:00:05.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint294machine # [ 0.451074] pci 0000:00:05.0: BAR 0 [io 0xc180-0xc19f]295machine # [ 0.452078] pci 0000:00:05.0: BAR 1 [mem 0xfebd4000-0xfebd4fff]296machine # [ 0.453110] pci 0000:00:05.0: BAR 4 [mem 0xfe00c000-0xfe00ffff 64bit pref]297machine # [ 0.455019] pci 0000:00:06.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint298machine # [ 0.457074] pci 0000:00:06.0: BAR 0 [io 0xc1a0-0xc1bf]299machine # [ 0.458078] pci 0000:00:06.0: BAR 1 [mem 0xfebd5000-0xfebd5fff]300machine # [ 0.459110] pci 0000:00:06.0: BAR 4 [mem 0xfe010000-0xfe013fff 64bit pref]301machine # [ 0.461074] pci 0000:00:07.0: [1af4:1001] type 00 class 0x010000 conventional PCI endpoint302machine # [ 0.463074] pci 0000:00:07.0: BAR 0 [io 0xc000-0xc07f]303machine # [ 0.464078] pci 0000:00:07.0: BAR 1 [mem 0xfebd6000-0xfebd6fff]304machine # [ 0.465110] pci 0000:00:07.0: BAR 4 [mem 0xfe014000-0xfe017fff 64bit pref]305machine # [ 0.467041] pci 0000:00:08.0: [1af4:1000] type 00 class 0x020000 conventional PCI endpoint306machine # [ 0.469074] pci 0000:00:08.0: BAR 0 [io 0xc1c0-0xc1df]307machine # [ 0.470078] pci 0000:00:08.0: BAR 1 [mem 0xfebd7000-0xfebd7fff]308machine # [ 0.471110] pci 0000:00:08.0: BAR 4 [mem 0xfe018000-0xfe01bfff 64bit pref]309machine # [ 0.472078] pci 0000:00:08.0: ROM [mem 0xfeb80000-0xfebbffff pref]310machine # [ 0.474027] pci 0000:00:09.0: [1af4:1052] type 00 class 0x090000 conventional PCI endpoint311machine # [ 0.475946] pci 0000:00:09.0: BAR 1 [mem 0xfebd8000-0xfebd8fff]312machine # [ 0.477110] pci 0000:00:09.0: BAR 4 [mem 0xfe01c000-0xfe01ffff 64bit pref]313machine # [ 0.479021] pci 0000:00:0a.0: [1af4:1003] type 00 class 0x078000 conventional PCI endpoint314machine # [ 0.481082] pci 0000:00:0a.0: BAR 0 [io 0xc0c0-0xc0ff]315machine # [ 0.482077] pci 0000:00:0a.0: BAR 1 [mem 0xfebd9000-0xfebd9fff]316machine # [ 0.483110] pci 0000:00:0a.0: BAR 4 [mem 0xfe020000-0xfe023fff 64bit pref]317machine # [ 0.485041] pci 0000:00:0b.0: [1af4:1005] type 00 class 0x00ff00 conventional PCI endpoint318machine # [ 0.487074] pci 0000:00:0b.0: BAR 0 [io 0xc1e0-0xc1ff]319machine # [ 0.488078] pci 0000:00:0b.0: BAR 1 [mem 0xfebda000-0xfebdafff]320machine # [ 0.489110] pci 0000:00:0b.0: BAR 4 [mem 0xfe024000-0xfe027fff 64bit pref]321machine # [ 0.491063] pci 0000:00:1d.0: [8086:2934] type 00 class 0x0c0300 conventional PCI endpoint322machine # [ 0.492738] pci 0000:00:1d.0: BAR 4 [io 0xc200-0xc21f]323machine # [ 0.493347] pci 0000:00:1d.1: [8086:2935] type 00 class 0x0c0300 conventional PCI endpoint324machine # [ 0.495784] pci 0000:00:1d.1: BAR 4 [io 0xc220-0xc23f]325machine # [ 0.496356] pci 0000:00:1d.2: [8086:2936] type 00 class 0x0c0300 conventional PCI endpoint326machine # [ 0.497751] pci 0000:00:1d.2: BAR 4 [io 0xc240-0xc25f]327machine # [ 0.498429] pci 0000:00:1d.7: [8086:293a] type 00 class 0x0c0320 conventional PCI endpoint328machine # [ 0.499706] pci 0000:00:1d.7: BAR 0 [mem 0xfebdb000-0xfebdbfff]329machine # [ 0.500405] pci 0000:00:1f.0: [8086:2918] type 00 class 0x060100 conventional PCI endpoint330machine # [ 0.501594] pci 0000:00:1f.0: quirk: [io 0x0600-0x067f] claimed by ICH6 ACPI/GPIO/TCO331machine # [ 0.502449] pci 0000:00:1f.2: [8086:2922] type 00 class 0x010601 conventional PCI endpoint332machine # [ 0.503992] pci 0000:00:1f.2: BAR 4 [io 0xc260-0xc27f]333machine # [ 0.505003] pci 0000:00:1f.2: BAR 5 [mem 0xfebdc000-0xfebdcfff]334machine # [ 0.506586] pci 0000:00:1f.3: [8086:2930] type 00 class 0x0c0500 conventional PCI endpoint335machine # [ 0.507809] pci 0000:00:1f.3: BAR 4 [io 0x0700-0x073f]336machine # [ 0.513922] ACPI: PCI: Interrupt link LNKA configured for IRQ 10337machine # [ 0.515200] ACPI: PCI: Interrupt link LNKB configured for IRQ 10338machine # [ 0.516201] ACPI: PCI: Interrupt link LNKC configured for IRQ 11339machine # [ 0.517198] ACPI: PCI: Interrupt link LNKD configured for IRQ 11340machine # [ 0.518248] ACPI: PCI: Interrupt link LNKE configured for IRQ 10341machine # [ 0.519339] ACPI: PCI: Interrupt link LNKF configured for IRQ 10342machine # [ 0.520202] ACPI: PCI: Interrupt link LNKG configured for IRQ 11343machine # [ 0.521198] ACPI: PCI: Interrupt link LNKH configured for IRQ 11344machine # [ 0.522120] ACPI: PCI: Interrupt link GSIA configured for IRQ 16345machine # [ 0.523083] ACPI: PCI: Interrupt link GSIB configured for IRQ 17346machine # [ 0.524087] ACPI: PCI: Interrupt link GSIC configured for IRQ 18347machine # [ 0.525087] ACPI: PCI: Interrupt link GSID configured for IRQ 19348machine # [ 0.526087] ACPI: PCI: Interrupt link GSIE configured for IRQ 20349machine # [ 0.527083] ACPI: PCI: Interrupt link GSIF configured for IRQ 21350machine # [ 0.528083] ACPI: PCI: Interrupt link GSIG configured for IRQ 22351machine # [ 0.529086] ACPI: PCI: Interrupt link GSIH configured for IRQ 23352machine # [ 0.530861] iommu: Default domain type: Translated353machine # [ 0.531931] iommu: DMA domain TLB invalidation policy: lazy mode354machine # [ 0.533277] ACPI: bus type USB registered355machine # [ 0.534127] usbcore: registered new interface driver usbfs356machine # [ 0.535083] usbcore: registered new interface driver hub357machine # [ 0.536120] usbcore: registered new device driver usb358machine # [ 0.538314] NetLabel: Initializing359machine # [ 0.539063] NetLabel: domain hash size = 128360machine # [ 0.540063] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO361machine # [ 0.541105] NetLabel: unlabeled traffic allowed by default362machine # [ 0.542078] PCI: Using ACPI for IRQ routing363machine # [ 0.626244] pci 0000:00:01.0: vgaarb: setting as boot VGA device364machine # [ 0.627059] pci 0000:00:01.0: vgaarb: bridge control possible365machine # [ 0.627059] pci 0000:00:01.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none366machine # [ 0.627065] vgaarb: loaded367machine # [ 0.627941] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0368machine # [ 0.628946] hpet0: 3 comparators, 64-bit 100.000000 MHz counter369machine # [ 0.635126] clocksource: Switched to clocksource kvm-clock370machine # [ 0.637084] VFS: Disk quotas dquot_6.6.0371machine # [ 0.639541] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)372machine # [ 0.641209] pnp: PnP ACPI init373machine # [ 0.642186] ACPI: IRQ 4 override to edge(!), high(!)374machine # [ 0.643472] system 00:05: [mem 0xb0000000-0xbfffffff window] has been reserved375machine # [ 0.645505] pnp: PnP ACPI: found 6 devices376machine # [ 0.653151] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns377machine # [ 0.655117] clocksource: Switched to clocksource acpi_pm378machine # [ 0.656472] NET: Registered PF_INET protocol family379machine # [ 0.657804] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)380machine # [ 0.672447] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)381machine # [ 0.674344] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)382machine # [ 0.676094] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)383machine # [ 0.677884] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)384machine # [ 0.679552] TCP: Hash tables configured (established 8192 bind 8192)385machine # [ 0.681028] MPTCP token hash table entries: 1024 (order: 3, 24576 bytes, linear)386machine # [ 0.682758] UDP hash table entries: 512 (order: 3, 32768 bytes, linear)387machine # [ 0.684278] UDP-Lite hash table entries: 512 (order: 3, 32768 bytes, linear)388machine # [ 0.685930] NET: Registered PF_UNIX/PF_LOCAL protocol family389machine # [ 0.687245] NET: Registered PF_XDP protocol family390machine # [ 0.688426] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]391machine # [ 0.689825] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]392machine # [ 0.691223] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]393machine # [ 0.692786] pci_bus 0000:00: resource 7 [mem 0x40000000-0xafffffff window]394machine # [ 0.694342] pci_bus 0000:00: resource 8 [mem 0xc0000000-0xfebfffff window]395machine # [ 0.695859] pci_bus 0000:00: resource 9 [mem 0x100000000-0x8ffffffff window]396machine # [ 0.698014] ACPI: \_SB_.GSIA: Enabled at IRQ 16397machine # [ 0.700249] ACPI: \_SB_.GSIB: Enabled at IRQ 17398machine # [ 0.702490] ACPI: \_SB_.GSIC: Enabled at IRQ 18399machine # [ 0.704671] ACPI: \_SB_.GSID: Enabled at IRQ 19400machine # [ 0.706557] PCI: CLS 0 bytes, default 64401machine # [ 0.707690] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x6d5818a734c, max_idle_ns: 881590694765 ns402machine # [ 0.710056] Trying to unpack rootfs image as initramfs...403machine # [ 0.751668] Initialise system trusted keyrings404machine # [ 0.755383] workingset: timestamp_bits=40 max_order=18 bucket_order=0405machine # [ 0.773693] Key type asymmetric registered406machine # [ 0.774700] Asymmetric key parser 'x509' registered407machine # [ 0.778374] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)408machine # [ 0.782382] io scheduler mq-deadline registered409machine # [ 0.785344] io scheduler kyber registered410machine # [ 0.788761] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled411machine # [ 0.790508] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A412machine # [ 0.796253] Linux agpgart interface v0.103413machine # [ 0.799347] ACPI: bus type drm_connector registered414machine # [ 0.800892] usbcore: registered new interface driver usbserial_generic415machine # [ 0.802363] usbserial: USB Serial support registered for generic416machine # [ 0.806345] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled417machine # [ 0.808114] drop_monitor: Initializing network drop monitor service418machine # [ 0.812481] NET: Registered PF_INET6 protocol family419machine # [ 0.815606] Segment Routing with IPv6420machine # [ 0.819361] In-situ OAM (IOAM) with IPv6421machine # [ 0.820605] IPI shorthand broadcast: enabled422machine # [ 0.828620] sched_clock: Marking stable (635024117, 193308198)->(936079098, -107746783)423machine # [ 0.834548] registered taskstats version 1424machine # [ 0.835738] Loading compiled-in X.509 certificates425machine # [ 0.852294] Demotion targets for Node 0: null426machine # [ 0.855467] Key type .fscrypt registered427machine # [ 0.858339] Key type fscrypt-provisioning registered428machine # [ 0.859597] ima: No TPM chip found, activating TPM-bypass!429machine # [ 0.862352] ima: Allocated hash algorithm: sha1430machine # [ 0.863453] ima: No architecture policies found431machine # [ 0.866493] PM: Magic number: 10:710:853432machine # [ 0.868195] RAS: Correctable Errors collector initialized.433machine # [ 0.878684] clk: Disabling unused clocks434machine # [ 0.881349] PM: genpd: Disabling unused power domains435machine # [ 1.003848] Freeing initrd memory: 29076K436machine # [ 1.007642] Freeing unused decrypted memory: 2028K437machine # [ 1.010607] Freeing unused kernel image (initmem) memory: 3644K438machine # [ 1.012044] Write protecting the kernel read-only data: 32768k439machine # [ 1.014110] Freeing unused kernel image (text/rodata gap) memory: 1216K440machine # [ 1.015985] Freeing unused kernel image (rodata/data gap) memory: 752K441machine # [ 1.057197] x86/mm: Checked W+X mappings: passed, no W+X pages found.442machine # [ 1.058688] Run /init as init process443machine # [ 1.067698] systemd[1]: Inserted module 'autofs4'444machine # [ 1.081861] fuse: init (API version 7.45)445machine # [ 1.087181] ACPI: \_SB_.GSIG: Enabled at IRQ 22446machine # [ 1.090086] ACPI: \_SB_.GSIH: Enabled at IRQ 23447machine # [ 1.093710] ACPI: \_SB_.GSIE: Enabled at IRQ 20448machine # [ 1.096522] ACPI: \_SB_.GSIF: Enabled at IRQ 21449machine # [ 1.124211] systemd[1]: Successfully made /usr/ read-only.450machine # [ 1.461131] systemd[1]: systemd 261.2 running in system mode (+PAM +AUDIT -SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK -BTF -XKBCOMMON +UTMP +LIBARCHIVE)451machine # [ 1.470341] systemd[1]: Detected virtualization kvm.452machine # [ 1.471694] systemd[1]: Detected architecture x86-64.453machine # [ 1.472981] systemd[1]: Running in initrd.454machine # [ 1.474211] systemd[1]: Initializing machine ID from random generator.455machine # [ 1.475780] systemd[1]: Hostname set to <machine>.456machine # [ 1.666180] systemd[1]: bpf-restrict-fs: LSM BPF program attached457machine # [ 1.700701] systemd[1]: Queued start job for default target Initrd Default Target.458machine # [ 1.704645] systemd[1]: Created slice Slice /system/modprobe.459machine # [ 1.706220] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.460machine # [ 1.708115] systemd[1]: Expecting device /dev/disk/by-label/nixos...461machine # [ 1.709655] systemd[1]: Reached target Path Units.462machine # [ 1.711002] systemd[1]: Reached target Slice Units.463machine # [ 1.712641] systemd[1]: Reached target Swaps.464machine # [ 1.714287] systemd[1]: Reached target Timer Units.465machine # [ 1.716359] systemd[1]: Listening on D-Bus System Message Bus Socket.466machine # [ 1.718713] systemd[1]: Listening on Journal Socket (/dev/log).467machine # [ 1.720783] systemd[1]: Listening on Journal Sockets.468machine # [ 1.722444] systemd[1]: Listening on udev Control Socket.469machine # [ 1.723993] systemd[1]: Listening on udev Kernel Socket.470machine # [ 1.725366] systemd[1]: Reached target Socket Units.471machine # [ 1.727380] systemd[1]: Starting Create List of Static Device Nodes...472machine # [ 1.734664] systemd[1]: Starting Load Kernel Module 9pnet_virtio...473machine # [ 1.744087] systemd[1]: Starting Load Kernel Module configfs...474machine # [ 1.755491] systemd[1]: Starting Journal Service...475machine # [ 1.769395] systemd[1]: Starting Load Kernel Modules...476machine # [ 1.773381] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os477machine # [ 1.786049] netfs: FS-Cache loaded478machine # [ 1.790755] 9pnet: Installing 9P2000 support479machine # [ 1.808473] systemd[1]: Starting Coldplug All udev Devices...480machine # [ 1.816682] systemd-journald[67]: Collecting audit messages is disabled.481machine # [ 1.825577] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.482machine # [ 1.829733] systemd[1]: Finished Create List of Static Device Nodes.483machine # [ 1.835897] systemd[1]: modprobe@9pnet_virtio.service: Deactivated successfully.484machine # [ 1.840332] device-mapper: ioctl: 4.50.0-ioctl (2025-04-28) initialised: dm-devel@lists.linux.dev485machine # [ 1.843827] systemd[1]: Finished Load Kernel Module 9pnet_virtio.486machine # [ 1.851052] systemd[1]: modprobe@configfs.service: Deactivated successfully.487machine # [ 1.860385] systemd[1]: Finished Load Kernel Module configfs.488machine # [ 1.868080] systemd[1]: Finished Load Kernel Modules.489machine # [ 1.871934] systemd[1]: Kernel Configuration File System skipped, unmet condition check ConditionPathExists=/sys/kernel/config490machine # [ 1.882380] systemd[1]: Starting Apply Kernel Variables...491machine # [ 1.895940] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...492machine # [ 1.914386] systemd[1]: Finished Apply Kernel Variables.493machine # [ 1.926022] systemd[1]: Finished Create Static Device Nodes in /dev gracefully.494machine # [ 1.934475] systemd[1]: Starting Create Static Device Nodes in /dev...495machine # [ 1.959024] systemd[1]: Finished Create Static Device Nodes in /dev.496machine # [ 1.963778] systemd[1]: Started Journal Service.497machine # [ 1.769863] systemd-modules-load[68]: Inserted module 'dm_mod'498machine # [ 1.774359] systemd-modules-load[68]: Inserted module 'virtio_balloon'499machine # [ 1.775808] systemd-modules-load[68]: Inserted module 'virtio_gpu'500machine # [ 1.778409] systemd[1]: Reached target Preparation for Local File Systems.501machine # [ 1.780502] systemd[1]: Reached target Local File Systems.502machine # [ 1.783474] systemd[1]: Starting Create System Files and Directories...503machine # [ 1.791078] systemd[1]: Starting Rule-based Manager for Device Events and Files...504machine # [ 1.812791] systemd[1]: Finished Create System Files and Directories.505machine # [ 1.837297] systemd-udevd[78]: Using default interface naming scheme 'v261'.506machine # [ 1.862338] systemd[1]: Started Rule-based Manager for Device Events and Files.507machine # [ 1.879948] systemd[1]: Finished Coldplug All udev Devices.508machine # [ 1.881214] systemd[1]: Reached target System Initialization.509machine # [ 1.882465] systemd[1]: Reached target Basic System.510machine # [ 2.301620] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12511machine # [ 2.309693] virtio_blk virtio5: 1/0/0 default/read/poll queues512machine # [ 2.322381] serio: i8042 KBD port at 0x60,0x64 irq 1513machine # [ 2.323253] serio: i8042 AUX port at 0x60,0x64 irq 12514machine # [ 2.332899] virtio_blk virtio5: [vda] 2097152 512-byte logical blocks (1.07 GB/1.00 GiB)515machine # [ 2.337838] ehci-pci 0000:00:1d.7: EHCI Host Controller516machine # [ 2.338781] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 1517machine # [ 2.340903] ehci-pci 0000:00:1d.7: irq 19, io mem 0xfebdb000518machine # [ 2.349341] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00519machine # [ 2.352020] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.18520machine # [ 2.354669] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1521machine # [ 2.357754] usb usb1: Product: EHCI Host Controller522machine # [ 2.359579] usb usb1: Manufacturer: Linux 6.18.49 ehci_hcd523machine # [ 2.361590] usb usb1: SerialNumber: 0000:00:1d.7524machine # [ 2.364438] hub 1-0:1.0: USB hub found525machine # [ 2.365145] hub 1-0:1.0: 6 ports detected526machine # [ 2.368534] uhci_hcd 0000:00:1d.0: UHCI Host Controller527machine # [ 2.369463] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2528machine # [ 2.384578] uhci_hcd 0000:00:1d.0: detected 2 ports529machine # [ 2.391467] uhci_hcd 0000:00:1d.0: irq 16, io port 0x0000c200530machine # [ 2.400108] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18531machine # [ 2.401548] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1532machine # [ 2.408098] SCSI subsystem initialized533machine # [ 2.422337] usb usb2: Product: UHCI Host Controller534machine # [ 2.434709] usb usb2: Manufacturer: Linux 6.18.49 uhci_hcd535machine # [ 2.249274] systemd[1]: Starting Virtual Console Setup...536machine # [ 2.449093] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0537machine # [ 2.457360] usb usb2: SerialNumber: 0000:00:1d.0538machine # [ 2.268634] (udev-worker)[89]: Network interface NamePolicy= disabled on kernel command line.539machine # [ 2.291229] (udev-worker)[95]: eth1: Config file /etc/systemd/network/40-eth1.link is applied to device based on potentially unpredictable interface name.540machine # [ 2.294534] (udev-worker)[95]: Network interface NamePolicy= disabled on kernel command line.541machine # [ 2.297374] systemd-vconsole-setup[100]: Configuration of first virtual console was skipped, ignoring remaining ones.542machine # [ 2.301212] systemd[1]: Finished Virtual Console Setup.543machine # [ 2.498342] hub 2-0:1.0: USB hub found544machine # [ 2.509409] hub 2-0:1.0: 2 ports detected545machine # [ 2.516879] uhci_hcd 0000:00:1d.1: UHCI Host Controller546machine # [ 2.517823] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3547machine # [ 2.336616] systemd[1]: Found device /dev/disk/by-label/nixos.548machine # [ 2.338109] systemd[1]: Reached target Initrd Root Device.549machine # [ 2.533129] uhci_hcd 0000:00:1d.1: detected 2 ports550machine # [ 2.534465] uhci_hcd 0000:00:1d.1: irq 17, io port 0x0000c220551machine # [ 2.343079] systemd[1]: Starting File System Check on /dev/disk/by-label/nixos...552machine # [ 2.541812] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18553machine # [ 2.544311] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1554machine # [ 2.548208] usb usb3: Product: UHCI Host Controller555machine # [ 2.555263] usb usb3: Manufacturer: Linux 6.18.49 uhci_hcd556machine # [ 2.557318] usb usb3: SerialNumber: 0000:00:1d.1557machine # [ 2.562452] hub 3-0:1.0: USB hub found558machine # [ 2.565318] hub 3-0:1.0: 2 ports detected559machine # [ 2.375080] systemd-fsck[108]: nixos: clean, 12/65536 files, 13019/262144 blocks560machine # [ 2.572977] uhci_hcd 0000:00:1d.2: UHCI Host Controller561machine # [ 2.573923] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4562machine # [ 2.576636] ahci 0000:00:1f.2: AHCI vers 0001.0000, 32 command slots, 1.5 Gbps, SATA mode563machine # [ 2.578036] ahci 0000:00:1f.2: 6/6 ports implemented (port mask 0x3f)564machine # [ 2.388526] systemd[1]: Finished File System Check on /dev/disk/by-label/nixos.565machine # [ 2.583445] uhci_hcd 0000:00:1d.2: detected 2 ports566machine # [ 2.584471] uhci_hcd 0000:00:1d.2: irq 18, io port 0x0000c240567machine # [ 2.587021] ahci 0000:00:1f.2: flags: 64bit ncq only568machine # [ 2.588421] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18569machine # [ 2.589826] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1570machine # [ 2.596491] scsi host0: ahci571machine # [ 2.599382] scsi host1: ahci572machine # [ 2.600644] usb usb4: Product: UHCI Host Controller573machine # [ 2.602372] scsi host2: ahci574machine # [ 2.603111] usb usb4: Manufacturer: Linux 6.18.49 uhci_hcd575machine # [ 2.605320] usb usb4: SerialNumber: 0000:00:1d.2576machine # [ 2.606253] scsi host3: ahci577machine # [ 2.607338] usb 1-1: new high-speed USB device number 2 using ehci-pci578machine # [ 2.609161] scsi host4: ahci579machine # [ 2.612116] hub 4-0:1.0: USB hub found580machine # [ 2.614458] scsi host5: ahci581machine # [ 2.615227] ata1: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc100 irq 44 lpm-pol 1582machine # [ 2.617999] hub 4-0:1.0: 2 ports detected583machine # [ 2.625693] ata2: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc180 irq 44 lpm-pol 1584machine # [ 2.635057] ata3: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc200 irq 44 lpm-pol 1585machine # [ 2.643564] ata4: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc280 irq 44 lpm-pol 1586machine # [ 2.650339] ata5: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc300 irq 44 lpm-pol 1587machine # [ 2.652452] ata6: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc380 irq 44 lpm-pol 1588machine # [ 2.737472] usb 1-1: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00589machine # [ 2.739492] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=10590machine # [ 2.741718] usb 1-1: Product: QEMU USB Tablet591machine # [ 2.743146] usb 1-1: Manufacturer: QEMU592machine # [ 2.744448] usb 1-1: SerialNumber: 28754-0000:00:1d.7-1593machine # [ 2.760969] hid: raw HID events driver (C) Jiri Kosina594machine # [ 2.632543] systemd[1]: Mounting /sysroot...595machine # [ 2.965731] ata1: SATA link down (SStatus 0 SControl 300)596machine # [ 2.967709] ata6: SATA link down (SStatus 0 SControl 300)597machine # [ 2.969689] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)598machine # [ 2.971543] ata3.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100599machine # [ 2.973113] ata3.00: applying bridge limits600machine # [ 2.974596] ata4: SATA link down (SStatus 0 SControl 300)601machine # [ 2.976158] ata5: SATA link down (SStatus 0 SControl 300)602machine # [ 2.977620] ata2: SATA link down (SStatus 0 SControl 300)603machine # [ 2.978915] ata3.00: configured for UDMA/100604machine # [ 2.980175] scsi 2:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5605machine # [ 3.030950] usbcore: registered new interface driver usbhid606machine # [ 3.035726] usbhid: USB HID core driver607machine # [ 3.054636] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input2608machine # [ 3.058708] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:1d.7-1/input0609machine # [ 3.061010] sr 2:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray610machine # [ 3.069957] EXT4-fs (vda): mounted filesystem 72de9255-9baa-41d3-8bac-67b648a38725 r/w with ordered data mode. Quota mode: none.611machine # [ 2.882586] systemd[1]: Mounted /sysroot.612machine # [ 2.883934] systemd[1]: Reached target Initrd Root File System.613machine # [ 3.078407] cdrom: Uniform CD-ROM driver Revision: 3.20614machine # [ 2.888826] systemd[1]: Mounting /sysroot/nix/.ro-store...615machine # [ 2.894713] systemd[1]: Mounting /sysroot/nix/.rw-store...616machine # [ 2.900078] systemd[1]: Mounting /sysroot/run...617machine # [ 2.908541] systemd[1]: Mounting /sysroot/tmp/shared...618machine # [ 2.914150] systemd[1]: Mounting /sysroot/tmp/xchg...619machine # [ 2.925178] systemd[1]: Starting Mountpoints Configured in the Real Root...620machine # [ 3.135930] 9p: Installing v9fs 9p2000 file system support621machine # [ 2.960135] systemd-sysroot-fstab-check[146]: /sysroot should be mounted in the initrd, will request daemon-reload.622machine # [ 2.964892] systemd[1]: Mounted /sysroot/nix/.ro-store.623machine # [ 2.966328] systemd[1]: Mounted /sysroot/nix/.rw-store.624machine # [ 2.970081] systemd[1]: Mounted /sysroot/run.625machine # [ 2.971049] systemd[1]: Mounted /sysroot/tmp/shared.626machine # [ 2.977427] systemd[1]: Mounted /sysroot/tmp/xchg.627machine # [ 2.984128] systemd[1]: Starting rw-sysroot-nix-store.service...628machine # [ 2.989075] systemd[1]: Reload requested from client PID 146 ('systemd-sysroot') (unit initrd-parse-etc.service)...629machine # [ 2.991138] systemd[1]: Reloading...630machine # [ 3.057570] systemd[1]: Reloading finished in 69 ms.631machine # [ 3.067393] systemd-sysroot-fstab-check[146]: Requesting initrd-fs.target/start/replace...632machine # [ 3.070751] systemd[1]: rw-sysroot-nix-store.service: Deactivated successfully.633machine # [ 3.072268] systemd[1]: Finished rw-sysroot-nix-store.service.634machine # [ 3.077375] systemd-sysroot-fstab-check[146]: Requesting swap.target/start/replace...635machine # [ 3.080092] systemd[1]: Starting rw-sysroot-nix-store.service...636machine # [ 3.082118] systemd[1]: initrd-parse-etc.service: Deactivated successfully.637machine # [ 3.086118] systemd[1]: Finished Mountpoints Configured in the Real Root.638machine # [ 3.087414] systemd[1]: initrd-parse-etc.service: Triggering OnSuccess= dependencies.639machine # [ 3.094546] systemd[1]: rw-sysroot-nix-store.service: Deactivated successfully.640machine # [ 3.096587] systemd[1]: Finished rw-sysroot-nix-store.service.641machine # [ 3.633054] systemd[1]: Mounting /sysroot/nix/store...642machine # [ 3.655444] systemd[1]: Mounted /sysroot/nix/store.643machine # [ 3.657525] systemd[1]: Reached target Initrd File Systems.644machine # [ 3.659883] systemd[1]: Starting Find NixOS closure...645machine # [ 3.662896] systemd[1]: Starting Create Volatile Files and Directories in the Real Root...646machine # [ 3.685133] systemd[1]: Finished Create Volatile Files and Directories in the Real Root.647machine # [ 3.688296] systemd[1]: sysroot-run-credentials-systemd\x2dtmpfiles\x2dsetup\x2dsysroot.service.mount: Deactivated successfully.648machine # [ 3.699353] systemd[1]: Finished Find NixOS closure.649machine # [ 3.701775] systemd[1]: Reached target Initrd Default Target.650machine # [ 3.704326] systemd[1]: Starting Cleaning Up and Shutting Down Daemons...651machine # [ 3.718134] systemd[1]: Stopped target Initrd Default Target.652machine # [ 3.720151] systemd[1]: Stopped target Basic System.653machine # [ 3.721217] systemd[1]: Stopped target Initrd Root Device.654machine # [ 3.722353] systemd[1]: Stopped target Path Units.655machine # [ 3.723696] systemd[1]: systemd-ask-password-console.path: Deactivated successfully.656machine # [ 3.726279] systemd[1]: Stopped Dispatch Password Requests to Console Directory Watch.657machine # [ 3.727744] systemd[1]: Stopped target Slice Units.658machine # [ 3.728831] systemd[1]: Stopped target Socket Units.659machine # [ 3.729902] systemd[1]: Stopped target System Initialization.660machine # [ 3.731371] systemd[1]: Stopped target Swaps.661machine # [ 3.732811] systemd[1]: Stopped target Timer Units.662machine # [ 3.734258] systemd[1]: dbus.socket: Deactivated successfully.663machine # [ 3.735838] systemd[1]: Closed D-Bus System Message Bus Socket.664machine # [ 3.737187] systemd[1]: initrd-find-nixos-closure.service: Deactivated successfully.665machine # [ 3.739159] systemd[1]: Stopped Find NixOS closure.666machine # [ 3.740195] systemd[1]: Load Kernel Module 9pnet_virtio skipped, unmet condition check ConditionKernelModuleLoaded=!9pnet_virtio667machine # [ 3.743160] systemd[1]: Starting rw-sysroot-nix-store.service...668machine # [ 3.744479] systemd[1]: systemd-sysctl.service: Deactivated successfully.669machine # [ 3.745797] systemd[1]: Stopped Apply Kernel Variables.670machine # [ 3.746907] systemd[1]: systemd-modules-load.service: Deactivated successfully.671machine # [ 3.749143] systemd[1]: Stopped Load Kernel Modules.672machine # [ 3.750205] systemd[1]: systemd-tmpfiles-setup-sysroot.service: Deactivated successfully.673machine # [ 3.751688] systemd[1]: Stopped Create Volatile Files and Directories in the Real Root.674machine # [ 3.753343] systemd[1]: systemd-tmpfiles-setup.service: Deactivated successfully.675machine # [ 3.755134] systemd[1]: Stopped Create System Files and Directories.676machine # [ 3.757163] systemd[1]: Stopped target Local File Systems.677machine # [ 3.758340] systemd[1]: Stopped target Preparation for Local File Systems.678machine # [ 3.759998] systemd[1]: systemd-udev-trigger.service: Deactivated successfully.679machine # [ 3.762146] systemd[1]: Stopped Coldplug All udev Devices.680machine # [ 3.763317] systemd[1]: Stopping Rule-based Manager for Device Events and Files...681machine # [ 3.765290] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.682machine # [ 3.768397] systemd[1]: Stopped Virtual Console Setup.683machine # [ 3.776716] systemd[1]: initrd-cleanup.service: Deactivated successfully.684machine # [ 3.780166] systemd[1]: Finished Cleaning Up and Shutting Down Daemons.685machine # [ 3.783314] systemd[1]: rw-sysroot-nix-store.service: Deactivated successfully.686machine # [ 3.786087] systemd[1]: Finished rw-sysroot-nix-store.service.687machine # [ 3.788291] systemd[1]: systemd-udevd.service: Deactivated successfully.688machine # [ 3.789705] systemd[1]: Stopped Rule-based Manager for Device Events and Files.689machine # [ 3.794137] systemd[1]: systemd-udevd-control.socket: Deactivated successfully.690machine # [ 3.795561] systemd[1]: Closed udev Control Socket.691machine # [ 3.797088] systemd[1]: Starting Cleanup udev Database...692machine # [ 3.799180] systemd[1]: systemd-tmpfiles-setup-dev.service: Deactivated successfully.693machine # [ 3.800673] systemd[1]: Stopped Create Static Device Nodes in /dev.694machine # [ 3.801974] systemd[1]: systemd-tmpfiles-setup-dev-early.service: Deactivated successfully.695machine # [ 3.803612] systemd[1]: Stopped Create Static Device Nodes in /dev gracefully.696machine # [ 3.805173] systemd[1]: kmod-static-nodes.service: Deactivated successfully.697machine # [ 3.806707] systemd[1]: Stopped Create List of Static Device Nodes.698machine # [ 3.819064] systemd[1]: initrd-udevadm-cleanup-db.service: Deactivated successfully.699machine # [ 3.821134] systemd[1]: Finished Cleanup udev Database.700machine # [ 3.822413] systemd[1]: Reached target Switch Root.701machine # [ 3.825150] systemd[1]: Starting NixOS Activation...702machine # [ 3.939261] initrd-nixos-activation-start[195]: booting system configuration /nix/store/xp6n5r0v6jz9ia648vk2v1ipc9ni851l-nixos-system-machine-test703machine # [ 3.982910] initrd-nixos-activation-start[195]: running activation script...704machine # [ 4.266723] initrd-nixos-activation-start[218]: setting up /etc...705machine # [ 4.433632] systemd[1]: initrd-nixos-activation.service: Deactivated successfully.706machine # [ 4.436087] systemd[1]: Finished NixOS Activation.707machine # [ 4.437981] systemd[1]: Starting Switch Root...708machine # [ 4.452960] systemd[1]: Switching root.709machine # [ 4.772199] systemd-journald[67]: Received SIGTERM from PID 1 (systemd).710machine # [ 4.880470] NET: Registered PF_VSOCK protocol family711machine # [ 5.247086] systemd[1]: systemd 261.2 running in system mode (+PAM +AUDIT -SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK -BTF -XKBCOMMON +UTMP +LIBARCHIVE)712machine # [ 5.254010] systemd[1]: Detected virtualization kvm.713machine # [ 5.255216] systemd[1]: Detected architecture x86-64.714machine # [ 5.256422] systemd[1]: Detected first boot.715machine # [ 5.259322] systemd[1]: Initializing machine ID from random generator.716machine # [ 5.482485] systemd[1]: bpf-restrict-fs: LSM BPF program attached717machine # [ 5.574033] systemd[1]: Applying preset policy.718machine # [ 5.913829] systemd[1]: Populated /etc with preset unit settings.719machine # [ 6.250897] systemd[1]: initrd-switch-root.service: Deactivated successfully.720machine # [ 6.252695] systemd[1]: Stopped initrd-switch-root.service.721machine # [ 6.255566] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 1.722machine # [ 6.257943] systemd[1]: Created slice Slice /system/getty.723machine # [ 6.259538] systemd[1]: Created slice User and Session Slice.724machine # [ 6.260705] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.725machine # [ 6.262286] systemd[1]: Started Forward Password Requests to Wall Directory Watch.726machine # [ 6.263654] systemd[1]: Expecting device /dev/hvc0...727machine # [ 6.264611] systemd[1]: Expecting device /dev/ttyS0...728machine # [ 6.265608] systemd[1]: Reached target Local Encrypted Volumes.729machine # [ 6.266694] systemd[1]: Stopped target initrd-fs.target.730machine # [ 6.267702] systemd[1]: Stopped target initrd-root-fs.target.731machine # [ 6.268762] systemd[1]: Stopped target initrd-switch-root.target.732machine # [ 6.269903] systemd[1]: Reached target Virtual Machines and Containers.733machine # [ 6.271114] systemd[1]: Reached target Path Units.734machine # [ 6.272068] systemd[1]: Reached target Remote File Systems.735machine # [ 6.273124] systemd[1]: Reached target Slice Units.736machine # [ 6.283958] systemd[1]: Reached target Swaps.737machine # [ 6.286742] systemd[1]: Listening on Query the User Interactively for a Password.738machine # [ 6.290400] systemd[1]: Listening on Process Core Dump Socket.739machine # [ 6.293006] systemd[1]: Listening on Credential Encryption/Decryption.740machine # [ 6.295781] systemd[1]: Listening on Factory Reset Management.741machine # [ 6.296981] systemd[1]: Listening on Hostname Service Socket.742machine # [ 6.300505] systemd[1]: Starting Journal Log Access Socket...743machine # [ 6.302514] systemd[1]: Listening on Journal Audit Socket.744machine # [ 6.305475] systemd[1]: Listening on Console Output Muting Service Socket.745machine # [ 6.306854] systemd[1]: Listening on Userspace Out-Of-Memory (OOM) Killer Socket.746machine # [ 6.308453] systemd[1]: TPM PCR Measurements skipped, unmet condition check ConditionSecurity=measured-os747machine # [ 6.310107] systemd[1]: Make TPM PCR Policy skipped, unmet condition check ConditionSecurity=measured-uki748machine # [ 6.317340] systemd[1]: Listening on Disk Repartitioning Service Socket.749machine # [ 6.318676] systemd[1]: Listening on udev Control Socket.750machine # [ 6.319879] systemd[1]: Listening on udev Varlink Socket.751machine # [ 6.322829] systemd[1]: Mounting Huge Pages File System...752machine # [ 6.327896] systemd[1]: Mounting POSIX Message Queue File System...753machine # [ 6.332451] systemd[1]: Mounting Kernel Debug File System...754machine # [ 6.339951] systemd[1]: Mounting Kernel Trace File System...755machine # [ 6.345551] systemd[1]: Starting Create List of Static Device Nodes...756machine # [ 6.348016] systemd[1]: Load Kernel Module 9pnet_virtio skipped, unmet condition check ConditionKernelModuleLoaded=!9pnet_virtio757machine # [ 6.358556] systemd[1]: Starting Load Kernel Module configfs...758machine # [ 6.369068] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm759machine # [ 6.373395] systemd[1]: Load Kernel Module efi_pstore skipped, unmet condition check ConditionKernelModuleLoaded=!efi_pstore760machine # [ 6.376000] systemd[1]: Load Kernel Module fuse skipped, unmet condition check ConditionKernelModuleLoaded=!fuse761machine # [ 6.388653] systemd[1]: Mounting FUSE Control File System...762machine # [ 6.393717] systemd[1]: Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67763machine # [ 6.400605] systemd[1]: Starting Journal Service...764machine # [ 6.409359] systemd[1]: Starting Load Kernel Modules...765machine # [ 6.419354] systemd[1]: Starting Userspace Out-Of-Memory (OOM) Killer...766machine # [ 6.430483] systemd[1]: Starting Remount Root and Kernel File Systems...767machine # [ 6.435838] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os768machine # [ 6.449473] systemd[1]: Starting Coldplug All udev Devices...769machine # [ 6.467905] systemd-journald[288]: Collecting audit messages is enabled.770machine # [ 6.473665] systemd[1]: Listening on Journal Log Access Socket.771machine # [ 6.476481] loop: module loaded772machine # [ 6.480426] systemd[1]: Mounted Huge Pages File System.773machine # [ 6.487637] systemd[1]: Mounted POSIX Message Queue File System.774machine # [ 6.488814] EXT4-fs (vda): re-mounted 72de9255-9baa-41d3-8bac-67b648a38725.775machine # [ 6.492066] systemd[1]: Mounted Kernel Debug File System.776machine # [ 6.497880] systemd[1]: Mounted Kernel Trace File System.777machine # [ 6.505347] systemd[1]: Finished Create List of Static Device Nodes.778machine # [ 6.510534] systemd[1]: modprobe@configfs.service: Deactivated successfully.779machine # [ 6.319614] systemd[1]: Queued start job for default target Multi-User System.780machine # [ 6.322320] systemd[1]: systemd-journald.service: Deactivated successfully.781machine # [ 6.326510] systemd-modules-load[289]: Inserted module 'loop'782machine # [ 6.522011] systemd[1]: Finished Load Kernel Module configfs.783machine # [ 6.526386] systemd[1]: Started Journal Service.784machine # [ 6.343101] systemd[1]: Mounted FUSE Control File System.785machine # [ 6.345974] systemd[1]: Finished Load Kernel Modules.786machine # [ 6.349183] systemd[1]: Finished Remount Root and Kernel File Systems.787machine # [ 6.361341] systemd-oomd[291]: No swap; memory pressure usage will be degraded788machine # [ 6.367660] systemd[1]: Started Userspace Out-Of-Memory (OOM) Killer.789machine # [ 6.370238] systemd[1]: Listening on Disk Image Download Service Socket.790machine # [ 6.375083] systemd[1]: Mounting Kernel Configuration File System...791machine # [ 6.377838] systemd[1]: Starting Firewall...792machine # [ 6.388980] systemd[1]: Starting Flush Journal to Persistent Storage...793machine # [ 6.390313] systemd[1]: Platform Persistent Storage Archival skipped, unmet condition check ConditionDirectoryNotEmpty=/sys/fs/pstore794machine # [ 6.396730] systemd[1]: Starting Load/Save OS Random Seed...795machine # [ 6.407240] systemd[1]: Starting Apply Kernel Variables...796machine # [ 6.421412] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...797machine # [ 6.424102] systemd[1]: TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os798machine # [ 6.648570] systemd-journald[288]: Received client request to flush runtime journal.799machine # [ 6.697164] systemd[1]: Mounted Kernel Configuration File System.800machine # [ 6.700173] systemd[1]: Finished Load/Save OS Random Seed.801machine # [ 6.704633] systemd[1]: Reached target First Boot Complete.802machine # [ 6.708582] systemd[1]: Finished Apply Kernel Variables.803machine # [ 6.710987] systemd[1]: Finished Create Static Device Nodes in /dev gracefully.804machine # [ 6.714368] systemd[1]: Starting Create Static Device Nodes in /dev...805machine # [ 6.716704] systemd[1]: Finished Create Static Device Nodes in /dev.806machine # [ 6.718880] systemd[1]: Reached target Preparation for Local File Systems.807machine # [ 6.720757] systemd[1]: Starting Rule-based Manager for Device Events and Files...808machine # [ 6.723220] systemd[1]: Finished Flush Journal to Persistent Storage.809machine # [ 6.726322] systemd-udevd[326]: Using default interface naming scheme 'v261'.810machine # [ 6.746328] systemd[1]: Finished Coldplug All udev Devices.811machine # [ 6.814169] systemd[1]: Started Rule-based Manager for Device Events and Files.812machine # [ 6.979139] systemd[1]: Load Kernel Module fuse skipped, unmet condition check ConditionKernelModuleLoaded=!fuse813machine # [ 7.062166] systemd[1]: Mounting /run/wrappers...814machine # [ 7.077635] systemd[1]: Condition check resulted in /dev/hvc0 being skipped.815machine # [ 7.101252] systemd[1]: Mounted /run/wrappers.816machine # [ 7.103276] systemd[1]: Reached target Local File Systems.817machine # [ 7.107358] systemd[1]: Listening on Boot Loader Control Service Socket.818machine # [ 7.112649] systemd[1]: Starting register-nix-paths.service...819machine # [ 7.115576] systemd[1]: Starting Create SUID/SGID Wrappers...820machine # [ 7.118052] systemd[1]: Update Boot Loader Random Seed skipped, no trigger condition checks were met.821machine # [ 7.130245] systemd[1]: Starting Save Transient machine-id to Disk...822machine # [ 7.142731] systemd[1]: Starting Create System Files and Directories...823machine # [ 7.146469] systemd[1]: Condition check resulted in /dev/ttyS0 being skipped.824machine # [ 7.169875] (udev-worker)[378]: eth1: Config file /etc/systemd/network/40-eth1.link is applied to device based on potentially unpredictable interface name.825machine # [ 7.176305] (udev-worker)[373]: Network interface NamePolicy= disabled on kernel command line.826machine # [ 7.180526] (udev-worker)[378]: Network interface NamePolicy= disabled on kernel command line.827machine # [ 7.237120] systemd[1]: etc-machine\x2did.mount: Deactivated successfully.828machine # [ 7.249215] systemd[1]: Finished Save Transient machine-id to Disk.829machine # [ 7.280554] systemd[1]: Finished Create System Files and Directories.830machine # [ 7.292247] systemd[1]: Starting Rebuild Journal Catalog...831machine # [ 7.298315] systemd[1]: Starting Record System Boot/Shutdown in UTMP...832machine # [ 7.372321] systemd[1]: Finished Record System Boot/Shutdown in UTMP.833machine # [ 7.408926] systemd[1]: Finished Firewall.834machine # [ 7.412717] systemd[1]: Finished Rebuild Journal Catalog.835machine # [ 7.422274] systemd[1]: Starting Update is Completed...836machine # [ 7.429201] systemd[1]: Condition check resulted in Virtio network device being skipped.837machine # [ 7.430753] systemd[1]: Load Kernel Module efi_pstore skipped, unmet condition check ConditionKernelModuleLoaded=!efi_pstore838machine # [ 7.433813] systemd[1]: Update Boot Loader Random Seed skipped, no trigger condition checks were met.839machine # [ 7.436582] systemd[1]: Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67840machine # [ 7.440473] systemd[1]: Platform Persistent Storage Archival skipped, unmet condition check ConditionDirectoryNotEmpty=/sys/fs/pstore841machine # [ 7.443537] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os842machine # [ 7.445768] systemd[1]: TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os843machine # [ 7.481877] systemd[1]: Finished Update is Completed.844machine # [ 7.636172] systemd[1]: suid-sgid-wrappers.service: Deactivated successfully.845machine # [ 7.637889] systemd[1]: Finished Create SUID/SGID Wrappers.846machine # [ 7.868482] bochs-drm 0000:00:01.0: vgaarb: deactivate vga console847machine # [ 7.875518] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3848machine # [ 7.887256] mousedev: PS/2 mouse device common for all mice849machine # [ 7.904330] ACPI: button: Power Button [PWRF]850machine # [ 7.945097] rtc_cmos 00:04: RTC can wake from S4851machine # [ 7.956351] rtc_cmos 00:04: registered as rtc0852machine # [ 7.956453] rtc_cmos 00:04: setting system clock to 2026-09-09T21:48:21 UTC (1788990501)853machine # [ 7.956540] rtc_cmos 00:04: alarms up to one day, y3k, 242 bytes nvram, hpet irqs854machine # [ 7.957637] systemd-journald[288]: Time jumped backwards, rotating.855machine # [ 7.974673] parport_pc 00:02: reported by Plug and Play ACPI856machine # [ 7.974768] parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]857machine # [ 7.979665] Console: switching to colour dummy device 80x25858machine # [ 7.982939] input: QEMU Virtio Keyboard as /devices/pci0000:00/0000:00:09.0/virtio7/input/input4859machine # [ 8.037935] lpc_ich 0000:00:1f.0: I/O space for GPIO uninitialized860machine # [ 7.910135] systemd[1]: Finished register-nix-paths.service.861machine # [ 7.911621] systemd[1]: Reached target System Initialization.862machine # [ 7.915256] systemd[1]: Started Discard unused filesystem blocks once a week.863machine # [ 7.916674] systemd[1]: Started Daily Cleanup of Temporary Directories.864machine # [ 7.918363] systemd[1]: Reached target Timer Units.865machine # [ 7.920200] systemd[1]: Listening on D-Bus System Message Bus Socket.866machine # [ 7.921679] systemd[1]: Listening on Nix Daemon Socket.867machine # [ 8.098782] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt868machine # [ 8.098884] i2c i2c-0: Memory type 0x07 not supported yet, not instantiating SPD869machine # [ 7.925076] systemd[1]: Listening on Virtual Machine and Container Registration Service Socket.870machine # [ 7.926694] systemd[1]: Reached target Socket Units.871machine # [ 7.927743] systemd[1]: Reached target Basic System.872machine # [ 7.930354] systemd[1]: Started backdoor.service.873machine # [ 7.936386] systemd[1]: Starting Import lastlog data into lastlog2 database...874machine # [ 7.943078] systemd[1]: Starting Name Service Cache Daemon (nsncd)...875machine # [ 7.952532] systemd[1]: Starting Post-Boot Actions...876machine # [ 8.153908] [drm] Found bochs VGA, ID 0xb0c5.877machine # [ 8.153910] [drm] Framebuffer size 16384 kB @ 0xfd000000, mmio @ 0xfebd0000.878machine # [ 7.966272] systemd[1]: Started Reset console on configuration changes.879machine # [ 8.162296] bochs-drm 0000:00:01.0: [drm] Registered 1 planes with drm panic880machine # [ 8.163240] [drm] Initialized bochs-drm 1.0.0 for 0000:00:01.0 on minor 0881machine # [ 7.976285] systemd[1]: Starting resolvconf update...882machine # [ 8.017542] systemd[1]: Starting D-Bus System Message Bus...883machine # connecting to host...884machine # [ 8.235117] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input6885machine # [ 8.236728] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input5886machine # [ 8.052317] systemd[1]: Finished Post-Boot Actions.887machine # [ 8.053421] systemd[1]: Started Name Service Cache Daemon (nsncd).888machine # [ 8.059109] nsncd[513]: Sep 09 21:48:21.787 INFO started, config: Config { ignored_request_types: {}, worker_count: 8, handoff_timeout: 10s }, path: "/var/run/nscd/socket"889machine: Guest shell says: b'Spawning backdoor root shell...\n'890machine: connected to guest root shell891machine: (connecting took 8.82 seconds)892machine: (finished: waiting for the VM to finish booting, in 9.00 seconds)893machine # [ 8.083109] systemd[1]: Reached target Host and Network Name Lookups.894machine # [ 8.084674] systemd[1]: Reached target User and Group Name Lookups.895machine # [ 8.101692] systemd[1]: Starting User Login Management...896machine # [ 8.125642] systemd[1]: Finished Import lastlog data into lastlog2 database.897machine # [ 8.172475] dbus-broker-launch[521]: Looking up NSS user entry for 'systemd-timesync'...898machine # [ 8.237244] dbus-broker-launch[521]: NSS returned no entry for 'systemd-timesync'899machine # [ 8.239294] dbus-broker-launch[521]: Invalid user-name in /nix/store/ffqa0p4nz9bq7r9r5fhjlyn1mrxr2qfm-system-path/share/dbus-1/system.d/org.freedesktop.timesync1.conf +16: user="systemd-timesync"900machine # [ 8.247226] systemd[1]: Stopped target Host and Network Name Lookups.901machine # [ 8.248501] systemd[1]: Stopping Host and Network Name Lookups...902machine # [ 8.249685] systemd[1]: Stopped target User and Group Name Lookups.903machine # [ 8.250889] systemd[1]: Stopping User and Group Name Lookups...904machine # [ 8.255989] systemd[1]: Stopping Name Service Cache Daemon (nsncd)...905machine # [ 8.262101] systemd[1]: Starting Virtual Console Setup...906machine # [ 8.540406] Console: switching to colour frame buffer device 160x50907machine # [ 8.575960] bochs-drm 0000:00:01.0: [drm] fb0: bochs-drmdrmfb frame buffer device908machine # [ 8.271694] systemd[1]: nscd.service: Deactivated successfully.909machine # [ 8.389714] systemd[1]: Stopped Name Service Cache Daemon (nsncd).910machine # [ 8.393248] systemd[1]: Started D-Bus System Message Bus.911machine # [ 8.395866] dbus-broker-launch[521]: Ready912machine # [ 8.399369] systemd[1]: Starting Name Service Cache Daemon (nsncd)...913machine # [ 8.401269] nsncd[600]: Sep 09 21:48:22.107 INFO started, config: Config { ignored_request_types: {}, worker_count: 8, handoff_timeout: 10s }, path: "/var/run/nscd/socket"914machine # [ 8.404650] systemd[1]: Started Name Service Cache Daemon (nsncd).915machine # [ 8.407167] systemd[1]: Reached target Host and Network Name Lookups.916machine # [ 8.408564] systemd[1]: Reached target User and Group Name Lookups.917machine # [ 8.411371] systemd[1]: Finished resolvconf update.918machine # [ 8.413779] systemd-logind[542]: New seat seat0.919machine # [ 8.415773] systemd[1]: Reached target Preparation for Network.920machine # [ 8.419868] systemd-logind[542]: Watching system buttons on /dev/input/event0 (AT Translated Set 2 keyboard)921machine # [ 8.421980] systemd-logind[542]: Watching system buttons on /dev/input/event2 (Power Button)922machine # [ 8.425161] systemd[1]: Starting DHCP Client...923machine # [ 8.427133] systemd[1]: Starting Address configuration of eth1...924machine # [ 8.433329] systemd[1]: Starting Extra networking commands....925machine # [ 8.438086] systemd[1]: Started User Login Management.926machine # [ 8.446549] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.927machine # [ 8.451723] systemd[1]: Stopped Virtual Console Setup.928machine # [ 8.472466] systemd[1]: Starting linger-users.service...929machine # [ 8.478237] systemd[1]: Starting Virtual Console Setup...930machine # [ 8.714431] ppdev: user-space parallel port driver931machine # [ 8.555504] systemd[1]: linger-users.service: Deactivated successfully.932machine # [ 8.561571] systemd[1]: Finished linger-users.service.933machine # [ 8.568546] network-addresses-eth1-start[623]: adding address 192.168.1.1/24... done934machine # [ 8.581907] network-addresses-eth1-start[623]: adding address 2001:db8:1::1/64... done935machine # [ 8.621671] systemd[1]: Finished Address configuration of eth1.936machine # [ 8.848138] iTCO_wdt iTCO_wdt.1.auto: Found a ICH9 TCO device (Version=2, TCOBASE=0x0660)937machine # [ 8.670620] systemd-logind[542]: Watching system buttons on /dev/input/event3 (QEMU Virtio Keyboard)938machine # [ 8.901965] iTCO_wdt iTCO_wdt.1.auto: initialized. heartbeat=30 sec (nowayout=0)939machine # [ 8.711460] systemd[1]: Finished Extra networking commands..940machine # [ 8.714279] systemd[1]: Reached target Network.941machine # [ 8.727742] systemd[1]: Starting PostgreSQL Server...942machine # [ 8.731178] systemd[1]: Starting Permit User Sessions...943machine # [ 8.746749] dhcpcd[647]: dhcpcd-10.3.2 starting944machine # [ 8.755221] dhcpcd[698]: dev: loaded udev945machine # [ 8.976066] 8021q: 802.1Q VLAN Support v1.8946machine # [ 8.984547] 8021q: adding VLAN 0 to HW filter on device eth1947machine # [ 8.796784] systemd[1]: Finished Permit User Sessions.948machine # [ 8.808258] systemd[1]: Started Getty on tty1.949machine # [ 8.809369] systemd[1]: Reached target Login Prompts.950machine # [ 8.820930] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.951machine # [ 8.831375] systemd[1]: Stopped Virtual Console Setup.952machine # [ 8.847311] systemd[1]: Starting Virtual Console Setup...953machine # [ 8.912114] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.954machine # [ 9.166909] cfg80211: Loading compiled-in X.509 certificates for regulatory database955machine # [ 9.193344] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'956machine # [ 9.195277] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'957machine # [ 9.199353] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2958machine # [ 9.200495] cfg80211: failed to load regulatory.db959machine # [ 9.209821] kvm_amd: TSC scaling supported960machine # [ 9.210707] kvm_amd: Nested Virtualization enabled961machine # [ 9.212495] kvm_amd: Nested Paging enabled962machine # [ 9.213078] kvm_amd: LBR virtualization supported963machine # [ 9.214397] kvm_amd: Virtual VMLOAD VMSAVE supported964machine # [ 9.215069] kvm_amd: Virtual GIF supported965machine # [ 9.258722] 8021q: adding VLAN 0 to HW filter on device eth0966machine # [ 9.066778] dhcpcd[698]: eth0: waiting for carrier967machine # [ 9.068440] dhcpcd[698]: eth0: carrier acquired968machine # [ 9.073393] postgresql-pre-start[710]: The files belonging to this database system will be owned by user "postgres".969machine # [ 9.077103] postgresql-pre-start[710]: This user must also own the server process.970machine # [ 9.082769] dhcpcd[698]: DUID 00:01:00:01:32:34:90:a6:52:54:00:12:34:56971machine # [ 9.084382] dhcpcd[698]: eth0: IAID 00:12:34:56972machine # [ 9.087660] dhcpcd[698]: eth0: adding address fe80::5054:ff:fe12:3456973machine # [ 9.090243] postgresql-pre-start[710]: The database cluster will be initialized with locale "en_US.UTF-8".974machine # [ 9.092659] postgresql-pre-start[710]: The default database encoding has accordingly been set to "UTF8".975machine # [ 9.095072] postgresql-pre-start[710]: The default text search configuration will be set to "english".976machine # [ 9.096816] postgresql-pre-start[710]: Data page checksums are enabled.977machine # [ 9.099201] postgresql-pre-start[710]: fixing permissions on existing directory /var/lib/postgresql/18 ... ok978machine # [ 9.100846] postgresql-pre-start[710]: creating subdirectories ... ok979machine # [ 9.102217] postgresql-pre-start[710]: selecting dynamic shared memory implementation ... posix980machine # [ 9.297723] EDAC MC: Ver: 3.0.0981machine # [ 9.161662] postgresql-pre-start[710]: selecting default "max_connections" ... 100982machine # [ 9.214741] systemd-vconsole-setup[707]: Configuration of first virtual console was skipped, ignoring remaining ones.983machine # [ 9.218801] systemd[1]: Finished Virtual Console Setup.984machine # [ 9.220679] postgresql-pre-start[710]: selecting default "shared_buffers" ... 128MB985machine # [ 9.361539] dhcpcd[698]: eth0: soliciting a DHCP lease986machine # [ 9.566628] NET: Registered PF_PACKET protocol family987machine # [ 9.377504] dhcpcd[698]: eth0: offered 10.0.2.15 from 10.0.2.2988machine # [ 9.379185] dhcpcd[698]: eth0: probing address 10.0.2.15/24989machine # [ 10.569095] postgresql-pre-start[710]: selecting default time zone ... UTC990machine # [ 10.571940] postgresql-pre-start[710]: creating configuration files ... ok991machine # [ 10.749696] postgresql-pre-start[710]: running bootstrap script ... ok992machine # [ 11.186128] postgresql-pre-start[710]: performing post-bootstrap initialization ... ok993machine # [ 11.341819] postgresql-pre-start[710]: syncing data to disk ... ok994machine # [ 11.343049] postgresql-pre-start[710]: initdb: warning: enabling "trust" authentication for local connections995machine # [ 11.344714] postgresql-pre-start[710]: initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.996machine # [ 11.347271] postgresql-pre-start[710]: Success. You can now start the database server using:997machine # [ 11.348725] postgresql-pre-start[710]: pg_ctl -D /var/lib/postgresql/18 -l logfile start998machine # [ 11.394269] dhcpcd[698]: eth0: soliciting an IPv6 router999machine # [ 11.395692] dhcpcd[698]: eth0: Router Advertisement from fe80::21000machine # [ 11.397472] dhcpcd[698]: eth0: adding address fec0::5054:ff:fe12:3456/641001machine # [ 11.399553] dhcpcd[698]: eth0: adding route to fec0::/641002machine # [ 11.402085] dhcpcd[698]: eth0: adding default route via fe80::21003machine # [ 11.471788] postgres[745]: [745] LOG: starting PostgreSQL 18.6 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit1004machine # [ 11.478222] postgres[745]: [745] LOG: listening on IPv6 address "::1", port 54321005machine # [ 11.479585] postgres[745]: [745] LOG: listening on IPv4 address "127.0.0.1", port 54321006machine # [ 11.494501] postgres[745]: [745] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"1007machine # [ 11.527286] postgres[758]: [758] LOG: database system was shut down at 2026-09-09 21:48:24 GMT1008machine # [ 11.543257] postgres[745]: [745] LOG: database system is ready to accept connections1009machine # [ 11.558296] systemd[1]: Started PostgreSQL Server.1010machine # [ 11.565856] systemd[1]: Starting PostgreSQL Setup Scripts...1011machine # [ 11.740940] postgresql-setup-start[769]: CREATE DATABASE1012machine # [ 11.771834] postgresql-setup-start[774]: CREATE ROLE1013machine # [ 11.787184] postgresql-setup-start[776]: ALTER DATABASE1014machine # [ 11.792079] systemd[1]: Finished PostgreSQL Setup Scripts.1015machine # [ 11.793927] systemd[1]: Reached target PostgreSQL.1016machine: (finished: waiting for unit postgresql.service, in 13.36 seconds)1017machine: waiting for unit rustfs.service1018machine # [ 14.963865] dhcpcd[698]: eth0: leased 10.0.2.15 for 86400 seconds1019machine # [ 14.965257] dhcpcd[698]: eth0: adding route to 10.0.2.0/241020machine # [ 14.966404] dhcpcd[698]: eth0: adding default route via 10.0.2.21021machine # [ 15.034666] systemd[1]: Started DHCP Client.1022machine # [ 15.037336] systemd[1]: Reached target Network is Online.1023machine # [ 15.041388] systemd[1]: Starting RustFS Object Storage Server...1024machine # [ 15.607138] systemd[1]: Started RustFS Object Storage Server.1025machine # [ 15.619561] systemd[1]: Starting Self-hosted Zotero sync server...1026machine: (finished: waiting for unit rustfs.service, in 3.21 seconds)1027machine: waiting for TCP port 9000 on localhost1028machine # [ 15.672229] systemd[1]: Started Self-hosted Zotero sync server.1029machine # [ 15.675311] systemd[1]: Reached target Multi-User System.1030machine # [ 15.677325] systemd[1]: Startup finished in 868ms (kernel) + 3.778s (initrd) + 11.029s (userspace) = 15.676s.1031machine # Connection to localhost (::1) 9000 port [tcp/cslistener] succeeded!1032machine: (finished: waiting for TCP port 9000 on localhost, in 0.06 seconds)1033machine: waiting for unit zhost.service1034machine: (finished: waiting for unit zhost.service, in 0.05 seconds)1035machine: waiting for TCP port 8189 on localhost1036machine # [ 15.907301] zhost[886]: 2026-09-09T21:48:29.643240Z INFO zhost: zhost listening bind=127.0.0.1:81891037machine # Connection to localhost (127.0.0.1) 8189 port [tcp/*] succeeded!1038machine: (finished: waiting for TCP port 8189 on localhost, in 1.05 seconds)1039machine: must succeed: mc alias set s3 http://localhost:9000 rustfsadmin rustfsadmin1040machine: (finished: must succeed: mc alias set s3 http://localhost:9000 rustfsadmin rustfsadmin, in 0.29 seconds)1041machine: must succeed: mc mb s3/zotero1042machine: (finished: must succeed: mc mb s3/zotero, in 0.20 seconds)1043subtest: the module deploys a working service backed by postgres1044machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1045machine # [ 17.348949] zhost[886]: 2026-09-09T21:48:31.085194Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1046machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.05 seconds)1047(finished: subtest: the module deploys a working service backed by postgres, in 0.05 seconds)1048subtest: login session hands out the key only after authorization1049machine: must succeed: curl -sf -X POST http://localhost:8189/keys/sessions -d '{}' > /tmp/sess1050machine # [ 17.382101] zhost[886]: 2026-09-09T21:48:31.118664Z INFO zhost: request method=POST uri=/keys/sessions api_version=- if_unmod=- body={}1051machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/keys/sessions -d '{}' > /tmp/sess, in 0.03 seconds)1052machine: must succeed: jq -r .sessionToken /tmp/sess1053machine: (finished: must succeed: jq -r .sessionToken /tmp/sess, in 0.02 seconds)1054machine: must succeed: jq -r .loginURL /tmp/sess1055machine: (finished: must succeed: jq -r .loginURL /tmp/sess, in 0.02 seconds)1056machine: must succeed: curl -sf 'http://localhost:8189/login?session=7a94c7ab2b4619a78e1ed5dc29114805' | grep -qi 'Authorize'1057machine # [ 17.454616] zhost[886]: 2026-09-09T21:48:31.191138Z INFO zhost: request method=GET uri=/login?session=7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1058machine: (finished: must succeed: curl -sf 'http://localhost:8189/login?session=7a94c7ab2b4619a78e1ed5dc29114805' | grep -qi 'Authorize', in 0.03 seconds)1059machine: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "pending"'1060machine # [ 17.487913] zhost[886]: 2026-09-09T21:48:31.224589Z INFO zhost: request method=GET uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1061machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "pending"', in 0.03 seconds)1062machine: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.apiKey == null'1063machine # [ 17.521912] zhost[886]: 2026-09-09T21:48:31.258501Z INFO zhost: request method=GET uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1064machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.apiKey == null', in 0.03 seconds)1065machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'Origin: https://evil.example' -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805'1066machine # [ 17.554206] zhost[886]: 2026-09-09T21:48:31.290837Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=7a94c7ab2b4619a78e1ed5dc291148051067machine # [ 17.558257] zhost[886]: 2026-09-09T21:48:31.294788Z WARN zhost: response error method=POST uri=/login status=4031068machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'Origin: https://evil.example' -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805', in 0.03 seconds)1069machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -d 'session=7a94c7ab2b4619a78e1ed5dc29114805'1070machine # [ 17.587597] zhost[886]: 2026-09-09T21:48:31.323815Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=7a94c7ab2b4619a78e1ed5dc291148051071machine # [ 17.591380] zhost[886]: 2026-09-09T21:48:31.323840Z WARN zhost: response error method=POST uri=/login status=4031072machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -d 'session=7a94c7ab2b4619a78e1ed5dc29114805', in 0.03 seconds)1073machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: someone@else' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805'1074machine # [ 17.620611] zhost[886]: 2026-09-09T21:48:31.356779Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=7a94c7ab2b4619a78e1ed5dc291148051075machine # [ 17.624390] zhost[886]: 2026-09-09T21:48:31.356804Z WARN zhost: response error method=POST uri=/login status=4031076machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: someone@else' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805', in 0.03 seconds)1077machine: must succeed: curl -sf -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805'1078machine # [ 17.653078] zhost[886]: 2026-09-09T21:48:31.389720Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=7a94c7ab2b4619a78e1ed5dc291148051079machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=7a94c7ab2b4619a78e1ed5dc29114805', in 0.03 seconds)1080machine: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "completed"'1081machine # [ 17.693932] zhost[886]: 2026-09-09T21:48:31.430495Z INFO zhost: request method=GET uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1082machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "completed"', in 0.04 seconds)1083machine: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.apiKey == "testtoken"'1084machine # [ 17.725720] zhost[886]: 2026-09-09T21:48:31.462300Z INFO zhost: request method=GET uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1085machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.apiKey == "testtoken"', in 0.03 seconds)1086machine: must succeed: curl -sf -X DELETE http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc291148051087machine # [ 17.756539] zhost[886]: 2026-09-09T21:48:31.493179Z INFO zhost: request method=DELETE uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1088machine: (finished: must succeed: curl -sf -X DELETE http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805, in 0.03 seconds)1089machine: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "pending"'1090machine # [ 17.788081] zhost[886]: 2026-09-09T21:48:31.524595Z INFO zhost: request method=GET uri=/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 api_version=- if_unmod=- body=1091machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/7a94c7ab2b4619a78e1ed5dc29114805 | jq -e '.status == "pending"', in 0.03 seconds)1092(finished: subtest: login session hands out the key only after authorization, in 0.44 seconds)1093subtest: the login consent endpoint validates the session token1094machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login1095machine # [ 17.818891] zhost[886]: 2026-09-09T21:48:31.555476Z INFO zhost: request method=GET uri=/login api_version=- if_unmod=- body=1096machine # [ 17.822212] zhost[886]: 2026-09-09T21:48:31.555497Z WARN zhost: response error method=GET uri=/login status=4001097machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login, in 0.03 seconds)1098machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login?session=nope1099machine # [ 17.851315] zhost[886]: 2026-09-09T21:48:31.587890Z INFO zhost: request method=GET uri=/login?session=nope api_version=- if_unmod=- body=1100machine # [ 17.855111] zhost[886]: 2026-09-09T21:48:31.587914Z WARN zhost: response error method=GET uri=/login?session=nope status=4041101machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login?session=nope, in 0.03 seconds)1102machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=nope'1103machine # [ 17.884297] zhost[886]: 2026-09-09T21:48:31.620818Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=nope1104machine # [ 17.888099] zhost[886]: 2026-09-09T21:48:31.620844Z WARN zhost: response error method=POST uri=/login status=4041105machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=nope', in 0.03 seconds)1106(finished: subtest: the login consent endpoint validates the session token, in 0.10 seconds)1107subtest: groups endpoint returns an empty set (single personal library)1108machine: must succeed: curl -sf http://localhost:8189/users/1/groups -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1109machine # [ 17.920348] zhost[886]: 2026-09-09T21:48:31.656992Z INFO zhost: request method=GET uri=/users/1/groups api_version=3 if_unmod=- body=1110machine: (finished: must succeed: curl -sf http://localhost:8189/users/1/groups -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.04 seconds)1111(finished: subtest: groups endpoint returns an empty set (single personal library), in 0.04 seconds)1112subtest: the api key is required off the bootstrap paths1113machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Version: 3'1114machine # [ 17.953164] zhost[886]: 2026-09-09T21:48:31.689725Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1115machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Version: 3', in 0.03 seconds)1116(finished: subtest: the api key is required off the bootstrap paths, in 0.03 seconds)1117subtest: a read-only key reads but cannot write1118machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3'1119machine # [ 17.984535] zhost[886]: 2026-09-09T21:48:31.721215Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1120machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3', in 0.04 seconds)1121machine: must succeed: curl -sf http://localhost:8189/keys/current -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' | jq -e '.access.user.write == false'1122machine # [ 18.023344] zhost[886]: 2026-09-09T21:48:31.759926Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1123machine: (finished: must succeed: curl -sf http://localhost:8189/keys/current -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' | jq -e '.access.user.write == false', in 0.03 seconds)1124machine: must succeed: curl -sf http://localhost:8189/keys/current -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.access.user.write == true'1125machine # [ 18.054639] zhost[886]: 2026-09-09T21:48:31.791216Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1126machine: (finished: must succeed: curl -sf http://localhost:8189/keys/current -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.access.user.write == true', in 0.03 seconds)1127machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"RDNLY222","itemType":"book"}]'1128machine # [ 18.085678] zhost[886]: 2026-09-09T21:48:31.822260Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"RDNLY222","itemType":"book"}]1129machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"RDNLY222","itemType":"book"}]', in 0.03 seconds)1130machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X DELETE 'http://localhost:8189/users/1/items?itemKey=ITEM2223' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3'1131machine # [ 18.116499] zhost[886]: 2026-09-09T21:48:31.853178Z INFO zhost: request method=DELETE uri=/users/1/items?itemKey=ITEM2223 api_version=3 if_unmod=- body=1132machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X DELETE 'http://localhost:8189/users/1/items?itemKey=ITEM2223' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1133(finished: subtest: a read-only key reads but cannot write, in 0.16 seconds)1134subtest: an item round-trips through write and read1135machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ITEM2223","itemType":"book","title":"t"}]' | jq -e '.successful."0".key == "ITEM2223"'1136machine # [ 18.147947] zhost[886]: 2026-09-09T21:48:31.884421Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"ITEM2223","itemType":"book","title":"t"}]1137machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ITEM2223","itemType":"book","title":"t"}]' | jq -e '.successful."0".key == "ITEM2223"', in 0.04 seconds)1138machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.ITEM2223'1139machine # [ 18.190716] zhost[886]: 2026-09-09T21:48:31.927085Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1140machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.ITEM2223', in 0.03 seconds)1141machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ITEM2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.itemType == "book"'1142machine # [ 18.223744] zhost[886]: 2026-09-09T21:48:31.960245Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ITEM2223&format=json api_version=3 if_unmod=- body=1143machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ITEM2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.itemType == "book"', in 0.03 seconds)1144(finished: subtest: an item round-trips through write and read, in 0.11 seconds)1145subtest: a stale write is rejected with 4121146machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ITEMSTAL","itemType":"book"}]'1147machine # [ 18.255642] zhost[886]: 2026-09-09T21:48:31.992210Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"ITEMSTAL","itemType":"book"}]1148machine # [ 18.260270] zhost[886]: 2026-09-09T21:48:31.996783Z WARN zhost: response error method=POST uri=/users/1/items status=4121149machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ITEMSTAL","itemType":"book"}]', in 0.03 seconds)1150(finished: subtest: a stale write is rejected with 412, in 0.03 seconds)1151subtest: a write without If-Unmodified-Since-Version is rejected with 4281152machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -d '[{"key":"NPRECN22","itemType":"book"}]'1153machine # [ 18.289872] zhost[886]: 2026-09-09T21:48:32.026441Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=- body=[{"key":"NPRECN22","itemType":"book"}]1154machine # [ 18.293725] zhost[886]: 2026-09-09T21:48:32.026468Z WARN zhost: response error method=POST uri=/users/1/items status=4281155machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -d '[{"key":"NPRECN22","itemType":"book"}]', in 0.03 seconds)1156(finished: subtest: a write without If-Unmodified-Since-Version is rejected with 428, in 0.03 seconds)1157subtest: a malformed object key is rejected with 4001158machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21159machine # [ 18.326910] zhost[886]: 2026-09-09T21:48:32.063377Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1160machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1161machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"HASOABC2","itemType":"book"}]'1162machine # [ 18.360600] zhost[886]: 2026-09-09T21:48:32.096119Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"HASOABC2","itemType":"book"}]1163machine # [ 18.364445] zhost[886]: 2026-09-09T21:48:32.096148Z WARN zhost: response error method=POST uri=/users/1/items status=4001164machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"HASOABC2","itemType":"book"}]', in 0.03 seconds)1165machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21166machine # [ 18.397474] zhost[886]: 2026-09-09T21:48:32.133908Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1167machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1168machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"HAS0ABC2","itemType":"book"}]'1169machine # [ 18.429790] zhost[886]: 2026-09-09T21:48:32.166301Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"HAS0ABC2","itemType":"book"}]1170machine # [ 18.433643] zhost[886]: 2026-09-09T21:48:32.166338Z WARN zhost: response error method=POST uri=/users/1/items status=4001171machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"HAS0ABC2","itemType":"book"}]', in 0.03 seconds)1172machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21173machine # [ 18.466620] zhost[886]: 2026-09-09T21:48:32.203199Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1174machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1175machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"SHORTKY","itemType":"book"}]'1176machine # [ 18.499628] zhost[886]: 2026-09-09T21:48:32.235870Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"SHORTKY","itemType":"book"}]1177machine # [ 18.503471] zhost[886]: 2026-09-09T21:48:32.235899Z WARN zhost: response error method=POST uri=/users/1/items status=4001178machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"SHORTKY","itemType":"book"}]', in 0.03 seconds)1179machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21180machine # [ 18.536766] zhost[886]: 2026-09-09T21:48:32.273443Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1181machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1182machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"TOOLONGKY","itemType":"book"}]'1183machine # [ 18.575914] zhost[886]: 2026-09-09T21:48:32.311092Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"TOOLONGKY","itemType":"book"}]1184machine # [ 18.581568] zhost[886]: 2026-09-09T21:48:32.311128Z WARN zhost: response error method=POST uri=/users/1/items status=4001185machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"TOOLONGKY","itemType":"book"}]', in 0.04 seconds)1186machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21187machine # [ 18.636368] zhost[886]: 2026-09-09T21:48:32.372684Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1188machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.06 seconds)1189machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"lowercs2","itemType":"book"}]'1190machine # [ 18.672395] zhost[886]: 2026-09-09T21:48:32.408957Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"lowercs2","itemType":"book"}]1191machine # [ 18.676573] zhost[886]: 2026-09-09T21:48:32.408986Z WARN zhost: response error method=POST uri=/users/1/items status=4001192machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"lowercs2","itemType":"book"}]', in 0.04 seconds)1193machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=HASOABC2&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == []'1194machine # [ 18.706288] zhost[886]: 2026-09-09T21:48:32.442917Z INFO zhost: request method=GET uri=/users/1/items?itemKey=HASOABC2&format=json api_version=3 if_unmod=- body=1195machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=HASOABC2&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == []', in 0.03 seconds)1196(finished: subtest: a malformed object key is rejected with 400, in 0.42 seconds)1197subtest: an empty batch does not bump the library version1198machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21199machine # [ 18.741865] zhost[886]: 2026-09-09T21:48:32.478453Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1200machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1201machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[]' | jq -e .successful1202machine # [ 18.774706] zhost[886]: 2026-09-09T21:48:32.511272Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[]1203machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[]' | jq -e .successful, in 0.03 seconds)1204machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21205machine # [ 18.809865] zhost[886]: 2026-09-09T21:48:32.546274Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1206machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1207(finished: subtest: an empty batch does not bump the library version, in 0.10 seconds)1208subtest: attachment data is emitted with linkMode first1209machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21210machine # [ 18.846394] zhost[886]: 2026-09-09T21:48:32.582957Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1211machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1212machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"ATTACH22","itemType":"attachment","linkMode":"imported_file","filename":"t.pdf","contentType":"application/pdf"}]' | jq -e .successful1213machine # [ 18.879734] zhost[886]: 2026-09-09T21:48:32.616192Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"ATTACH22","itemType":"attachment","linkMode":"imported_file","filename":"t.pdf","contentType":"application/pdf"}]1214machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 1' -d '[{"key":"ATTACH22","itemType":"attachment","linkMode":"imported_file","filename":"t.pdf","contentType":"application/pdf"}]' | jq -e .successful, in 0.04 seconds)1215machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ATTACH22&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].data | keys_unsorted[0]'1216machine # [ 18.917680] zhost[886]: 2026-09-09T21:48:32.654256Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ATTACH22&format=json api_version=3 if_unmod=- body=1217machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ATTACH22&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].data | keys_unsorted[0]', in 0.03 seconds)1218(finished: subtest: attachment data is emitted with linkMode first, in 0.11 seconds)1219subtest: an attachment file uploads to S3 and downloads via a presigned URL1220machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=1700000000000' | jq -r .uploadKey1221machine # [ 18.951048] zhost[886]: 2026-09-09T21:48:32.687645Z INFO zhost: request method=POST uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=17000000000001222machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=1700000000000' | jq -r .uploadKey, in 0.03 seconds)1223machine: must succeed: printf hello | curl -sf -X POST http://localhost:8189/uploads/366a1733cd007ff3f9b77a26847e3891 --data-binary @-1224machine # [ 18.983808] zhost[886]: 2026-09-09T21:48:32.720292Z INFO zhost: request method=POST uri=/uploads/366a1733cd007ff3f9b77a26847e3891 api_version=- if_unmod=- body=hello1225machine: (finished: must succeed: printf hello | curl -sf -X POST http://localhost:8189/uploads/366a1733cd007ff3f9b77a26847e3891 --data-binary @-, in 0.06 seconds)1226machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'upload=366a1733cd007ff3f9b77a26847e3891'1227machine # [ 19.043667] zhost[886]: 2026-09-09T21:48:32.780085Z INFO zhost: request method=POST uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=upload=366a1733cd007ff3f9b77a26847e38911228machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'upload=366a1733cd007ff3f9b77a26847e3891', in 0.05 seconds)1229machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1230machine # [ 19.091190] zhost[886]: 2026-09-09T21:48:32.827831Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=1231machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1232machine: must succeed: curl -sf -D /tmp/dlhdr -o /dev/null http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' && grep -i '^location:' /tmp/dlhdr | tr -d '\r' | awk '{print $2}'1233machine # [ 19.123821] zhost[886]: 2026-09-09T21:48:32.860444Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=1234machine: (finished: must succeed: curl -sf -D /tmp/dlhdr -o /dev/null http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' && grep -i '^location:' /tmp/dlhdr | tr -d '\r' | awk '{print $2}', in 0.05 seconds)1235machine: must succeed: grep -iq 'zotero-file-md5: 5d41402abc4b2a76b9719d911017c592' /tmp/dlhdr1236machine: (finished: must succeed: grep -iq 'zotero-file-md5: 5d41402abc4b2a76b9719d911017c592' /tmp/dlhdr, in 0.02 seconds)1237machine: must succeed: curl -sf 'http://127.0.0.1:9000/zotero/ATTACH22?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=rustfsadmin%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T214832Z&X-Amz-Expires=120&X-Amz-SignedHeaders=host&X-Amz-Signature=fa116b03e63ed6faa98c01f552a10c2c65ab7cc6ae972280ca22cf19f092c584'1238machine: (finished: must succeed: curl -sf 'http://127.0.0.1:9000/zotero/ATTACH22?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=rustfsadmin%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T214832Z&X-Amz-Expires=120&X-Amz-SignedHeaders=host&X-Amz-Signature=fa116b03e63ed6faa98c01f552a10c2c65ab7cc6ae972280ca22cf19f092c584', in 0.03 seconds)1239(finished: subtest: an attachment file uploads to S3 and downloads via a presigned URL, in 0.27 seconds)1240subtest: re-authorizing the same file returns exists:1 (dedup)1241machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=1700000000000' | jq -e '.exists == 1'1242machine # [ 19.223778] zhost[886]: 2026-09-09T21:48:32.960240Z INFO zhost: request method=POST uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=17000000000001243machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=t.pdf&filesize=5&mtime=1700000000000' | jq -e '.exists == 1', in 0.04 seconds)1244(finished: subtest: re-authorizing the same file returns exists:1 (dedup), in 0.04 seconds)1245subtest: a file authorization without a precondition header is 4281246machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -d 'md5=deadbeef&filename=t.pdf&filesize=5&mtime=1'1247machine # [ 19.262484] zhost[886]: 2026-09-09T21:48:32.998147Z INFO zhost: request method=POST uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=md5=deadbeef&filename=t.pdf&filesize=5&mtime=11248machine # [ 19.266676] zhost[886]: 2026-09-09T21:48:32.998178Z WARN zhost: response error method=POST uri=/users/1/items/ATTACH22/file status=4281249machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/ATTACH22/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -d 'md5=deadbeef&filename=t.pdf&filesize=5&mtime=1', in 0.03 seconds)1250(finished: subtest: a file authorization without a precondition header is 428, in 0.04 seconds)1251subtest: uploading bytes that do not match the declared md5 is rejected1252machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/BADHASH2/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=00000000000000000000000000000000&filename=b&filesize=5&mtime=1' | jq -r .uploadKey1253machine # [ 19.297080] zhost[886]: 2026-09-09T21:48:33.033720Z INFO zhost: request method=POST uri=/users/1/items/BADHASH2/file api_version=3 if_unmod=- body=md5=00000000000000000000000000000000&filename=b&filesize=5&mtime=11254machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/BADHASH2/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=00000000000000000000000000000000&filename=b&filesize=5&mtime=1' | jq -r .uploadKey, in 0.03 seconds)1255machine: must succeed: printf hello | curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/uploads/75fbd796d072648bdc893ad66f8fd2d3 --data-binary @-1256machine # [ 19.329304] zhost[886]: 2026-09-09T21:48:33.065711Z INFO zhost: request method=POST uri=/uploads/75fbd796d072648bdc893ad66f8fd2d3 api_version=- if_unmod=- body=hello1257machine # [ 19.333455] zhost[886]: 2026-09-09T21:48:33.065882Z WARN zhost: uploaded bytes do not match authorization key="BADHASH2" want_md5="00000000000000000000000000000000" got_md5="5d41402abc4b2a76b9719d911017c592"1258machine # [ 19.337864] zhost[886]: 2026-09-09T21:48:33.065898Z WARN zhost: response error method=POST uri=/uploads/75fbd796d072648bdc893ad66f8fd2d3 status=4001259machine: (finished: must succeed: printf hello | curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/uploads/75fbd796d072648bdc893ad66f8fd2d3 --data-binary @-, in 0.04 seconds)1260(finished: subtest: uploading bytes that do not match the declared md5 is rejected, in 0.07 seconds)1261subtest: registering without a prior upload is rejected1262machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/NQUPLQAD/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=n&filesize=5&mtime=1' | jq -r .uploadKey1263machine # [ 19.368213] zhost[886]: 2026-09-09T21:48:33.104417Z INFO zhost: request method=POST uri=/users/1/items/NQUPLQAD/file api_version=3 if_unmod=- body=md5=5d41402abc4b2a76b9719d911017c592&filename=n&filesize=5&mtime=11264machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items/NQUPLQAD/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=5d41402abc4b2a76b9719d911017c592&filename=n&filesize=5&mtime=1' | jq -r .uploadKey, in 0.03 seconds)1265machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/NQUPLQAD/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'upload=29ac9466c3f6c19ba653645e95552205'1266machine # [ 19.400194] zhost[886]: 2026-09-09T21:48:33.136407Z INFO zhost: request method=POST uri=/users/1/items/NQUPLQAD/file api_version=3 if_unmod=- body=upload=29ac9466c3f6c19ba653645e955522051267machine # [ 19.404214] zhost[886]: 2026-09-09T21:48:33.136433Z WARN zhost: response error method=POST uri=/users/1/items/NQUPLQAD/file status=4001268machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/NQUPLQAD/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'upload=29ac9466c3f6c19ba653645e95552205', in 0.03 seconds)1269(finished: subtest: registering without a prior upload is rejected, in 0.07 seconds)1270subtest: non-alphanumeric keys are rejected from the file endpoint1271machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/bad..key/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=x&filename=t&filesize=1&mtime=1'1272machine # [ 19.433614] zhost[886]: 2026-09-09T21:48:33.170283Z INFO zhost: request method=POST uri=/users/1/items/bad..key/file api_version=3 if_unmod=- body=md5=x&filename=t&filesize=1&mtime=11273machine # [ 19.437839] zhost[886]: 2026-09-09T21:48:33.174432Z WARN zhost: response error method=POST uri=/users/1/items/bad..key/file status=4001274machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/items/bad..key/file -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-None-Match: *' -d 'md5=x&filename=t&filesize=1&mtime=1', in 0.03 seconds)1275(finished: subtest: non-alphanumeric keys are rejected from the file endpoint, in 0.03 seconds)1276subtest: annotations round-trip as ordinary items1277machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21278machine # [ 19.471878] zhost[886]: 2026-09-09T21:48:33.208395Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1279machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1280machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 3' -d '[{"key":"ANNQT223","itemType":"annotation","annotationType":"highlight","annotationText":"marked","parentItem":"ATTACH22"}]' | jq -e '.successful."0".data.annotationText == "marked"'1281machine # [ 19.504840] zhost[886]: 2026-09-09T21:48:33.241412Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=3 body=[{"key":"ANNQT223","itemType":"annotation","annotationType":"highlight","annotationText":"marked","parentItem":"ATTACH22"}]1282machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 3' -d '[{"key":"ANNQT223","itemType":"annotation","annotationType":"highlight","annotationText":"marked","parentItem":"ATTACH22"}]' | jq -e '.successful."0".data.annotationText == "marked"', in 0.04 seconds)1283machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ANNQT223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.annotationType == "highlight"'1284machine # [ 19.543508] zhost[886]: 2026-09-09T21:48:33.279922Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ANNQT223&format=json api_version=3 if_unmod=- body=1285machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ANNQT223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.annotationType == "highlight"', in 0.03 seconds)1286machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ANNQT223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].data | keys_unsorted[0]'1287machine # [ 19.576406] zhost[886]: 2026-09-09T21:48:33.312894Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ANNQT223&format=json api_version=3 if_unmod=- body=1288machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=ANNQT223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].data | keys_unsorted[0]', in 0.03 seconds)1289(finished: subtest: annotations round-trip as ordinary items, in 0.14 seconds)1290subtest: full-text content uploads, lists versions, and downloads1291machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21292machine # [ 19.612102] zhost[886]: 2026-09-09T21:48:33.348649Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1293machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1294machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/fulltext -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 4' -d '[{"key":"ATTACH22","content":"hello world","indexedChars":11,"totalChars":11,"indexedPages":1,"totalPages":1}]' | jq -e '.successful."0".key == "ATTACH22"'1295machine # [ 19.644874] zhost[886]: 2026-09-09T21:48:33.381512Z INFO zhost: request method=POST uri=/users/1/fulltext api_version=3 if_unmod=4 body=[{"key":"ATTACH22","content":"hello world","indexedChars":11,"totalChars":11,"indexedPages":1,"totalPages":1}]1296machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/fulltext -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 4' -d '[{"key":"ATTACH22","content":"hello world","indexedChars":11,"totalChars":11,"indexedPages":1,"totalPages":1}]' | jq -e '.successful."0".key == "ATTACH22"', in 0.04 seconds)1297machine: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.ATTACH22'1298machine # [ 19.682931] zhost[886]: 2026-09-09T21:48:33.419293Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=0 api_version=3 if_unmod=- body=1299machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.ATTACH22', in 0.03 seconds)1300machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items/ATTACH22/fulltext' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21301machine # [ 19.718158] zhost[886]: 2026-09-09T21:48:33.454580Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/fulltext api_version=3 if_unmod=- body=1302machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items/ATTACH22/fulltext' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1303machine: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.ATTACH22'1304machine # [ 19.752839] zhost[886]: 2026-09-09T21:48:33.489258Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=0 api_version=3 if_unmod=- body=1305machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.ATTACH22', in 0.03 seconds)1306machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/ATTACH22/fulltext' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.content == "hello world" and .totalPages == 1'1307machine # [ 19.788172] zhost[886]: 2026-09-09T21:48:33.524400Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/fulltext api_version=3 if_unmod=- body=1308machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/ATTACH22/fulltext' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.content == "hello world" and .totalPages == 1', in 0.04 seconds)1309(finished: subtest: full-text content uploads, lists versions, and downloads, in 0.21 seconds)1310subtest: a stale full-text write is rejected with 4121311machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/fulltext -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ATTACH22","content":"x"}]'1312machine # [ 19.822067] zhost[886]: 2026-09-09T21:48:33.558449Z INFO zhost: request method=POST uri=/users/1/fulltext api_version=3 if_unmod=0 body=[{"key":"ATTACH22","content":"x"}]1313machine # [ 19.826300] zhost[886]: 2026-09-09T21:48:33.562981Z WARN zhost: response error method=POST uri=/users/1/fulltext status=4121314machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/fulltext -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"ATTACH22","content":"x"}]', in 0.04 seconds)1315(finished: subtest: a stale full-text write is rejected with 412, in 0.04 seconds)1316subtest: the query API filters, searches, sorts and paginates items1317machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21318machine # [ 19.862116] zhost[886]: 2026-09-09T21:48:33.598193Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1319machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1320machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 5' -d '[{"key":"QBQQK223","itemType":"book","title":"Borrow Checker","creators":[{"lastName":"Klabnik","firstName":"Steve"}],"tags":[{"tag":"rustlang"},{"tag":"systems"}]},{"key":"QART2223","itemType":"journalArticle","title":"Unrelated","tags":[{"tag":"rustlang"}]}]' | jq -e .successful1321machine # [ 19.894615] zhost[886]: 2026-09-09T21:48:33.631288Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=5 body=[{"key":"QBQQK223","itemType":"book","title":"Borrow Checker","creators":[{"lastName":"Klabnik","firstName":"Steve"}],"tags":[{"tag":"rustlang"},{"tag":"systems"}]},{"key":"QART2223","itemType":"journalArticle","title":"Unrelated","tags":[{"tag":"rustlang"}]}]1322machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 5' -d '[{"key":"QBQQK223","itemType":"book","title":"Borrow Checker","creators":[{"lastName":"Klabnik","firstName":"Steve"}],"tags":[{"tag":"rustlang"},{"tag":"systems"}]},{"key":"QART2223","itemType":"journalArticle","title":"Unrelated","tags":[{"tag":"rustlang"}]}]' | jq -e .successful, in 0.04 seconds)1323machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=borrow' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1324machine # [ 19.935697] zhost[886]: 2026-09-09T21:48:33.672336Z INFO zhost: request method=GET uri=/users/1/items?q=borrow api_version=3 if_unmod=- body=1325machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=borrow' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.04 seconds)1326machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=klabnik' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1327machine # [ 19.971365] zhost[886]: 2026-09-09T21:48:33.707921Z INFO zhost: request method=GET uri=/users/1/items?q=klabnik api_version=3 if_unmod=- body=1328machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=klabnik' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.04 seconds)1329machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1330machine # [ 20.010661] zhost[886]: 2026-09-09T21:48:33.747281Z INFO zhost: request method=GET uri=/users/1/items?itemType=book api_version=3 if_unmod=- body=1331machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1332machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1333machine # [ 20.043849] zhost[886]: 2026-09-09T21:48:33.780337Z INFO zhost: request method=GET uri=/users/1/items?itemType=book api_version=3 if_unmod=- body=1334machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1335machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=-book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1336machine # [ 20.076932] zhost[886]: 2026-09-09T21:48:33.813370Z INFO zhost: request method=GET uri=/users/1/items?itemType=-book api_version=3 if_unmod=- body=1337machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemType=-book' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1338machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=rustlang&tag=systems' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1339machine # [ 20.109608] zhost[886]: 2026-09-09T21:48:33.846037Z INFO zhost: request method=GET uri=/users/1/items?tag=rustlang&tag=systems api_version=3 if_unmod=- body=1340machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=rustlang&tag=systems' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1341machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=rustlang' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1342machine # [ 20.143408] zhost[886]: 2026-09-09T21:48:33.880086Z INFO zhost: request method=GET uri=/users/1/items?tag=rustlang api_version=3 if_unmod=- body=1343machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=rustlang' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1344machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=world' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1345machine # [ 20.176434] zhost[886]: 2026-09-09T21:48:33.912533Z INFO zhost: request method=GET uri=/users/1/items?q=world api_version=3 if_unmod=- body=1346machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=world' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1347machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=world&qmode=everything' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1348machine # [ 20.211533] zhost[886]: 2026-09-09T21:48:33.948021Z INFO zhost: request method=GET uri=/users/1/items?q=world&qmode=everything api_version=3 if_unmod=- body=1349machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?q=world&qmode=everything' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1350(finished: subtest: the query API filters, searches, sorts and paginates items, in 0.39 seconds)1351subtest: the query API reports Total-Results and a next-page Link1352machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1&sort=title&direction=asc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1353machine # [ 20.244072] zhost[886]: 2026-09-09T21:48:33.980592Z INFO zhost: request method=GET uri=/users/1/items?limit=1&sort=title&direction=asc api_version=3 if_unmod=- body=1354machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1&sort=title&direction=asc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1355(finished: subtest: the query API reports Total-Results and a next-page Link, in 0.03 seconds)1356subtest: a read-only key can drive the query API1357machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=borrow' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3'1358machine # [ 20.275464] zhost[886]: 2026-09-09T21:48:34.012052Z INFO zhost: request method=GET uri=/users/1/items?q=borrow api_version=3 if_unmod=- body=1359machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=borrow' -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1360(finished: subtest: a read-only key can drive the query API, in 0.03 seconds)1361subtest: convenience listings: top, trash, collection items and tags1362machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21363machine # [ 20.311410] zhost[886]: 2026-09-09T21:48:34.047857Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1364machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1365machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 6' -d '[{"key":"TQPITEM3","itemType":"book","title":"Shelf Book","collections":["CQLLXXXX"],"tags":[{"tag":"shelf"}]},{"key":"CHILDNQ3","itemType":"note","note":"child","parentItem":"TQPITEM3"},{"key":"TRASHED3","itemType":"book","title":"Gone","deleted":1}]' | jq -e .successful1366machine # [ 20.344813] zhost[886]: 2026-09-09T21:48:34.081164Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=6 body=[{"key":"TQPITEM3","itemType":"book","title":"Shelf Book","collections":["CQLLXXXX"],"tags":[{"tag":"shelf"}]},{"key":"CHILDNQ3","itemType":"note","note":"child","parentItem":"TQPITEM3"},{"key":"TRASHED3","itemType":"book","title":"Gone","deleted":1}]1367machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 6' -d '[{"key":"TQPITEM3","itemType":"book","title":"Shelf Book","collections":["CQLLXXXX"],"tags":[{"tag":"shelf"}]},{"key":"CHILDNQ3","itemType":"note","note":"child","parentItem":"TQPITEM3"},{"key":"TRASHED3","itemType":"book","title":"Gone","deleted":1}]' | jq -e .successful, in 0.04 seconds)1368machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/top' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1369machine # [ 20.387970] zhost[886]: 2026-09-09T21:48:34.123954Z INFO zhost: request method=GET uri=/users/1/items/top api_version=3 if_unmod=- body=1370machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/top' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1371machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/trash' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1372machine # [ 20.419764] zhost[886]: 2026-09-09T21:48:34.156223Z INFO zhost: request method=GET uri=/users/1/items/trash api_version=3 if_unmod=- body=1373machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/trash' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1374machine: must succeed: curl -sf 'http://localhost:8189/users/1/collections/CQLLXXXX/items' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1375machine # [ 20.451702] zhost[886]: 2026-09-09T21:48:34.188341Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items api_version=3 if_unmod=- body=1376machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/collections/CQLLXXXX/items' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1377machine: must succeed: curl -sf http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[] | select(.tag == "shelf") | .numItems == 1'1378machine # [ 20.484880] zhost[886]: 2026-09-09T21:48:34.221350Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1379machine: (finished: must succeed: curl -sf http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[] | select(.tag == "shelf") | .numItems == 1', in 0.03 seconds)1380(finished: subtest: convenience listings: top, trash, collection items and tags, in 0.21 seconds)1381subtest: top filtering covers parentItem:false and the versions view1382machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21383machine # [ 20.521952] zhost[886]: 2026-09-09T21:48:34.258356Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1384machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1385machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 7' -d '[{"key":"TQPFALS3","itemType":"book","title":"pf","parentItem":false}]' | jq -e .successful1386machine # [ 20.554957] zhost[886]: 2026-09-09T21:48:34.291410Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=7 body=[{"key":"TQPFALS3","itemType":"book","title":"pf","parentItem":false}]1387machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 7' -d '[{"key":"TQPFALS3","itemType":"book","title":"pf","parentItem":false}]' | jq -e .successful, in 0.04 seconds)1388machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/top' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|join("\n")'1389machine # [ 20.592965] zhost[886]: 2026-09-09T21:48:34.329434Z INFO zhost: request method=GET uri=/users/1/items/top api_version=3 if_unmod=- body=1390machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/top' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|join("\n")', in 0.03 seconds)1391machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/top?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e 'has("CHILDNQ3")|not'1392machine # [ 20.626489] zhost[886]: 2026-09-09T21:48:34.363071Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=0 api_version=3 if_unmod=- body=1393machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/top?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e 'has("CHILDNQ3")|not', in 0.03 seconds)1394machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.CHILDNQ3'1395machine # [ 20.661259] zhost[886]: 2026-09-09T21:48:34.397643Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1396machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.CHILDNQ3', in 0.03 seconds)1397(finished: subtest: top filtering covers parentItem:false and the versions view, in 0.18 seconds)1398subtest: malformed (non-array) item data does not 500 the query API1399machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21400machine # [ 20.697327] zhost[886]: 2026-09-09T21:48:34.433912Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1401machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1402machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 8' -d '[{"key":"MALFQRM3","itemType":"book","title":"weird","creators":"notarray","tags":"x","collections":"y"}]' | jq -e .successful1403machine # [ 20.730533] zhost[886]: 2026-09-09T21:48:34.466988Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=8 body=[{"key":"MALFQRM3","itemType":"book","title":"weird","creators":"notarray","tags":"x","collections":"y"}]1404machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 8' -d '[{"key":"MALFQRM3","itemType":"book","title":"weird","creators":"notarray","tags":"x","collections":"y"}]' | jq -e .successful, in 0.04 seconds)1405machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1406machine # [ 20.770674] zhost[886]: 2026-09-09T21:48:34.507253Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1407machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1408machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=zzz' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1409machine # [ 20.805333] zhost[886]: 2026-09-09T21:48:34.541172Z INFO zhost: request method=GET uri=/users/1/items?q=zzz api_version=3 if_unmod=- body=1410machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=zzz' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1411machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=zzz&qmode=everything' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1412machine # [ 20.835492] zhost[886]: 2026-09-09T21:48:34.572056Z INFO zhost: request method=GET uri=/users/1/items?q=zzz&qmode=everything api_version=3 if_unmod=- body=1413machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?q=zzz&qmode=everything' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1414machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?tag=zzz' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1415machine # [ 20.867176] zhost[886]: 2026-09-09T21:48:34.603602Z INFO zhost: request method=GET uri=/users/1/items?tag=zzz api_version=3 if_unmod=- body=1416machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?tag=zzz' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1417machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/collections/y/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1418machine # [ 20.897750] zhost[886]: 2026-09-09T21:48:34.634161Z INFO zhost: request method=GET uri=/users/1/collections/y/items api_version=3 if_unmod=- body=1419machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/collections/y/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1420machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21421machine # [ 20.933731] zhost[886]: 2026-09-09T21:48:34.670200Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1422machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1423machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 9' -d '[{"key":"BADTAGS3","itemType":"book","title":"bt","tags":[{"tag":"good"},123,"junk"]}]' | jq -e .successful1424machine # [ 20.966830] zhost[886]: 2026-09-09T21:48:34.703451Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=9 body=[{"key":"BADTAGS3","itemType":"book","title":"bt","tags":[{"tag":"good"},123,"junk"]}]1425machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 9' -d '[{"key":"BADTAGS3","itemType":"book","title":"bt","tags":[{"tag":"good"},123,"junk"]}]' | jq -e .successful, in 0.04 seconds)1426machine: must succeed: curl -sf http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[] | select(.tag == "good") | .numItems == 1'1427machine # [ 21.004217] zhost[886]: 2026-09-09T21:48:34.740803Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1428machine: (finished: must succeed: curl -sf http://localhost:8189/users/1/tags -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[] | select(.tag == "good") | .numItems == 1', in 0.03 seconds)1429(finished: subtest: malformed (non-array) item data does not 500 the query API, in 0.34 seconds)1430subtest: Total-Results stays correct past the last page1431machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i total-results | tr -d '\r' | cut -d' ' -f21432machine # [ 21.039704] zhost[886]: 2026-09-09T21:48:34.776258Z INFO zhost: request method=GET uri=/users/1/items?limit=1 api_version=3 if_unmod=- body=1433machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i total-results | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1434machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1&start=100000' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i total-results | tr -d '\r' | cut -d' ' -f21435machine # [ 21.076655] zhost[886]: 2026-09-09T21:48:34.813233Z INFO zhost: request method=GET uri=/users/1/items?limit=1&start=100000 api_version=3 if_unmod=- body=1436machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?limit=1&start=100000' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i total-results | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1437(finished: subtest: Total-Results stays correct past the last page, in 0.07 seconds)1438subtest: query API: OR filters, descending sort and includeTrashed1439machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21440machine # [ 21.114088] zhost[886]: 2026-09-09T21:48:34.850537Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1441machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1442machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 10' -d '[{"key":"CQVRA223","itemType":"book","title":"Aaa","tags":[{"tag":"aa"}]},{"key":"CQVRB223","itemType":"journalArticle","title":"Bbb","tags":[{"tag":"bb"}]},{"key":"CQVRT223","itemType":"book","title":"Ccc","deleted":1,"tags":[{"tag":"aa"}]}]' | jq -e .successful1443machine # [ 21.147412] zhost[886]: 2026-09-09T21:48:34.883957Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=10 body=[{"key":"CQVRA223","itemType":"book","title":"Aaa","tags":[{"tag":"aa"}]},{"key":"CQVRB223","itemType":"journalArticle","title":"Bbb","tags":[{"tag":"bb"}]},{"key":"CQVRT223","itemType":"book","title":"Ccc","deleted":1,"tags":[{"tag":"aa"}]}]1444machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 10' -d '[{"key":"CQVRA223","itemType":"book","title":"Aaa","tags":[{"tag":"aa"}]},{"key":"CQVRB223","itemType":"journalArticle","title":"Bbb","tags":[{"tag":"bb"}]},{"key":"CQVRT223","itemType":"book","title":"Ccc","deleted":1,"tags":[{"tag":"aa"}]}]' | jq -e .successful, in 0.04 seconds)1445machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa||bb&itemType=book||journalArticle' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1446machine # [ 21.190073] zhost[886]: 2026-09-09T21:48:34.926395Z INFO zhost: request method=GET uri=/users/1/items?tag=aa||bb&itemType=book||journalArticle api_version=3 if_unmod=- body=1447machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa||bb&itemType=book||journalArticle' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1448machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa||bb&sort=title&direction=desc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].key'1449machine # [ 21.223809] zhost[886]: 2026-09-09T21:48:34.960286Z INFO zhost: request method=GET uri=/users/1/items?tag=aa||bb&sort=title&direction=desc api_version=3 if_unmod=- body=1450machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa||bb&sort=title&direction=desc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].key', in 0.03 seconds)1451machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa&sort=title&direction=desc&includeTrashed=1' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].key'1452machine # [ 21.256738] zhost[886]: 2026-09-09T21:48:34.993316Z INFO zhost: request method=GET uri=/users/1/items?tag=aa&sort=title&direction=desc&includeTrashed=1 api_version=3 if_unmod=- body=1453machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa&sort=title&direction=desc&includeTrashed=1' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '.[0].key', in 0.03 seconds)1454machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")'1455machine # [ 21.290790] zhost[886]: 2026-09-09T21:48:35.027269Z INFO zhost: request method=GET uri=/users/1/items?tag=aa api_version=3 if_unmod=- body=1456machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=aa' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|sort|join(",")', in 0.03 seconds)1457(finished: subtest: query API: OR filters, descending sort and includeTrashed, in 0.21 seconds)1458subtest: sort=date orders by extracted year, not raw freeform text1459machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21460machine # [ 21.325955] zhost[886]: 2026-09-09T21:48:35.062541Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1461machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1462machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 11' -d '[{"key":"DATE2QLD","itemType":"book","title":"old","date":"circa 1850","tags":[{"tag":"era"}]},{"key":"DATE2MID","itemType":"book","title":"mid","date":"January 1960","tags":[{"tag":"era"}]},{"key":"DATE2NEW","itemType":"book","title":"new","date":"2020-05-01","tags":[{"tag":"era"}]}]' | jq -e .successful1463machine # [ 21.359811] zhost[886]: 2026-09-09T21:48:35.096247Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=11 body=[{"key":"DATE2QLD","itemType":"book","title":"old","date":"circa 1850","tags":[{"tag":"era"}]},{"key":"DATE2MID","itemType":"book","title":"mid","date":"January 1960","tags":[{"tag":"era"}]},{"key":"DATE2NEW","itemType":"book","title":"new","date":"2020-05-01","tags":[{"tag":"era"}]}]1464machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 11' -d '[{"key":"DATE2QLD","itemType":"book","title":"old","date":"circa 1850","tags":[{"tag":"era"}]},{"key":"DATE2MID","itemType":"book","title":"mid","date":"January 1960","tags":[{"tag":"era"}]},{"key":"DATE2NEW","itemType":"book","title":"new","date":"2020-05-01","tags":[{"tag":"era"}]}]' | jq -e .successful, in 0.04 seconds)1465machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=era&sort=date&direction=asc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|join(",")'1466machine # [ 21.402458] zhost[886]: 2026-09-09T21:48:35.138401Z INFO zhost: request method=GET uri=/users/1/items?tag=era&sort=date&direction=asc api_version=3 if_unmod=- body=1467machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?tag=era&sort=date&direction=asc' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -r '[.[].key]|join(",")', in 0.03 seconds)1468(finished: subtest: sort=date orders by extracted year, not raw freeform text, in 0.11 seconds)1469subtest: collection top items are served as a plain-text key list1470machine: must succeed: curl -sf 'http://localhost:8189/users/1/collections/CQLLXXXX/items/top?format=keys' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1471machine # [ 21.434719] zhost[886]: 2026-09-09T21:48:35.171175Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items/top?format=keys api_version=3 if_unmod=- body=1472machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/collections/CQLLXXXX/items/top?format=keys' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1473machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/collections/CQLLXXXX/items/top?format=keys' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1474machine # [ 21.464929] zhost[886]: 2026-09-09T21:48:35.201506Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items/top?format=keys api_version=3 if_unmod=- body=1475machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/collections/CQLLXXXX/items/top?format=keys' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1476(finished: subtest: collection top items are served as a plain-text key list, in 0.06 seconds)1477subtest: a versions read with nothing newer returns 200 + empty map, not 3041478machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21479machine # [ 21.500194] zhost[886]: 2026-09-09T21:48:35.236771Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1480machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1481machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1482machine # [ 21.532392] zhost[886]: 2026-09-09T21:48:35.268957Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1483machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1484machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1485machine # [ 21.564261] zhost[886]: 2026-09-09T21:48:35.300686Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1486machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.03 seconds)1487machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items/top?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1488machine # [ 21.595814] zhost[886]: 2026-09-09T21:48:35.332248Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=12 api_version=3 if_unmod=- body=1489machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/items/top?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1490machine: must succeed: curl -sf 'http://localhost:8189/users/1/items/top?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1491machine # [ 21.627740] zhost[886]: 2026-09-09T21:48:35.364198Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=12 api_version=3 if_unmod=- body=1492machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items/top?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.03 seconds)1493machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/collections?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1494machine # [ 21.659530] zhost[886]: 2026-09-09T21:48:35.395904Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=12 api_version=3 if_unmod=- body=1495machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/collections?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1496machine: must succeed: curl -sf 'http://localhost:8189/users/1/collections?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1497machine # [ 21.690174] zhost[886]: 2026-09-09T21:48:35.426717Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=12 api_version=3 if_unmod=- body=1498machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/collections?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.03 seconds)1499machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/searches?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1500machine # [ 21.721743] zhost[886]: 2026-09-09T21:48:35.458112Z INFO zhost: request method=GET uri=/users/1/searches?format=versions&since=12 api_version=3 if_unmod=- body=1501machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/searches?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1502machine: must succeed: curl -sf 'http://localhost:8189/users/1/searches?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1503machine # [ 21.752798] zhost[886]: 2026-09-09T21:48:35.489229Z INFO zhost: request method=GET uri=/users/1/searches?format=versions&since=12 api_version=3 if_unmod=- body=1504machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/searches?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.03 seconds)1505machine: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/fulltext?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1506machine # [ 21.789699] zhost[886]: 2026-09-09T21:48:35.526235Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=12 api_version=3 if_unmod=- body=1507machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' 'http://localhost:8189/users/1/fulltext?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.04 seconds)1508machine: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1509machine # [ 21.834257] zhost[886]: 2026-09-09T21:48:35.569511Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=12 api_version=3 if_unmod=- body=1510machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/fulltext?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}', in 0.04 seconds)1511machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -iq 'last-modified-version: 12'1512machine # [ 21.867105] zhost[886]: 2026-09-09T21:48:35.603650Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1513machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -iq 'last-modified-version: 12', in 0.03 seconds)1514machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/settings -H 'If-Modified-Since-Version: 12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3'1515machine # [ 21.898551] zhost[886]: 2026-09-09T21:48:35.635189Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1516machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/users/1/settings -H 'If-Modified-Since-Version: 12' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3', in 0.03 seconds)1517(finished: subtest: a versions read with nothing newer returns 200 + empty map, not 304, in 0.43 seconds)1518subtest: collections round-trip through write, read, versions and delete1519machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21520machine # [ 21.932070] zhost[886]: 2026-09-09T21:48:35.668714Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1521machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1522machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/collections -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 12' -d '[{"key":"CQLL2223","name":"Papers"}]' | jq -e '.successful."0".key == "CQLL2223"'1523machine # [ 21.964541] zhost[886]: 2026-09-09T21:48:35.701061Z INFO zhost: request method=POST uri=/users/1/collections api_version=3 if_unmod=12 body=[{"key":"CQLL2223","name":"Papers"}]1524machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/collections -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 12' -d '[{"key":"CQLL2223","name":"Papers"}]' | jq -e '.successful."0".key == "CQLL2223"', in 0.04 seconds)1525machine: must succeed: curl -sf 'http://localhost:8189/users/1/collections?collectionKey=CQLL2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.name == "Papers"'1526machine # [ 22.002042] zhost[886]: 2026-09-09T21:48:35.738295Z INFO zhost: request method=GET uri=/users/1/collections?collectionKey=CQLL2223&format=json api_version=3 if_unmod=- body=1527machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/collections?collectionKey=CQLL2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.name == "Papers"', in 0.03 seconds)1528machine: must succeed: curl -sf 'http://localhost:8189/users/1/collections?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.CQLL2223'1529machine # [ 22.034448] zhost[886]: 2026-09-09T21:48:35.770915Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=0 api_version=3 if_unmod=- body=1530machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/collections?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.CQLL2223', in 0.03 seconds)1531machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21532machine # [ 22.069297] zhost[886]: 2026-09-09T21:48:35.805924Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1533machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1534machine: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/collections?collectionKey=CQLL2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 13'1535machine # [ 22.101455] zhost[886]: 2026-09-09T21:48:35.837782Z INFO zhost: request method=DELETE uri=/users/1/collections?collectionKey=CQLL2223 api_version=3 if_unmod=13 body=1536machine: (finished: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/collections?collectionKey=CQLL2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 13', in 0.03 seconds)1537machine: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.collections | index("CQLL2223")'1538machine # [ 22.137449] zhost[886]: 2026-09-09T21:48:35.873989Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1539machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.collections | index("CQLL2223")', in 0.03 seconds)1540(finished: subtest: collections round-trip through write, read, versions and delete, in 0.24 seconds)1541subtest: saved searches round-trip through write, read and delete1542machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21543machine # [ 22.173313] zhost[886]: 2026-09-09T21:48:35.909892Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1544machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1545machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/searches -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 14' -d '[{"key":"SRCH2223","name":"Recent","conditions":[]}]' | jq -e '.successful."0".key == "SRCH2223"'1546machine # [ 22.205324] zhost[886]: 2026-09-09T21:48:35.941699Z INFO zhost: request method=POST uri=/users/1/searches api_version=3 if_unmod=14 body=[{"key":"SRCH2223","name":"Recent","conditions":[]}]1547machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/searches -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 14' -d '[{"key":"SRCH2223","name":"Recent","conditions":[]}]' | jq -e '.successful."0".key == "SRCH2223"', in 0.04 seconds)1548machine: must succeed: curl -sf 'http://localhost:8189/users/1/searches?searchKey=SRCH2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.name == "Recent"'1549machine # [ 22.242662] zhost[886]: 2026-09-09T21:48:35.979237Z INFO zhost: request method=GET uri=/users/1/searches?searchKey=SRCH2223&format=json api_version=3 if_unmod=- body=1550machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/searches?searchKey=SRCH2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.name == "Recent"', in 0.03 seconds)1551machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21552machine # [ 22.277700] zhost[886]: 2026-09-09T21:48:36.014106Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1553machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1554machine: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/searches?searchKey=SRCH2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 15'1555machine # [ 22.308930] zhost[886]: 2026-09-09T21:48:36.045302Z INFO zhost: request method=DELETE uri=/users/1/searches?searchKey=SRCH2223 api_version=3 if_unmod=15 body=1556machine: (finished: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/searches?searchKey=SRCH2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 15', in 0.03 seconds)1557machine: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.searches | index("SRCH2223")'1558machine # [ 22.342763] zhost[886]: 2026-09-09T21:48:36.079142Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1559machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.searches | index("SRCH2223")', in 0.03 seconds)1560(finished: subtest: saved searches round-trip through write, read and delete, in 0.20 seconds)1561subtest: settings round-trip through write, read and delete1562machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21563machine # [ 22.376859] zhost[886]: 2026-09-09T21:48:36.113309Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1564machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.03 seconds)1565machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 16' -d '{"tagColors":{"value":[{"name":"x","color":"#fff"}]}}' 1566machine # [ 22.408685] zhost[886]: 2026-09-09T21:48:36.144944Z INFO zhost: request method=POST uri=/users/1/settings api_version=3 if_unmod=16 body={"tagColors":{"value":[{"name":"x","color":"#fff"}]}}1567machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 16' -d '{"tagColors":{"value":[{"name":"x","color":"#fff"}]}}' , in 0.03 seconds)1568machine: must succeed: curl -sf http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.tagColors.value[0].name == "x" and (.tagColors.version | type == "number")'1569machine # [ 22.443276] zhost[886]: 2026-09-09T21:48:36.179861Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1570machine: (finished: must succeed: curl -sf http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.tagColors.value[0].name == "x" and (.tagColors.version | type == "number")', in 0.03 seconds)1571machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '{"k":{"value":1}}'1572machine # [ 22.474461] zhost[886]: 2026-09-09T21:48:36.210908Z INFO zhost: request method=POST uri=/users/1/settings api_version=3 if_unmod=0 body={"k":{"value":1}}1573machine # [ 22.478532] zhost[886]: 2026-09-09T21:48:36.215212Z WARN zhost: response error method=POST uri=/users/1/settings status=4121574machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '{"k":{"value":1}}', in 0.03 seconds)1575machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21576machine # [ 22.511406] zhost[886]: 2026-09-09T21:48:36.247865Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1577machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1578machine: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/settings?settingKey=tagColors' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 17'1579machine # [ 22.542878] zhost[886]: 2026-09-09T21:48:36.279392Z INFO zhost: request method=DELETE uri=/users/1/settings?settingKey=tagColors api_version=3 if_unmod=17 body=1580machine: (finished: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/settings?settingKey=tagColors' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 17', in 0.03 seconds)1581machine: must succeed: curl -sf http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.tagColors == null'1582machine # [ 22.578381] zhost[886]: 2026-09-09T21:48:36.314850Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1583machine: (finished: must succeed: curl -sf http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.tagColors == null', in 0.03 seconds)1584machine: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.settings | index("tagColors")'1585machine # [ 22.609597] zhost[886]: 2026-09-09T21:48:36.346220Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1586machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.settings | index("tagColors")', in 0.03 seconds)1587(finished: subtest: settings round-trip through write, read and delete, in 0.27 seconds)1588subtest: a gzip-compressed write body is decoded1589machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21590machine # [ 22.643978] zhost[886]: 2026-09-09T21:48:36.380507Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1591machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.03 seconds)1592machine: must succeed: printf '%s' '[{"key":"GZIP2223","itemType":"book","title":"zipped"}]' | gzip | curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 18' -H 'Content-Encoding: gzip' --data-binary @- | jq -e .successful1593machine # [ 22.678382] zhost[886]: 2026-09-09T21:48:36.415060Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=18 body=[{"key":"GZIP2223","itemType":"book","title":"zipped"}]1594machine: (finished: must succeed: printf '%s' '[{"key":"GZIP2223","itemType":"book","title":"zipped"}]' | gzip | curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 18' -H 'Content-Encoding: gzip' --data-binary @- | jq -e .successful, in 0.04 seconds)1595machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=GZIP2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.title == "zipped"'1596machine # [ 22.716093] zhost[886]: 2026-09-09T21:48:36.452216Z INFO zhost: request method=GET uri=/users/1/items?itemKey=GZIP2223&format=json api_version=3 if_unmod=- body=1597machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=GZIP2223&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.title == "zipped"', in 0.03 seconds)1598(finished: subtest: a gzip-compressed write body is decoded, in 0.11 seconds)1599subtest: PATCH updates items and is gated by the read-only key1600machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21601machine # [ 22.750977] zhost[886]: 2026-09-09T21:48:36.487654Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1602machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1603machine: must succeed: curl -sf -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 19' -d '[{"key":"GZIP2223","itemType":"book","title":"patched"}]' | jq -e '.successful."0".data.title == "patched"'1604machine # [ 22.783372] zhost[886]: 2026-09-09T21:48:36.519998Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=19 body=[{"key":"GZIP2223","itemType":"book","title":"patched"}]1605machine: (finished: must succeed: curl -sf -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 19' -d '[{"key":"GZIP2223","itemType":"book","title":"patched"}]' | jq -e '.successful."0".data.title == "patched"', in 0.04 seconds)1606machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"X","itemType":"book"}]'1607machine # [ 22.819633] zhost[886]: 2026-09-09T21:48:36.555849Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"X","itemType":"book"}]1608machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: readonlytoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 0' -d '[{"key":"X","itemType":"book"}]', in 0.03 seconds)1609(finished: subtest: PATCH updates items and is gated by the read-only key, in 0.10 seconds)1610subtest: PATCH merges: a partial update keeps unspecified fields1611machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21612machine # [ 22.852655] zhost[886]: 2026-09-09T21:48:36.589270Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1613machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1614machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 20' -d '[{"key":"MERGEIT2","itemType":"book","title":"orig","tags":[{"tag":"keep"}]}]' | jq -e .successful1615machine # [ 22.884834] zhost[886]: 2026-09-09T21:48:36.621399Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=20 body=[{"key":"MERGEIT2","itemType":"book","title":"orig","tags":[{"tag":"keep"}]}]1616machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 20' -d '[{"key":"MERGEIT2","itemType":"book","title":"orig","tags":[{"tag":"keep"}]}]' | jq -e .successful, in 0.03 seconds)1617machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21618machine # [ 22.922071] zhost[886]: 2026-09-09T21:48:36.658462Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1619machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.03 seconds)1620machine: must succeed: curl -sf -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 21' -d '[{"key":"MERGEIT2","title":"new"}]'1621machine # [ 22.953428] zhost[886]: 2026-09-09T21:48:36.689901Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=21 body=[{"key":"MERGEIT2","title":"new"}]1622machine: (finished: must succeed: curl -sf -X PATCH http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 21' -d '[{"key":"MERGEIT2","title":"new"}]', in 0.03 seconds)1623machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=MERGEIT2&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.title=="new" and .[0].data.itemType=="book" and .[0].data.tags[0].tag=="keep"'1624machine # [ 22.988239] zhost[886]: 2026-09-09T21:48:36.724867Z INFO zhost: request method=GET uri=/users/1/items?itemKey=MERGEIT2&format=json api_version=3 if_unmod=- body=1625machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=MERGEIT2&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.title=="new" and .[0].data.itemType=="book" and .[0].data.tags[0].tag=="keep"', in 0.03 seconds)1626(finished: subtest: PATCH merges: a partial update keeps unspecified fields, in 0.17 seconds)1627subtest: POST also merges: a partial upload keeps unspecified fields1628machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21629machine # [ 23.023242] zhost[886]: 2026-09-09T21:48:36.759664Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1630machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.03 seconds)1631machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 22' -d '[{"key":"PMERGEAT","itemType":"attachment","linkMode":"imported_file","filename":"f.pdf","contentType":"application/pdf"}]' | jq -e .successful1632machine # [ 23.054731] zhost[886]: 2026-09-09T21:48:36.791289Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=22 body=[{"key":"PMERGEAT","itemType":"attachment","linkMode":"imported_file","filename":"f.pdf","contentType":"application/pdf"}]1633machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 22' -d '[{"key":"PMERGEAT","itemType":"attachment","linkMode":"imported_file","filename":"f.pdf","contentType":"application/pdf"}]' | jq -e .successful, in 0.04 seconds)1634machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21635machine # [ 23.094128] zhost[886]: 2026-09-09T21:48:36.830664Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1636machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1637machine: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 23' -d '[{"key":"PMERGEAT","lastRead":1700000000,"tags":[]}]'1638machine # [ 23.126862] zhost[886]: 2026-09-09T21:48:36.863438Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=23 body=[{"key":"PMERGEAT","lastRead":1700000000,"tags":[]}]1639machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/users/1/items -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 23' -d '[{"key":"PMERGEAT","lastRead":1700000000,"tags":[]}]', in 0.03 seconds)1640machine: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=PMERGEAT&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.itemType=="attachment" and .[0].data.linkMode=="imported_file" and .[0].data.filename=="f.pdf" and .[0].data.lastRead==1700000000'1641machine # [ 23.162187] zhost[886]: 2026-09-09T21:48:36.898811Z INFO zhost: request method=GET uri=/users/1/items?itemKey=PMERGEAT&format=json api_version=3 if_unmod=- body=1642machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/items?itemKey=PMERGEAT&format=json' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.[0].data.itemType=="attachment" and .[0].data.linkMode=="imported_file" and .[0].data.filename=="f.pdf" and .[0].data.lastRead==1700000000', in 0.03 seconds)1643(finished: subtest: POST also merges: a partial upload keeps unspecified fields, in 0.17 seconds)1644subtest: deletes are recorded in the deletion log1645machine: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f21646machine # [ 23.198036] zhost[886]: 2026-09-09T21:48:36.934477Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1647machine: (finished: must succeed: curl -sf -D - -o /dev/null 'http://localhost:8189/users/1/items?format=versions&since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | grep -i last-modified-version | tr -d '\r' | cut -d' ' -f2, in 0.04 seconds)1648machine: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/items?itemKey=ITEM2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 24'1649machine # [ 23.229819] zhost[886]: 2026-09-09T21:48:36.966278Z INFO zhost: request method=DELETE uri=/users/1/items?itemKey=ITEM2223 api_version=3 if_unmod=24 body=1650machine: (finished: must succeed: curl -sf -X DELETE 'http://localhost:8189/users/1/items?itemKey=ITEM2223' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' -H 'If-Unmodified-Since-Version: 24', in 0.03 seconds)1651machine: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.items | index("ITEM2223")'1652machine # [ 23.262532] zhost[886]: 2026-09-09T21:48:36.999094Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1653machine: (finished: must succeed: curl -sf 'http://localhost:8189/users/1/deleted?since=0' -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.items | index("ITEM2223")', in 0.03 seconds)1654(finished: subtest: deletes are recorded in the deletion log, in 0.10 seconds)1655(finished: run the VM test script, in 24.19 seconds)1656test script finished in 24.24s1657cleanup1658kill QemuMachine (pid 45)1659machine # qemu-system-x86_64: terminating on signal 15 from pid 39 (/nix/store/b5bpi6zfajzzrwwpgba2q6li3nnya4bs-python3-3.14.7/bin/python3.14)1660(finished: cleanup, in 0.15 seconds)