nixbot

builds

succeeded vm-test-run-zhost-sync checks.x86_64-linux.nixos-sync · build #1 · 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.WgFqhKYI9x', 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: 90b25ea9-424a-4323-9ab5-031a1086634019machine # Superblock backups stored on blocks:20machine # 32768, 98304, 163840, 22937621machine # 22machine # Allocating group tables: 0/8 done23machine # Writing inode tables: 0/8 done24machine # Creating journal (8192 blocks): done25machine # Writing superblocks and filesystem accounting information: 0/8 done26machine # 27machine # Virtualisation disk image created.28machine: QEMU running (pid 45)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)... ok[ 0.000000] Linux version 6.18.45 (nixbld@localhost) (gcc (GCC) 15.3.0, GNU ld (GNU Binutils) 2.46) #1-NixOS SMP PREEMPT_DYNAMIC Wed Aug 19 16:18:21 UTC 202644machine # [ 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/zsy14kjdhzar31xm34ialna919anc3xv-nixos-system-machine-test/init regInfo=/nix/store/rciylyif52jw18ic5j6qbm73n7sf84bm-closure-info/registration console=ttyS0,115200n8 console=tty045machine # [ 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.46machine # [ 0.000000] BIOS-provided physical RAM map:47machine # [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable48machine # [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved49machine # [ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved50machine # [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003ffd7fff] usable51machine # [ 0.000000] BIOS-e820: [mem 0x000000003ffd8000-0x000000003fffffff] reserved52machine # [ 0.000000] BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved53machine # [ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved54machine # [ 0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved55machine # [ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved56machine # [ 0.000000] BIOS-e820: [mem 0x000000fd00000000-0x000000ffffffffff] reserved57machine # [ 0.000000] NX (Execute Disable) protection: active58machine # [ 0.000000] APIC: Static calls initialized59machine # [ 0.000000] SMBIOS 2.8 present.60machine # [ 0.000000] DMI: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/201461machine # [ 0.000000] DMI: Memory slots populated: 1/162machine # [ 0.000000] Hypervisor detected: KVM63machine # [ 0.000000] last_pfn = 0x3ffd8 max_arch_pfn = 0x40000000064machine # [ 0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d0065machine # [ 0.000000] kvm-clock: using sched offset of 442287278 cycles66machine # [ 0.000002] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns67machine # [ 0.000005] tsc: Detected 3792.874 MHz processor68machine # [ 0.000657] last_pfn = 0x3ffd8 max_arch_pfn = 0x40000000069machine # [ 0.000680] MTRR map: 4 entries (3 fixed + 1 variable; max 19), built from 8 variable MTRRs70machine # [ 0.000682] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT71machine # [ 0.002216] found SMP MP-table at [mem 0x000f5450-0x000f545f]72machine # [ 0.002225] Using GB pages for direct mapping73machine # [ 0.002266] RAMDISK: [mem 0x3e34d000-0x3ffcffff]74machine # [ 0.002271] ACPI: Early table checksum verification disabled75machine # [ 0.002274] ACPI: RSDP 0x00000000000F5270 000014 (v00 BOCHS )76machine # [ 0.002277] ACPI: RSDT 0x000000003FFE2422 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)77machine # [ 0.002281] ACPI: FACP 0x000000003FFE221A 0000F4 (v03 BOCHS BXPC 00000001 BXPC 00000001)78machine # [ 0.002286] ACPI: DSDT 0x000000003FFE0040 0021DA (v01 BOCHS BXPC 00000001 BXPC 00000001)79machine # [ 0.002289] ACPI: FACS 0x000000003FFE0000 00004080machine # [ 0.002290] ACPI: APIC 0x000000003FFE230E 000078 (v03 BOCHS BXPC 00000001 BXPC 00000001)81machine # [ 0.002291] ACPI: HPET 0x000000003FFE2386 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)82machine # [ 0.002293] ACPI: MCFG 0x000000003FFE23BE 00003C (v01 BOCHS BXPC 00000001 BXPC 00000001)83machine # [ 0.002294] ACPI: WAET 0x000000003FFE23FA 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001)84machine # [ 0.002295] ACPI: Reserving FACP table memory at [mem 0x3ffe221a-0x3ffe230d]85machine # [ 0.002296] ACPI: Reserving DSDT table memory at [mem 0x3ffe0040-0x3ffe2219]86machine # [ 0.002297] ACPI: Reserving FACS table memory at [mem 0x3ffe0000-0x3ffe003f]87machine # [ 0.002297] ACPI: Reserving APIC table memory at [mem 0x3ffe230e-0x3ffe2385]88machine # [ 0.002298] ACPI: Reserving HPET table memory at [mem 0x3ffe2386-0x3ffe23bd]89machine # [ 0.002298] ACPI: Reserving MCFG table memory at [mem 0x3ffe23be-0x3ffe23f9]90machine # [ 0.002299] ACPI: Reserving WAET table memory at [mem 0x3ffe23fa-0x3ffe2421]91machine # [ 0.002673] No NUMA configuration found92machine # [ 0.002674] Faking a node at [mem 0x0000000000000000-0x000000003ffd7fff]93machine # [ 0.002677] NODE_DATA(0) allocated [mem 0x3ffd2780-0x3ffd7cff]94machine # [ 0.002753] Zone ranges:95machine # [ 0.002754] DMA [mem 0x0000000000001000-0x0000000000ffffff]96machine # [ 0.002755] DMA32 [mem 0x0000000001000000-0x000000003ffd7fff]97machine # [ 0.002756] Normal empty98machine # [ 0.002756] Device empty99machine # [ 0.002757] Movable zone start for each node100machine # [ 0.002757] Early memory node ranges101machine # [ 0.002758] node 0: [mem 0x0000000000001000-0x000000000009efff]102machine # [ 0.002759] node 0: [mem 0x0000000000100000-0x000000003ffd7fff]103machine # [ 0.002759] Initmem setup node 0 [mem 0x0000000000001000-0x000000003ffd7fff]104machine # [ 0.002776] On node 0, zone DMA: 1 pages in unavailable ranges105machine # [ 0.002983] On node 0, zone DMA: 97 pages in unavailable ranges106machine # [ 0.016922] On node 0, zone DMA32: 40 pages in unavailable ranges107machine # [ 0.017781] ACPI: PM-Timer IO Port: 0x608108machine # [ 0.017789] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])109machine # [ 0.017808] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23110machine # [ 0.017810] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)111machine # [ 0.017812] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)112machine # [ 0.017812] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)113machine # [ 0.017813] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)114machine # [ 0.017814] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)115machine # [ 0.017816] ACPI: Using ACPI (MADT) for SMP configuration information116machine # [ 0.017816] ACPI: HPET id: 0x8086a201 base: 0xfed00000117machine # [ 0.017819] TSC deadline timer available118machine # [ 0.017822] CPU topo: Max. logical packages: 1119machine # [ 0.017823] CPU topo: Max. logical dies: 1120machine # [ 0.017823] CPU topo: Max. dies per package: 1121machine # [ 0.017827] CPU topo: Max. threads per core: 1122machine # [ 0.017827] CPU topo: Num. cores per package: 1123machine # [ 0.017828] CPU topo: Num. threads per package: 1124machine # [ 0.017828] CPU topo: Allowing 1 present CPUs plus 0 hotplug CPUs125machine # [ 0.017840] kvm-guest: APIC: eoi() replaced with kvm_guest_apic_eoi_write()126machine # [ 0.017866] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]127machine # [ 0.017867] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]128machine # [ 0.017868] [mem 0x40000000-0xafffffff] available for PCI devices129machine # [ 0.017869] Booting paravirtualized kernel on KVM130machine # [ 0.017871] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns131machine # [ 0.021586] setup_percpu: NR_CPUS:384 nr_cpumask_bits:1 nr_cpu_ids:1 nr_node_ids:1132machine # [ 0.023286] percpu: Embedded 98 pages/cpu s278528 r8192 d114688 u2097152133machine # [ 0.023319] kvm-guest: PV spinlocks disabled, single CPU134machine # [ 0.023321] 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/zsy14kjdhzar31xm34ialna919anc3xv-nixos-system-machine-test/init regInfo=/nix/store/rciylyif52jw18ic5j6qbm73n7sf84bm-closure-info/registration console=ttyS0,115200n8 console=tty0135machine # [ 0.023395] Unknown kernel command line parameters "regInfo=/nix/store/rciylyif52jw18ic5j6qbm73n7sf84bm-closure-info/registration", will be passed to user space.136machine # [ 0.023412] random: crng init done137machine # [ 0.023413] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes138machine # [ 0.024250] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)139machine # [ 0.024262] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)140machine # [ 0.024288] Fallback order for Node 0: 0141machine # [ 0.024290] Built 1 zonelists, mobility grouping on. Total pages: 262006142machine # [ 0.024291] Policy zone: DMA32143machine # [ 0.026001] mem auto-init: stack:all(zero), heap alloc:on, heap free:off144machine # [ 0.028652] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1145machine # [ 0.030458] allocated 2097152 bytes of page_ext146machine # [ 0.039412] ftrace: allocating 48728 entries in 192 pages147machine # [ 0.039413] ftrace: allocated 192 pages with 2 groups148machine # [ 0.040121] Dynamic Preempt: lazy149machine # [ 0.040271] rcu: Preemptible hierarchical RCU implementation.150machine # [ 0.040271] rcu: RCU event tracing is enabled.151machine # [ 0.040272] rcu: RCU restricting CPUs from NR_CPUS=384 to nr_cpu_ids=1.152machine # [ 0.040273] Trampoline variant of Tasks RCU enabled.153machine # [ 0.040273] Rude variant of Tasks RCU enabled.154machine # [ 0.040274] Tracing variant of Tasks RCU enabled.155machine # [ 0.040274] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.156machine # [ 0.040275] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1157machine # [ 0.040287] RCU Tasks: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.158machine # [ 0.040288] RCU Tasks Rude: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.159machine # [ 0.040289] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.160machine # [ 0.044080] NR_IRQS: 24832, nr_irqs: 256, preallocated irqs: 16161machine # [ 0.044331] rcu: srcu_init: Setting srcu_struct sizes based on contention.162machine # [ 0.044338] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns163machine # [ 0.044422] kfence: initialized - using 2097152 bytes for 255 objects at 0x(____ptrval____)-0x(____ptrval____)164machine # [ 0.050047] Console: colour VGA+ 80x25165machine # [ 0.050050] printk: legacy console [tty0] enabled166machine # [ 0.083233] printk: legacy console [ttyS0] enabled167machine # [ 0.245985] ACPI: Core revision 20250807168machine # [ 0.247137] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns169machine # [ 0.249155] APIC: Switch to symmetric I/O mode setup170machine # [ 0.250376] x2apic enabled171machine # [ 0.251242] APIC: Switched APIC routing to: physical x2apic172machine # [ 0.253276] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1173machine # [ 0.254567] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x6d5818a734c, max_idle_ns: 881590694765 ns174machine # [ 0.256743] Calibrating delay loop (skipped) preset value.. 7585.74 BogoMIPS (lpj=3792874)175machine # [ 0.257813] x86/cpu: User Mode Instruction Prevention (UMIP) activated176machine # [ 0.258843] Last level iTLB entries: 4KB 512, 2MB 255, 4MB 127177machine # [ 0.260742] Last level dTLB entries: 4KB 512, 2MB 255, 4MB 127, 1GB 0178machine # [ 0.261745] mitigations: Enabled attack vectors: user_kernel, user_user, guest_host, guest_guest, SMT mitigations: auto179machine # [ 0.262742] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl180machine # [ 0.264742] Spectre V2 : Mitigation: Retpolines181machine # [ 0.265742] Speculative Return Stack Overflow: Mitigation: Safe RET182machine # [ 0.266742] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization183machine # [ 0.268742] Spectre V2 : Spectre v2 / SpectreRSB: Filling RSB on context switch and VMEXIT184machine # [ 0.269742] Spectre V2 : Enabling Restricted Speculation for firmware calls185machine # [ 0.270743] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier186machine # [ 0.271742] active return thunk: srso_alias_return_thunk187machine # [ 0.272756] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'188machine # [ 0.273742] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'189machine # [ 0.274742] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'190machine # [ 0.275742] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'191machine # [ 0.277742] x86/fpu: Supporting XSAVE feature 0x800: 'Control-flow User registers'192machine # [ 0.278742] x86/fpu: Supporting XSAVE feature 0x1000: 'Control-flow Kernel registers (KVM only)'193machine # [ 0.279742] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256194machine # [ 0.281742] x86/fpu: xstate_offset[9]: 832, xstate_sizes[9]: 8195machine # [ 0.282742] x86/fpu: xstate_offset[11]: 840, xstate_sizes[11]: 16196machine # [ 0.283742] x86/fpu: xstate_offset[12]: 856, xstate_sizes[12]: 24197machine # [ 0.285742] x86/fpu: Enabled xstate features 0x1a07, context size is 880 bytes, using 'compacted' format.198machine # [ 0.313427] Freeing SMP alternatives memory: 44K199machine # [ 0.313743] pid_max: default: 32768 minimum: 301200machine # [ 0.314800] LSM: initializing lsm=capability,landlock,yama,bpf,ima201machine # [ 0.316832] landlock: Up and running.202machine # [ 0.317742] Yama: becoming mindful.203machine # [ 0.318806] LSM support for eBPF active204machine # [ 0.319758] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)205machine # [ 0.320763] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)206machine # [ 0.322797] smpboot: CPU0: AMD Ryzen Threadripper PRO 5965WX 24-Cores (family: 0x19, model: 0x8, stepping: 0x2)207machine # [ 0.324182] Performance Events: Fam17h+ core perfctr, AMD PMU driver.208machine # [ 0.324751] ... version: 0209machine # [ 0.325688] ... bit width: 48210machine # [ 0.326478] ... generic counters: 6211machine # [ 0.326744] ... generic bitmap: 000000000000003f212machine # [ 0.327744] ... fixed-purpose counters: 0213machine # [ 0.328682] ... fixed-purpose bitmap: 0000000000000000214machine # [ 0.329696] ... value mask: 0000ffffffffffff215machine # [ 0.330694] ... max period: 00007fffffffffff216machine # [ 0.331687] ... global_ctrl mask: 000000000000003f217machine # [ 0.332777] signal: max sigframe size: 3376218machine # [ 0.333778] rcu: Hierarchical SRCU implementation.219machine # [ 0.334748] rcu: Max phase no-delay instances is 400.220machine # [ 0.339378] smp: Bringing up secondary CPUs ...221machine # [ 0.339755] smp: Brought up 1 node, 1 CPU222machine # [ 0.340652] smpboot: Total of 1 processors activated (7585.74 BogoMIPS)223machine # [ 0.341906] Memory: 942880K/1048024K available (17215K kernel code, 2726K rwdata, 13580K rodata, 3644K init, 2988K bss, 97704K reserved, 0K cma-reserved)224machine # [ 0.342903] devtmpfs: initialized225machine # [ 0.343875] x86/mm: Memory block size: 128MB226machine # [ 0.345556] posixtimers hash table entries: 512 (order: 1, 8192 bytes, linear)227machine # [ 0.346772] futex hash table entries: 256 (16384 bytes on 1 NUMA nodes, total 16 KiB, linear).228machine # [ 0.347803] pinctrl core: initialized pinctrl subsystem229machine # [ 0.349009] PM: RTC time: 12:41:02, date: 2026-08-26230machine # [ 0.351912] NET: Registered PF_NETLINK/PF_ROUTE protocol family231machine # [ 0.353042] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations232machine # [ 0.353764] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations233machine # [ 0.354870] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations234machine # [ 0.355752] audit: initializing netlink subsys (disabled)235machine # [ 0.356995] thermal_sys: Registered thermal governor 'fair_share'236machine # [ 0.356997] thermal_sys: Registered thermal governor 'bang_bang'237machine # [ 0.357744] thermal_sys: Registered thermal governor 'step_wise'238machine # [ 0.358747] audit: type=2000 audit(1787748062.984:1): state=initialized audit_enabled=0 res=1239machine # [ 0.360746] thermal_sys: Registered thermal governor 'user_space'240machine # [ 0.360748] thermal_sys: Registered thermal governor 'power_allocator'241machine # [ 0.361757] cpuidle: using governor menu242machine # [ 0.364482] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5243machine # [ 0.364993] PCI: ECAM [mem 0xb0000000-0xbfffffff] (base 0xb0000000) for domain 0000 [bus 00-ff]244machine # [ 0.365746] PCI: ECAM [mem 0xb0000000-0xbfffffff] reserved as E820 entry245machine # [ 0.366761] PCI: Using configuration type 1 for base access246machine # [ 0.367916] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.247machine # [ 0.372973] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages248machine # [ 0.373744] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page249machine # [ 0.378742] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages250machine # [ 0.379744] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page251machine # [ 0.390044] ACPI: Added _OSI(Module Device)252machine # [ 0.390744] ACPI: Added _OSI(Processor Device)253machine # [ 0.391725] ACPI: Added _OSI(Processor Aggregator Device)254machine # [ 0.400095] ACPI: 1 ACPI AML tables successfully acquired and loaded255machine # [ 0.404098] ACPI: Interpreter enabled256machine # [ 0.404759] ACPI: PM: (supports S0 S3 S4 S5)257machine # [ 0.405714] ACPI: Using IOAPIC for interrupt routing258machine # [ 0.408790] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug259machine # [ 0.409743] PCI: Using E820 reservations for host bridge windows260machine # [ 0.411287] ACPI: Enabled 2 GPEs in block 00 to 3F261machine # [ 0.415573] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])262machine # [ 0.416749] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]263machine # [ 0.417831] acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug LTR]264machine # [ 0.418864] acpi PNP0A08:00: _OSC: OS now controls [PME AER PCIeCapability]265machine # [ 0.420168] PCI host bridge to bus 0000:00266machine # [ 0.420748] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]267machine # [ 0.421745] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]268machine # [ 0.422745] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]269machine # [ 0.423744] pci_bus 0000:00: root bus resource [mem 0x40000000-0xafffffff window]270machine # [ 0.424744] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window]271machine # [ 0.425745] pci_bus 0000:00: root bus resource [mem 0x100000000-0x8ffffffff window]272machine # [ 0.426745] pci_bus 0000:00: root bus resource [bus 00-ff]273machine # [ 0.427859] pci 0000:00:00.0: [8086:29c0] type 00 class 0x060000 conventional PCI endpoint274machine # [ 0.429460] pci 0000:00:01.0: [1234:1111] type 00 class 0x030000 conventional PCI endpoint275machine # [ 0.432754] pci 0000:00:01.0: BAR 0 [mem 0xfd000000-0xfdffffff pref]276machine # [ 0.433766] pci 0000:00:01.0: BAR 2 [mem 0xfebd0000-0xfebd0fff]277machine # [ 0.434786] pci 0000:00:01.0: ROM [mem 0xfebc0000-0xfebcffff pref]278machine # [ 0.435910] pci 0000:00:01.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]279machine # [ 0.437460] pci 0000:00:02.0: [1af4:1000] type 00 class 0x020000 conventional PCI endpoint280machine # [ 0.439754] pci 0000:00:02.0: BAR 0 [io 0xc140-0xc15f]281machine # [ 0.440757] pci 0000:00:02.0: BAR 1 [mem 0xfebd1000-0xfebd1fff]282machine # [ 0.441785] pci 0000:00:02.0: BAR 4 [mem 0xfe000000-0xfe003fff 64bit pref]283machine # [ 0.442756] pci 0000:00:02.0: ROM [mem 0xfeb40000-0xfeb7ffff pref]284machine # [ 0.444661] pci 0000:00:03.0: [1af4:1005] type 00 class 0x00ff00 conventional PCI endpoint285machine # [ 0.446754] pci 0000:00:03.0: BAR 0 [io 0xc160-0xc17f]286machine # [ 0.447756] pci 0000:00:03.0: BAR 1 [mem 0xfebd2000-0xfebd2fff]287machine # [ 0.448785] pci 0000:00:03.0: BAR 4 [mem 0xfe004000-0xfe007fff 64bit pref]288machine # [ 0.450647] pci 0000:00:04.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint289machine # [ 0.453655] pci 0000:00:04.0: BAR 0 [io 0xc080-0xc0bf]290machine # [ 0.454652] pci 0000:00:04.0: BAR 1 [mem 0xfebd3000-0xfebd3fff]291machine # [ 0.455787] pci 0000:00:04.0: BAR 4 [mem 0xfe008000-0xfe00bfff 64bit pref]292machine # [ 0.457655] pci 0000:00:05.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint293machine # [ 0.459753] pci 0000:00:05.0: BAR 0 [io 0xc180-0xc19f]294machine # [ 0.460756] pci 0000:00:05.0: BAR 1 [mem 0xfebd4000-0xfebd4fff]295machine # [ 0.461785] pci 0000:00:05.0: BAR 4 [mem 0xfe00c000-0xfe00ffff 64bit pref]296machine # [ 0.464566] pci 0000:00:06.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint297machine # [ 0.466758] pci 0000:00:06.0: BAR 0 [io 0xc1a0-0xc1bf]298machine # [ 0.467760] pci 0000:00:06.0: BAR 1 [mem 0xfebd5000-0xfebd5fff]299machine # [ 0.468803] pci 0000:00:06.0: BAR 4 [mem 0xfe010000-0xfe013fff 64bit pref]300machine # [ 0.470940] pci 0000:00:07.0: [1af4:1001] type 00 class 0x010000 conventional PCI endpoint301machine # [ 0.472758] pci 0000:00:07.0: BAR 0 [io 0xc000-0xc07f]302machine # [ 0.473755] pci 0000:00:07.0: BAR 1 [mem 0xfebd6000-0xfebd6fff]303machine # [ 0.474791] pci 0000:00:07.0: BAR 4 [mem 0xfe014000-0xfe017fff 64bit pref]304machine # [ 0.476743] pci 0000:00:08.0: [1af4:1000] type 00 class 0x020000 conventional PCI endpoint305machine # [ 0.478754] pci 0000:00:08.0: BAR 0 [io 0xc1c0-0xc1df]306machine # [ 0.479756] pci 0000:00:08.0: BAR 1 [mem 0xfebd7000-0xfebd7fff]307machine # [ 0.480790] pci 0000:00:08.0: BAR 4 [mem 0xfe018000-0xfe01bfff 64bit pref]308machine # [ 0.481755] pci 0000:00:08.0: ROM [mem 0xfeb80000-0xfebbffff pref]309machine # [ 0.483689] pci 0000:00:09.0: [1af4:1052] type 00 class 0x090000 conventional PCI endpoint310machine # [ 0.485609] pci 0000:00:09.0: BAR 1 [mem 0xfebd8000-0xfebd8fff]311machine # [ 0.486790] pci 0000:00:09.0: BAR 4 [mem 0xfe01c000-0xfe01ffff 64bit pref]312machine # [ 0.488697] pci 0000:00:0a.0: [1af4:1003] type 00 class 0x078000 conventional PCI endpoint313machine # [ 0.490754] pci 0000:00:0a.0: BAR 0 [io 0xc0c0-0xc0ff]314machine # [ 0.491756] pci 0000:00:0a.0: BAR 1 [mem 0xfebd9000-0xfebd9fff]315machine # [ 0.492790] pci 0000:00:0a.0: BAR 4 [mem 0xfe020000-0xfe023fff 64bit pref]316machine # [ 0.494695] pci 0000:00:0b.0: [1af4:1005] type 00 class 0x00ff00 conventional PCI endpoint317machine # [ 0.496977] pci 0000:00:0b.0: BAR 0 [io 0xc1e0-0xc1ff]318machine # [ 0.497756] pci 0000:00:0b.0: BAR 1 [mem 0xfebda000-0xfebdafff]319machine # [ 0.498790] pci 0000:00:0b.0: BAR 4 [mem 0xfe024000-0xfe027fff 64bit pref]320machine # [ 0.500723] pci 0000:00:1d.0: [8086:2934] type 00 class 0x0c0300 conventional PCI endpoint321machine # [ 0.502433] pci 0000:00:1d.0: BAR 4 [io 0xc200-0xc21f]322machine # [ 0.503028] pci 0000:00:1d.1: [8086:2935] type 00 class 0x0c0300 conventional PCI endpoint323machine # [ 0.505627] pci 0000:00:1d.1: BAR 4 [io 0xc220-0xc23f]324machine # [ 0.507100] pci 0000:00:1d.2: [8086:2936] type 00 class 0x0c0300 conventional PCI endpoint325machine # [ 0.508694] pci 0000:00:1d.2: BAR 4 [io 0xc240-0xc25f]326machine # [ 0.510064] pci 0000:00:1d.7: [8086:293a] type 00 class 0x0c0320 conventional PCI endpoint327machine # [ 0.511392] pci 0000:00:1d.7: BAR 0 [mem 0xfebdb000-0xfebdbfff]328machine # [ 0.512408] pci 0000:00:1f.0: [8086:2918] type 00 class 0x060100 conventional PCI endpoint329machine # [ 0.514518] pci 0000:00:1f.0: quirk: [io 0x0600-0x067f] claimed by ICH6 ACPI/GPIO/TCO330machine # [ 0.516402] pci 0000:00:1f.2: [8086:2922] type 00 class 0x010601 conventional PCI endpoint331machine # [ 0.519449] pci 0000:00:1f.2: BAR 4 [io 0xc260-0xc27f]332machine # [ 0.520763] pci 0000:00:1f.2: BAR 5 [mem 0xfebdc000-0xfebdcfff]333machine # [ 0.522513] pci 0000:00:1f.3: [8086:2930] type 00 class 0x0c0500 conventional PCI endpoint334machine # [ 0.524721] pci 0000:00:1f.3: BAR 4 [io 0x0700-0x073f]335machine # [ 0.530934] ACPI: PCI: Interrupt link LNKA configured for IRQ 10336machine # [ 0.531931] ACPI: PCI: Interrupt link LNKB configured for IRQ 10337machine # [ 0.533020] ACPI: PCI: Interrupt link LNKC configured for IRQ 11338machine # [ 0.533879] ACPI: PCI: Interrupt link LNKD configured for IRQ 11339machine # [ 0.534871] ACPI: PCI: Interrupt link LNKE configured for IRQ 10340machine # [ 0.535883] ACPI: PCI: Interrupt link LNKF configured for IRQ 10341machine # [ 0.536874] ACPI: PCI: Interrupt link LNKG configured for IRQ 11342machine # [ 0.537874] ACPI: PCI: Interrupt link LNKH configured for IRQ 11343machine # [ 0.538793] ACPI: PCI: Interrupt link GSIA configured for IRQ 16344machine # [ 0.539762] ACPI: PCI: Interrupt link GSIB configured for IRQ 17345machine # [ 0.540761] ACPI: PCI: Interrupt link GSIC configured for IRQ 18346machine # [ 0.541758] ACPI: PCI: Interrupt link GSID configured for IRQ 19347machine # [ 0.542761] ACPI: PCI: Interrupt link GSIE configured for IRQ 20348machine # [ 0.543758] ACPI: PCI: Interrupt link GSIF configured for IRQ 21349machine # [ 0.544758] ACPI: PCI: Interrupt link GSIG configured for IRQ 22350machine # [ 0.545764] ACPI: PCI: Interrupt link GSIH configured for IRQ 23351machine # [ 0.547666] iommu: Default domain type: Translated352machine # [ 0.548614] iommu: DMA domain TLB invalidation policy: lazy mode353machine # [ 0.549953] ACPI: bus type USB registered354machine # [ 0.550802] usbcore: registered new interface driver usbfs355machine # [ 0.551758] usbcore: registered new interface driver hub356machine # [ 0.552778] usbcore: registered new device driver usb357machine # [ 0.554429] NetLabel: Initializing358machine # [ 0.554748] NetLabel: domain hash size = 128359machine # [ 0.555743] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO360machine # [ 0.556779] NetLabel: unlabeled traffic allowed by default361machine # [ 0.557753] PCI: Using ACPI for IRQ routing362machine # [ 0.641556] pci 0000:00:01.0: vgaarb: setting as boot VGA device363machine # [ 0.641739] pci 0000:00:01.0: vgaarb: bridge control possible364machine # [ 0.641739] pci 0000:00:01.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none365machine # [ 0.641747] vgaarb: loaded366machine # [ 0.642624] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0367machine # [ 0.643603] hpet0: 3 comparators, 64-bit 100.000000 MHz counter368machine # [ 0.647823] clocksource: Switched to clocksource kvm-clock369machine # [ 0.651237] VFS: Disk quotas dquot_6.6.0370machine # [ 0.652185] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)371machine # [ 0.653869] pnp: PnP ACPI init372machine # [ 0.654863] ACPI: IRQ 4 override to edge(!), high(!)373machine # [ 0.656148] system 00:05: [mem 0xb0000000-0xbfffffff window] has been reserved374machine # [ 0.658193] pnp: PnP ACPI: found 6 devices375machine # [ 0.665861] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns376machine # [ 0.667817] clocksource: Switched to clocksource acpi_pm377machine # [ 0.669111] NET: Registered PF_INET protocol family378machine # [ 0.670460] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)379machine # [ 0.685316] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)380machine # [ 0.687351] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)381machine # [ 0.689142] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)382machine # [ 0.690937] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)383machine # [ 0.692587] TCP: Hash tables configured (established 8192 bind 8192)384machine # [ 0.694061] MPTCP token hash table entries: 1024 (order: 3, 24576 bytes, linear)385machine # [ 0.695750] UDP hash table entries: 512 (order: 3, 32768 bytes, linear)386machine # [ 0.697248] UDP-Lite hash table entries: 512 (order: 3, 32768 bytes, linear)387machine # [ 0.698876] NET: Registered PF_UNIX/PF_LOCAL protocol family388machine # [ 0.700180] NET: Registered PF_XDP protocol family389machine # [ 0.701318] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]390machine # [ 0.702745] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]391machine # [ 0.704125] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]392machine # [ 0.705665] pci_bus 0000:00: resource 7 [mem 0x40000000-0xafffffff window]393machine # [ 0.707192] pci_bus 0000:00: resource 8 [mem 0xc0000000-0xfebfffff window]394machine # [ 0.708723] pci_bus 0000:00: resource 9 [mem 0x100000000-0x8ffffffff window]395machine # [ 0.710915] ACPI: \_SB_.GSIA: Enabled at IRQ 16396machine # [ 0.713165] ACPI: \_SB_.GSIB: Enabled at IRQ 17397machine # [ 0.715390] ACPI: \_SB_.GSIC: Enabled at IRQ 18398machine # [ 0.717598] ACPI: \_SB_.GSID: Enabled at IRQ 19399machine # [ 0.719480] PCI: CLS 0 bytes, default 64400machine # [ 0.720615] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x6d5818a734c, max_idle_ns: 881590694765 ns401machine # [ 0.723067] Trying to unpack rootfs image as initramfs...402machine # [ 0.763813] Initialise system trusted keyrings403machine # [ 0.765083] workingset: timestamp_bits=40 max_order=18 bucket_order=0404machine # [ 0.786192] Key type asymmetric registered405machine # [ 0.787190] Asymmetric key parser 'x509' registered406machine # [ 0.790475] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)407machine # [ 0.795487] io scheduler mq-deadline registered408machine # [ 0.796561] io scheduler kyber registered409machine # [ 0.799930] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled410machine # [ 0.803678] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A411machine # [ 0.809394] Linux agpgart interface v0.103412machine # [ 0.812495] ACPI: bus type drm_connector registered413machine # [ 0.814085] usbcore: registered new interface driver usbserial_generic414machine # [ 0.815560] usbserial: USB Serial support registered for generic415machine # [ 0.819453] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled416machine # [ 0.821285] drop_monitor: Initializing network drop monitor service417machine # [ 0.825566] NET: Registered PF_INET6 protocol family418machine # [ 0.829735] Segment Routing with IPv6419machine # [ 0.831450] In-situ OAM (IOAM) with IPv6420machine # [ 0.834691] IPI shorthand broadcast: enabled421machine # [ 0.840708] sched_clock: Marking stable (633024009, 207401653)->(951225387, -110799725)422machine # [ 0.847611] registered taskstats version 1423machine # [ 0.848786] Loading compiled-in X.509 certificates424machine # [ 0.867439] Demotion targets for Node 0: null425machine # [ 0.868685] Key type .fscrypt registered426machine # [ 0.871452] Key type fscrypt-provisioning registered427machine # [ 0.872721] ima: No TPM chip found, activating TPM-bypass!428machine # [ 0.876489] ima: Allocated hash algorithm: sha1429machine # [ 0.877593] ima: No architecture policies found430machine # [ 0.880636] PM: Magic number: 6:372:684431machine # [ 0.881661] mem full: hash matches432machine # [ 0.885163] RAS: Correctable Errors collector initialized.433machine # [ 0.893907] clk: Disabling unused clocks434machine # [ 0.898465] PM: genpd: Disabling unused power domains435machine # [ 1.024752] Freeing initrd memory: 29196K436machine # [ 1.027930] Freeing unused decrypted memory: 2028K437machine # [ 1.030938] Freeing unused kernel image (initmem) memory: 3644K438machine # [ 1.032762] Write protecting the kernel read-only data: 32768k439machine # [ 1.035370] Freeing unused kernel image (text/rodata gap) memory: 1216K440machine # [ 1.037718] Freeing unused kernel image (rodata/data gap) memory: 756K441machine # [ 1.085093] x86/mm: Checked W+X mappings: passed, no W+X pages found.442machine # [ 1.086600] Run /init as init process443machine # [ 1.095329] systemd[1]: Inserted module 'autofs4'444machine # [ 1.113582] fuse: init (API version 7.45)445machine # [ 1.119301] ACPI: \_SB_.GSIG: Enabled at IRQ 22446machine # [ 1.122216] ACPI: \_SB_.GSIH: Enabled at IRQ 23447machine # [ 1.127004] ACPI: \_SB_.GSIE: Enabled at IRQ 20448machine # [ 1.130563] ACPI: \_SB_.GSIF: Enabled at IRQ 21449machine # [ 1.164364] systemd[1]: Successfully made /usr/ read-only.450machine # [ 1.501336] systemd[1]: systemd 261.1 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.509699] systemd[1]: Detected virtualization kvm.452machine # [ 1.511200] systemd[1]: Detected architecture x86-64.453machine # [ 1.512816] systemd[1]: Running in initrd.454machine # [ 1.514384] systemd[1]: Initializing machine ID from random generator.455machine # [ 1.515987] systemd[1]: Hostname set to <machine>.456machine # [ 1.703265] systemd[1]: bpf-restrict-fs: LSM BPF program attached457machine # [ 1.744374] systemd[1]: Queued start job for default target Initrd Default Target.458machine # [ 1.750045] systemd[1]: Created slice Slice /system/modprobe.459machine # [ 1.751993] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.460machine # [ 1.754364] systemd[1]: Expecting device /dev/disk/by-label/nixos...461machine # [ 1.756262] systemd[1]: Reached target Path Units.462machine # [ 1.757592] systemd[1]: Reached target Slice Units.463machine # [ 1.758791] systemd[1]: Reached target Swaps.464machine # [ 1.759915] systemd[1]: Reached target Timer Units.465machine # [ 1.761202] systemd[1]: Listening on D-Bus System Message Bus Socket.466machine # [ 1.762826] systemd[1]: Listening on Journal Socket (/dev/log).467machine # [ 1.764449] systemd[1]: Listening on Journal Sockets.468machine # [ 1.765784] systemd[1]: Listening on udev Control Socket.469machine # [ 1.767155] systemd[1]: Listening on udev Kernel Socket.470machine # [ 1.768509] systemd[1]: Reached target Socket Units.471machine # [ 1.770586] systemd[1]: Starting Create List of Static Device Nodes...472machine # [ 1.778205] systemd[1]: Starting Load Kernel Module 9pnet_virtio...473machine # [ 1.787557] systemd[1]: Starting Load Kernel Module configfs...474machine # [ 1.798603] systemd[1]: Starting Journal Service...475machine # [ 1.810573] systemd[1]: Starting Load Kernel Modules...476machine # [ 1.827602] netfs: FS-Cache loaded477machine # [ 1.832149] 9pnet: Installing 9P2000 support478machine # [ 1.840628] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os479machine # [ 1.853505] systemd[1]: Starting Coldplug All udev Devices...480machine # [ 1.869006] systemd[1]: Finished Create List of Static Device Nodes.481machine # [ 1.873864] systemd-journald[67]: Collecting audit messages is disabled.482machine # [ 1.877148] systemd[1]: modprobe@9pnet_virtio.service: Deactivated successfully.483machine # [ 1.885049] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.484machine # [ 1.888959] systemd[1]: Finished Load Kernel Module 9pnet_virtio.485machine # [ 1.893871] systemd[1]: modprobe@configfs.service: Deactivated successfully.486machine # [ 1.897618] device-mapper: ioctl: 4.50.0-ioctl (2025-04-28) initialised: dm-devel@lists.linux.dev487machine # [ 1.902979] systemd[1]: Finished Load Kernel Module configfs.488machine # [ 1.910121] systemd[1]: Kernel Configuration File System skipped, unmet condition check ConditionPathExists=/sys/kernel/config489machine # [ 1.925616] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...490machine # [ 1.941539] systemd[1]: Finished Load Kernel Modules.491machine # [ 1.952684] systemd[1]: Starting Apply Kernel Variables...492machine # [ 1.968613] systemd[1]: Finished Create Static Device Nodes in /dev gracefully.493machine # [ 1.982532] systemd[1]: Starting Create Static Device Nodes in /dev...494machine # [ 2.000647] systemd[1]: Finished Apply Kernel Variables.495machine # [ 2.019535] systemd[1]: Finished Create Static Device Nodes in /dev.496machine # [ 2.025715] systemd[1]: Reached target Preparation for Local File Systems.497machine # [ 2.030494] systemd[1]: Reached target Local File Systems.498machine # [ 2.037811] systemd[1]: Starting Rule-based Manager for Device Events and Files...499machine # [ 1.829836] systemd-modules-load[68]: Inserted module 'dm_mod'500machine # [ 1.834337] systemd-modules-load[68]: Inserted module 'virtio_balloon'501machine # [ 1.835781] systemd-modules-load[68]: Inserted module 'virtio_gpu'502machine # [ 2.049614] systemd[1]: Started Journal Service.503machine # [ 1.861299] systemd[1]: Starting Create System Files and Directories...504machine # [ 1.889348] systemd[1]: Finished Create System Files and Directories.505machine # [ 1.893252] systemd-udevd[75]: Using default interface naming scheme 'v261'.506machine # [ 1.921092] systemd[1]: Started Rule-based Manager for Device Events and Files.507machine # [ 1.937186] systemd[1]: Finished Coldplug All udev Devices.508machine # [ 1.939247] systemd[1]: Reached target System Initialization.509machine # [ 1.940464] systemd[1]: Reached target Basic System.510machine # [ 2.370100] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12511machine # [ 2.395223] serio: i8042 KBD port at 0x60,0x64 irq 1512machine # [ 2.405640] serio: i8042 AUX port at 0x60,0x64 irq 12513machine # [ 2.411841] virtio_blk virtio5: 1/0/0 default/read/poll queues514machine # [ 2.422321] uhci_hcd 0000:00:1d.0: UHCI Host Controller515machine # [ 2.426171] virtio_blk virtio5: [vda] 2097152 512-byte logical blocks (1.07 GB/1.00 GiB)516machine # [ 2.439243] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1517machine # [ 2.446845] uhci_hcd 0000:00:1d.0: detected 2 ports518machine # [ 2.449992] uhci_hcd 0000:00:1d.0: irq 16, io port 0x0000c200519machine # [ 2.455545] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18520machine # [ 2.456976] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1521machine # [ 2.463282] SCSI subsystem initialized522machine # [ 2.467164] usb usb1: Product: UHCI Host Controller523machine # [ 2.469457] usb usb1: Manufacturer: Linux 6.18.45 uhci_hcd524machine # [ 2.473046] usb usb1: SerialNumber: 0000:00:1d.0525machine # [ 2.476768] hub 1-0:1.0: USB hub found526machine # [ 2.479435] hub 1-0:1.0: 2 ports detected527machine # [ 2.483711] ehci-pci 0000:00:1d.7: EHCI Host Controller528machine # [ 2.484663] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 2529machine # [ 2.486803] ehci-pci 0000:00:1d.7: irq 19, io mem 0xfebdb000530machine # [ 2.494434] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00531machine # [ 2.496785] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.18532machine # [ 2.498191] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1533machine # [ 2.502818] usb usb2: Product: EHCI Host Controller534machine # [ 2.504412] usb usb2: Manufacturer: Linux 6.18.45 ehci_hcd535machine # [ 2.505345] usb usb2: SerialNumber: 0000:00:1d.7536machine # [ 2.509227] hub 2-0:1.0: USB hub found537machine # [ 2.510279] hub 2-0:1.0: 6 ports detected538machine # [ 2.307717] systemd[1]: Starting Virtual Console Setup...539machine # [ 2.534502] hub 1-0:1.0: USB hub found540machine # [ 2.536415] hub 1-0:1.0: 2 ports detected541machine # [ 2.538254] uhci_hcd 0000:00:1d.1: UHCI Host Controller542machine # [ 2.539205] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3543machine # [ 2.338319] systemd-vconsole-setup[99]: Configuration of first virtual console was skipped, ignoring remaining ones.544machine # [ 2.342465] systemd[1]: Finished Virtual Console Setup.545machine # [ 2.556173] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0546machine # [ 2.565641] uhci_hcd 0000:00:1d.1: detected 2 ports547machine # [ 2.566667] uhci_hcd 0000:00:1d.1: irq 17, io port 0x0000c220548machine # [ 2.361293] (udev-worker)[96]: Network interface NamePolicy= disabled on kernel command line.549machine # [ 2.366580] (udev-worker)[95]: eth1: Config file /etc/systemd/network/40-eth1.link is applied to device based on potentially unpredictable interface name.550machine # [ 2.369772] (udev-worker)[95]: Network interface NamePolicy= disabled on kernel command line.551machine # [ 2.591463] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18552machine # [ 2.592900] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1553machine # [ 2.605679] usb usb3: Product: UHCI Host Controller554machine # [ 2.402348] systemd[1]: Found device /dev/disk/by-label/nixos.555machine # [ 2.408079] systemd[1]: Reached target Initrd Root Device.556machine # [ 2.409205] systemd[1]: Starting File System Check on /dev/disk/by-label/nixos...557machine # [ 2.619406] usb usb3: Manufacturer: Linux 6.18.45 uhci_hcd558machine # [ 2.620354] usb usb3: SerialNumber: 0000:00:1d.1559machine # [ 2.621966] hub 3-0:1.0: USB hub found560machine # [ 2.628416] hub 3-0:1.0: 2 ports detected561machine # [ 2.635528] uhci_hcd 0000:00:1d.2: UHCI Host Controller562machine # [ 2.637069] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4563machine # [ 2.438134] systemd-fsck[108]: nixos: clean, 12/65536 files, 13019/262144 blocks564machine # [ 2.648485] uhci_hcd 0000:00:1d.2: detected 2 ports565machine # [ 2.649641] uhci_hcd 0000:00:1d.2: irq 18, io port 0x0000c240566machine # [ 2.656565] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18567machine # [ 2.659194] ahci 0000:00:1f.2: AHCI vers 0001.0000, 32 command slots, 1.5 Gbps, SATA mode568machine # [ 2.660985] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1569machine # [ 2.663100] usb usb4: Product: UHCI Host Controller570machine # [ 2.664337] ahci 0000:00:1f.2: 6/6 ports implemented (port mask 0x3f)571machine # [ 2.666035] usb usb4: Manufacturer: Linux 6.18.45 uhci_hcd572machine # [ 2.667363] ahci 0000:00:1f.2: flags: 64bit ncq only573machine # [ 2.669468] usb usb4: SerialNumber: 0000:00:1d.2574machine # [ 2.670838] hub 4-0:1.0: USB hub found575machine # [ 2.673413] hub 4-0:1.0: 2 ports detected576machine # [ 2.675817] scsi host0: ahci577machine # [ 2.678700] scsi host1: ahci578machine # [ 2.682042] scsi host2: ahci579machine # [ 2.686281] scsi host3: ahci580machine # [ 2.688794] scsi host4: ahci581machine # [ 2.692723] scsi host5: ahci582machine # [ 2.695295] ata1: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc100 irq 44 lpm-pol 1583machine # [ 2.494081] systemd[1]: Finished File System Check on /dev/disk/by-label/nixos.584machine # [ 2.710081] ata2: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc180 irq 44 lpm-pol 1585machine # [ 2.717523] ata3: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc200 irq 44 lpm-pol 1586machine # [ 2.724129] ata4: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc280 irq 44 lpm-pol 1587machine # [ 2.727210] ata5: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc300 irq 44 lpm-pol 1588machine # [ 2.728808] ata6: SATA max UDMA/133 abar m4096@0xfebdc000 port 0xfebdc380 irq 44 lpm-pol 1589machine # [ 2.748441] usb 2-1: new high-speed USB device number 2 using ehci-pci590machine # [ 2.659123] systemd[1]: Mounting /sysroot...591machine # [ 2.879359] usb 2-1: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00592machine # [ 2.882397] usb 2-1: New USB device strings: Mfr=1, Product=3, SerialNumber=10593machine # [ 2.886646] usb 2-1: Product: QEMU USB Tablet594machine # [ 2.887588] usb 2-1: Manufacturer: QEMU595machine # [ 2.888316] usb 2-1: SerialNumber: 28754-0000:00:1d.7-1596machine # [ 2.906753] hid: raw HID events driver (C) Jiri Kosina597machine # [ 3.043756] ata4: SATA link down (SStatus 0 SControl 300)598machine # [ 3.045986] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)599machine # [ 3.047768] ata3.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100600machine # [ 3.049547] ata3.00: applying bridge limits601machine # [ 3.051312] ata6: SATA link down (SStatus 0 SControl 300)602machine # [ 3.053347] ata5: SATA link down (SStatus 0 SControl 300)603machine # [ 3.055194] ata1: SATA link down (SStatus 0 SControl 300)604machine # [ 3.056708] ata2: SATA link down (SStatus 0 SControl 300)605machine # [ 3.058020] ata3.00: configured for UDMA/100606machine # [ 3.059348] scsi 2:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5607machine # [ 3.111605] usbcore: registered new interface driver usbhid608machine # [ 3.118395] usbhid: USB HID core driver609machine # [ 3.133725] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/0003:0627:0001.0001/input/input2610machine # [ 3.139039] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:1d.7-1/input0611machine # [ 3.144077] sr 2:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray612machine # [ 3.149810] EXT4-fs (vda): mounted filesystem 90b25ea9-424a-4323-9ab5-031a10866340 r/w with ordered data mode. Quota mode: none.613machine # [ 2.949596] systemd[1]: Mounted /sysroot.614machine # [ 3.158550] cdrom: Uniform CD-ROM driver Revision: 3.20615machine # [ 2.953102] systemd[1]: Reached target Initrd Root File System.616machine # [ 2.955708] systemd[1]: Starting Mountpoints Configured in the Real Root...617machine # [ 2.972570] systemd-sysroot-fstab-check[140]: /sysroot should be mounted in the initrd, will request daemon-reload.618machine # [ 2.977996] systemd[1]: Reload requested from client PID 140 ('systemd-sysroot') (unit initrd-parse-etc.service)...619machine # [ 2.980046] systemd[1]: Reloading...620machine # [ 3.059404] systemd[1]: Reloading finished in 81 ms.621machine # [ 3.068090] systemd-sysroot-fstab-check[140]: Requesting initrd-fs.target/start/replace...622machine # [ 3.072422] systemd-sysroot-fstab-check[140]: Requesting swap.target/start/replace...623machine # [ 3.076654] systemd[1]: initrd-parse-etc.service: Deactivated successfully.624machine # [ 3.078579] systemd[1]: Finished Mountpoints Configured in the Real Root.625machine # [ 3.080038] systemd[1]: initrd-parse-etc.service: Triggering OnSuccess= dependencies.626machine # [ 3.082975] systemd[1]: Load Kernel Module 9pnet_virtio skipped, unmet condition check ConditionKernelModuleLoaded=!9pnet_virtio627machine # [ 3.661062] systemd[1]: Mounting /sysroot/nix/.ro-store...628machine # [ 3.666351] systemd[1]: Mounting /sysroot/nix/.rw-store...629machine # [ 3.676165] systemd[1]: Mounting /sysroot/run...630machine # [ 3.689475] systemd[1]: Mounting /sysroot/tmp/shared...631machine # [ 3.703298] systemd[1]: Mounting /sysroot/tmp/xchg...632machine # [ 3.948180] 9p: Installing v9fs 9p2000 file system support633machine # [ 3.759671] systemd[1]: Mounted /sysroot/nix/.rw-store.634machine # [ 3.764404] systemd[1]: Mounted /sysroot/nix/.ro-store.635machine # [ 3.766274] systemd[1]: Mounted /sysroot/run.636machine # [ 3.774174] systemd[1]: Starting rw-sysroot-nix-store.service...637machine # [ 3.783887] systemd[1]: Mounted /sysroot/tmp/shared.638machine # [ 3.793774] systemd[1]: Mounted /sysroot/tmp/xchg.639machine # [ 3.807847] systemd[1]: rw-sysroot-nix-store.service: Deactivated successfully.640machine # [ 3.811114] systemd[1]: Finished rw-sysroot-nix-store.service.641machine # [ 4.661274] systemd[1]: Mounting /sysroot/nix/store...642machine # [ 4.697976] systemd[1]: Mounted /sysroot/nix/store.643machine # [ 4.700602] systemd[1]: Reached target Initrd File Systems.644machine # [ 4.703771] systemd[1]: Starting Find NixOS closure...645machine # [ 4.710746] systemd[1]: Starting Create Volatile Files and Directories in the Real Root...646machine # [ 4.749396] systemd[1]: Finished Create Volatile Files and Directories in the Real Root.647machine # [ 4.754260] systemd[1]: sysroot-run-credentials-systemd\x2dtmpfiles\x2dsetup\x2dsysroot.service.mount: Deactivated successfully.648machine # [ 4.769614] systemd[1]: Finished Find NixOS closure.649machine # [ 4.772473] systemd[1]: Reached target Initrd Default Target.650machine # [ 4.777153] systemd[1]: Starting Cleaning Up and Shutting Down Daemons...651machine # [ 4.808512] systemd[1]: Stopped target Initrd Default Target.652machine # [ 4.810865] systemd[1]: Stopped target Basic System.653machine # [ 4.813269] systemd[1]: Stopped target Initrd Root Device.654machine # [ 4.814904] systemd[1]: Stopped target Path Units.655machine # [ 4.816386] systemd[1]: systemd-ask-password-console.path: Deactivated successfully.656machine # [ 4.818430] systemd[1]: Stopped Dispatch Password Requests to Console Directory Watch.657machine # [ 4.821263] systemd[1]: Stopped target Slice Units.658machine # [ 4.823133] systemd[1]: Stopped target Socket Units.659machine # [ 4.825409] systemd[1]: Stopped target System Initialization.660machine # [ 4.827240] systemd[1]: Stopped target Swaps.661machine # [ 4.828615] systemd[1]: Stopped target Timer Units.662machine # [ 4.830421] systemd[1]: dbus.socket: Deactivated successfully.663machine # [ 4.832411] systemd[1]: Closed D-Bus System Message Bus Socket.664machine # [ 4.835247] systemd[1]: initrd-find-nixos-closure.service: Deactivated successfully.665machine # [ 4.837190] systemd[1]: Stopped Find NixOS closure.666machine # [ 4.838732] systemd[1]: Load Kernel Module 9pnet_virtio skipped, unmet condition check ConditionKernelModuleLoaded=!9pnet_virtio667machine # [ 4.842786] systemd[1]: Starting rw-sysroot-nix-store.service...668machine # [ 4.844277] systemd[1]: systemd-sysctl.service: Deactivated successfully.669machine # [ 4.846372] systemd[1]: Stopped Apply Kernel Variables.670machine # [ 4.848687] systemd[1]: systemd-modules-load.service: Deactivated successfully.671machine # [ 4.850414] systemd[1]: Stopped Load Kernel Modules.672machine # [ 4.852401] systemd[1]: systemd-tmpfiles-setup-sysroot.service: Deactivated successfully.673machine # [ 4.854540] systemd[1]: Stopped Create Volatile Files and Directories in the Real Root.674machine # [ 4.857253] systemd[1]: systemd-tmpfiles-setup.service: Deactivated successfully.675machine # [ 4.859147] systemd[1]: Stopped Create System Files and Directories.676machine # [ 4.860595] systemd[1]: Stopped target Local File Systems.677machine # [ 4.863237] systemd[1]: Stopped target Preparation for Local File Systems.678machine # [ 4.864766] systemd[1]: systemd-udev-trigger.service: Deactivated successfully.679machine # [ 4.866408] systemd[1]: Stopped Coldplug All udev Devices.680machine # [ 4.871269] systemd[1]: Stopping Rule-based Manager for Device Events and Files...681machine # [ 4.873152] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.682machine # [ 4.875616] systemd[1]: Stopped Virtual Console Setup.683machine # [ 4.915247] systemd[1]: initrd-cleanup.service: Deactivated successfully.684machine # [ 4.920642] systemd[1]: Finished Cleaning Up and Shutting Down Daemons.685machine # [ 4.926355] systemd[1]: systemd-udevd.service: Deactivated successfully.686machine # [ 4.931158] systemd[1]: Stopped Rule-based Manager for Device Events and Files.687machine # [ 4.935389] systemd[1]: systemd-udevd-control.socket: Deactivated successfully.688machine # [ 4.938310] systemd[1]: Closed udev Control Socket.689machine # [ 4.941224] systemd[1]: Starting Cleanup udev Database...690machine # [ 4.943242] systemd[1]: systemd-tmpfiles-setup-dev.service: Deactivated successfully.691machine # [ 4.944989] systemd[1]: Stopped Create Static Device Nodes in /dev.692machine # [ 4.948119] systemd[1]: systemd-tmpfiles-setup-dev-early.service: Deactivated successfully.693machine # [ 4.949992] systemd[1]: Stopped Create Static Device Nodes in /dev gracefully.694machine # [ 4.951845] systemd[1]: kmod-static-nodes.service: Deactivated successfully.695machine # [ 4.953848] systemd[1]: Stopped Create List of Static Device Nodes.696machine # [ 4.959310] systemd[1]: rw-sysroot-nix-store.service: Deactivated successfully.697machine # [ 4.962202] systemd[1]: Finished rw-sysroot-nix-store.service.698machine # [ 4.985101] systemd[1]: initrd-udevadm-cleanup-db.service: Deactivated successfully.699machine # [ 4.987978] systemd[1]: Finished Cleanup udev Database.700machine # [ 4.991570] systemd[1]: Reached target Switch Root.701machine # [ 4.993868] systemd[1]: Starting NixOS Activation...702machine # [ 5.224497] initrd-nixos-activation-start[193]: booting system configuration /nix/store/zsy14kjdhzar31xm34ialna919anc3xv-nixos-system-machine-test703machine # [ 5.295583] initrd-nixos-activation-start[193]: running activation script...704machine # [ 6.054875] initrd-nixos-activation-start[216]: setting up /etc...705machine # [ 6.292763] systemd[1]: initrd-nixos-activation.service: Deactivated successfully.706machine # [ 6.294890] systemd[1]: Finished NixOS Activation.707machine # [ 6.297286] systemd[1]: Starting Switch Root...708machine # [ 6.310189] systemd[1]: Switching root.709machine # [ 6.642970] systemd-journald[67]: Received SIGTERM from PID 1 (systemd).710machine # [ 6.770620] NET: Registered PF_VSOCK protocol family711machine # [ 7.146235] systemd[1]: systemd 261.1 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 # [ 7.151806] systemd[1]: Detected virtualization kvm.713machine # [ 7.152879] systemd[1]: Detected architecture x86-64.714machine # [ 7.153886] systemd[1]: Detected first boot.715machine # [ 7.156818] systemd[1]: Initializing machine ID from random generator.716machine # [ 7.391643] systemd[1]: bpf-restrict-fs: LSM BPF program attached717machine # [ 7.489008] systemd[1]: Applying preset policy.718machine # [ 7.859989] systemd[1]: Populated /etc with preset unit settings.719machine # [ 8.229036] systemd[1]: initrd-switch-root.service: Deactivated successfully.720machine # [ 8.230935] systemd[1]: Stopped initrd-switch-root.service.721machine # [ 8.233882] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 1.722machine # [ 8.236383] systemd[1]: Created slice Slice /system/getty.723machine # [ 8.237962] systemd[1]: Created slice User and Session Slice.724machine # [ 8.239157] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.725machine # [ 8.240742] systemd[1]: Started Forward Password Requests to Wall Directory Watch.726machine # [ 8.242177] systemd[1]: Expecting device /dev/hvc0...727machine # [ 8.243155] systemd[1]: Expecting device /dev/ttyS0...728machine # [ 8.244201] systemd[1]: Reached target Local Encrypted Volumes.729machine # [ 8.255159] systemd[1]: Stopped target initrd-fs.target.730machine # [ 8.256136] systemd[1]: Stopped target initrd-root-fs.target.731machine # [ 8.257169] systemd[1]: Stopped target initrd-switch-root.target.732machine # [ 8.258426] systemd[1]: Reached target Virtual Machines and Containers.733machine # [ 8.259650] systemd[1]: Reached target Path Units.734machine # [ 8.260623] systemd[1]: Reached target Remote File Systems.735machine # [ 8.261684] systemd[1]: Reached target Slice Units.736machine # [ 8.262658] systemd[1]: Reached target Swaps.737machine # [ 8.268888] systemd[1]: Listening on Query the User Interactively for a Password.738machine # [ 8.273420] systemd[1]: Listening on Process Core Dump Socket.739machine # [ 8.276403] systemd[1]: Listening on Credential Encryption/Decryption.740machine # [ 8.279201] systemd[1]: Listening on Factory Reset Management.741machine # [ 8.280569] systemd[1]: Listening on Hostname Service Socket.742machine # [ 8.284692] systemd[1]: Starting Journal Log Access Socket...743machine # [ 8.286344] systemd[1]: Listening on Journal Audit Socket.744machine # [ 8.289513] systemd[1]: Listening on Console Output Muting Service Socket.745machine # [ 8.290969] systemd[1]: Listening on Userspace Out-Of-Memory (OOM) Killer Socket.746machine # [ 8.292569] systemd[1]: TPM PCR Measurements skipped, unmet condition check ConditionSecurity=measured-os747machine # [ 8.294200] systemd[1]: Make TPM PCR Policy skipped, unmet condition check ConditionSecurity=measured-uki748machine # [ 8.302200] systemd[1]: Listening on Disk Repartitioning Service Socket.749machine # [ 8.303942] systemd[1]: Listening on udev Control Socket.750machine # [ 8.305443] systemd[1]: Listening on udev Varlink Socket.751machine # [ 8.309472] systemd[1]: Mounting Huge Pages File System...752machine # [ 8.314209] systemd[1]: Mounting POSIX Message Queue File System...753machine # [ 8.323134] systemd[1]: Mounting Kernel Debug File System...754machine # [ 8.329158] systemd[1]: Mounting Kernel Trace File System...755machine # [ 8.340785] systemd[1]: Starting Create List of Static Device Nodes...756machine # [ 8.342683] systemd[1]: Load Kernel Module 9pnet_virtio skipped, unmet condition check ConditionKernelModuleLoaded=!9pnet_virtio757machine # [ 8.354327] systemd[1]: Starting Load Kernel Module configfs...758machine # [ 8.356116] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm759machine # [ 8.372964] systemd[1]: Load Kernel Module efi_pstore skipped, unmet condition check ConditionKernelModuleLoaded=!efi_pstore760machine # [ 8.378703] systemd[1]: Load Kernel Module fuse skipped, unmet condition check ConditionKernelModuleLoaded=!fuse761machine # [ 8.402012] systemd[1]: Mounting FUSE Control File System...762machine # [ 8.403796] systemd[1]: Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67763machine # [ 8.416376] systemd[1]: Starting Journal Service...764machine # [ 8.427627] systemd[1]: Starting Load Kernel Modules...765machine # [ 8.441919] systemd[1]: Starting Userspace Out-Of-Memory (OOM) Killer...766machine # [ 8.457943] systemd[1]: Starting Remount Root and Kernel File Systems...767machine # [ 8.468385] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os768machine # [ 8.488796] systemd[1]: Starting Coldplug All udev Devices...769machine # [ 8.510195] loop: module loaded770machine # [ 8.511132] systemd-journald[286]: Collecting audit messages is enabled.771machine # [ 8.528594] systemd[1]: Listening on Journal Log Access Socket.772machine # [ 8.536088] systemd[1]: Mounted Huge Pages File System.773machine # [ 8.543066] systemd[1]: Mounted POSIX Message Queue File System.774machine # [ 8.550636] systemd[1]: Mounted Kernel Debug File System.775machine # [ 8.554311] EXT4-fs (vda): re-mounted 90b25ea9-424a-4323-9ab5-031a10866340.776machine # [ 8.558714] systemd[1]: Mounted Kernel Trace File System.777machine # [ 8.570002] systemd[1]: Finished Create List of Static Device Nodes.778machine # [ 8.365205] systemd[1]: Queued start job for default target Multi-User System.779machine # [ 8.367223] systemd[1]: systemd-journald.service: Deactivated successfully.780machine # [ 8.578478] systemd[1]: Started Journal Service.781machine # [ 8.372493] systemd-modules-load[287]: Inserted module 'loop'782machine # [ 8.380989] systemd[1]: modprobe@configfs.service: Deactivated successfully.783machine # [ 8.387154] systemd[1]: Finished Load Kernel Module configfs.784machine # [ 8.388549] systemd[1]: Mounted FUSE Control File System.785machine # [ 8.390666] systemd[1]: Finished Load Kernel Modules.786machine # [ 8.397220] systemd[1]: Finished Remount Root and Kernel File Systems.787machine # [ 8.414252] systemd[1]: Listening on Disk Image Download Service Socket.788machine # [ 8.422082] systemd[1]: Mounting Kernel Configuration File System...789machine # [ 8.425537] systemd-oomd[288]: No swap; memory pressure usage will be degraded790machine # [ 8.427644] systemd[1]: Starting Firewall...791machine # [ 8.442395] systemd[1]: Starting Flush Journal to Persistent Storage...792machine # [ 8.444181] systemd[1]: Platform Persistent Storage Archival skipped, unmet condition check ConditionDirectoryNotEmpty=/sys/fs/pstore793machine # [ 8.456154] systemd[1]: Starting Load/Save OS Random Seed...794machine # [ 8.471114] systemd[1]: Starting Apply Kernel Variables...795machine # [ 8.493830] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...796machine # [ 8.496425] systemd[1]: TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os797machine # [ 8.708805] systemd-journald[286]: Received client request to flush runtime journal.798machine # [ 8.752419] systemd[1]: Started Userspace Out-Of-Memory (OOM) Killer.799machine # [ 8.754744] systemd[1]: Finished Load/Save OS Random Seed.800machine # [ 8.759507] systemd[1]: Mounted Kernel Configuration File System.801machine # [ 8.761576] systemd[1]: Reached target First Boot Complete.802machine # [ 8.764864] systemd[1]: Finished Apply Kernel Variables.803machine # [ 8.767768] systemd[1]: Finished Create Static Device Nodes in /dev gracefully.804machine # [ 8.770173] systemd[1]: Starting Create Static Device Nodes in /dev...805machine # [ 8.772511] systemd[1]: Finished Flush Journal to Persistent Storage.806machine # [ 8.790614] systemd[1]: Finished Create Static Device Nodes in /dev.807machine # [ 8.793569] systemd[1]: Reached target Preparation for Local File Systems.808machine # [ 8.798261] systemd[1]: Starting Rule-based Manager for Device Events and Files...809machine # [ 8.858158] systemd[1]: Finished Coldplug All udev Devices.810machine # [ 8.877655] systemd-udevd[330]: Using default interface naming scheme 'v261'.811machine # [ 8.977694] systemd[1]: Started Rule-based Manager for Device Events and Files.812machine # [ 9.026491] systemd[1]: Mounting /run/wrappers...813machine # [ 9.063518] systemd[1]: Mounted /run/wrappers.814machine # [ 9.066370] systemd[1]: Reached target Local File Systems.815machine # [ 9.072099] systemd[1]: Listening on Boot Loader Control Service Socket.816machine # [ 9.075079] systemd[1]: Starting register-nix-paths.service...817machine # [ 9.080148] systemd[1]: Starting Create SUID/SGID Wrappers...818machine # [ 9.081314] systemd[1]: Update Boot Loader Random Seed skipped, no trigger condition checks were met.819machine # [ 9.092320] systemd[1]: Starting Save Transient machine-id to Disk...820machine # [ 9.105258] systemd[1]: Starting Create System Files and Directories...821machine # [ 9.238863] systemd[1]: etc-machine\x2did.mount: Deactivated successfully.822machine # [ 9.245989] systemd[1]: Finished Save Transient machine-id to Disk.823machine # [ 9.273698] systemd[1]: Finished Create System Files and Directories.824machine # [ 9.287539] systemd[1]: Starting Rebuild Journal Catalog...825machine # [ 9.295951] systemd[1]: Starting Record System Boot/Shutdown in UTMP...826machine # [ 9.322809] systemd[1]: Load Kernel Module fuse skipped, unmet condition check ConditionKernelModuleLoaded=!fuse827machine # [ 9.399532] systemd[1]: Finished Record System Boot/Shutdown in UTMP.828machine # [ 9.459626] systemd[1]: Finished Rebuild Journal Catalog.829machine # [ 9.472346] systemd[1]: Starting Update is Completed...830machine # [ 9.558608] systemd[1]: Finished Update is Completed.831machine # [ 9.646140] systemd[1]: Condition check resulted in /dev/hvc0 being skipped.832machine # [ 9.739281] systemd[1]: Condition check resulted in /dev/ttyS0 being skipped.833machine # [ 9.806485] (udev-worker)[379]: Network interface NamePolicy= disabled on kernel command line.834machine # [ 9.817872] (udev-worker)[381]: eth1: Config file /etc/systemd/network/40-eth1.link is applied to device based on potentially unpredictable interface name.835machine # [ 9.828416] (udev-worker)[381]: Network interface NamePolicy= disabled on kernel command line.836machine # [ 9.838138] systemd[1]: suid-sgid-wrappers.service: Deactivated successfully.837machine # [ 9.844770] systemd[1]: Finished Create SUID/SGID Wrappers.838machine # [ 9.926471] systemd[1]: Finished Firewall.839machine # [ 9.970099] systemd[1]: Condition check resulted in Virtio network device being skipped.840machine # [ 9.971693] systemd[1]: Load Kernel Module efi_pstore skipped, unmet condition check ConditionKernelModuleLoaded=!efi_pstore841machine # [ 9.977601] systemd[1]: Starting Create SUID/SGID Wrappers...842machine # [ 9.978777] systemd[1]: Update Boot Loader Random Seed skipped, no trigger condition checks were met.843machine # [ 9.981406] systemd[1]: Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67844machine # [ 9.985143] systemd[1]: Platform Persistent Storage Archival skipped, unmet condition check ConditionDirectoryNotEmpty=/sys/fs/pstore845machine # [ 9.988216] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os846machine # [ 9.990792] systemd[1]: TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os847machine # [ 10.147584] systemd[1]: Finished register-nix-paths.service.848machine # [ 10.360952] bochs-drm 0000:00:01.0: vgaarb: deactivate vga console849machine # [ 10.366662] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3850machine # [ 10.387818] mousedev: PS/2 mouse device common for all mice851machine # [ 10.394295] ACPI: button: Power Button [PWRF]852machine # [ 10.463034] rtc_cmos 00:04: RTC can wake from S4853machine # [ 10.477713] rtc_cmos 00:04: registered as rtc0854machine # [ 10.477814] rtc_cmos 00:04: setting system clock to 2026-08-26T12:41:13 UTC (1787748073)855machine # [ 10.477912] rtc_cmos 00:04: alarms up to one day, y3k, 242 bytes nvram, hpet irqs856machine # [ 10.485585] Console: switching to colour dummy device 80x25857machine # [ 10.497742] parport_pc 00:02: reported by Plug and Play ACPI858machine # [ 10.497842] parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]859machine # [ 10.506673] input: QEMU Virtio Keyboard as /devices/pci0000:00/0000:00:09.0/virtio7/input/input4860machine # [ 10.539520] lpc_ich 0000:00:1f.0: I/O space for GPIO uninitialized861machine # [ 10.566429] [drm] Found bochs VGA, ID 0xb0c5.862machine # [ 10.566431] [drm] Framebuffer size 16384 kB @ 0xfd000000, mmio @ 0xfebd0000.863machine # [ 10.581066] bochs-drm 0000:00:01.0: [drm] Registered 1 planes with drm panic864machine # [ 10.595283] [drm] Initialized bochs-drm 1.0.0 for 0000:00:01.0 on minor 0865machine # [ 10.603531] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt866machine # [ 10.604443] i2c i2c-0: Memory type 0x07 not supported yet, not instantiating SPD867machine # [ 10.398496] systemd[1]: suid-sgid-wrappers.service: Deactivated successfully.868machine # [ 10.402840] systemd[1]: Finished Create SUID/SGID Wrappers.869machine # [ 10.404185] systemd[1]: Reached target System Initialization.870machine # [ 10.407419] systemd[1]: Started Discard unused filesystem blocks once a week.871machine # [ 10.409238] systemd[1]: Started Daily Cleanup of Temporary Directories.872machine # [ 10.411183] systemd[1]: Reached target Timer Units.873machine # [ 10.413244] systemd[1]: Listening on D-Bus System Message Bus Socket.874machine # [ 10.414516] systemd[1]: Listening on Nix Daemon Socket.875machine # [ 10.416732] systemd[1]: Listening on Virtual Machine and Container Registration Service Socket.876machine # [ 10.418370] systemd[1]: Reached target Socket Units.877machine # [ 10.419910] systemd[1]: Reached target Basic System.878machine # [ 10.423225] systemd[1]: Started backdoor.service.879machine # [ 10.431118] systemd[1]: Starting Import lastlog data into lastlog2 database...880machine # [ 10.440189] systemd[1]: Starting Name Service Cache Daemon (nsncd)...881machine # [ 10.453390] systemd[1]: Starting Post-Boot Actions...882machine # [ 10.469914] systemd[1]: Started Reset console on configuration changes.883machine # [ 10.486251] systemd[1]: Starting resolvconf update...884machine # connecting to host...885machine: Guest shell says: b'Spawning backdoor root shell...\n'886machine: connected to guest root shell887machine: (connecting took 11.32 seconds)888machine: (finished: waiting for the VM to finish booting, in 11.48 seconds)889machine # [ 10.567306] systemd[1]: Starting D-Bus System Message Bus...890machine # [ 10.590733] nsncd[569]: Aug 26 12:41:13.817 INFO started, config: Config { ignored_request_types: {}, worker_count: 8, handoff_timeout: 10s }, path: "/var/run/nscd/socket"891machine # [ 10.596806] systemd[1]: Finished Post-Boot Actions.892machine # [ 10.601064] systemd[1]: Started Name Service Cache Daemon (nsncd).893machine # [ 10.610261] systemd[1]: Reached target Host and Network Name Lookups.894machine # [ 10.615603] systemd[1]: Reached target User and Group Name Lookups.895machine # [ 10.631627] systemd[1]: Starting User Login Management...896machine # [ 10.647144] systemd[1]: Finished Import lastlog data into lastlog2 database.897machine # [ 10.742642] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input6898machine # [ 10.742958] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input5899machine # [ 10.743946] dbus-broker-launch[581]: Looking up NSS user entry for 'systemd-timesync'...900machine # [ 10.768725] dbus-broker-launch[581]: NSS returned no entry for 'systemd-timesync'901machine # [ 10.771581] dbus-broker-launch[581]: Invalid user-name in /nix/store/qp6hmchhdm855zs9rbi78zya4k55z9wp-system-path/share/dbus-1/system.d/org.freedesktop.timesync1.conf +16: user="systemd-timesync"902machine # [ 10.803309] systemd[1]: Started D-Bus System Message Bus.903machine # [ 10.895914] Console: switching to colour frame buffer device 160x50904machine # [ 11.058940] bochs-drm 0000:00:01.0: [drm] fb0: bochs-drmdrmfb frame buffer device905machine # [ 10.845170] dbus-broker-launch[581]: Ready906machine # [ 10.859535] systemd-logind[599]: New seat seat0.907machine # [ 10.868224] systemd[1]: Started User Login Management.908machine # [ 10.882306] systemd[1]: Stopped target Host and Network Name Lookups.909machine # [ 10.884354] systemd[1]: Stopping Host and Network Name Lookups...910machine # [ 10.886339] systemd[1]: Stopped target User and Group Name Lookups.911machine # [ 10.889587] systemd[1]: Stopping User and Group Name Lookups...912machine # [ 10.895158] systemd[1]: Starting linger-users.service...913machine # [ 10.896761] systemd[1]: Stopping Name Service Cache Daemon (nsncd)...914machine # [ 10.903370] systemd-logind[599]: Watching system buttons on /dev/input/event0 (AT Translated Set 2 keyboard)915machine # [ 10.909191] systemd[1]: Starting Virtual Console Setup...916machine # [ 10.917470] systemd[1]: nscd.service: Deactivated successfully.917machine # [ 10.928220] systemd[1]: Stopped Name Service Cache Daemon (nsncd).918machine # [ 10.969175] systemd[1]: Starting Name Service Cache Daemon (nsncd)...919machine # [ 10.978470] systemd[1]: Finished resolvconf update.920machine # [ 10.986073] systemd[1]: linger-users.service: Deactivated successfully.921machine # [ 10.988918] systemd[1]: Finished linger-users.service.922machine # [ 10.995845] systemd-logind[599]: Watching system buttons on /dev/input/event2 (Power Button)923machine # [ 11.002200] systemd[1]: Reached target Preparation for Network.924machine # [ 11.014236] systemd[1]: Starting DHCP Client...925machine # [ 11.027186] systemd[1]: Starting Address configuration of eth1...926machine # [ 11.045038] systemd[1]: Starting Extra networking commands....927machine # [ 11.049765] nsncd[667]: Aug 26 12:41:14.276 INFO started, config: Config { ignored_request_types: {}, worker_count: 8, handoff_timeout: 10s }, path: "/var/run/nscd/socket"928machine # [ 11.060320] systemd[1]: Started Name Service Cache Daemon (nsncd).929machine # [ 11.067982] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.930machine # [ 11.072503] systemd[1]: Stopped Virtual Console Setup.931machine # [ 11.089853] systemd[1]: Reached target Host and Network Name Lookups.932machine # [ 11.091163] systemd[1]: Reached target User and Group Name Lookups.933machine # [ 11.097646] systemd[1]: Starting Virtual Console Setup...934machine # [ 11.309586] ppdev: user-space parallel port driver935machine # [ 11.197495] network-addresses-eth1-start[673]: adding address 192.168.1.1/24... done936machine # [ 11.218104] network-addresses-eth1-start[673]: adding address 2001:db8:1::1/64... done937machine # [ 11.434865] iTCO_wdt iTCO_wdt.1.auto: Found a ICH9 TCO device (Version=2, TCOBASE=0x0660)938machine # [ 11.245379] systemd[1]: Finished Address configuration of eth1.939machine # [ 11.292817] systemd-logind[599]: Watching system buttons on /dev/input/event3 (QEMU Virtio Keyboard)940machine # [ 11.505047] iTCO_wdt iTCO_wdt.1.auto: initialized. heartbeat=30 sec (nowayout=0)941machine # [ 11.336286] systemd[1]: Finished Extra networking commands..942machine # [ 11.339260] systemd[1]: Reached target Network.943machine # [ 11.352623] systemd[1]: Starting PostgreSQL Server...944machine # [ 11.359947] dhcpcd[701]: dhcpcd-10.3.2 starting945machine # [ 11.368702] systemd[1]: Starting Permit User Sessions...946machine # [ 11.373593] dhcpcd[755]: dev: loaded udev947machine # [ 11.392932] systemd[1]: systemd-vconsole-setup.service: Deactivated successfully.948machine # [ 11.605721] 8021q: 802.1Q VLAN Support v1.8949machine # [ 11.401257] systemd[1]: Stopped Virtual Console Setup.950machine # [ 11.613553] 8021q: adding VLAN 0 to HW filter on device eth1951machine # [ 11.423578] systemd[1]: Starting Virtual Console Setup...952machine # [ 11.443708] systemd[1]: Finished Permit User Sessions.953machine # [ 11.463261] systemd[1]: Started Getty on tty1.954machine # [ 11.468758] systemd[1]: Reached target Login Prompts.955machine # [ 11.526669] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.956machine # [ 11.820399] cfg80211: Loading compiled-in X.509 certificates for regulatory database957machine # [ 11.837785] kvm_amd: TSC scaling supported958machine # [ 11.838630] kvm_amd: Nested Virtualization enabled959machine # [ 11.840032] kvm_amd: Nested Paging enabled960machine # [ 11.841379] kvm_amd: LBR virtualization supported961machine # [ 11.842037] kvm_amd: Virtual VMLOAD VMSAVE supported962machine # [ 11.843193] kvm_amd: Virtual GIF supported963machine # [ 11.859036] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'964machine # [ 11.859948] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'965machine # [ 11.863981] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2966machine # [ 11.865247] cfg80211: failed to load regulatory.db967machine # [ 11.917402] EDAC MC: Ver: 3.0.0968machine # [ 11.938574] 8021q: adding VLAN 0 to HW filter on device eth0969machine # [ 11.732591] dhcpcd[755]: eth0: waiting for carrier970machine # [ 11.734286] dhcpcd[755]: eth0: carrier acquired971machine # [ 11.748526] dhcpcd[755]: DUID 00:01:00:01:32:21:9b:6a:52:54:00:12:34:56972machine # [ 11.750184] dhcpcd[755]: eth0: IAID 00:12:34:56973machine # [ 11.751682] dhcpcd[755]: eth0: adding address fe80::5054:ff:fe12:3456974machine # [ 11.754292] postgresql-pre-start[768]: The files belonging to this database system will be owned by user "postgres".975machine # [ 11.756302] postgresql-pre-start[768]: This user must also own the server process.976machine # [ 11.764781] postgresql-pre-start[768]: The database cluster will be initialized with locale "en_US.UTF-8".977machine # [ 11.767215] postgresql-pre-start[768]: The default database encoding has accordingly been set to "UTF8".978machine # [ 11.768843] postgresql-pre-start[768]: The default text search configuration will be set to "english".979machine # [ 11.770495] postgresql-pre-start[768]: Data page checksums are enabled.980machine # [ 11.772161] postgresql-pre-start[768]: fixing permissions on existing directory /var/lib/postgresql/18 ... ok981machine # [ 11.774270] postgresql-pre-start[768]: creating subdirectories ... ok982machine # [ 11.776114] postgresql-pre-start[768]: selecting dynamic shared memory implementation ... posix983machine # [ 11.843942] systemd-vconsole-setup[759]: Configuration of first virtual console was skipped, ignoring remaining ones.984machine # [ 11.847757] systemd[1]: Finished Virtual Console Setup.985machine # [ 11.849759] postgresql-pre-start[768]: selecting default "max_connections" ... 100986machine # [ 11.921281] postgresql-pre-start[768]: selecting default "shared_buffers" ... 128MB987machine # [ 12.516170] dhcpcd[755]: eth0: soliciting a DHCP lease988machine # [ 12.739343] NET: Registered PF_PACKET protocol family989machine # [ 12.538558] dhcpcd[755]: eth0: offered 10.0.2.15 from 10.0.2.2990machine # [ 12.541202] dhcpcd[755]: eth0: probing address 10.0.2.15/24991machine # [ 13.308860] dhcpcd[755]: eth0: soliciting an IPv6 router992machine # [ 13.310581] dhcpcd[755]: eth0: Router Advertisement from fe80::2993machine # [ 13.311954] dhcpcd[755]: eth0: adding address fec0::5054:ff:fe12:3456/64994machine # [ 13.313423] dhcpcd[755]: eth0: adding route to fec0::/64995machine # [ 13.314888] dhcpcd[755]: eth0: adding default route via fe80::2996machine # [ 13.584632] postgresql-pre-start[768]: selecting default time zone ... UTC997machine # [ 13.588594] postgresql-pre-start[768]: creating configuration files ... ok998machine # [ 13.799644] postgresql-pre-start[768]: running bootstrap script ... ok999machine # [ 14.344104] postgresql-pre-start[768]: performing post-bootstrap initialization ... ok1000machine # [ 14.521968] postgresql-pre-start[768]: syncing data to disk ... ok1001machine # [ 14.524140] postgresql-pre-start[768]: initdb: warning: enabling "trust" authentication for local connections1002machine # [ 14.525874] postgresql-pre-start[768]: 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.1003machine # [ 14.528513] postgresql-pre-start[768]: Success. You can now start the database server using:1004machine # [ 14.530035] postgresql-pre-start[768]: pg_ctl -D /var/lib/postgresql/18 -l logfile start1005machine # [ 14.654645] postgres[807]: [807] LOG: starting PostgreSQL 18.6 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit1006machine # [ 14.662163] postgres[807]: [807] LOG: listening on IPv6 address "::1", port 54321007machine # [ 14.664162] postgres[807]: [807] LOG: listening on IPv4 address "127.0.0.1", port 54321008machine # [ 14.677780] postgres[807]: [807] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"1009machine # [ 14.709439] postgres[821]: [821] LOG: database system was shut down at 2026-08-26 12:41:17 GMT1010machine # [ 14.727262] postgres[807]: [807] LOG: database system is ready to accept connections1011machine # [ 14.743854] systemd[1]: Started PostgreSQL Server.1012machine # [ 14.752711] systemd[1]: Starting PostgreSQL Setup Scripts...1013machine # [ 14.982325] postgresql-setup-start[832]: CREATE DATABASE1014machine # [ 15.019404] postgresql-setup-start[837]: CREATE ROLE1015machine # [ 15.043392] postgresql-setup-start[842]: ALTER DATABASE1016machine # [ 15.050455] systemd[1]: Finished PostgreSQL Setup Scripts.1017machine # [ 15.056423] systemd[1]: Reached target PostgreSQL.1018machine: (finished: waiting for unit postgresql.service, in 15.98 seconds)1019machine: waiting for unit rustfs.service1020machine # [ 18.109317] dhcpcd[755]: eth0: leased 10.0.2.15 for 86400 seconds1021machine # [ 18.110931] dhcpcd[755]: eth0: adding route to 10.0.2.0/241022machine # [ 18.113324] dhcpcd[755]: eth0: adding default route via 10.0.2.21023machine # [ 18.245744] systemd[1]: Started DHCP Client.1024machine # [ 18.253759] systemd[1]: Reached target Network is Online.1025machine # [ 18.261960] systemd[1]: Starting RustFS Object Storage Server...1026machine # [ 18.984375] systemd[1]: Started RustFS Object Storage Server.1027machine # [ 18.992634] systemd[1]: Starting Self-hosted Zotero sync server...1028machine # [ 19.041121] systemd[1]: Started Self-hosted Zotero sync server.1029machine # [ 19.043229] systemd[1]: Reached target Multi-User System.1030machine # [ 19.045691] systemd[1]: Startup finished in 882ms (kernel) + 5.632s (initrd) + 12.530s (userspace) = 19.045s.1031machine # [ 19.264428] zhost[945]: 2026-08-26T12:41:22.493109Z INFO zhost: zhost listening bind=127.0.0.1:81891032machine: (finished: waiting for unit rustfs.service, in 4.29 seconds)1033machine: waiting for TCP port 9000 on localhost1034machine # Connection to localhost (::1) 9000 port [tcp/cslistener] succeeded!1035machine: (finished: waiting for TCP port 9000 on localhost, in 0.05 seconds)1036machine: waiting for unit zhost.service1037machine: (finished: waiting for unit zhost.service, in 0.04 seconds)1038machine: waiting for TCP port 8189 on localhost1039machine # Connection to localhost (127.0.0.1) 8189 port [tcp/*] succeeded!1040machine: (finished: waiting for TCP port 8189 on localhost, in 0.03 seconds)1041machine: must succeed: mc alias set s3 http://localhost:9000 rustfsadmin rustfsadmin1042machine: (finished: must succeed: mc alias set s3 http://localhost:9000 rustfsadmin rustfsadmin, in 0.32 seconds)1043machine: must succeed: mc mb s3/zotero1044machine: (finished: must succeed: mc mb s3/zotero, in 0.21 seconds)1045subtest: the module deploys a working service backed by postgres1046machine: 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'1047machine # [ 20.045281] zhost[945]: 2026-08-26T12:41:23.274613Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1048machine: (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.06 seconds)1049(finished: subtest: the module deploys a working service backed by postgres, in 0.06 seconds)1050subtest: login session hands out the key only after authorization1051machine: must succeed: curl -sf -X POST http://localhost:8189/keys/sessions -d '{}' > /tmp/sess1052machine # [ 20.093704] zhost[945]: 2026-08-26T12:41:23.322915Z INFO zhost: request method=POST uri=/keys/sessions api_version=- if_unmod=- body={}1053machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/keys/sessions -d '{}' > /tmp/sess, in 0.05 seconds)1054machine: must succeed: jq -r .sessionToken /tmp/sess1055machine: (finished: must succeed: jq -r .sessionToken /tmp/sess, in 0.03 seconds)1056machine: must succeed: jq -r .loginURL /tmp/sess1057machine: (finished: must succeed: jq -r .loginURL /tmp/sess, in 0.02 seconds)1058machine: must succeed: curl -sf 'http://localhost:8189/login?session=56acf6f3c2902271090bc6f4874363d1' | grep -qi 'Authorize'1059machine # [ 20.186680] zhost[945]: 2026-08-26T12:41:23.415742Z INFO zhost: request method=GET uri=/login?session=56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1060machine: (finished: must succeed: curl -sf 'http://localhost:8189/login?session=56acf6f3c2902271090bc6f4874363d1' | grep -qi 'Authorize', in 0.05 seconds)1061machine: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "pending"'1062machine # [ 20.234119] zhost[945]: 2026-08-26T12:41:23.463018Z INFO zhost: request method=GET uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1063machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "pending"', in 0.04 seconds)1064machine: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.apiKey == null'1065machine # [ 20.274448] zhost[945]: 2026-08-26T12:41:23.503413Z INFO zhost: request method=GET uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1066machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.apiKey == null', in 0.04 seconds)1067machine: 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=56acf6f3c2902271090bc6f4874363d1'1068machine # [ 20.315074] zhost[945]: 2026-08-26T12:41:23.543855Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=56acf6f3c2902271090bc6f4874363d11069machine # [ 20.318871] zhost[945]: 2026-08-26T12:41:23.544119Z WARN zhost: response error method=POST uri=/login status=4031070machine: (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=56acf6f3c2902271090bc6f4874363d1', in 0.04 seconds)1071machine: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -d 'session=56acf6f3c2902271090bc6f4874363d1'1072machine # [ 20.352244] zhost[945]: 2026-08-26T12:41:23.581459Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=56acf6f3c2902271090bc6f4874363d11073machine # [ 20.357121] zhost[945]: 2026-08-26T12:41:23.581507Z WARN zhost: response error method=POST uri=/login status=4031074machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/login -d 'session=56acf6f3c2902271090bc6f4874363d1', in 0.04 seconds)1075machine: 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=56acf6f3c2902271090bc6f4874363d1'1076machine # [ 20.391459] zhost[945]: 2026-08-26T12:41:23.620056Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=56acf6f3c2902271090bc6f4874363d11077machine # [ 20.395256] zhost[945]: 2026-08-26T12:41:23.620097Z WARN zhost: response error method=POST uri=/login status=4031078machine: (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=56acf6f3c2902271090bc6f4874363d1', in 0.04 seconds)1079machine: must succeed: curl -sf -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=56acf6f3c2902271090bc6f4874363d1'1080machine # [ 20.430068] zhost[945]: 2026-08-26T12:41:23.659375Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=56acf6f3c2902271090bc6f4874363d11081machine: (finished: must succeed: curl -sf -X POST http://localhost:8189/login -H 'X-Auth-Request-Email: owner@mulatta.io' -d 'session=56acf6f3c2902271090bc6f4874363d1', in 0.04 seconds)1082machine: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "completed"'1083machine # [ 20.475291] zhost[945]: 2026-08-26T12:41:23.704635Z INFO zhost: request method=GET uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1084machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "completed"', in 0.05 seconds)1085machine: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.apiKey == "testtoken"'1086machine # [ 20.516830] zhost[945]: 2026-08-26T12:41:23.746066Z INFO zhost: request method=GET uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1087machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.apiKey == "testtoken"', in 0.04 seconds)1088machine: must succeed: curl -sf -X DELETE http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d11089machine # [ 20.554970] zhost[945]: 2026-08-26T12:41:23.784312Z INFO zhost: request method=DELETE uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1090machine: (finished: must succeed: curl -sf -X DELETE http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1, in 0.04 seconds)1091machine: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "pending"'1092machine # [ 20.595787] zhost[945]: 2026-08-26T12:41:23.824969Z INFO zhost: request method=GET uri=/keys/sessions/56acf6f3c2902271090bc6f4874363d1 api_version=- if_unmod=- body=1093machine: (finished: must succeed: curl -sf http://localhost:8189/keys/sessions/56acf6f3c2902271090bc6f4874363d1 | jq -e '.status == "pending"', in 0.04 seconds)1094(finished: subtest: login session hands out the key only after authorization, in 0.55 seconds)1095subtest: the login consent endpoint validates the session token1096machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login1097machine # [ 20.637380] zhost[945]: 2026-08-26T12:41:23.866107Z INFO zhost: request method=GET uri=/login api_version=- if_unmod=- body=1098machine # [ 20.640739] zhost[945]: 2026-08-26T12:41:23.866144Z WARN zhost: response error method=GET uri=/login status=4001099machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login, in 0.04 seconds)1100machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login?session=nope1101machine # [ 20.678604] zhost[945]: 2026-08-26T12:41:23.907191Z INFO zhost: request method=GET uri=/login?session=nope api_version=- if_unmod=- body=1102machine # [ 20.682240] zhost[945]: 2026-08-26T12:41:23.907231Z WARN zhost: response error method=GET uri=/login?session=nope status=4041103machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/login?session=nope, in 0.04 seconds)1104machine: 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'1105machine # [ 20.725674] zhost[945]: 2026-08-26T12:41:23.954278Z INFO zhost: request method=POST uri=/login api_version=- if_unmod=- body=session=nope1106machine # [ 20.729182] zhost[945]: 2026-08-26T12:41:23.954322Z WARN zhost: response error method=POST uri=/login status=4041107machine: (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.05 seconds)1108(finished: subtest: the login consent endpoint validates the session token, in 0.13 seconds)1109subtest: groups endpoint returns an empty set (single personal library)1110machine: must succeed: curl -sf http://localhost:8189/users/1/groups -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '. == {}'1111machine # [ 20.772347] zhost[945]: 2026-08-26T12:41:24.001689Z INFO zhost: request method=GET uri=/users/1/groups api_version=3 if_unmod=- body=1112machine: (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.05 seconds)1113(finished: subtest: groups endpoint returns an empty set (single personal library), in 0.05 seconds)1114subtest: the api key is required off the bootstrap paths1115machine: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Version: 3'1116machine # [ 20.816102] zhost[945]: 2026-08-26T12:41:24.045396Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1117machine: (finished: must succeed: curl -s -o /dev/null -w '%{http_code}' http://localhost:8189/keys/current -H 'Zotero-API-Version: 3', in 0.04 seconds)1118(finished: subtest: the api key is required off the bootstrap paths, in 0.04 seconds)1119subtest: a read-only key reads but cannot write1120machine: 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'1121machine # [ 20.855248] zhost[945]: 2026-08-26T12:41:24.084513Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1122machine: (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.05 seconds)1123machine: 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'1124machine # [ 20.907682] zhost[945]: 2026-08-26T12:41:24.135818Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1125machine: (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.05 seconds)1126machine: 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'1127machine # [ 20.953253] zhost[945]: 2026-08-26T12:41:24.182592Z INFO zhost: request method=GET uri=/keys/current api_version=3 if_unmod=- body=1128machine: (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.04 seconds)1129machine: 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"}]'1130machine # [ 20.996147] zhost[945]: 2026-08-26T12:41:24.225352Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"RDNLY222","itemType":"book"}]1131machine: (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.04 seconds)1132machine: 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'1133machine # [ 21.040500] zhost[945]: 2026-08-26T12:41:24.269105Z INFO zhost: request method=DELETE uri=/users/1/items?itemKey=ITEM2223 api_version=3 if_unmod=- body=1134machine: (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.04 seconds)1135(finished: subtest: a read-only key reads but cannot write, in 0.22 seconds)1136subtest: an item round-trips through write and read1137machine: 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"'1138machine # [ 21.079743] zhost[945]: 2026-08-26T12:41:24.308981Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"ITEM2223","itemType":"book","title":"t"}]1139machine: (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.05 seconds)1140machine: 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'1141machine # [ 21.142589] zhost[945]: 2026-08-26T12:41:24.371138Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1142machine: (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.06 seconds)1143machine: 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"'1144machine # [ 21.190782] zhost[945]: 2026-08-26T12:41:24.419935Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ITEM2223&format=json api_version=3 if_unmod=- body=1145machine: (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.04 seconds)1146(finished: subtest: an item round-trips through write and read, in 0.15 seconds)1147subtest: a stale write is rejected with 4121148machine: 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"}]'1149machine # [ 21.234247] zhost[945]: 2026-08-26T12:41:24.463487Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"ITEMSTAL","itemType":"book"}]1150machine # [ 21.239375] zhost[945]: 2026-08-26T12:41:24.468221Z WARN zhost: response error method=POST uri=/users/1/items status=4121151machine: (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.05 seconds)1152(finished: subtest: a stale write is rejected with 412, in 0.05 seconds)1153subtest: a write without If-Unmodified-Since-Version is rejected with 4281154machine: 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"}]'1155machine # [ 21.285580] zhost[945]: 2026-08-26T12:41:24.514562Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=- body=[{"key":"NPRECN22","itemType":"book"}]1156machine # [ 21.290532] zhost[945]: 2026-08-26T12:41:24.514609Z WARN zhost: response error method=POST uri=/users/1/items status=4281157machine: (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.05 seconds)1158(finished: subtest: a write without If-Unmodified-Since-Version is rejected with 428, in 0.05 seconds)1159subtest: a malformed object key is rejected with 4001160machine: 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' ' -f21161machine # [ 21.341666] zhost[945]: 2026-08-26T12:41:24.570927Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1162machine: (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.05 seconds)1163machine: 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"}]'1164machine # [ 21.388120] zhost[945]: 2026-08-26T12:41:24.617283Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"HASOABC2","itemType":"book"}]1165machine # [ 21.393199] zhost[945]: 2026-08-26T12:41:24.617333Z WARN zhost: response error method=POST uri=/users/1/items status=4001166machine: (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.05 seconds)1167machine: 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' ' -f21168machine # [ 21.436533] zhost[945]: 2026-08-26T12:41:24.665701Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1169machine: (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.05 seconds)1170machine: 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"}]'1171machine # [ 21.479144] zhost[945]: 2026-08-26T12:41:24.708324Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"HAS0ABC2","itemType":"book"}]1172machine # [ 21.483041] zhost[945]: 2026-08-26T12:41:24.708372Z WARN zhost: response error method=POST uri=/users/1/items status=4001173machine: (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.04 seconds)1174machine: 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' ' -f21175machine # [ 21.520131] zhost[945]: 2026-08-26T12:41:24.749191Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1176machine: (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)1177machine: 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"}]'1178machine # [ 21.559575] zhost[945]: 2026-08-26T12:41:24.788794Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"SHORTKY","itemType":"book"}]1179machine # [ 21.563892] zhost[945]: 2026-08-26T12:41:24.788837Z WARN zhost: response error method=POST uri=/users/1/items status=4001180machine: (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.04 seconds)1181machine: 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' ' -f21182machine # [ 21.603577] zhost[945]: 2026-08-26T12:41:24.832661Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1183machine: (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)1184machine: 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"}]'1185machine # [ 21.647583] zhost[945]: 2026-08-26T12:41:24.876763Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"TOOLONGKY","itemType":"book"}]1186machine # [ 21.652151] zhost[945]: 2026-08-26T12:41:24.876821Z WARN zhost: response error method=POST uri=/users/1/items status=4001187machine: (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.05 seconds)1188machine: 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' ' -f21189machine # [ 21.698392] zhost[945]: 2026-08-26T12:41:24.927283Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1190machine: (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.05 seconds)1191machine: 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"}]'1192machine # [ 21.741775] zhost[945]: 2026-08-26T12:41:24.970993Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[{"key":"lowercs2","itemType":"book"}]1193machine # [ 21.746403] zhost[945]: 2026-08-26T12:41:24.971039Z WARN zhost: response error method=POST uri=/users/1/items status=4001194machine: (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)1195machine: 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 '. == []'1196machine # [ 21.787675] zhost[945]: 2026-08-26T12:41:25.016804Z INFO zhost: request method=GET uri=/users/1/items?itemKey=HASOABC2&format=json api_version=3 if_unmod=- body=1197machine: (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.05 seconds)1198(finished: subtest: a malformed object key is rejected with 400, in 0.50 seconds)1199subtest: an empty batch does not bump the library version1200machine: 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' ' -f21201machine # [ 21.846053] zhost[945]: 2026-08-26T12:41:25.075006Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1202machine: (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)1203machine: 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 .successful1204machine # [ 21.901342] zhost[945]: 2026-08-26T12:41:25.130309Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=1 body=[]1205machine: (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.05 seconds)1206machine: 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' ' -f21207machine # [ 21.964126] zhost[945]: 2026-08-26T12:41:25.193300Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1208machine: (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)1209(finished: subtest: an empty batch does not bump the library version, in 0.18 seconds)1210subtest: attachment data is emitted with linkMode first1211machine: 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' ' -f21212machine # [ 22.028311] zhost[945]: 2026-08-26T12:41:25.257024Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1213machine: (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)1214machine: 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 .successful1215machine # [ 22.083803] zhost[945]: 2026-08-26T12:41:25.312930Z 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"}]1216machine: (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.07 seconds)1217machine: 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]'1218machine # [ 22.148565] zhost[945]: 2026-08-26T12:41:25.377622Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ATTACH22&format=json api_version=3 if_unmod=- body=1219machine: (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.05 seconds)1220(finished: subtest: attachment data is emitted with linkMode first, in 0.19 seconds)1221subtest: an attachment file uploads to S3 and downloads via a presigned URL1222machine: 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 .uploadKey1223machine # [ 22.196472] zhost[945]: 2026-08-26T12:41:25.425725Z 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=17000000000001224machine: (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.04 seconds)1225machine: must succeed: printf hello | curl -sf -X POST http://localhost:8189/uploads/b65cb21c90dc041c93559ce77d4597f0 --data-binary @-1226machine # [ 22.240084] zhost[945]: 2026-08-26T12:41:25.469292Z INFO zhost: request method=POST uri=/uploads/b65cb21c90dc041c93559ce77d4597f0 api_version=- if_unmod=- body=hello1227machine: (finished: must succeed: printf hello | curl -sf -X POST http://localhost:8189/uploads/b65cb21c90dc041c93559ce77d4597f0 --data-binary @-, in 0.08 seconds)1228machine: 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=b65cb21c90dc041c93559ce77d4597f0'1229machine # [ 22.321717] zhost[945]: 2026-08-26T12:41:25.550077Z INFO zhost: request method=POST uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=upload=b65cb21c90dc041c93559ce77d4597f01230machine: (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=b65cb21c90dc041c93559ce77d4597f0', in 0.05 seconds)1231machine: 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'1232machine # [ 22.371277] zhost[945]: 2026-08-26T12:41:25.600582Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=1233machine: (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.04 seconds)1234machine: 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}'1235machine # [ 22.414552] zhost[945]: 2026-08-26T12:41:25.643688Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/file api_version=3 if_unmod=- body=1236machine: (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.06 seconds)1237machine: must succeed: grep -iq 'zotero-file-md5: 5d41402abc4b2a76b9719d911017c592' /tmp/dlhdr1238machine: (finished: must succeed: grep -iq 'zotero-file-md5: 5d41402abc4b2a76b9719d911017c592' /tmp/dlhdr, in 0.02 seconds)1239machine: must succeed: curl -sf 'http://127.0.0.1:9000/zotero/ATTACH22?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=rustfsadmin%2F20260826%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260826T124125Z&X-Amz-Expires=120&X-Amz-SignedHeaders=host&X-Amz-Signature=4543cbbfb78b1734067314e0d68d7f9132874a0e69c827d057d7adf87f451a8b'1240machine: (finished: must succeed: curl -sf 'http://127.0.0.1:9000/zotero/ATTACH22?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=rustfsadmin%2F20260826%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260826T124125Z&X-Amz-Expires=120&X-Amz-SignedHeaders=host&X-Amz-Signature=4543cbbfb78b1734067314e0d68d7f9132874a0e69c827d057d7adf87f451a8b', in 0.04 seconds)1241(finished: subtest: an attachment file uploads to S3 and downloads via a presigned URL, in 0.34 seconds)1242subtest: re-authorizing the same file returns exists:1 (dedup)1243machine: 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'1244machine # [ 22.539831] zhost[945]: 2026-08-26T12:41:25.768970Z 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=17000000000001245machine: (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.05 seconds)1246(finished: subtest: re-authorizing the same file returns exists:1 (dedup), in 0.05 seconds)1247subtest: a file authorization without a precondition header is 4281248machine: 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'1249machine # [ 22.585247] zhost[945]: 2026-08-26T12:41:25.814577Z 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=11250machine # [ 22.591222] zhost[945]: 2026-08-26T12:41:25.819721Z WARN zhost: response error method=POST uri=/users/1/items/ATTACH22/file status=4281251machine: (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.05 seconds)1252(finished: subtest: a file authorization without a precondition header is 428, in 0.05 seconds)1253subtest: uploading bytes that do not match the declared md5 is rejected1254machine: 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 .uploadKey1255machine # [ 22.629220] zhost[945]: 2026-08-26T12:41:25.858330Z INFO zhost: request method=POST uri=/users/1/items/BADHASH2/file api_version=3 if_unmod=- body=md5=00000000000000000000000000000000&filename=b&filesize=5&mtime=11256machine: (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.04 seconds)1257machine: must succeed: printf hello | curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/uploads/50ff59a5f1c24ed7eee6b26bd8746a83 --data-binary @-1258machine # [ 22.667101] zhost[945]: 2026-08-26T12:41:25.896248Z INFO zhost: request method=POST uri=/uploads/50ff59a5f1c24ed7eee6b26bd8746a83 api_version=- if_unmod=- body=hello1259machine # [ 22.671310] zhost[945]: 2026-08-26T12:41:25.896285Z WARN zhost: uploaded bytes do not match authorization key="BADHASH2" want_md5="00000000000000000000000000000000" got_md5="5d41402abc4b2a76b9719d911017c592"1260machine # [ 22.675512] zhost[945]: 2026-08-26T12:41:25.896302Z WARN zhost: response error method=POST uri=/uploads/50ff59a5f1c24ed7eee6b26bd8746a83 status=4001261machine: (finished: must succeed: printf hello | curl -s -o /dev/null -w '%{http_code}' -X POST http://localhost:8189/uploads/50ff59a5f1c24ed7eee6b26bd8746a83 --data-binary @-, in 0.04 seconds)1262(finished: subtest: uploading bytes that do not match the declared md5 is rejected, in 0.08 seconds)1263subtest: registering without a prior upload is rejected1264machine: 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 .uploadKey1265machine # [ 22.713399] zhost[945]: 2026-08-26T12:41:25.942726Z INFO zhost: request method=POST uri=/users/1/items/NQUPLQAD/file api_version=3 if_unmod=- body=md5=5d41402abc4b2a76b9719d911017c592&filename=n&filesize=5&mtime=11266machine: (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.04 seconds)1267machine: 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=edabb63f85567434e5986165e6d13160'1268machine # [ 22.751072] zhost[945]: 2026-08-26T12:41:25.979881Z INFO zhost: request method=POST uri=/users/1/items/NQUPLQAD/file api_version=3 if_unmod=- body=upload=edabb63f85567434e5986165e6d131601269machine # [ 22.755099] zhost[945]: 2026-08-26T12:41:25.979935Z WARN zhost: response error method=POST uri=/users/1/items/NQUPLQAD/file status=4001270machine: (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=edabb63f85567434e5986165e6d13160', in 0.04 seconds)1271(finished: subtest: registering without a prior upload is rejected, in 0.08 seconds)1272subtest: non-alphanumeric keys are rejected from the file endpoint1273machine: 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'1274machine # [ 22.788191] zhost[945]: 2026-08-26T12:41:26.016861Z 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=11275machine # [ 22.792159] zhost[945]: 2026-08-26T12:41:26.016899Z WARN zhost: response error method=POST uri=/users/1/items/bad..key/file status=4001276machine: (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.04 seconds)1277(finished: subtest: non-alphanumeric keys are rejected from the file endpoint, in 0.04 seconds)1278subtest: annotations round-trip as ordinary items1279machine: 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' ' -f21280machine # [ 22.838353] zhost[945]: 2026-08-26T12:41:26.067269Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1281machine: (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.05 seconds)1282machine: 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"'1283machine # [ 22.878783] zhost[945]: 2026-08-26T12:41:26.107938Z 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"}]1284machine: (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)1285machine: 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"'1286machine # [ 22.923346] zhost[945]: 2026-08-26T12:41:26.152513Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ANNQT223&format=json api_version=3 if_unmod=- body=1287machine: (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.04 seconds)1288machine: 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]'1289machine # [ 22.966862] zhost[945]: 2026-08-26T12:41:26.195949Z INFO zhost: request method=GET uri=/users/1/items?itemKey=ANNQT223&format=json api_version=3 if_unmod=- body=1290machine: (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.04 seconds)1291(finished: subtest: annotations round-trip as ordinary items, in 0.18 seconds)1292subtest: full-text content uploads, lists versions, and downloads1293machine: 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' ' -f21294machine # [ 23.005956] zhost[945]: 2026-08-26T12:41:26.235187Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1295machine: (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)1296machine: 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"'1297machine # [ 23.044615] zhost[945]: 2026-08-26T12:41:26.273908Z 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}]1298machine: (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)1299machine: 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'1300machine # [ 23.088811] zhost[945]: 2026-08-26T12:41:26.317541Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=0 api_version=3 if_unmod=- body=1301machine: (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.04 seconds)1302machine: 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' ' -f21303machine # [ 23.128860] zhost[945]: 2026-08-26T12:41:26.358203Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/fulltext api_version=3 if_unmod=- body=1304machine: (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)1305machine: 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'1306machine # [ 23.165939] zhost[945]: 2026-08-26T12:41:26.395281Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=0 api_version=3 if_unmod=- body=1307machine: (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.04 seconds)1308machine: 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'1309machine # [ 23.203857] zhost[945]: 2026-08-26T12:41:26.433055Z INFO zhost: request method=GET uri=/users/1/items/ATTACH22/fulltext api_version=3 if_unmod=- body=1310machine: (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)1311(finished: subtest: full-text content uploads, lists versions, and downloads, in 0.24 seconds)1312subtest: a stale full-text write is rejected with 4121313machine: 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"}]'1314machine # [ 23.240807] zhost[945]: 2026-08-26T12:41:26.469587Z INFO zhost: request method=POST uri=/users/1/fulltext api_version=3 if_unmod=0 body=[{"key":"ATTACH22","content":"x"}]1315machine # [ 23.245351] zhost[945]: 2026-08-26T12:41:26.470022Z WARN zhost: response error method=POST uri=/users/1/fulltext status=4121316machine: (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)1317(finished: subtest: a stale full-text write is rejected with 412, in 0.04 seconds)1318subtest: the query API filters, searches, sorts and paginates items1319machine: 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' ' -f21320machine # [ 23.281604] zhost[945]: 2026-08-26T12:41:26.510699Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1321machine: (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)1322machine: 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 .successful1323machine # [ 23.320587] zhost[945]: 2026-08-26T12:41:26.549526Z 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"}]}]1324machine: (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.05 seconds)1325machine: 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(",")'1326machine # [ 23.373461] zhost[945]: 2026-08-26T12:41:26.601589Z INFO zhost: request method=GET uri=/users/1/items?q=borrow api_version=3 if_unmod=- body=1327machine: (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)1328machine: 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(",")'1329machine # [ 23.414866] zhost[945]: 2026-08-26T12:41:26.643998Z INFO zhost: request method=GET uri=/users/1/items?q=klabnik api_version=3 if_unmod=- body=1330machine: (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.05 seconds)1331machine: 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(",")'1332machine # [ 23.459257] zhost[945]: 2026-08-26T12:41:26.688515Z INFO zhost: request method=GET uri=/users/1/items?itemType=book api_version=3 if_unmod=- body=1333machine: (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.04 seconds)1334machine: 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(",")'1335machine # [ 23.497637] zhost[945]: 2026-08-26T12:41:26.726861Z INFO zhost: request method=GET uri=/users/1/items?itemType=book api_version=3 if_unmod=- body=1336machine: (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.04 seconds)1337machine: 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(",")'1338machine # [ 23.536287] zhost[945]: 2026-08-26T12:41:26.765508Z INFO zhost: request method=GET uri=/users/1/items?itemType=-book api_version=3 if_unmod=- body=1339machine: (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.04 seconds)1340machine: 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(",")'1341machine # [ 23.575733] zhost[945]: 2026-08-26T12:41:26.804964Z INFO zhost: request method=GET uri=/users/1/items?tag=rustlang&tag=systems api_version=3 if_unmod=- body=1342machine: (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.04 seconds)1343machine: 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(",")'1344machine # [ 23.615104] zhost[945]: 2026-08-26T12:41:26.844319Z INFO zhost: request method=GET uri=/users/1/items?tag=rustlang api_version=3 if_unmod=- body=1345machine: (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.04 seconds)1346machine: 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(",")'1347machine # [ 23.652628] zhost[945]: 2026-08-26T12:41:26.881254Z INFO zhost: request method=GET uri=/users/1/items?q=world api_version=3 if_unmod=- body=1348machine: (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.04 seconds)1349machine: 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(",")'1350machine # [ 23.694923] zhost[945]: 2026-08-26T12:41:26.924265Z INFO zhost: request method=GET uri=/users/1/items?q=world&qmode=everything api_version=3 if_unmod=- body=1351machine: (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.04 seconds)1352(finished: subtest: the query API filters, searches, sorts and paginates items, in 0.45 seconds)1353subtest: the query API reports Total-Results and a next-page Link1354machine: 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'1355machine # [ 23.733741] zhost[945]: 2026-08-26T12:41:26.962642Z INFO zhost: request method=GET uri=/users/1/items?limit=1&sort=title&direction=asc api_version=3 if_unmod=- body=1356machine: (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.04 seconds)1357(finished: subtest: the query API reports Total-Results and a next-page Link, in 0.04 seconds)1358subtest: a read-only key can drive the query API1359machine: 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'1360machine # [ 23.769685] zhost[945]: 2026-08-26T12:41:26.998628Z INFO zhost: request method=GET uri=/users/1/items?q=borrow api_version=3 if_unmod=- body=1361machine: (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.04 seconds)1362(finished: subtest: a read-only key can drive the query API, in 0.04 seconds)1363subtest: convenience listings: top, trash, collection items and tags1364machine: 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' ' -f21365machine # [ 23.814365] zhost[945]: 2026-08-26T12:41:27.043707Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1366machine: (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.05 seconds)1367machine: 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 .successful1368machine # [ 23.854899] zhost[945]: 2026-08-26T12:41:27.084037Z 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}]1369machine: (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.05 seconds)1370machine: 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(",")'1371machine # [ 23.906224] zhost[945]: 2026-08-26T12:41:27.135098Z INFO zhost: request method=GET uri=/users/1/items/top api_version=3 if_unmod=- body=1372machine: (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.04 seconds)1373machine: 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(",")'1374machine # [ 23.945209] zhost[945]: 2026-08-26T12:41:27.174551Z INFO zhost: request method=GET uri=/users/1/items/trash api_version=3 if_unmod=- body=1375machine: (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.04 seconds)1376machine: 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(",")'1377machine # [ 23.984805] zhost[945]: 2026-08-26T12:41:27.214098Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items api_version=3 if_unmod=- body=1378machine: (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.04 seconds)1379machine: 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'1380machine # [ 24.023582] zhost[945]: 2026-08-26T12:41:27.252765Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1381machine: (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.04 seconds)1382(finished: subtest: convenience listings: top, trash, collection items and tags, in 0.25 seconds)1383subtest: top filtering covers parentItem:false and the versions view1384machine: 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' ' -f21385machine # [ 24.066311] zhost[945]: 2026-08-26T12:41:27.295059Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1386machine: (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)1387machine: 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 .successful1388machine # [ 24.103124] zhost[945]: 2026-08-26T12:41:27.332346Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=7 body=[{"key":"TQPFALS3","itemType":"book","title":"pf","parentItem":false}]1389machine: (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)1390machine: 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")'1391machine # [ 24.146220] zhost[945]: 2026-08-26T12:41:27.374718Z INFO zhost: request method=GET uri=/users/1/items/top api_version=3 if_unmod=- body=1392machine: (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.04 seconds)1393machine: 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'1394machine # [ 24.182820] zhost[945]: 2026-08-26T12:41:27.411747Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=0 api_version=3 if_unmod=- body=1395machine: (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.04 seconds)1396machine: 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'1397machine # [ 24.221238] zhost[945]: 2026-08-26T12:41:27.450103Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1398machine: (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.04 seconds)1399(finished: subtest: top filtering covers parentItem:false and the versions view, in 0.20 seconds)1400subtest: malformed (non-array) item data does not 500 the query API1401machine: 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' ' -f21402machine # [ 24.264143] zhost[945]: 2026-08-26T12:41:27.492987Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1403machine: (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)1404machine: 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 .successful1405machine # [ 24.303185] zhost[945]: 2026-08-26T12:41:27.532390Z 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"}]1406machine: (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.05 seconds)1407machine: 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'1408machine # [ 24.348682] zhost[945]: 2026-08-26T12:41:27.577513Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1409machine: (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.04 seconds)1410machine: 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'1411machine # [ 24.383290] zhost[945]: 2026-08-26T12:41:27.612286Z INFO zhost: request method=GET uri=/users/1/items?q=zzz api_version=3 if_unmod=- body=1412machine: (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.04 seconds)1413machine: 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'1414machine # [ 24.418291] zhost[945]: 2026-08-26T12:41:27.647633Z INFO zhost: request method=GET uri=/users/1/items?q=zzz&qmode=everything api_version=3 if_unmod=- body=1415machine: (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.04 seconds)1416machine: 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'1417machine # [ 24.454641] zhost[945]: 2026-08-26T12:41:27.683700Z INFO zhost: request method=GET uri=/users/1/items?tag=zzz api_version=3 if_unmod=- body=1418machine: (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.04 seconds)1419machine: 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'1420machine # [ 24.505258] zhost[945]: 2026-08-26T12:41:27.734407Z INFO zhost: request method=GET uri=/users/1/collections/y/items api_version=3 if_unmod=- body=1421machine: (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.05 seconds)1422machine: 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' ' -f21423machine # [ 24.553129] zhost[945]: 2026-08-26T12:41:27.782217Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1424machine: (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.05 seconds)1425machine: 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 .successful1426machine # [ 24.591796] zhost[945]: 2026-08-26T12:41:27.820980Z 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"]}]1427machine: (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.05 seconds)1428machine: 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'1429machine # [ 24.637562] zhost[945]: 2026-08-26T12:41:27.866656Z INFO zhost: request method=GET uri=/users/1/tags api_version=3 if_unmod=- body=1430machine: (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.04 seconds)1431(finished: subtest: malformed (non-array) item data does not 500 the query API, in 0.42 seconds)1432subtest: Total-Results stays correct past the last page1433machine: 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' ' -f21434machine # [ 24.681306] zhost[945]: 2026-08-26T12:41:27.910141Z INFO zhost: request method=GET uri=/users/1/items?limit=1 api_version=3 if_unmod=- body=1435machine: (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.05 seconds)1436machine: 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' ' -f21437machine # [ 24.728530] zhost[945]: 2026-08-26T12:41:27.957719Z INFO zhost: request method=GET uri=/users/1/items?limit=1&start=100000 api_version=3 if_unmod=- body=1438machine: (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)1439(finished: subtest: Total-Results stays correct past the last page, in 0.09 seconds)1440subtest: query API: OR filters, descending sort and includeTrashed1441machine: 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' ' -f21442machine # [ 24.769467] zhost[945]: 2026-08-26T12:41:27.998656Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1443machine: (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)1444machine: 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 .successful1445machine # [ 24.810525] zhost[945]: 2026-08-26T12:41:28.039772Z 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"}]}]1446machine: (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.05 seconds)1447machine: 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(",")'1448machine # [ 24.866598] zhost[945]: 2026-08-26T12:41:28.095668Z INFO zhost: request method=GET uri=/users/1/items?tag=aa||bb&itemType=book||journalArticle api_version=3 if_unmod=- body=1449machine: (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.05 seconds)1450machine: 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'1451machine # [ 24.911729] zhost[945]: 2026-08-26T12:41:28.140955Z INFO zhost: request method=GET uri=/users/1/items?tag=aa||bb&sort=title&direction=desc api_version=3 if_unmod=- body=1452machine: (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.04 seconds)1453machine: 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'1454machine # [ 24.952667] zhost[945]: 2026-08-26T12:41:28.181192Z INFO zhost: request method=GET uri=/users/1/items?tag=aa&sort=title&direction=desc&includeTrashed=1 api_version=3 if_unmod=- body=1455machine: (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.04 seconds)1456machine: 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(",")'1457machine # [ 24.993982] zhost[945]: 2026-08-26T12:41:28.223046Z INFO zhost: request method=GET uri=/users/1/items?tag=aa api_version=3 if_unmod=- body=1458machine: (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.04 seconds)1459(finished: subtest: query API: OR filters, descending sort and includeTrashed, in 0.27 seconds)1460subtest: sort=date orders by extracted year, not raw freeform text1461machine: 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' ' -f21462machine # [ 25.037586] zhost[945]: 2026-08-26T12:41:28.266928Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1463machine: (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)1464machine: 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 .successful1465machine # [ 25.075736] zhost[945]: 2026-08-26T12:41:28.304800Z 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"}]}]1466machine: (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.05 seconds)1467machine: 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(",")'1468machine # [ 25.122934] zhost[945]: 2026-08-26T12:41:28.352163Z INFO zhost: request method=GET uri=/users/1/items?tag=era&sort=date&direction=asc api_version=3 if_unmod=- body=1469machine: (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.04 seconds)1470(finished: subtest: sort=date orders by extracted year, not raw freeform text, in 0.13 seconds)1471subtest: collection top items are served as a plain-text key list1472machine: 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'1473machine # [ 25.158908] zhost[945]: 2026-08-26T12:41:28.388083Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items/top?format=keys api_version=3 if_unmod=- body=1474machine: (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)1475machine: 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'1476machine # [ 25.193883] zhost[945]: 2026-08-26T12:41:28.422980Z INFO zhost: request method=GET uri=/users/1/collections/CQLLXXXX/items/top?format=keys api_version=3 if_unmod=- body=1477machine: (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)1478(finished: subtest: collection top items are served as a plain-text key list, in 0.07 seconds)1479subtest: a versions read with nothing newer returns 200 + empty map, not 3041480machine: 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' ' -f21481machine # [ 25.237543] zhost[945]: 2026-08-26T12:41:28.466419Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1482machine: (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)1483machine: 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'1484machine # [ 25.278807] zhost[945]: 2026-08-26T12:41:28.507944Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1485machine: (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.04 seconds)1486machine: 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 '. == {}'1487machine # [ 25.318256] zhost[945]: 2026-08-26T12:41:28.547262Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1488machine: (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.04 seconds)1489machine: 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'1490machine # [ 25.351706] zhost[945]: 2026-08-26T12:41:28.580953Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=12 api_version=3 if_unmod=- body=1491machine: (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)1492machine: 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 '. == {}'1493machine # [ 25.390790] zhost[945]: 2026-08-26T12:41:28.619735Z INFO zhost: request method=GET uri=/users/1/items/top?format=versions&since=12 api_version=3 if_unmod=- body=1494machine: (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.04 seconds)1495machine: 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'1496machine # [ 25.429756] zhost[945]: 2026-08-26T12:41:28.659096Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=12 api_version=3 if_unmod=- body=1497machine: (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.04 seconds)1498machine: 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 '. == {}'1499machine # [ 25.468596] zhost[945]: 2026-08-26T12:41:28.697796Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=12 api_version=3 if_unmod=- body=1500machine: (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.04 seconds)1501machine: 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'1502machine # [ 25.503804] zhost[945]: 2026-08-26T12:41:28.732813Z INFO zhost: request method=GET uri=/users/1/searches?format=versions&since=12 api_version=3 if_unmod=- body=1503machine: (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)1504machine: 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 '. == {}'1505machine # [ 25.537895] zhost[945]: 2026-08-26T12:41:28.766871Z INFO zhost: request method=GET uri=/users/1/searches?format=versions&since=12 api_version=3 if_unmod=- body=1506machine: (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.04 seconds)1507machine: 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'1508machine # [ 25.576306] zhost[945]: 2026-08-26T12:41:28.805209Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=12 api_version=3 if_unmod=- body=1509machine: (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)1510machine: 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 '. == {}'1511machine # [ 25.611773] zhost[945]: 2026-08-26T12:41:28.840822Z INFO zhost: request method=GET uri=/users/1/fulltext?format=versions&since=12 api_version=3 if_unmod=- body=1512machine: (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)1513machine: 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'1514machine # [ 25.650797] zhost[945]: 2026-08-26T12:41:28.879853Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=12 api_version=3 if_unmod=- body=1515machine: (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.04 seconds)1516machine: 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'1517machine # [ 25.687415] zhost[945]: 2026-08-26T12:41:28.916712Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1518machine: (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)1519(finished: subtest: a versions read with nothing newer returns 200 + empty map, not 304, in 0.49 seconds)1520subtest: collections round-trip through write, read, versions and delete1521machine: 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' ' -f21522machine # [ 25.727764] zhost[945]: 2026-08-26T12:41:28.957096Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1523machine: (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)1524machine: 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"'1525machine # [ 25.768711] zhost[945]: 2026-08-26T12:41:28.997973Z INFO zhost: request method=POST uri=/users/1/collections api_version=3 if_unmod=12 body=[{"key":"CQLL2223","name":"Papers"}]1526machine: (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.05 seconds)1527machine: 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"'1528machine # [ 25.816566] zhost[945]: 2026-08-26T12:41:29.045581Z INFO zhost: request method=GET uri=/users/1/collections?collectionKey=CQLL2223&format=json api_version=3 if_unmod=- body=1529machine: (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.04 seconds)1530machine: 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'1531machine # [ 25.861186] zhost[945]: 2026-08-26T12:41:29.090278Z INFO zhost: request method=GET uri=/users/1/collections?format=versions&since=0 api_version=3 if_unmod=- body=1532machine: (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.04 seconds)1533machine: 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' ' -f21534machine # [ 25.907345] zhost[945]: 2026-08-26T12:41:29.136216Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1535machine: (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.05 seconds)1536machine: 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'1537machine # [ 25.948463] zhost[945]: 2026-08-26T12:41:29.177547Z INFO zhost: request method=DELETE uri=/users/1/collections?collectionKey=CQLL2223 api_version=3 if_unmod=13 body=1538machine: (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.04 seconds)1539machine: 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")'1540machine # [ 25.990752] zhost[945]: 2026-08-26T12:41:29.219969Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1541machine: (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.04 seconds)1542(finished: subtest: collections round-trip through write, read, versions and delete, in 0.31 seconds)1543subtest: saved searches round-trip through write, read and delete1544machine: 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' ' -f21545machine # [ 26.035735] zhost[945]: 2026-08-26T12:41:29.264967Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1546machine: (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.05 seconds)1547machine: 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"'1548machine # [ 26.074957] zhost[945]: 2026-08-26T12:41:29.303967Z INFO zhost: request method=POST uri=/users/1/searches api_version=3 if_unmod=14 body=[{"key":"SRCH2223","name":"Recent","conditions":[]}]1549machine: (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)1550machine: 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"'1551machine # [ 26.120906] zhost[945]: 2026-08-26T12:41:29.349992Z INFO zhost: request method=GET uri=/users/1/searches?searchKey=SRCH2223&format=json api_version=3 if_unmod=- body=1552machine: (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.04 seconds)1553machine: 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' ' -f21554machine # [ 26.163737] zhost[945]: 2026-08-26T12:41:29.392713Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1555machine: (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)1556machine: 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'1557machine # [ 26.205081] zhost[945]: 2026-08-26T12:41:29.434385Z INFO zhost: request method=DELETE uri=/users/1/searches?searchKey=SRCH2223 api_version=3 if_unmod=15 body=1558machine: (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.04 seconds)1559machine: 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")'1560machine # [ 26.246449] zhost[945]: 2026-08-26T12:41:29.475249Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1561machine: (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.04 seconds)1562(finished: subtest: saved searches round-trip through write, read and delete, in 0.25 seconds)1563subtest: settings round-trip through write, read and delete1564machine: 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' ' -f21565machine # [ 26.288076] zhost[945]: 2026-08-26T12:41:29.517126Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1566machine: (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)1567machine: 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"}]}}' 1568machine # [ 26.326194] zhost[945]: 2026-08-26T12:41:29.555284Z INFO zhost: request method=POST uri=/users/1/settings api_version=3 if_unmod=16 body={"tagColors":{"value":[{"name":"x","color":"#fff"}]}}1569machine: (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.04 seconds)1570machine: 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")'1571machine # [ 26.369140] zhost[945]: 2026-08-26T12:41:29.598202Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1572machine: (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.04 seconds)1573machine: 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}}'1574machine # [ 26.408603] zhost[945]: 2026-08-26T12:41:29.637318Z INFO zhost: request method=POST uri=/users/1/settings api_version=3 if_unmod=0 body={"k":{"value":1}}1575machine # [ 26.413177] zhost[945]: 2026-08-26T12:41:29.641775Z WARN zhost: response error method=POST uri=/users/1/settings status=4121576machine: (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.04 seconds)1577machine: 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' ' -f21578machine # [ 26.454128] zhost[945]: 2026-08-26T12:41:29.683469Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1579machine: (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)1580machine: 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'1581machine # [ 26.496441] zhost[945]: 2026-08-26T12:41:29.725636Z INFO zhost: request method=DELETE uri=/users/1/settings?settingKey=tagColors api_version=3 if_unmod=17 body=1582machine: (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.05 seconds)1583machine: must succeed: curl -sf http://localhost:8189/users/1/settings -H 'Zotero-API-Key: testtoken' -H 'Zotero-API-Version: 3' | jq -e '.tagColors == null'1584machine # [ 26.547472] zhost[945]: 2026-08-26T12:41:29.776572Z INFO zhost: request method=GET uri=/users/1/settings api_version=3 if_unmod=- body=1585machine: (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.05 seconds)1586machine: 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")'1587machine # [ 26.594213] zhost[945]: 2026-08-26T12:41:29.823324Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1588machine: (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.05 seconds)1589(finished: subtest: settings round-trip through write, read and delete, in 0.35 seconds)1590subtest: a gzip-compressed write body is decoded1591machine: 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' ' -f21592machine # [ 26.640477] zhost[945]: 2026-08-26T12:41:29.869817Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1593machine: (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.05 seconds)1594machine: 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 .successful1595machine # [ 26.685582] zhost[945]: 2026-08-26T12:41:29.914834Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=18 body=[{"key":"GZIP2223","itemType":"book","title":"zipped"}]1596machine: (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.05 seconds)1597machine: 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"'1598machine # [ 26.731251] zhost[945]: 2026-08-26T12:41:29.960340Z INFO zhost: request method=GET uri=/users/1/items?itemKey=GZIP2223&format=json api_version=3 if_unmod=- body=1599machine: (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.04 seconds)1600(finished: subtest: a gzip-compressed write body is decoded, in 0.14 seconds)1601subtest: PATCH updates items and is gated by the read-only key1602machine: 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' ' -f21603machine # [ 26.779740] zhost[945]: 2026-08-26T12:41:30.009080Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1604machine: (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.05 seconds)1605machine: 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"'1606machine # [ 26.825557] zhost[945]: 2026-08-26T12:41:30.054891Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=19 body=[{"key":"GZIP2223","itemType":"book","title":"patched"}]1607machine: (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.05 seconds)1608machine: 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"}]'1609machine # [ 26.870458] zhost[945]: 2026-08-26T12:41:30.099639Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=0 body=[{"key":"X","itemType":"book"}]1610machine: (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.04 seconds)1611(finished: subtest: PATCH updates items and is gated by the read-only key, in 0.14 seconds)1612subtest: PATCH merges: a partial update keeps unspecified fields1613machine: 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' ' -f21614machine # [ 26.921064] zhost[945]: 2026-08-26T12:41:30.150260Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1615machine: (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)1616machine: 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 .successful1617machine # [ 26.965242] zhost[945]: 2026-08-26T12:41:30.194491Z 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"}]}]1618machine: (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.05 seconds)1619machine: 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' ' -f21620machine # [ 27.023898] zhost[945]: 2026-08-26T12:41:30.252749Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1621machine: (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.05 seconds)1622machine: 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"}]'1623machine # [ 27.065737] zhost[945]: 2026-08-26T12:41:30.294753Z INFO zhost: request method=PATCH uri=/users/1/items api_version=3 if_unmod=21 body=[{"key":"MERGEIT2","title":"new"}]1624machine: (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.05 seconds)1625machine: 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"'1626machine # [ 27.112046] zhost[945]: 2026-08-26T12:41:30.341263Z INFO zhost: request method=GET uri=/users/1/items?itemKey=MERGEIT2&format=json api_version=3 if_unmod=- body=1627machine: (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.04 seconds)1628(finished: subtest: PATCH merges: a partial update keeps unspecified fields, in 0.25 seconds)1629subtest: POST also merges: a partial upload keeps unspecified fields1630machine: 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' ' -f21631machine # [ 27.159580] zhost[945]: 2026-08-26T12:41:30.388848Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1632machine: (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.05 seconds)1633machine: 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 .successful1634machine # [ 27.198790] zhost[945]: 2026-08-26T12:41:30.427525Z 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"}]1635machine: (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)1636machine: 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' ' -f21637machine # [ 27.248877] zhost[945]: 2026-08-26T12:41:30.478016Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1638machine: (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.05 seconds)1639machine: 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":[]}]'1640machine # [ 27.290336] zhost[945]: 2026-08-26T12:41:30.519244Z INFO zhost: request method=POST uri=/users/1/items api_version=3 if_unmod=23 body=[{"key":"PMERGEAT","lastRead":1700000000,"tags":[]}]1641machine: (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.04 seconds)1642machine: 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'1643machine # [ 27.333704] zhost[945]: 2026-08-26T12:41:30.562315Z INFO zhost: request method=GET uri=/users/1/items?itemKey=PMERGEAT&format=json api_version=3 if_unmod=- body=1644machine: (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.04 seconds)1645(finished: subtest: POST also merges: a partial upload keeps unspecified fields, in 0.22 seconds)1646subtest: deletes are recorded in the deletion log1647machine: 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' ' -f21648machine # [ 27.377769] zhost[945]: 2026-08-26T12:41:30.606805Z INFO zhost: request method=GET uri=/users/1/items?format=versions&since=0 api_version=3 if_unmod=- body=1649machine: (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.05 seconds)1650machine: 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'1651machine # [ 27.418158] zhost[945]: 2026-08-26T12:41:30.646979Z INFO zhost: request method=DELETE uri=/users/1/items?itemKey=ITEM2223 api_version=3 if_unmod=24 body=1652machine: (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.04 seconds)1653machine: 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")'1654machine # [ 27.459906] zhost[945]: 2026-08-26T12:41:30.688997Z INFO zhost: request method=GET uri=/users/1/deleted?since=0 api_version=3 if_unmod=- body=1655machine: (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.04 seconds)1656(finished: subtest: deletes are recorded in the deletion log, in 0.13 seconds)1657(finished: run the VM test script, in 28.39 seconds)1658test script finished in 28.44s1659cleanup1660kill QemuMachine (pid 45)1661machine # qemu-system-x86_64: terminating on signal 15 from pid 39 (/nix/store/3n4qphl9s728sz8frmpqqrv9b1m87g68-python3-3.14.7/bin/python3.14)1662(finished: cleanup, in 0.15 seconds)