text:
Linux virtual machine creation stuck

Describe the bug
Linux virtual machine creation stuck
To Reproduce
Steps to reproduce the behavior:

Download and install orbstack
click create virtual machine

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.

Logs
If applicable, attach log files by opening the OrbStack menu and clicking “Show Logs”, or email them for privacy.
time="03-28 10:54:07" level=info msg="creating VM"
time="03-28 10:54:07" level=info msg="forwarding SSH agent" sock=/private/tmp/com.apple.launchd.gmdHhg6hdD/Listeners
time="03-28 10:54:07" level=info msg="starting VM"
time="03-28 10:54:07" level=info msg="starting host services"
time="03-28 10:54:07" level=info msg="waiting for VM to start"
time="03-28 10:54:07" level=info msg="[VM] starting"
time="03-28 10:54:07" level=info msg="[VM] started"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-28 10:54:08" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:08" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:09" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:09" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-28 10:54:09" level=info msg="data ready"
time="03-28 10:54:09" level=info msg="Mounting NFS..."
time="03-28 10:54:09" level=info msg="data ready"
time="03-28 10:54:09" level=error msg="host-vsock forward: dial failed" error="Error Domain=NSPOSIXErrorDomain Code=54 \"Connection reset by peer\""
time="03-28 10:54:11" level=error msg="NFS mount failed" error="mount nfs: mount(): connection reset by peer"
time="03-28 10:54:11" level=info msg="Mounting NFS..."
time="03-28 10:54:11" level=info msg="NFS mounted"
time="03-28 10:54:17" level=info msg="Setup not done in time, running setup..."
time="03-28 10:54:17" level=info msg="CLI setup complete"
time="03-28 11:22:00" level=info msg=sleep
time="03-28 12:11:09" level=info msg=wake
time="03-28 12:11:18" level=info msg=sleep
time="03-28 12:12:39" level=info msg=wake
time="03-28 12:14:08" level=info msg=sleep
time="03-28 12:31:51" level=info msg=wake
time="03-28 12:31:57" level=info msg=sleep
time="03-28 12:32:01" level=info msg=wake
time="03-28 12:43:55" level=info msg=sleep
time="03-28 12:49:31" level=info msg=wake
time="03-28 12:49:39" level=info msg=sleep
time="03-28 12:49:45" level=info msg=wake

Info report

OrbStack info:
  Version: 0.5.1 (50100)
  Commit: 646c501f9b245f5bc61bae3036ff5e92aaa7840e (v0.5.1)

System info:
  macOS: 12.6.3 (21G419)
  CPU: arm64, 10 cores
  CPU model: Apple M1 Pro

---------------- [ cut here ] ----------------

Please copy and paste the above information into your bug report.
Open an issue here: https://github.com/orbstack/orbstack/issues/new/choose

Additional context
After creating for a long time, the error Failed to create machine: create 'ubuntu2': timed out waiting for network was reported, and then the creation failed

Please add both logs, including console.log.

console.log is empty

Please add both logs, including console.log.

[    0.401215] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.401250] random: crng init done
[    0.401400] loop: module loaded
[    0.402200] virtio_blk virtio2: 1/0/0 default/read/poll queues
[    0.402407] virtio_blk virtio2: [vda] 297960 512-byte logical blocks (153 MB/145 MiB)
[    0.402808] virtio_blk virtio3: 1/0/0 default/read/poll queues
[    0.402970] virtio_blk virtio3: [vdb] 17179869184 512-byte logical blocks (8.80 TB/8.00 TiB)
[    0.403698]  vdb: vdb1
[    0.403798] virtio_blk virtio4: 1/0/0 default/read/poll queues
[    0.403952] virtio_blk virtio4: [vdc] 20971520 512-byte logical blocks (10.7 GB/10.0 GiB)
[    0.404424]  vdc: vdc1 vdc2
[    0.404535] zram: Added device: zram0
[    0.404583] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[    0.404618] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld Jason@zx2c4.com. All Rights Reserved.
[    0.404713] tun: Universal TUN/TAP device driver, 1.6
[    0.405086] PPP generic driver version 2.4.2
[    0.405181] PPP Deflate Compression module registered
[    0.405298] PPP MPPE Compression module registered
[    0.405338] usbcore: registered new interface driver rtl8187
[    0.405373] usbcore: registered new interface driver rtl8192cu
[    0.405404] usbcore: registered new interface driver rtl8150
[    0.405439] usbcore: registered new interface driver r8152
[    0.405471] usbcore: registered new interface driver asix
[    0.405509] usbcore: registered new interface driver ax88179_178a
[    0.405546] usbcore: registered new interface driver cdc_ether
[    0.405582] usbcore: registered new interface driver cdc_ncm
[    0.405618] usbcore: registered new interface driver r8153_ecm
[    0.405679] VFIO - User Level meta-driver version: 0.3
[    0.405809] usbcore: registered new interface driver uas
[    0.405851] usbcore: registered new interface driver usb-storage
[    0.405944] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[    0.405976] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 1
[    0.406095] vhci_hcd: created sysfs vhci_hcd.0
[    0.406141] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    0.406183] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.406234] usb usb1: Product: USB/IP Virtual Host Controller
[    0.406271] usb usb1: Manufacturer: Linux 6.1.21-orbstack-00098-g7d48b03fef38 vhci_hcd
[    0.406306] usb usb1: SerialNumber: vhci_hcd.0
[    0.406375] hub 1-0:1.0: USB hub found
[    0.406401] hub 1-0:1.0: 8 ports detected
[    0.406450] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[    0.406495] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 2
[    0.406539] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.406583] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.01
[    0.406626] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.406671] usb usb2: Product: USB/IP Virtual Host Controller
[    0.406704] usb usb2: Manufacturer: Linux 6.1.21-orbstack-00098-g7d48b03fef38 vhci_hcd
[    0.406738] usb usb2: SerialNumber: vhci_hcd.0
[    0.406804] hub 2-0:1.0: USB hub found
[    0.406824] hub 2-0:1.0: 8 ports detected
[    0.406962] rtc-pl031 20050000.pl031: registered as rtc0
[    0.407002] rtc-pl031 20050000.pl031: setting system clock to 2023-03-28T05:33:26 UTC (1679981606)
[    0.407094] hid: raw HID events driver (C) Jiri Kosina
[    0.407139] usbcore: registered new interface driver usbhid
[    0.407162] usbhid: USB HID core driver
[    0.407203] GACT probability NOT on
[    0.407236] Mirror/redirect action on
[    0.407263] netem: version 1.3
[    0.415679] Initializing XFRM netlink socket
[    0.415785] NET: Registered PF_INET6 protocol family
[    0.416021] Segment Routing with IPv6
[    0.416053] In-situ OAM (IOAM) with IPv6
[    0.416102] NET: Registered PF_PACKET protocol family
[    0.416141] Bridge firewalling registered
[    0.416171] l2tp_core: L2TP core driver, V2.0
[    0.416205] 8021q: 802.1Q VLAN Support v1.8
[    0.416227] Key type dns_resolver registered
[    0.416290] NET: Registered PF_VSOCK protocol family
[    0.416604] Loading compiled-in X.509 certificates
[    0.416913] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    0.420944] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    0.421451] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    0.421498] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    0.421536] cfg80211: failed to load regulatory.db
[    0.421685] erofs: (device vda): mounted with root inode @ nid 36.
[    0.421720] VFS: Mounted root (erofs filesystem) readonly on device 254:0.
[    0.421930] devtmpfs: mounted
[    0.422151] Freeing unused kernel memory: 3008K
[    0.483979] Run /opt/orb/preinit as init process
[BEGIN] preinit
[END] preinit
OpenRC 0.46 is starting up Linux 6.1.21-orbstack-00098-g7d48b03fef38 (aarch64)

Mounting /proc ... [ ok ]
Mounting /run ... * /run/openrc: creating directory
/run/lock: creating directory
/run/lock: correcting owner
/lib/rc/sh/gendepends.sh: 12: [: unexpected operator
Caching service dependencies ... [ ok ]
Mounting /sys ... * Mounting devtmpfs on /dev ... [ ok ]
[ ok ]
Mounting security filesystem ... [ ok ]
Mounting /dev/mqueue ... * Mounting fuse control filesystem ... [ ok ]
[ ok ]
Mounting /dev/pts ... [ ok ]
Mounting /dev/shm ... [ ok ]
[BEGIN] vinit-early
2023-03-28T05:33:26.775294Z  INFO vcontrol: listening on 100.115.92.2:103
[    0.765036] virtio-fs: tag  not found
mount: /mnt/rosetta: wrong fs type, bad option, bad superblock on rosetta, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
/opt/orb/vinit-early: line 63: echo: write error: Invalid argument
/opt/orb/vinit-early: line 64: echo: write error: Invalid argument
[END] vinit-early
hostname         | * Setting hostname ...udev             | * Starting udev ... [ ok ]

2023-03-28T05:33:26.892996Z  INFO vcontrol: flag_data_resized
2023-03-28T05:33:26.892996Z  INFO vcontrol: flag_data_resized
2023-03-28T05:33:26.893079Z ERROR vcontrol::error: Request failed: data not ready
2023-03-28T05:33:26.893052Z ERROR vcontrol::error: Request failed: data not ready
[ ok ]
[    0.883090] udevd[563]: starting version 3.2.11
[    0.885299] udevd[563]: starting eudev-3.2.11
udev-settle      | * Waiting for uevents to be processed ...fsck             | * Checking local filesystems  ... [ ok ]
root             | * Remounting filesystems ... [ ok ]
2023-03-28T05:33:27.095060Z  INFO vcontrol: flag_data_resized
2023-03-28T05:33:27.095112Z ERROR vcontrol::error: Request failed: data not ready
2023-03-28T05:33:27.095064Z  INFO vcontrol: flag_data_resized
2023-03-28T05:33:27.095209Z ERROR vcontrol::error: Request failed: data not ready
[ ok ]
localmount       | * Mounting local filesystems ...[    1.011114] BTRFS: device label user-data-fs devid 1 transid 190 /dev/vdb1 scanned by mount (692)
[    1.011383] BTRFS info (device vdb1): using crc32c (crc32c-generic) checksum algorithm
[    1.011469] BTRFS info (device vdb1): turning on async discard
[    1.011526] BTRFS info (device vdb1): enabling ssd optimizations
[    1.011592] BTRFS info (device vdb1): setting nodatacow, compression disabled
[    1.011673] BTRFS info (device vdb1): using free space tree
[ ok ]
networking       | * Starting networking ... *   lo .../etc/network/if-up.d/dad: 11: arithmetic expression: expecting primary: " counter-- "
networking       |run-parts: /etc/network/if-up.d/dad: exit status 2
networking       | [ ok ]
chronyd          | * Starting chronyd ... [ ok ]
[BEGIN] vinit-late
[    1.154770] zram: setup backing device /dev/vdc1
/opt/docker-rootfs /
/
Resize device id 1 (/dev/vdb1) from 926.35GiB to max
[END] vinit-late
[    1.170196] zram0: detected capacity change from 0 to 32530432
INFO[03-28 05:33:27] started
INFO[03-28 05:33:27] starting container                            container=docker
Setting up swapspace version 1, size = 15.5 GiB (16655577088 bytes)
no label, UUID=79ab33e2-81c6-477c-9847-c757feb48fa1
2023-03-28T05:33:27.296431Z  INFO vcontrol: flag_data_resized
2023-03-28T05:33:27.296453Z  INFO vcontrol: flag_data_resized
[    1.227035] Adding 16265212k swap on /dev/zram0.  Priority:32767 extents:1 across:16265212k SSDsc
vm.swappiness = 100
vm.page-cluster = 1
[    1.229405] Adding 4194300k swap on /dev/vdc2.  Priority:1 extents:1 across:4194300k Dsc
rpcbind          | * Starting rpcbind ...[    1.331838] conbr0: port 1(vethjHtS9x) entered blocking state
[    1.331929] conbr0: port 1(vethjHtS9x) entered disabled state
[    1.331992] device vethjHtS9x entered promiscuous mode
[    1.332097] conbr0: port 1(vethjHtS9x) entered blocking state
[    1.332180] conbr0: port 1(vethjHtS9x) entered forwarding state
[    1.332615] eth0: renamed from vethcWuDjU
[    1.366098] IPv6: ADDRCONF(NETDEV_CHANGE): vethjHtS9x: link becomes ready
INFO[03-28 05:33:27] container started                             container=docker
[    1.413642] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ ok ]
rpc.statd        | * Starting NFS statd ... [ ok ]
nfs              | * Mounting nfsd filesystem in /proc ... [ ok ]
nfs              | * Exporting NFS directories ... [ ok ]
nfs              | * Starting NFS mountd ... [ ok ]
nfs              | * Starting NFS daemon ...[    2.865910] NFSD: Using UMH upcall client tracking operations.
[    2.866050] NFSD: starting 1-second grace period (net f0000000)
[ ok ]
nfs              | * Starting NFS smnotify ... [ ok ]
INFO[03-28 05:33:32] creating container                            id=01GWKBA36JBCFTP53V4RZWE0ZH name=ubuntu
INFO[03-28 05:33:32] fetching image index
INFO[03-28 05:33:34] downloading images                            spec="{ubuntu kinetic amd64 default}"
INFO[03-28 05:34:31] extracting rootfs                             container=ubuntu
INFO[03-28 05:34:33] applying templates
INFO[03-28 05:34:33] starting container                            container=ubuntu
[   67.280274] conbr0: port 2(vethPRIbyo) entered blocking state
[   67.280378] conbr0: port 2(vethPRIbyo) entered disabled state
[   67.280528] device vethPRIbyo entered promiscuous mode
[   67.280634] conbr0: port 2(vethPRIbyo) entered blocking state
[   67.280971] conbr0: port 2(vethPRIbyo) entered forwarding state
[   67.282175] conbr0: port 2(vethPRIbyo) entered disabled state
[   67.282331] eth0: renamed from vethJjjlSN
INFO[03-28 05:34:33] container started                             container=ubuntu
INFO[03-28 05:34:33] waiting for network before setup              container=ubuntu
INFO[03-28 05:34:53] stopping container                            container=ubuntu
WARN[03-28 05:34:57] graceful shutdown failed                      container=ubuntu error="shutting down the container failed"
INFO[03-28 05:34:57] stopped container                             container=ubuntu
INFO[03-28 05:34:57] deleting container                            container=ubuntu

I have the same problem

Got the same problem. Network stopped working on the old vms, telling me that "network is unreachable", also can not create any new ones because it fails on the network.
here's full log:
[    0.448326] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.448349] random: crng init done
[    0.448500] loop: module loaded
[    0.449269] virtio_blk virtio2: 1/0/0 default/read/poll queues
[    0.449461] virtio_blk virtio2: [vda] 297960 512-byte logical blocks (153 MB/145 MiB)
[    0.449775] virtio_blk virtio3: 1/0/0 default/read/poll queues
[    0.449926] virtio_blk virtio3: [vdb] 17179869184 512-byte logical blocks (8.80 TB/8.00 TiB)
[    0.450519]  vdb: vdb1
[    0.450618] virtio_blk virtio4: 1/0/0 default/read/poll queues
[    0.450771] virtio_blk virtio4: [vdc] 20971520 512-byte logical blocks (10.7 GB/10.0 GiB)
[    0.451279]  vdc: vdc1 vdc2
[    0.451387] zram: Added device: zram0
[    0.451432] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[    0.451471] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[    0.451557] tun: Universal TUN/TAP device driver, 1.6
[    0.451900] PPP generic driver version 2.4.2
[    0.451961] PPP Deflate Compression module registered
[    0.452079] PPP MPPE Compression module registered
[    0.452111] usbcore: registered new interface driver rtl8187
[    0.452150] usbcore: registered new interface driver rtl8192cu
[    0.452186] usbcore: registered new interface driver rtl8150
[    0.452218] usbcore: registered new interface driver r8152
[    0.452245] usbcore: registered new interface driver asix
[    0.452277] usbcore: registered new interface driver ax88179_178a
[    0.452312] usbcore: registered new interface driver cdc_ether
[    0.452351] usbcore: registered new interface driver cdc_ncm
[    0.452483] usbcore: registered new interface driver r8153_ecm
[    0.452581] VFIO - User Level meta-driver version: 0.3
[    0.452714] usbcore: registered new interface driver uas
[    0.452751] usbcore: registered new interface driver usb-storage
[    0.452846] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[    0.452894] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 1
[    0.452943] vhci_hcd: created sysfs vhci_hcd.0
[    0.452983] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    0.453063] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.453120] usb usb1: Product: USB/IP Virtual Host Controller
[    0.453153] usb usb1: Manufacturer: Linux 6.1.21-orbstack-00098-g7d48b03fef38 vhci_hcd
[    0.453204] usb usb1: SerialNumber: vhci_hcd.0
[    0.453288] hub 1-0:1.0: USB hub found
[    0.453354] hub 1-0:1.0: 8 ports detected
[    0.453406] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[    0.453475] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 2
[    0.453538] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.453676] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.01
[    0.453721] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.453771] usb usb2: Product: USB/IP Virtual Host Controller
[    0.453811] usb usb2: Manufacturer: Linux 6.1.21-orbstack-00098-g7d48b03fef38 vhci_hcd
[    0.453860] usb usb2: SerialNumber: vhci_hcd.0
[    0.453938] hub 2-0:1.0: USB hub found
[    0.453971] hub 2-0:1.0: 8 ports detected
[    0.454102] rtc-pl031 20050000.pl031: registered as rtc0
[    0.454146] rtc-pl031 20050000.pl031: setting system clock to 2023-03-28T21:57:13 UTC (1680040633)
[    0.454217] hid: raw HID events driver (C) Jiri Kosina
[    0.454257] usbcore: registered new interface driver usbhid
[    0.454322] usbhid: USB HID core driver
[    0.454361] GACT probability NOT on
[    0.454421] Mirror/redirect action on
[    0.454449] netem: version 1.3
[    0.461579] Initializing XFRM netlink socket
[    0.461679] NET: Registered PF_INET6 protocol family
[    0.461922] Segment Routing with IPv6
[    0.461978] In-situ OAM (IOAM) with IPv6
[    0.462021] NET: Registered PF_PACKET protocol family
[    0.462085] Bridge firewalling registered
[    0.462125] l2tp_core: L2TP core driver, V2.0
[    0.462202] 8021q: 802.1Q VLAN Support v1.8
[    0.462236] Key type dns_resolver registered
[    0.462316] NET: Registered PF_VSOCK protocol family
[    0.462700] Loading compiled-in X.509 certificates
[    0.462995] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    0.467559] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    0.468021] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    0.468071] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    0.468123] cfg80211: failed to load regulatory.db
[    0.468262] erofs: (device vda): mounted with root inode @ nid 36.
[    0.468306] VFS: Mounted root (erofs filesystem) readonly on device 254:0.
[    0.468381] devtmpfs: mounted
[    0.468603] Freeing unused kernel memory: 3008K
[    0.530944] Run /opt/orb/preinit as init process
[BEGIN] preinit
[END] preinit

   OpenRC 0.46 is starting up Linux 6.1.21-orbstack-00098-g7d48b03fef38 (aarch64)

 * Mounting /proc ... [ ok ]
 * Mounting /run ... * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
/lib/rc/sh/gendepends.sh: 12: [: unexpected operator
 * Caching service dependencies ... [ ok ]
 * Mounting /sys ... * Mounting devtmpfs on /dev ... [ ok ]
 [ ok ]
 * Mounting security filesystem ... [ ok ]
 * Mounting /dev/mqueue ... * Mounting fuse control filesystem ... [ ok ]
 [ ok ]
 * Mounting /dev/pts ... [ ok ]
 * Mounting /dev/shm ... [ ok ]
[BEGIN] vinit-early
2023-03-28T21:57:13.765299Z  INFO vcontrol: listening on 100.115.92.2:103
2023-03-28T21:57:13.779916Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:13.779958Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:13.780210Z ERROR vcontrol::error: Request failed: data not ready
2023-03-28T21:57:13.780049Z ERROR vcontrol::error: Request failed: data not ready
[    0.799645] virtio-fs: tag <rosetta> not found
mount: /mnt/rosetta: wrong fs type, bad option, bad superblock on rosetta, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
/opt/orb/vinit-early: line 63: echo: write error: Invalid argument
/opt/orb/vinit-early: line 64: echo: write error: Invalid argument
[END] vinit-early
hostname         | * Setting hostname ... [ ok ]

udev             | * Starting udev ... [ ok ]

[    0.913563] udevd[550]: starting version 3.2.11
[    0.915415] udevd[550]: starting eudev-3.2.11
2023-03-28T21:57:13.981388Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:13.981452Z ERROR vcontrol::error: Request failed: data not ready
2023-03-28T21:57:13.981435Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:13.981597Z ERROR vcontrol::error: Request failed: data not ready
udev-settle      | * Waiting for uevents to be processed ...fsck             | * Checking local filesystems  ... [ ok ]

root             | * Remounting filesystems ... [ ok ]

 [ ok ]

localmount       | * Mounting local filesystems ...[    1.055462] BTRFS: device label user-data-fs devid 1 transid 237 /dev/vdb1 scanned by mount (675)
[    1.055697] BTRFS info (device vdb1): using crc32c (crc32c-generic) checksum algorithm
[    1.055761] BTRFS info (device vdb1): turning on async discard
[    1.055824] BTRFS info (device vdb1): enabling ssd optimizations
[    1.055873] BTRFS info (device vdb1): setting nodatacow, compression disabled
[    1.055920] BTRFS info (device vdb1): using free space tree
 [ ok ]

networking       | * Starting networking ... *   lo .../etc/network/if-up.d/dad: 11: arithmetic expression: expecting primary: " counter-- "

networking       |run-parts: /etc/network/if-up.d/dad: exit status 2

networking       | [ ok ]

chronyd          | * Starting chronyd ...2023-03-28T21:57:14.182475Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:14.182572Z ERROR vcontrol::error: Request failed: data not ready
2023-03-28T21:57:14.182503Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:14.182722Z ERROR vcontrol::error: Request failed: data not ready
 [ ok ]

[BEGIN] vinit-late
[    1.206669] zram: setup backing device /dev/vdc1
/opt/docker-rootfs /
/
Resize device id 1 (/dev/vdb1) from 228.27GiB to max
[    1.224970] zram0: detected capacity change from 0 to 48963584
[END] vinit-late
rpcbind          | * Starting rpcbind ...INFO[03-28 21:57:14] started
Setting up swapspace version 1, size = 23.3 GiB (25069350912 bytes)
no label, UUID=1ef3e470-56e8-456b-ba6b-b94d33b1a2fe
[    1.310387] Adding 24481788k swap on /dev/zram0.  Priority:32767 extents:1 across:24481788k SSDsc
vm.swappiness = 100
vm.page-cluster = 1
[    1.313173] Adding 4194300k swap on /dev/vdc2.  Priority:1 extents:1 across:4194300k Dsc
2023-03-28T21:57:14.384304Z  INFO vcontrol: flag_data_resized
2023-03-28T21:57:14.384304Z  INFO vcontrol: flag_data_resized
 [ ok ]

rpc.statd        | * Starting NFS statd ... [ ok ]

[    1.535484] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
nfs              | * Mounting nfsd filesystem in /proc ... [ ok ]

nfs              | * Exporting NFS directories ... [ ok ]

nfs              | * Starting NFS mountd ... [ ok ]

nfs              | * Starting NFS daemon ...[    2.767014] NFSD: Using UMH upcall client tracking operations.
[    2.767196] NFSD: starting 1-second grace period (net f0000000)
 [ ok ]

nfs              | * Starting NFS smnotify ... [ ok ]

INFO[03-28 21:57:15] starting container                            container=ubuntu
[    2.963064] conbr0: port 1(vethcoklmk) entered blocking state
[    2.963305] conbr0: port 1(vethcoklmk) entered disabled state
[    2.963498] device vethcoklmk entered promiscuous mode
[    2.964559] eth0: renamed from vethfiMor2
INFO[03-28 21:57:16] container started                             container=ubuntu
INFO[03-28 21:57:27] stopping container                            container=ubuntu
WARN[03-28 21:57:31] graceful shutdown failed                      container=ubuntu error="shutting down the container failed"
INFO[03-28 21:57:32] stopped container                             container=ubuntu
INFO[03-28 21:58:40] creating container                            id=01GWN3NYDFQT7JKCD5P8T0E751 name=ubuntu-no-rosetta
INFO[03-28 21:58:40] fetching image index
INFO[03-28 21:58:41] downloading images                            spec="{ubuntu kinetic amd64 default}"
INFO[03-28 21:58:47] extracting rootfs                             container=ubuntu-no-rosetta
INFO[03-28 21:58:49] applying templates
INFO[03-28 21:58:49] starting container                            container=ubuntu-no-rosetta
INFO[03-28 21:58:49] container started                             container=ubuntu-no-rosetta
INFO[03-28 21:58:49] waiting for network before setup              container=ubuntu-no-rosetta
INFO[03-28 21:59:00] starting container for ssh                    container=ubuntu
INFO[03-28 21:59:00] starting container                            container=ubuntu
INFO[03-28 21:59:00] container started                             container=ubuntu
INFO[03-28 21:59:09] stopping container                            container=ubuntu-no-rosetta
WARN[03-28 21:59:13] graceful shutdown failed                      container=ubuntu-no-rosetta error="shutting down the container failed"
ERRO[03-28 21:59:13] SSH error: bad file descriptor
INFO[03-28 21:59:13] stopped container                             container=ubuntu-no-rosetta
INFO[03-28 21:59:13] deleting container                            container=ubuntu-no-rosetta
INFO[03-28 22:00:38] creating container                            id=01GWN3SHEZ6Y1AYZHW994HV93J name=ubuntu2
INFO[03-28 22:00:38] fetching image index
INFO[03-28 22:00:39] downloading images                            spec="{ubuntu kinetic amd64 default}"
INFO[03-28 22:00:45] extracting rootfs                             container=ubuntu2
INFO[03-28 22:00:47] applying templates
INFO[03-28 22:00:47] starting container                            container=ubuntu2
INFO[03-28 22:00:47] container started                             container=ubuntu2
INFO[03-28 22:00:47] waiting for network before setup              container=ubuntu2
INFO[03-28 22:01:07] stopping container                            container=ubuntu2
WARN[03-28 22:01:11] graceful shutdown failed                      container=ubuntu2 error="shutting down the container failed"
INFO[03-28 22:01:11] stopped container                             container=ubuntu2
INFO[03-28 22:01:11] deleting container                            container=ubuntu2

vmgr.log:
time="03-29 00:57:12" level=info msg="creating VM"
time="03-29 00:57:12" level=info msg="forwarding SSH agent" sock=/private/tmp/com.apple.launchd.jYRLDqCqop/Listeners
time="03-29 00:57:12" level=info msg="starting VM"
time="03-29 00:57:12" level=info msg="starting host services"
time="03-29 00:57:12" level=info msg="waiting for VM to start"
time="03-29 00:57:12" level=info msg="[VM] starting"
time="03-29 00:57:12" level=info msg="[VM] started"
time="03-29 00:57:13" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-29 00:57:13" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-29 00:57:13" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-29 00:57:13" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-29 00:57:13" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-29 00:57:13" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-29 00:57:13" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-29 00:57:14" level=info msg="data ready"
time="03-29 00:57:14" level=info msg="data ready"
time="03-29 00:57:14" level=info msg="Mounting NFS..."
time="03-29 00:57:14" level=error msg="host-vsock forward: dial failed" error="Error Domain=NSPOSIXErrorDomain Code=54 \"Connection reset by peer\""
time="03-29 00:57:16" level=error msg="NFS mount failed" error="mount nfs: mount(): connection reset by peer"
time="03-29 00:57:16" level=info msg="Mounting NFS..."
time="03-29 00:57:16" level=info msg="NFS mounted"
time="03-29 00:57:22" level=info msg="Setup not done in time, running setup..."
time="03-29 00:57:22" level=info msg="CLI setup complete"

@MrBIMC Can you be more specific about the ? That's likely to be the underlying cause here. What's returning "network is unreachable"?
Please the full output of all of these commands to help debug the issue:

ip addr
ip route
networkctl status eth0
dig host.orb.internal
ping 1.1.1.1
ping 100.115.93.1
ping 100.115.92.2
ping 100.115.92.254
ping 2606:4700:4700::1111
ping fd00:30:31::1
ping fd00:96dc:7096:1d21::2
ping fd00:96dc:7096:1d22::254
mtr or traceroute to each of the IPs above (skip if your machine doesn't have either installed)
Does restarting the old machine help?

Also please share the output of orb report and the exact error message you get when creating a new machine (unexpected EOF, timed out waiting for network, etc.).

hmm, I've just rebooted the machine and network started working again.

Got it to break. Stopping the system, disabling rosetta for x86 images and then starting the vm again breaks the network. Collecting logs rn.
Btw, for some reason rosetta toggle is always on after the reboot.

Here are the logs for ubuntu without rosetta when network is broken:
pwniestarr@ubuntu:/Users/pwniestarr$ ping 8.8.8.8
ping: connect: Network is unreachable
pwniestarr@ubuntu:/Users/pwniestarr$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if5: <BROADCAST,MULTICAST> mtu 65520 qdisc noop state DOWN group default qlen 1000
    link/ether ca:5d:84:fe:d8:0f brd ff:ff:ff:ff:ff:ff link-netnsid 0
pwniestarr@ubuntu:/Users/pwniestarr$ ip route
pwniestarr@ubuntu:/Users/pwniestarr$ networkctl status eth0
WARNING: systemd-networkd is not running, output will be incomplete.

^C
pwniestarr@ubuntu:/Users/pwniestarr$ dig host.orb.internal
-bash: dig: command not found
pwniestarr@ubuntu:/Users/pwniestarr$ ping 1.1.1.1
ping: connect: Network is unreachable
pwniestarr@ubuntu:/Users/pwniestarr$ ping 100.115.93.1
ping: connect: Network is unreachable
pwniestarr@ubuntu:/Users/pwniestarr$ ping 2606:4700:4700::1111
ping: connect: Network is unreachable
pwniestarr@ubuntu:/Users/pwniestarr$ mtr 1.1.1.1
-bash: mtr: command not found
pwniestarr@ubuntu:/Users/pwniestarr$ traceroute 1.1.1.1
-bash: traceroute: command not found

Creating new machine when network is broken yields "network unreachable, couldn't create"
return value of orb report
OrbStack info:
Version: 0.5.1 (50100)
Commit: 646c501f9b245f5bc61bae3036ff5e92aaa7840e (v0.5.1)
System info:
macOS: 13.1 (22C65)
CPU: arm64, 8 cores
CPU model: Apple M1

Updated to version 0.5.2, the problem still exists

time="03-30 16:21:50" level=info msg="creating VM"
time="03-30 16:21:50" level=info msg="forwarding SSH agent" sock=/private/tmp/com.apple.launchd.gmdHhg6hdD/Listeners
time="03-30 16:21:50" level=info msg="starting VM"
time="03-30 16:21:50" level=info msg="starting host services"
time="03-30 16:21:50" level=info msg="waiting for VM to start"
time="03-30 16:21:50" level=info msg="[VM] starting"
time="03-30 16:21:50" level=info msg="[VM] started"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-unix forward: dial failed" addr="{1 100.115.92.2 2375}" error="connect tcp 100.115.92.2:2375: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:51" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:52" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:52" level=error msg="host-tcp forward: dial failed" addr="{1 100.115.92.2 8000}" error="connect tcp 100.115.92.2:8000: connection was refused"
time="03-30 16:21:52" level=info msg="data ready"
time="03-30 16:21:52" level=info msg="Mounting NFS..."
time="03-30 16:21:52" level=info msg="data ready"
time="03-30 16:21:52" level=error msg="host-vsock forward: dial failed" error="Error Domain=NSPOSIXErrorDomain Code=54 "Connection reset by peer""
time="03-30 16:21:54" level=error msg="NFS mount failed" error="mount nfs: mount(): connection reset by peer"
time="03-30 16:21:54" level=info msg="Mounting NFS..."
time="03-30 16:21:54" level=info msg="NFS mounted"
time="03-30 16:25:37" level=warning msg="DNS query failed" error="no such record" name=_http._tcp.ports.ubuntu.com. type=SRV
time="03-30 16:25:37" level=warning msg="DNS query failed" error="no such record" name=_https._tcp.motd.ubuntu.com. type=SRV
time="03-30 16:25:43" level=warning msg="DNS query failed" error="no such record" name=_http._tcp.ports.ubuntu.com. type=SRV

It looks like you have an Alpine machine already. Can you start it and check if network works in it?
Also, are you creating an Intel Ubuntu machine?

I also created an arm ubuntu machine，But the intel machines never create

Thanks, that narrows it down. Will investigate.

Reproduced. The fix will likely take some time: the root cause is that the fallback for x86 emulation is missing functionality needed for systemd-networkd to work. Networking is broken because networkd doesn't start.
In the meantime, please upgrade to macOS 13.x if possible so you can use Rosetta instead (which doesn't have this issue), or run x86 programs in your ARM machine using Ubuntu's multiarch support. I'll also consider temporarily disabling creation of new x86 machines when Rosetta is disabled or not supported. (Unfortunately it's not possible to use Rosetta on macOS 12 due to hypervisor limitations.)

I updated my Macos to version 13.1 and then solved the problem

same problem when exec orb create centos:7 centos-7.9 --arch amd64
setup: timed out waiting for network

@jjeejj That's a different issue. OrbStack can't run distros with too old systemd due to cgroup compatibility issues. #66

@kdrag0n  The document tells me to do this， If this feature is not yet supported, update the document？

@jjeejj CentOS 7 has been removed for now. Thanks for pointing that out.

Fixed for the next version.

Released in v0.8.0.


text:
Prevent loadDefaultView firing twice

Description
Prevents the default view from being loaded twice on mount (loadDefaultView is handled by initializeFirstView)
Closes #333
Checklist

[x] The documentation reflects the changes.
[x] I have manually tested the application to make sure the changes don’t cause any downstream issues, which includes making sure ./orchest status --ext is not reporting failures when Orchest is running.
[ ] In case I changed code in the orchest-sdk, I updated its version according to SemVer in its _version.py and updated the version compability table in its README.md

[ ] In case I changed one of the services’ models.py I have performed the appropriate database migrations.

Could you leave out the console.log statements? 😉

Otherwise, clean fix! 👍🏻

source: gharchive/pull-request

authors: joe-bell ricklamers

repo: orchest/orchest

license_type: permissive

license_source: github-api


text:
Plugins clear button and remove button don't work well together

Describe the bug
When using clear button and remove button plugins together with a multiple select row,
clear button is not well placed and cannot be differentiate with other remove buttons.

To Reproduce

Have clear button enabled
Have remove button enabled
Select multiple items
Have select with multiple lines
Hover the select

Expected behavior

The clear button should more recognizable than the remove button.
It should be as the same height as the drop down caret.
Maybe clear button needs his own place that item couldn't take ?

Green lines are safe zone for the clear button:

Select items will never cross that line
Dropdown caret should not cross that line

Additional context

OS: Windows
Browser: Firefox
Version: 2.0.3
Bootstrap: 5
Theme/Template: www.Tabler.io

**To Reproduce**
Create an example on JSFiddle, CodePen or similar service and outline the steps for reproducing the bug.

Here is a demo : https://jsfiddle.net/florian_allsoftware/f0wkpyd9/8/
Using :

Symfony (only for class naming)
Tabler.io (Template)
TomSelect

Make it like that.

Symfony -> Add  form-select class to select
Tabler.io -> Stylize form-select by adding the caret at the end.
TomSelect -> Don't use the caret because there's not the class single (multi currently), but Tabler.io added it anyway.

source: gharchive/issue

authors: cavasinf oyejorge

repo: orchidjs/tom-select


text:
Scavenge About/Construction and Demonstration of docs/ Publishing

The Miser Project has an effort to spiral the construction of of its docs/ and the understanding of the default template and other aspects of the mapping between docs/ and the published orcmid.github.io/miser pages.
Bring those components here and then set those up.  The use of spiraling may need to be explained.  Add that to the README.md page for the project.
Check out GitHub Community Guidelines

I need to find the screen captures that go with documenting the plain case.  I also need to find the MarkDown cheat-sheet that I was using to work through the cases.

repo: orcmid/docEng


text:
ignore invalid instruction of rune commit tx

fix https://github.com/ordinals/ord/issues/3306

We get transactions from bitcoin core, so I don't think it's possible to encounter a transaction with an invalid instruction. Have you found a case where it is possible?

authors: casey nowherekai

repo: ordinals/ord


text:
🛑 Code Quality Analysis is down

In dd5d765, Code Quality Analysis (https://sonar.orfeo-toolbox.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Code Quality Analysis is back up in 93e91d7 after 7 minutes.

repo: orfeotoolbox/status-page

license: MIT


text:
Traverse in some case with additinal condition return more value than without.

As title

@tglman do you still have the test case...?

fixed on commit 35ed13f8a68fd571bda2a7b19df0de2b0cdc34a7 develop branch. The issue was related to field deserialization

authors: luigidellaquila tglman

repo: orientechnologies/orientdb


text:
Functions with duplicate names

Orientdb can have function with the same name but while retrieving the functions from java api, using meta data as below, it needs the function name. How can I know which function is getting retrieve from the below code? Is there way to retrieve the function using its RID?
db.getMetadata().getFunctionLibrary().getFunction("sum");

Are you sure orientdb can have a function with the same name?
As far as I can tell from the code, it's not possible.

@randikaf what's the purpose of having 2 functions with the same name?

@matanshukry , Yes, if you try from the Orientdb studio, you'll be able to create.
@lvca Actually this happened accidentally because of a issue in my code. But the problem is, Orientdb does not validate the function creation with the same name.
Can I use the function name to retreive the function consistently?

@randikaf you're right, my bad; Was looking at a different function.
@lvca - IMO, function names should be unique. Now I'm not too familiar with indices, but we can create (by default) a unique index on OFunction.name, that should be simple enough. What do you think?

@matanshukry , @lvca Are you planning to fix this?

i also observed that when importing the functions only from an export file using '-merge' option, duplicate function entries are created. not sure if creating index on OFunction will solve the problem. i suspect that it would need a change to import command to 'overwrite' the function in case of import.

@nagarajasr - I am not familiar with the import process, but doesn't the process add entries to the OFunction table through the index? That is, shouldn't a unique index throw error on duplicate functions?
I think it's the best option since even if you fix the import function, one can still create multiple functions with the same name, which I don't think make much sense. Unless you're planning an using parameters overloading, but then you'll need a more complex unique process.
@randikaf - I can take a look at it, just looking for some confirmation from the Orient team; They need to decide how they want to fix it (unique index? overwrite? else? ..)

+1 for the unique index (in v 2.2 IMHO)

@matanshukry yes, but i would expect that the import process should overwrite an existing function if the "-merge" option is specified

authors: luigidellaquila lvca matanshukry nagarajasr randikaf


text:
Rewrite functionality of tracking of changes inside of atomic operation using RoaringBitmaps

In order to track changes on pages inside of atomic operation we need some form of implementation of sparse bitset. Typically data structures proposed to be us as sparse bitset use very poor sequential performance for example to check whether n-bit is set we need to use algorithm with O(n) complexity which is unacceptable. Also we can not use plain byte array because it means that in order to change one page in page we need to consume 2 * page_size bytes and store in WAL page_size bytes for single byte change. That is why we used augmented rb-tree for tracking of changes in one dimensional intervals but this data structure is very resource consuming in case of big transactions and also consumes more space than  RoaringBitmaps implementation.
For details of data structure look at http://arxiv.org/pdf/1402.6407v9.pdf .

+1

Not needed any more

authors: laa lvca


text:
Telescope and Orion

Has anyone looked at how to possibly integrate Orion with Telescope? (point the telescope towards Orion, lol).
You may ask "why", I'm building a community-based platform and instead of reinventing the wheel I would rather just reuse some of that Telescope code.  What I imagine is replace the security, user, permission system of telescope with Orion's, because I want the nice configurable admin panel that Orion offers.

@vonwao point the telescope team to Orion and sell  them on the benefit, be an Orion evangelist :)

Yes, good idea :)  I decided to delete/close this issue for now because I thought I should do some more research on this for now and not introduce too much noise into the issues with new ideas.

authors: timfam vonwao

repo: orionjs/orion

license: mit

license_source: bigquery


text:
initAccounts is not a function

Hello,
I'm trying to use meteor-apollo-accounts, with the tutorial http://dev.apollodata.com/core/meteor.html and your README.md.
So now I have :
	import { createApolloServer } from 'meteor/apollo';
	import { makeExecutableSchema, addMockFunctionsToSchema } from 'graphql-tools';
	import {initAccounts} from 'meteor/nicolaslopezj:apollo-accounts'
	import {loadSchema, getSchema} from 'graphql-loader'

	import { typeDefs } from '/imports/api/schema';
	import { resolvers } from '/imports/api/resolvers';

	const options = {}
	// Load all accounts related resolvers and type definitions into graphql-loader
	initAccounts(options)

	// Load all your resolvers and type definitions into graphql-loader
	loadSchema({typeDefs, resolvers})

	// Gets all the resolvers and type definitions loaded in graphql-loader
	const schema = getSchema()
	const executableSchema = makeExecutableSchema(schema)

	createApolloServer({
	  executableSchema,
	});

when I launch the application, my server crash :
W20170202-17:22:45.325(-5)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt.
W20170202-17:22:45.325(-5)? (STDERR) While this implementation will work correctly, it is known to be
W20170202-17:22:45.326(-5)? (STDERR) approximately three times slower than the native implementation.
W20170202-17:22:45.326(-5)? (STDERR) In order to use the native implementation instead, run
W20170202-17:22:45.326(-5)? (STDERR)
W20170202-17:22:45.327(-5)? (STDERR)   meteor npm install --save bcrypt
W20170202-17:22:45.327(-5)? (STDERR)
W20170202-17:22:45.327(-5)? (STDERR) in the root directory of your application.
W20170202-17:22:45.348(-5)? (STDERR) WARNING: npm peer requirements (for apollo) not installed:
W20170202-17:22:45.348(-5)? (STDERR)  - graphql-server-express@0.6.0 installed, graphql-server-express@^0.4.3 needed
W20170202-17:22:45.349(-5)? (STDERR)  - graphql@0.9.1 installed, graphql@^0.7.0 || ^0.8.0 needed
W20170202-17:22:45.349(-5)? (STDERR)  - graphql-tools@0.9.2 installed, graphql-tools@^0.8.0 needed
W20170202-17:22:45.349(-5)? (STDERR)
W20170202-17:22:45.350(-5)? (STDERR) Read more about installing npm peer dependencies:
W20170202-17:22:45.350(-5)? (STDERR)   http://guide.meteor.com/using-packages.html#peer-npm-dependencies
W20170202-17:22:45.350(-5)? (STDERR)
W20170202-17:22:45.639(-5)? (STDERR) C:\Users\Erwan\AppData\Local\.meteor\packages\meteor-tool\1.4.2_3\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:280
W20170202-17:22:45.639(-5)? (STDERR)                                            throw(ex);
W20170202-17:22:45.639(-5)? (STDERR)                                            ^
W20170202-17:22:45.640(-5)? (STDERR)
W20170202-17:22:45.640(-5)? (STDERR) TypeError: initAccounts is not a function
W20170202-17:22:45.641(-5)? (STDERR)     at server/main.js:19:2
W20170202-17:22:45.641(-5)? (STDERR)     at Function.time (C:\Users\Erwan\Documents\Perso\Travaux\looc\api-server\.meteor\local\build\programs\server\profile.js:301:28)
W20170202-17:22:45.641(-5)? (STDERR)     at C:\Users\Erwan\Documents\Perso\Travaux\looc\api-server\.meteor\local\build\programs\server\boot.js:304:13
W20170202-17:22:45.642(-5)? (STDERR)     at C:\Users\Erwan\Documents\Perso\Travaux\looc\api-server\.meteor\local\build\programs\server\boot.js:345:5
W20170202-17:22:45.642(-5)? (STDERR)     at Function.run (C:\Users\Erwan\Documents\Perso\Travaux\looc\api-server\.meteor\local\build\programs\server\profile.js:480:12)
W20170202-17:22:45.642(-5)? (STDERR)     at C:\Users\Erwan\Documents\Perso\Travaux\looc\api-server\.meteor\local\build\programs\server\boot.js:343:11
=> Exited with code: 1
=> Your application is crashing. Waiting for file change.

I really don't understand. Is the tutorial up-to-date ?
thanks in advance, and good job 👍  I really need it ^^

Sorry for the delay,
initAccounts might not be exported, or maybe not exist in the version of apollo-accounts you have installed.
I can help you with that.

@dbrrt thanks for you answer.
So what should I do ?

Figure out why "TypeError: initAccounts is not a function"
Checking if there's no conflicts between packages versions (graphlql/graphql-express/graphql-tools)

I'm running this repository's code on a WIP Apollo/GraphQL based app, so it's working. Even tried with React Native.

I am also getting the same issue. Did you manage to find the solution?

@ahsanwtc Here's my server.js file, actually I'm using initAccounts not directly the Meteor library but it should work in both cases
import {makeExecutableSchema} from 'graphql-tools'
import {loadSchema, getSchema} from 'graphql-loader'
import {initAccounts} from '/imports/lib/accounts-gql/server'

import typeDefs from './schema'
import resolvers from './resolvers'

import {createApolloServer} from 'meteor/orionsoft:apollo'
import cors from 'cors'

const options = {}
// Load all accounts related resolvers and type definitions into graphql-loader
initAccounts(options)

// Load all your resolvers and type definitions into graphql-loader
loadSchema({typeDefs, resolvers})

// Gets all the resolvers and type definitions loaded in graphql-loader
const schema = getSchema()

const executableSchema = makeExecutableSchema(schema)

createApolloServer({
  schema: executableSchema
  }, {
  configServer (graphQLServer) {
    graphQLServer.use(cors())
  }
})

@dbrrt thanks for the reply. Can you give the the full path to the initAccounts? I am not able to find the lib folder. It's not able to find the path '/imports/lib/accounts-gql/server'

I "repacked" the libraries (client and server), under the lib path, so that's just my project.
But I think that if you can't use initAccounts, that's because of an export or something like that.

thank you for your feed back.
I already share my code... all is here (juste a test to integrate apollo in an other app)
In fact there is dependencies issue... I will investigate but i'm pretty sure it's not the problem. If you can (of course), I'm very curious about your test result concerning the meteor initAccount method.
Thank a lot ;)

@rwaness
Here's an extract of my packages.json, if that can help:
  "dependencies": {
    "apollo-client": "^0.5.0",
    "babel-runtime": "^6.20.0",
    "bcrypt": "^0.8.7",
    "body-parser": "^1.16.0",
    "classnames": "^2.2.5",
    "cors": "^2.8.1",
    "express": "^4.14.0",
    "graphql": "^0.7.0",
    "graphql-loader": "^1.0.1",
    "graphql-server-express": "^0.4.3",
    "graphql-tools": "^0.8.0",
    "graphql-typings": "0.0.1-beta-2",
    "invariant": "^2.2.1",
    "meteor-node-stubs": "~0.2.0",
    "moment": "^2.17.1",
    "node-sass": "^3.13.1",
    "normalize.css": "^5.0.0",
    "react": "^15.3.1",
    "react-addons-css-transition-group": "~15.4.0",
    "react-addons-pure-render-mixin": "^15.3.1",
    "react-apollo": "^0.5.16",
    "react-dom": "^15.3.1",
    "react-komposer": "^1.13.1",
    "react-mounter": "^1.2.0",
    "react-redux": "^5.0.2",
    "react-router": "^3.0.2",
    "react-slick": "^0.14.6",
    "redux": "^3.6.0",
    "semantic-ui-css": "^2.2.4",
    "semantic-ui-react": "^0.64.3"
  },
  "devDependencies": {
    "babel-plugin-module-resolver": "^2.4.0",
    "babel-plugin-transform-class-properties": "^6.19.0",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "semantic-ui": "^2.2.7",
    "standard": "^8.5.0"
  }

and I didn't have time for now to reproduce your issue with initAccount (directly using the Meteor lib), I'll try ASAP

@rwaness have you solved the problem?
I think that's because the package version installed in your meteor app.
You need to specify the version of this package. If not, 1.0.1 version is installed instead.
Try this:
meteor add nicolaslopezj:apollo-accounts@3.0.1

All good with initAccount now. Thanks to you.
Unfortunatly, I found a second issue.
I follow this tutorial : https://blog.orionsoft.io/using-meteor-accounts-with-apollo-and-react-df3c89b46b17
and when I want to test the application, the server crash and say :
TypeError: Auth is not a function
     at meteorInstall.server.schema.Mutation.index.js (server/schema/Mutation/index.js:5:4)
     at fileEvaluate (packages\modules-runtime.js:197:9)
     at require (packages\modules-runtime.js:120:16)
     at C:\Users\erwan\Documents\Travaux\meteor\loocc\tests\api-server\.meteor\local\build\programs\server\app\app.js:220:1
     at C:\Users\erwan\Documents\Travaux\meteor\loocc\tests\api-server\.meteor\local\build\programs\server\boot.js:303:34
     at Array.forEach (native)
     at Function._.each._.forEach (C:\Users\erwan\AppData\Local\.meteor\packages\meteor-tool\1.4.3_2\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
     at C:\Users\erwan\Documents\Travaux\meteor\loocc\tests\api-server\.meteor\local\build\programs\server\boot.js:128:5
     at C:\Users\erwan\Documents\Travaux\meteor\loocc\tests\api-server\.meteor\local\build\programs\server\boot.js:352:5
     at Function.run (C:\Users\erwan\Documents\Travaux\meteor\loocc\tests\api-server\.meteor\local\build\programs\server\profile.js:510:12)

The file server/schema/Mutation/index.js looks like :
import {SchemaMutations as Auth} from 'meteor/nicolaslopezj:apollo-accounts'

export default `
type Mutation {
	${Auth()}
}
`

Is it again a version issue ?
How can we know the good version to use ?
Good job guys. Continue ;)

@rwaness
Yeah. I think that api version is old.
It has changed.
You better see this install guide.
Or, mine is like below:
import { createApolloServer } from 'meteor/apollo';
import { initAccounts } from 'meteor/nicolaslopezj:apollo-accounts';
import { loadSchema, getSchema } from 'graphql-loader';
import { makeExecutableSchema } from 'graphql-tools';

import cors from 'cors';

import { typeDefs } from './schema';
import { resolvers } from './resolvers';

initAccounts({});
loadSchema({ typeDefs, resolvers });

const schema = makeExecutableSchema(getSchema());

export default () => {
  createApolloServer({ schema }, {
    configServer(graphQLServer) {
      graphQLServer.use(cors());
    },
  });
};

Yes, it works with the boilerplate : https://github.com/orionsoft/server-boilerplate
Thanks ;)

authors: ahsanwtc dbrrt rwaness simsim0709

repo: orionsoft/meteor-apollo-accounts


text:
react highlighting and autocomplete not working

hi yesterday it works but now it doesn't work. Why is that? Can you help me fix it

I'm experiencing the same problem, you aren't alone!

SAme problem here

I installed the package called language-babel. That works perfectly fine. Another solution is to use this package https://atom.io/packages/language-javascript-jsx. Both language-babel and language-javascript-jsx will solve this issue until the react package is fixed. Make sure you just use one of these, disable the others.

I tried that, but not autocompleting yet.
Atenciosamente,
Maurício R. Duarte.
2016-08-04 20:52 GMT-03:00 Marcus Hurney notifications@github.com:

I installed the package called language-babel. That works perfectly fine.
Another solution is to use this package https://atom.io/packages/
language-javascript-jsx. Both language-babel and
language-javascript-jsx will solve this issue until the react package
is fixed. Make sure you just use one of these, disable the others.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/orktes/atom-react/issues/184#issuecomment-237719916,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABE4_ciLSTMyhyUENfBPcQvFhqY2tvgsks5qcntSgaJpZM4JcXfU
.

I recomend using language-babel https://atom.io/packages/language-babel
It has similiraties to react package since it has autocomplete and highlighting.  The othe package doesn't have autocomplete.

I agree, not having autocomplete is a big disadvantage of the jsx language
package.
On Friday, August 5, 2016, pillowface notifications@github.com wrote:

I recomend using language-babel https://atom.io/packages/language-babel
It has similiraties to react package since it has autocomplete and
highlighting. The othe package doesn't have autocomplete.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/orktes/atom-react/issues/184#issuecomment-237870544,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMusLgj98qwACBpHSgw7Hglx12Q_wiWmks5qc00_gaJpZM4JcXfU
.

Should be fixed https://github.com/orktes/atom-react/issues/188

authors: MarcusHurney mauriciord orktes pillowface

repo: orktes/atom-react


text:
Universal?

Universal hashing implies N/M collision estimate for all collision test sets, and not (N^2)/M/2 like can be seen in SMHasher tests for Polymur. Just saying. https://www.cs.cmu.edu/~avrim/451f11/lectures/lect1004.pdf

The universal hash function for strings is a unicorn (that is, it doesn't exist). Any fixed-memory universal hash function must be almost-universal. Since no one makes a hash function that allocates 2^64 bytes of memory to store its data, it is implied that any hash function which hashes strings is therefore almost-universal.
When I say that PolymurHash is "a universal hash function" in the introduction I don't mean to claim that it holds the "Universal" property over the set of all strings, rather that it is a hash function with universality claims. I immediately follow it up one sentence later with the exact collision probabilities claimed.

For example the wikipedia article Poly1305 hash function starts with "Poly1305 is a universal hash family". Since Poly1305 hashes strings and also doesn't allocate tons of memory we see that in fact, its collision probability scales with the input size.

Well, it would be fair to call it "almost universal hash function" then. Or most authors of "good" SMHasher hash functions could come up with proofs. "Universal hashing" is a brand, and it's a bit unfair to exploit it not actually having an intention to prove the "original" universality requirement.

Or most authors of "good" SMHasher hash functions could come up with proofs.

The proofs of what I claim are in this repository.

"Universal hashing" is an academic brand, and it's a bit unfair to exploit it not actually having an intention to prove the "original" universality requirement.

I don't exploit anything, you simply take the most unreasonably strict reading of the word "Universal" that no real-world hash function for strings ever satisfies, and then try to apply it to a hash function over strings.
Almost-universality isn't something I just came up with. It is just as academic. It has formal definitions. For example the PolyR hash function paper also opens with "We describe a universal hash-function family, PolyR". Guess what? Yes, that is also colloquial and also used to mean almost-universality.

Universal hashing implies N/M collision estimate for all collision test sets, and not (N^2)/M/2 like can be seen in SMHasher tests for Polymur.

Also, this is a misunderstanding of Polymur's security claim. Polymur doesn't have a "N^2/M/2" collision probability, assuming we use N to mean the number of strings in the input space, and M to mean 2^64 like in the paper you linked.
Polymur's collision probability bound scales with the length of the input string, not the number of strings in your input set. This is an exponential difference, there are 256^1024 binary strings of length 1024, yet Polymur's collision probability only goes up to 256 * 2^-60.2.
I have no idea where you got the N^2 term from, or how you can claim that it "can be seen in SMHasher tests".

Perhaps you misunderstood the claim of the lecture notes?

Note that they count the expected number of collisions of a specific string x with all other strings, not the total number of collisions over an entire data set.

Note that they count the expected number of collisions of a specific string x with all other strings to get to N/M, not the total number of collisions over an entire data set. That is also on the order of N^2/M/2 for a perfect universal hash. That is simply basic probability and has nothing to do with how good your hash function is.

I would not handle N^2/M/2 as something "simple". For example, (let's call it) "set's collision estimate" of CRC32 is way lower than N^2/M/2 in many SMHasher tests yet its collision estimate for isolated strings is likely N/M. I just do not see how collision estimate of a specific string is good, if it's not easily translatable to set's collision estimate. The situation you are probably overlooking is that when you add a new string to an already constructed set with N^2/M/2 total collisions, the collision estimate of a new string cannot be N/M. Either I'm misunderstanding something or "universal hashing" concepts are very poorly defined.
PolyR paper defines a collision estimate like for cryptographic hashes, which are never treated as "universal" to my knowledge. With such liberal treatment of collision estimate, "universality" claim is a bit moot.

N^2/M/2 is a formula used by SMHasher to calculate expected number of collisions.

If you look closer, it's derivative of set's collision estimate which is N/M. But there's no mention of collision estimate's derivatives in "universal hashing".

Either I'm misunderstanding something or "universal hashing" concepts are very poorly defined.

I think you are misunderstanding, because they are very strictly defined. The collision probability always talks about two arbitrary but different strings. You only talk about more than two strings once you get into k-independence for k > 2.

I just do not see how collision estimate of a specific string is good, if it's not easily translatable to set's collision estimate.

It generally translates pretty well.

PolyR paper defines a collision estimate like for cryptographic hashes, which are never treated as "universal" to my knowledge.

You are conflating "cryptographically secure hash" with the study of cryptographically secure message authentication codes. The latter has always been based on universal hash function theory (PolyR, Poly1305, Galois Counter Mode, UMAC, etc are all (almost-)universal hash families).

With such liberal treatment of collision estimate, "universality" claim is a bit moot.

It is not liberal at all, it is very precise.

N^2/M/2 is a formula used by SMHasher to calculate expected number of collisions.

Expected number of collisions between ALL strings, not the expected number of collisions between ONE and all other strings. That is what the lecture notes you linked compute.
Your original statement "universal hashing implies N/M collision estimate for all collision test sets, and not (N^2)/M/2 like can be seen in SMHasher tests" is false, because that is mathematically impossible. It's also not what the linked lecture notes claim.

If you look closer, it's derivative of set's collision estimate which is N/M. But there's no mention of collision estimate's derivatives in "universal hashing".

I have no idea what you mean by that.

In "universal hashing", N/M collision estimate already implies a *set S from U. So, of course, I'm talking about more than two strings in a set. What's the purpose of talking about 2 strings in all sets?

By N/M derivative I mean that if you keep adding strings to a set, yielding sets with N+1, N+2... strings, addition increases set's collision estimate by N/M after each operation, if set's current collision estimate is N^2/M/2.

In "universal hashing", N/M collision estimate already implies a set S from U. So, of course, I'm talking about more than two strings in a set. What's the purpose of talking about sets having only 2 strings each?

Basic universal hashing is only talking about pairs of strings. Look, in the very lecture notes you linked:

The universality bound is for ONE pair of strings x != y.
The expectation of N/M is then calculated from the bound on pairs:

What's the purpose of talking about sets having only 2 strings each?

The purpose is that it's possible to analyze and prove things about 2 strings at a time, after which you can use statistics to extrapolate that behavior to sets of strings.

By N/M derivative I mean that if you keep adding strings to a set, yielding sets with N+1, N+2... strings, addition increases set's collision estimate by N/M after each operation, if set's current collision estimate is N^2/M/2.

Can you please give a clear definition of what you mean by "set's collision estimate"?

"set's collision estimate" is what "estimated total number of collisions" equals to, in all SMHasher tests.
Why the paper you've quoted talks about "linearity of expectations", on what premises?

"set's collision estimate" is what "estimated total number of collisions" equals to, in all SMHasher tests.

Yes, universal hashing makes no direct claims about that. Any bounds on that are entirely statistical, derived from the bound on pairs of strings.

Why the paper you've quoted talks about "linearity of expectation", on what premises?

https://math.stackexchange.com/questions/1810365/proof-of-linearity-for-expectation-given-random-variables-are-dependent
Also this isn't a "paper you've quoted", this is from the lecture notes you linked in your initial post. It's from https://www.cs.cmu.edu/~avrim/451f11/lectures/lect1004.pdf.

Yes, partially it was my misunderstanding. The set's collision estimate is emergent and not really definable while "universality" constraints are much simpler. But I have a further question - where can I find a proof that PolyMur's permutation yields uniformly-random output for any input, because without that the Pr(x and y collide)<1/M bound cannot be considered proven.

The set's collision estimate is emergent

Exactly.

and not really definable while "universality" constraints are much simpler.

There are also concepts of universality which do go beyond traditional universality, those are (almost-)k-independent hash function families. They are saying that if you have a set of k elements, the probability their hashes are any particular k-tuple is bounded.
To my knowledge we only have practical ways of constructing k-independent hash functions for relatively small k, and only for fixed-size inputs, not arbitrary-length strings when k > 2.

But I have a further question - where can I find a proof that PolyMur's permutation yields uniformly-random output for any input, because without that the Pr(x and y collide)<1/M bound cannot be considered proven.

As I said, Polymur is not exactly 1/M (where M = 2^64), but rather claims Pr(x and y collide) <= n * 2^-60.2 where n = len(x).
The proof for that is here: https://github.com/orlp/polymur-hash/blob/master/extras/universality-proof.md.

I mean the proof that for all values of set S from U, the permutation produces a set of pseudo-random values - values that look like a random oracle, if observer does not know original values of S.

That's a stronger property than regular universality, but luckily Polymur claims to be almost-2-independent, which is a stronger version of this anyway. Polymur claims that pairs of values look like random variables. That is, Polymur claims that if H is chosen independently at random from the family that for ANY m != m' and ANY x, y that
Pr[H(m) = x  &&  H(m') = y] <= n * 2^-124.2

You can just ignore one of the two variables and assume it collides to get a bound of n * 2^-60.2 on any particular output.
Note that again we prove the chance of any specific output is low, for a single input (or a single pair). A claim about "a set of pseudo-random values" where that set would have > 2 elements would again be an emergent probability from pulling multiple random numbers.

Also,

But I have a further question - where can I find a proof that PolyMur's permutation yields uniformly-random output for any input, because without that the Pr(x and y collide)<1/M bound cannot be considered proven.

That claim is not true. Consider a 64-bit hash function with a perfect 2^-64 collision bound. I can take that hash function, set the lowest bit to 0 and use that as a new hash function. It's now perfectly valid to claim this new function has a 2^-63 bound. But obviously the output is not uniformly random.

I'm maybe overlooking something in your proof, but I do not see how your construction leads to pair-wise independence (50% difference in bits) of outputs. Maybe you are referring to some "common knowledge" I have not read/can't remember at the moment? I do not argue with PolyMur's practical performance, but a proof is something more formal.

But I have a further question - where can I find a proof that PolyMur's permutation yields uniformly-random output for any input, [because without that the Pr(x and y collide)<1/M bound cannot be considered proven].

Consider a 64-bit hash function with a perfect 2^-64 collision bound. I can take that hash function, set the lowest bit to 0 and use that as a new hash function. It's now perfectly valid to claim this new function has a 2^-63 collision bound. But obviously the output is not uniformly random.

Uniform randomness is a statistical property. 1/M bound is emergent from probability theory. If bin A is used (among M bins), the probability the next independent random number will also refer to bin A is 1/M.

I'm maybe overlooking something in your proof, but I do not see how your construction leads to pair-wise independence (50% difference in bits) of outputs.

That is a different definition of pairwise independence. The definition for pairwise independence in universal hashing can be seen on Wikipedia:

It's also called strong universality, in our case almost-strong universality.

Uniform randomness is a statistical property. 1/M bound is emergent from probability theory. If bin A is used (among M total bins), the probability the next independent random number will also refer to bin A is 1/M.

Sure, but as my counter-example showed, low chance of collision does not imply every bit of the output looks random. In the most extreme case, consider hashing 32-bit numbers to 32-bit numbers. The identity function has 0 collisions, but obviously is not random.

Ok, understood about the pairwise independence. Can you comment how collision bound in the proof is useful if k when hashing a set of values is usually unchanging. In such condition, I can only rely on message's properties, not the key. Referring to (14 + n/7) / |K|.

As for zeroing the lowest bit example which reduces collision expectation, the issue with the example is that while collision expectation will change, and seemingly won't break anything, an initially random function will not be strictly uniformly-random anymore, and so probability theory won't be applicable. Strictly speaking, you can't use 1/M pair-wise collision estimate on a variable that was not previously shown to be uniformly-random. That for myself, maybe you do not look at things this way.

Can you comment how collision bound in the proof is useful if k when hashing a set of values is usually unchanging.

The point is that k is chosen uniformly at random independently from the values. As long as that holds, the bound is valid. At that point seeing k is "unchanging" doesn't matter. Since we assume the key was chosen independent from the value it doesn't matter whether k was chosen just now or ages ago - the choice was independent.
This does mean it's not secure to leak the hash values to an attacker, please read this section. If an attacker can see the hash values, he can potentially construct new values which are much more likely to collide.

Strictly speaking, you can't use 1/M pair-wise collision estimate on a variable that was not previously shown to be uniformly-random. That for myself, maybe you do not look at things this way.

Well, that's just mathematically wrong. Each input behaving as if being uniformly random is a sufficient but not necessary condition for collision resistance.
Consider a 16-bit to 16-bit identity hash function. It is not random at all but it literally can not create collisions. This isn't a trick either, it means if your input is 16 bits and you're building a hash table with 2^16 slots you can just use the identity hash function and never get collisions or the problems that come with them. That specific kind of hash table has a useful name: an array.

Well, events of collisions depend on variations in messages or keys. f = k^7 * (f + m[6]) implies f depends on both message and key at the same time. If key is fixed in a set, then only messages affect events of collisions, functionally. As for myself, I cannot accept the collision bound for the case of a fixed key.

Consider a 16-bit to 16-bit identity hash function. It is not random at all but it literally can not create collisions. This isn't a trick either, it means if your input is 16 bits and you're building a hash table with 2^16 slots you can just use the identity hash function and never get collisions or the problems that come with them. That specific kind of hash table has a useful name: an array.
I'm assuming an identity hash is non-random and it cannot be "universal" by definition. Then its collision expectation is knowingly 0, no need for a bound.

As for myself, I cannot accept the collision bound for the case of a fixed key.

There is no collision bound for a fixed key at all. That's not how universal hash functions work. The bound is always assuming the hash function is picked at random from the hash function family. This is fundamental.

There is no collision bound for a fixed key at all. That's not how universal hash functions work. The bound is always assuming the hash function is picked at random from the hash function family. This is fundamental.

But how this is practical? When one fills a structure with values the key is always fixed. Otherwise value lookup is just impossible.

Again, SSL is secured using this assumption - the key is chosen randomly and independently from the values, and the attacker never gets to see the hashes directly.

SSL is a stream cipher beside KEM; this is unrelated to hashing.

But how this is practical? When one fills a structure with values the key is always fixed. Otherwise value lookup is just impossible

The key isn't fixed. The key is chosen randomly at startup when the hash function is initialized independently from the values.

SSL is a stream cipher beside KEM; this is unrelated to hashing.

SSL includes authentication of the data. Authentication in 2023 is typically done with with Galois Counter Mode or Poly1305, both of which are universal hash based constructions.

Either way, I'm sorry, this is taking up too much of my time now. I would strongly suggest doing some more reading on what universal hashing is or how it works on a fundamental level.
The original paper that introduced universal hashing is Universal Classes of Hash Functions by Carter & Wegman. I would suggest starting there.

No problem. However, the key is fixed during application's lifetime usually. It's practically the same as selecting a single hash function from a family, for unlimited duration of time, in case of a server application, for example. Okay, abstractly it is an independent argument to the hash function, but functionally it does not change. MAC is another story - there key and/or nonce changes frequently. (GCM is stream cipher's operation mode)

You may delete the issue if it seems unuseful or confusing to potential users.

Another possible issue I've found in PolyMur's proof, and referring to your stance about 1/M pair-wise collision bound (that uniform randomness of hash outputs is out of the question). What your proof is lacking I think is that it does not show that pair-wise collisions of outputs for m and m' are bounded to 1/M. Your proof relies on pre-requisite that keys are chosen in a uniformly-random manner. But the case when both m and m' use the same key is not covered. So, a central pre-requisite of "universal hashing" (Pr[x and y collide]<1/M) for the case of same keys in x and y is not proven.

Your proof relies on pre-requisite that keys are chosen in a uniformly-random manner. But the case when both m and m' use the same key is not covered.

It absolutely is. The key is not chosen per message, the key is chosen per function. The choice of k is what determines hash function H from the family. So in the claim
Pr[H(m) = x  &&  H(m') = y] <= eps

there is only a single H, and thus a single choice of k.

Look Alexey... I'm aware of your work on komihash. You clearly know a lot about traditional hash functions and are not a stupid man. I say this, because I really need you to change your approach from trying to jump on the first thing that looks wrong to you to trying to learn instead.
Universal hash functions are a mathematical construct. To understand their claims and proofs you have to be very careful, and understand the mathematical background. This is work, and it's not intuitive. I understand it can be hard and confusing.
But claims this and that isn't proven (especially things as basic as linearity of expectation) show you simply haven't done the homework. Please read the paper I have suggested to you, and really try to understand the math. Another suggestion is to read High Speed Hashing for Integers and Strings and do the exercises. Many of the things you say "hey, this looks wrong" are covered in those exercises - they force you to examine your own assumptions.
It is hard, I understand. I struggled with it too! But you have to get these fundamentals right before you can start to analyze more complex constructions.

Well, I expected you would tell me to read stuff. Yes, my understanding of "universality" constraints was initially incomplete - the issue I had is with the total collision estimate of a set - I expected it's the first thing a "universal" hashing has to follow. Then I do have issues with terminology - it changes, it may be different in other sources, but it does not mean I do not know that probabilities of two uniformly-random events sum.
However, this in no way makes my further questions "absurd". I'm like you are interested in obtaining a proof of universality, and I'm taking your proof as some kind of a basis. For example, how you can prove "linearity of expectation" for your hash if you did not prove collision bound for the case of same keys.
MACs are totally different in this respect - they need to prove collision bound for independent streams, not for a local data set.

I never said your questions were absurd. They're very natural questions. They are however also very basic questions covered in any text on universal hash functions, and are not questions specific to Polymur. Your questions apply to any universal hash function family.
Which is why I said this takes too much of my time, and ask you to do the homework needed to cover the basics. If anything is unclear specifically about Polymur  or its design I'm happy to help. But I'm not here to give a 1 on 1 informal lecture on universal hashing.

I do not say your proof is wrong - I only say it applies to a specific case of MAC hashing, when key is uniquely generated for each hashing operation, without any requirement to store hashes in a single data set.

I only say it applies to a specific case of MAC hashing, when key is uniquely generated for each hashing operation

Please read section 4 "authenticating multiple messages" from New hash functions and their use in authentication and set equality by Wegman and Carter. It proves that for any strongly universal hash function family you can reuse the same hash function for authentication as long as you hide the hash values from the attacker (which they do with a one-time-pad).
There are similar proofs that for any strongly universal hash function hash table access with chaining takes 0(1) expected time.

I do not say your proof is wrong - I only say it applies to

The thing is, the proven claim has a standard form. It proves the almost (strong) universality. Because of that we can reuse results that only rely on that property, such as the above results.
This is why I say your questions are not about Polymur! If your problem isn't with the proof but with its applicability you have general questions about universality, for which I already pointed you to multiple resources to learn from.

Is PolyMur "strongly universal", and where I can gather that from the proof? Sorry if that's obvious.
In either case, my opinion is that if "non-strong universality" implies collision bound only with a pre-requisite of "random choice of family functions", it is practically only useful for MACs. OK, not arguing with theory, but theories have their limits of applicability, and it's not always obvious from the theory itself where it isn't applicable.
Anyway, thanks for the discussion. I still think "almost universal" claims are a bit of an exaggeration, an unfair advantage. And I think most of the hash functions that pass all SMHasher tests are practically "universal" except most of them have no formal proofs. Because SMHasher was built to test some basic statistics that are also claimed for "universal" hash functions.

Is PolyMur "strongly universal", and where I can gather that from the proof? Sorry if that's obvious.

Polymur is almost-strongly universal. That's this claim from the proof:

If H is chosen randomly and independently then for any m != m' and any hash outcomes x, y we have
Pr[H(m) = x  &&  H(m') = y] <= n * 2^-124.2

Instead of phrasing it as a probability, the paper by Carter and Wegman simply counts the number of functions H in the family such that H(m) = x  &&  H(m') = y. But it's the same concept, divide this count by the total number of possible functions to get the probability (since we choose the function at random from the family).

In either case, my opinion is that if "non-strong universality" implies collision bound only with a pre-requisite of "random choice of family functions", it is practically only useful for MACs. OK, not arguing with theory, but theories have their limits of applicability, and it's not always obvious from the theory itself where it isn't applicable.

Well, it's also useful in the case of hash tables as it proves expected O(1) access time when using chaining, which is explicitly the intended purpose of Polymur. You can't just discount this proof 'in your opinion'. This is math, not opinion. Most modern hash table implementations already generate a random hash function per table, or per program, to protect against HashDoS.

Anyway, thanks for the discussion. I still think "almost universal" claims are a bit of an exaggeration, an unfair advantage. And I think most of the hash functions that pass all SMHasher tests are practically "universal" except most of them have no formal proofs. Because SMHasher was built to test some basic statistics that are also claimed for "universal" hash functions.

I don't think it's unfair. It is easy to make hash functions that pass SMHasher but for which an attacker can still construct arbitrary multicollisions.

I don't think it's unfair. It is easy to make hash functions that pass SMHasher but for which an attacker can still construct arbitrary multicollisions.

I doubt it, if the function passes Perlin Noise and Seed tests as well. But as SMHasher fork's author notes, quick brute-force generation of collisions is possible for all "fast" hashes. Except server applications usually do not give even a chance to flood with unnecessary information.
At the moment I think I'll leave this 40 year old "universality" alone for the sake of happier life. I can't swallow a proof that refers to |K| and its variation whereas functionally k is unchanging.

authors: avaneev orlp

repo: orlp/polymur-hash

license: Zlib


text:
Add support for custom hashers in SparseSecondaryMap. Closes #14

Merging after #18 will require the tweak for std::hash to core::hash.

I would rather merge this first then leave the no std for last.

@orlp Rebased onto your master.

authors: james-darkfox orlp

repo: orlp/slotmap


text:
Extra closing brace removed

Call me crazy but I think there's a dangling closing brace.

ok but why all the extra spaces?

fixed extra space

authors: dehidehidehi ornicar

repo: ornicar/userstyles

license: WTFPL


text:
MediaDevices: add support for MediaTrackConstraints.channelCount

Fixes #446
TODO: channelCount should be modeled as a ConstrainULong, not just u32.
TODO: cubeb support

Cool, really nice you could make it so fast

authors: b-ma orottier

repo: orottier/web-audio-api-rs


text:
proof of concept: delegation.

The point of this exploration is to see if we can hide some of the internals of the (base)audiocontext implementation from the user facing code as discussed in #76
Ideally AsBaseAudioContext should go, as it is not part of the official spec and might surprise users that they have to import that trait. I'm not entirely sure if we can drop it though as it is used in the generics setup. We should be able to drop it from user facing code though
The BaseAudioContext must stay as it is part of the spec

@tasogare3710 my suggestion for moving forwards would be:

scratch the current work and start fresh
start by looking at 1 example, e.g. example/simple_delay.rs
remove the import of AsBaseAudioContext
obviously it won't compile now. Add the required methods to AudioContext with the delegate trait. For example delegate context.create_delay to the base()
now you can remove the create_delay method from AsBaseAudioContext
rinse, repeat, for more methods and examples and apply to OfflineAudioContext too
check if the docs look good for AudioContext, OfflineAudioContext (cargo doc --lib --open)
check if there is any user facing code still containing AsBaseAudioContext (I mean the examples, integration tests and docs)

Thanks for the comments, it made me realize any choice we make will have disadvantages..
Summarizing the three options at the table

structs AudioContext, OfflineAudioContext and BaseAudioContext.
trait AsBaseAudioContext for shared functionality and mimicking the inheritance.
This is the current state.
Advantages: rust-like
Disadvantages: users need to import AsBaseAudioContext most of the time, which is not part of the spec

structs AudioContext, OfflineAudioContext and ConcreteBaseAudioContext.
trait BaseAudioContext for shared functionality and mimicking the inheritance.
Advantages: no need for strange imports in user facing code, still powerful and not too bad from a rust perspective
Disadvantages: whenever you need to deal with the actual base (this is rare), the struct name may be surprising

structs AudioContext, OfflineAudioContext and BaseAudioContext.
no traits. We use delegation/macros to make all shared functionality available on the three structs
Advantages: no names that are not part of spec
Disadvantages: not rust-like. No possibility for function to be generic over a shared trait (we use that in Node constructors now) but we could avoid that issue by forcing to take in a BaseAudioContext always

For context, we are using option 2 for AudioNode and AudioScheduledSourceNode which I think works out well. There is no issue there because they are never used as concrete types.
All in all I think I am in favour of option 2 now - we model inheritance using traits, always.
We could even make the namespace like this:
crate::context::{AudioContext, OfflineAudioContext, BaseAudioContext, concrete::BaseAudioContext}
@b-ma any final thoughts?

Hey,
Yup I agree, option 2. seems both the more clean and simple solution. (Then, we will also have to fix the discrepancy of the AudioScheduledSourceNode to make it coherent with this rule too, I will have a look)
I dont know for the namespacing concrete::BaseAudioContext, it seems quite good but also a bit strange alongside the BaseAudioContextInner.

Wouldn't it be possible to somehow merge BaseAudioContextInner and ConcreteBaseAudioContext (I don't really have a clear picture of the possible implications)?
If not possible or just complicating things, maybe doing something like concrete::{BaseAudioContext, BaseAudioContextInner} so that these two stay coherent?

Fortunately BaseAudioContextInner is an implementation detail and is not exposed in the public interface.
The reason for BaseAudioContext { inner: Arc<BaseAudioContextInner> } is that we clone it many times. All the AudioNodes have static lifetime (meaning, they do not contain references, only owned values) which is great for user friendlyness. The nodes contain an AudioContextRegistration which has reference to the base context via that Arc
We could rename BaseAudioContextInner --> BaseAudioFields if that makes it easier for the eyes?

Yup I see, thanks for the explanation, looks indeed logical to keep this simple

We could rename BaseAudioContextInner --> BaseAudioFields if that makes it easier for the eyes?

No, Inner is good I think and already used here and there if I remember well.
However, I would go for ConcreteAudioContextInner, so we have:

trait BaseAudioContext (which retrieve)
ConcreteBaseAudioContext (which holds)
ConcreteBaseAudioContextInner
(not sure of my keyword relationships but you see the idea :)

(Then, we will also have to fix the discrepancy of the AudioScheduledSourceNode to make it coherent with this rule too, I will have a look)

Yes I think we can make that one follow the spec better. Right now the trait exposes the implementation detail of Scheduler and then derives the methods from the spec (start, stop etc).
We should change that to just the raw trait, require implementers to supply start(_at), stop etc
Internally we can use the Scheduler, but we should remove that from the public API (the whole src/control.rs file actually)
Was that what you had in mind too @b-ma  ?

We should change that to just the raw trait, require implementers to supply start(_at), stop etc
Internally we can use the Scheduler, but we should remove that from the public API (the whole src/control.rs file actually)

Yup, I think it looks really more safe to go that path

Thanks for moving the discussion forward @tasogare3710
I'm closing this PR in favour of #102

@orottier

Thanks for moving the discussion forward @tasogare3710
I'm closing this PR in favour of #102

Got it. it's my pleasure.

authors: b-ma orottier tasogare3710


text:
Add deployment example

This PR adds an example of how to use the OpenTelemetry Collector (Red Hat Distribution) as deployment.

@iblancasa please wait for approvals before merging

@pavolloffay since we talked and you told me it looks OK, I decided to merge after your last requests. Sorry for that.

authors: iblancasa pavolloffay

repo: os-observability/redhat-rhosdt-samples


text:
Update FwController.cs

Will not be excessive, because the JSON reposnse doesn't get return_url value as location in afterSaveLocation() earlier.
I used it with modals and form ajax submits to other controllers.

Let's discuss this.
Wouldn't it be better to update afterSaveLocation instead?
So we can have just a single location response?
Having 2 urls in response doesn't seem right.

Revoking this pull-request. afterSaveLocation must be reviewed for the JSON. Currently. the return_url parameter is doubled for the JSON location result. And I noticed that the HTTP error code has been changed from 200 to 400 for the validation exception, so other chanes are nesassairly (in autosave code, for example) to catch the form errors. Currently, I parese the location result and check extract the return_url. My

authors: osalabs vladsavchuk


text:
Include template from schema does not work

Hello Oscar,
I started working on the oddgen project. The goal is to support several template languages, one of them is tePLSQL.
I've tried to include a template using <%@ include(templ, my_package, package_body, demo) %>. This was not working for several reasons:

There is a typo in tePLSQL.pkb on line 532 (l_object_type instead of l_schema).
dbms_metadata.get_ddl fails when called from another user, because dbms_metadata requires the SELECT_CATALOG_ROLE which is not visible in a definer rights package.

The first problem is easy to fix ;-). For the second one I see the following options:

from 12.1 on you may grant the role to the package directly, e.g. GRANT select_catalog_role TO PACKAGE teplsql.teplsql;. This was my solution.
to support older Oracle versions you may switch to invoker rights or you may access the dba_source view directly

Thanks.
Best Regards,
Philipp

Thanks Philipp for finding this bug.
I will fix it soon.

authors: PhilippSalvisberg osalvador

repo: osalvador/tePLSQL


text:
fedora: webui only on rawhide

The webui for Fedora has been delayed until Fedora 41, current rawhide. Let our version gates reflect that.

Speaking of, do we want a const RAWHIDE somewhere in distro/fedora?

Duplicate of #479.

repo: osbuild/images


text:
Support icon theme

I would like to be able to choose different icon themes for light/dark

Which icons do you mean? Do you use Gnome, KDE or something else? Or do you mean an application?

Which icons do you mean? Do you use Gnome, KDE or something else? Or do you mean an application?

I mean all applications icons. I use KDE.

Ok, this was already requested in #50

repo: oskarsh/Yin-Yang


text:
scientific_full fora do ar, documentar e juntar essa issue com as demais sobre edição de coberturas

https://afa.codes/scientific_full/

Diretamente não funciona. precisa acessar um código, por exemplo: https://afa.codes/scientific_full/BR+d
Tal qual funciona a scientific normal.

repo: osm-codes/gridMap-draftPages


text:
Birthday and hack weekend

I should've done a blog post about the birthday and London hack weekend earlier. My excuse is that somebody else had the list of hacks. He's published that now so I think I'll write something and put it out today:
https://hackpad.com/Birthday-and-hack-weekend-HJAjZHsJ8eb

posted https://blog.openstreetmap.org/2015/08/15/birthday-hack-weekend/

repo: osm-cwg/posts


text:
Différencier l'origine du libellé

Hello,
Colonne Libellé BAN ou Cadastre, ajouter un moyen de discriminer l'origine.
Pastille de couleur comme dans la colonne Libellé OSM, police de couleur,... je n'ai pas d'idée particulière
Je ne sais pas s'il y aura besoin de filtrer cette info. Utilité ?

Colonne Libellé BAN ou Cadastre, ajouter un moyen de discriminer l'origine.

C'est maintenant le cas pour chaque ligne avec des petits pictos

repo: osm-fr/osm-vs-fantoir


text:
failing test - test_children_center_is_not_an_intentional_human_activity

This test is now failing since instance of was changed from camp to summer camp.
https://www.wikidata.org/w/index.php?title=Q706474&diff=2049000673&oldid=1982054285
I think it might be worth finding an an alternative camp for this test case

Can you try following https://github.com/osm-quality/wikibrain/blob/master/CONTRIBUTING.md#nonsense-reports ?
Feel free to write here on first encounter with something unclear/confusing.

authors: KasperFranz matkoniecz

repo: osm-quality/wikibrain


text:
Explore the cosmogony

We will need a visualization tool (or maybe several tools ?) for our day to day usage of cosmogony.
The purpose of this issue is to gather our needs. Then we may summarize it in the readme of this repo.
Visual coverage by zone type
we want to explore the world on a map, select an zone type and see the existing zones of this type on the map to get an idea of the coverage
a POC has been done in this repo, PR : https://github.com/osm-without-borders/cosmogony_explorer/pull/1
View zone metadata
we want to select a zone and get all its metadata (names in different languages, wikidata id, etc)
All zones containing a point
we want to click the map and see all the zones including the point
Explore the hierarchy
we want to select a zone, and get an idea of its hierarchy :

see all its parent zones
see all its direct child zones
see all its child zones, cascading the hierarchy
see its other linked zones

Download some zones
we want to select some zones (selecting from the map and/or using the hierarchy) and download them in a GIS friendly format (at least geojson, with metadata as properties).
Quality assurance
We want some dashboard with the coverage tests results described in issue #4

We have a pretty good start in this repo : https://github.com/osm-without-borders/cosmogony_explorer

[x] Visual coverage by zone type
[x] View zone metadata
[x] Explore the hierarchy

repo: osm-without-borders/cosmogony