scion - vmTest should account for cert expiration

Description of changes

The freestanding test suffers from certificate expiration errors after certificates are cached in the /nix/store. This
currently is an existing limitation with the test. However, the test was passing regardless. I have fixed these falsely
passing tests and included a certificate verification check via scion-pki to ensure that the certificates are valid
prior to running the rest of the test suite. Long term I think it could be a good idea to mock the system and hardware
clocks so that the vms run at a known datetime during the test.
Testing the failure case is a little hard because you have to either generate certificates that are already expired or
wait for already generated certs in your /nix/store to expire (10 days) then rerun the tests. I have left my cache
with the expired certs alone in order to test these failure cases and bump the TRC certificate template by a day to
rebuild the cache.
Details
During some recent testing I was getting the following error on any of the scion nodes in the freestanding test. Example of
being unable to get scion ping to work from scion01 (42-ffaa:1:1):
$ scion ping 42-ffaa:1:2,<IP_ADDRESS> 2>&1
Error: fetching paths: no path available

I noticed the following error in scion-control:
$ systemctl status scion-control -l
● scion-control.service - SCION Control Service
     Loaded: loaded (/etc/systemd/system/scion-control.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-09-15 00:55:42 UTC; 1min 55s ago
 Invocation: 5c474136670746da801582bd90858d46
   Main PID: 612 (scion-control)
         IP: 0B in, 0B out
         IO: 0B read, 0B written
      Tasks: 7 (limit: 1139)
     Memory: 22.1M (peak: 22.4M)
        CPU: 1.115s
     CGroup: /system.slice/scion-control.service
             └─612 /nix/store/ivbfaqfghkbaivrmqz34ch530ay07vqh-scion-0.11.0/bin/scion-control --config /nix/store/45p54wxmyw0yg0zav1nhiihabc96xwpk-scion-control.toml

Sep 15 00:57:25 scion01 scion-control[612]: 2024-09-15 00:57:25.593885+0000        INFO           beaconing/originator.go:118        Unable to originate on interface        {"debug_id": "03e10c0a", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
Sep 15 00:57:25 scion01 scion-control[612]: 2024-09-15 00:57:25.594380+0000        INFO           beaconing/originator.go:118        Unable to originate on interface        {"debug_id": "03e10c0a", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
...

Which revealed an expiration for the datetime of the certificates that were catched in my /nix/store from the previous
week:
$ scion-pki certificate verify --trc certs/*.trc crypto/as/*.pem 2>&1
Error: verification failed: chain did not verify against any selected TRC {errors=[verifying chain {trc_base=1; trc_serial=1}: x509: certificate has expired or is not yet valid: current time 2024-09-15T00:52:49Z is after 2024-09-13T20:35:35Z]}

Indead the certificate for the AS was expired:
$ scion-pki certificate inspect crypto/as/*.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:<PHONE_NUMBER>564332414198402120506238248102663886261 (0xb384f1411f24853df54726f98766998a105915b5)
    Signature Algorithm: ECDSA-SHA256
        Issuer: CN=42-ffaa:1:1 CA cert,UnknownOID=<IP_ADDRESS>.4.1.553<IP_ADDRESS>
        Validity
            Not Before: Sep 10 20:35:35 2024 UTC
            Not After : Sep 13 20:35:35 2024 UTC
        Subject: CN=42-ffaa:1:1 AS cert,UnknownOID=<IP_ADDRESS>.4.1.553<IP_ADDRESS>
        Subject Public Key Info:
            Public Key Algorithm: ECDSA
                Public-Key: (256 bit)
                X:
                    ce:19:51:cb:25:dd:66:30:7a:86:7f:69:99:06:37:
                    b9:d8:fc:ce:42:2b:af:36:ff:20:7b:c7:9b:83:e4:
                    e5:2e
                Y:
                    43:65:98:3c:c7:0e:b9:dd:ee:48:03:65:15:61:9e:
                    eb:f5:ec:d8:f4:c2:84:75:e5:f6:6e:7e:96:d9:be:
                    62:f8
                Curve: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Extended Key Usage:
                Server Authentication, Client Authentication, Time Stamping
            X509v3 Subject Key Identifier:
                18:65:21:2A:59:AF:46:DF:81:7C:CF:D7:72:AB:47:64:E8:89:8D:EA
            X509v3 Authority Key Identifier:
                keyid:06:4C:A1:B5:63:39:D6:78:E9:13:A7:6E:33:59:78:64:8B:7A:CF:D9
    Signature Algorithm: ECDSA-SHA256
         30:44:02:20:15:ce:c7:ff:af:a1:f4:5b:86:61:52:15:e5:76:
         57:37:6f:8d:cb:b0:52:31:14:73:3b:3f:f9:3c:74:78:34:cf:
         02:20:04:1a:f7:29:5f:69:77:63:1c:b7:c3:71:73:86:ae:67:
         39:ac:36:cc:55:ed:ed:66:49:a1:f9:c6:42:72:c5:84
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:<PHONE_NUMBER>95878617523045400181256210267404885984 (0x676503e5ce797b2dc4a9e57595493f56312ddfe0)
    Signature Algorithm: ECDSA-SHA256
        Issuer: CN=42-ffaa:1:1 cp root cert,UnknownOID=<IP_ADDRESS>.4.1.553<IP_ADDRESS>
        Validity
            Not Before: Sep 10 20:35:35 2024 UTC
            Not After : Sep 21 20:35:35 2024 UTC
        Subject: CN=42-ffaa:1:1 CA cert,UnknownOID=<IP_ADDRESS>.4.1.553<IP_ADDRESS>
        Subject Public Key Info:
            Public Key Algorithm: ECDSA
                Public-Key: (256 bit)
                X:
                    fb:60:43:56:5e:c8:12:a4:20:80:34:b0:b9:f9:3a:
                    3f:3a:23:1a:1e:b1:a4:d9:c7:f6:e2:0e:35:77:0c:
                    35:0b
                Y:
                    35:98:87:69:f6:ae:c1:2f:ad:4f:30:d8:5b:0d:00:
                    46:ab:d6:aa:53:bf:b8:7b:2c:5a:6b:36:2e:ba:0f:
                    f7:c0
                Curve: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Subject Key Identifier:
                06:4C:A1:B5:63:39:D6:78:E9:13:A7:6E:33:59:78:64:8B:7A:CF:D9
            X509v3 Authority Key Identifier:
                keyid:09:AE:7D:CA:EC:39:4D:94:4F:BA:1C:B1:24:45:D6:C7:8C:13:1D:DE
    Signature Algorithm: ECDSA-SHA256
         30:46:02:21:00:fe:55:18:50:d8:f3:72:8f:54:77:f6:66:54:
         46:34:e5:a8:eb:a0:b0:1e:4b:b0:f2:35:64:00:07:01:9b:fa:
         1a:02:21:00:96:0d:68:5e:c5:18:2f:ff:f3:18:01:cd:6f:68:
         4a:99:e3:08:61:eb:30:b7:4f:06:aa:11:f0:1c:83:11:93:ce

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I would say the timeout of 10 might be a little low, since you could imagine slower and more loaded systems taking more time. I think I put the timeout of 100 there because Hydra was this slow when running the tests. Best to keep it high.

Yep makes sense, left over from my own testing to see the failure quickly.

Here is some proof of the failure cases of $ nix build .#nixosTests.scion-freestanding-deployment
If scion-pki certificate verify fails:
...
scion01: must succeed: scion-pki certificate verify --trc /etc/scion/certs/*.trc /etc/scion/crypto/as/*.pem >&2
scion01 # Error: verification failed: chain did not verify against any selected TRC {errors=[verifying chain {trc_base=1; trc_serial=1}: x509: certificate has expired or is not yet valid: current time 2024-09-15T17:51:22Z is after 2024-09-13T20:35:35Z]}
scion01: output:
cleanup
kill machine (pid 10)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 31)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 52)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 73)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 95)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
(finished: cleanup, in 0.05 seconds)
Traceback (most recent call last):
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/bin/.nixos-test-driver-wrapped", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/__init__.py", line 146, in main
    driver.run_tests()
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/driver.py", line 166, in run_tests
    self.test_script()
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/driver.py", line 158, in test_script
    exec(self.tests, symbols, None)
  File "<string>", line 32, in <module>
  File "<string>", line 15, in succeed
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/machine.py", line 611, in succeed
    raise Exception(f"command `{command}` failed (exit code {status})")
Exception: command `scion-pki certificate verify --trc /etc/scion/certs/*.trc /etc/scion/crypto/as/*.pem >&2` failed (exit code 1)
kill vlan (pid 8)

If scion showpaths and/or scion ping fails:
...
scion01: must succeed: /nix/store/79qyvacn46c8yspv3a04ir81jc1ig49b-ping-all-scion.sh >&2
scion02 # [   13.134379] scion-control[720]: 2024-09-15 17:39:56.564951+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion02 # [   13.144923] scion-control[720]: 2024-09-15 17:39:56.575262+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion02 # [   13.155361] scion-control[720]: 2024-09-15 17:39:56.575330+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion01 # [   13.463350] scion-control[750]: 2024-09-15 17:39:56.830639+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion01 # [   13.474459] scion-control[750]: 2024-09-15 17:39:56.841988+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion01 # [   13.484938] scion-control[750]: 2024-09-15 17:39:56.842049+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion01 # Error: no path found
scion01 # Error: no path found
scion01 # Error: no path found
scion01 # Error: no path found
scion03 # [   17.879496] scion-control[723]: 2024-09-15 17:40:01.333539+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 4, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 4}}
scion03 # [   17.889423] scion-control[723]: 2024-09-15 17:40:01.334057+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion03 # [   17.899749] scion-control[723]: 2024-09-15 17:40:01.345241+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion03 # [   17.910081] scion-control[723]: 2024-09-15 17:40:01.354687+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion01 # Error: no path found
scion02 # [   18.632738] scion-control[720]: 2024-09-15 17:40:02.063004+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion02 # [   18.642855] scion-control[720]: 2024-09-15 17:40:02.063196+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion02 # [   18.652934] scion-control[720]: 2024-09-15 17:40:02.063242+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion01 # [   18.954841] scion-control[750]: 2024-09-15 17:40:02.321691+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion01 # [   18.965887] scion-control[750]: 2024-09-15 17:40:02.332963+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion01 # [   18.976393] scion-control[750]: 2024-09-15 17:40:02.333339+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion01 # Error: no path found
scion01 # Error: no path found
scion01 # Error: no path found
scion03 # [   21.841499] scion-control[723]: 2024-09-15 17:40:05.296015+0000    INFO               control/main.go:522  Failed signer health check      {"err": {"msg": "failed to generate signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "github.com/scionproto/scion/control/trust.RenewingSigner.Sign github.com/scionproto/scion/control/trust/signer.go:44", "main.realMain.func4 github.com/scionproto/scion/control/cmd/control/main.go:521", "github.com/scionproto/scion/private/periodic.Func.Run github.com/scionproto/scion/private/periodic/periodic.go:85", "github.com/scionproto/scion/private/periodic.(*Runner).onTick github.com/scionproto/scion/private/periodic/periodic.go:213", "github.com/scionproto/scion/private/periodic.(*Runner).runLoop github.com/scionproto/scion/private/periodic/periodic.go:195", "github.com/scionproto/scion/private/periodic.StartWithMetrics.func1 github.com/scionproto/scion/private/periodic/periodic.go:145"]}}}
scion04 # [   22.002776] scion-control[727]: 2024-09-15 17:40:05.490604+0000    INFO               control/main.go:522  Failed signer health check      {"err": {"msg": "failed to generate signer", "cause": {"msg": "no certificate found", "stacktrace": ["github.com/scionproto/scion/private/trust.SignerGen.Generate github.com/scionproto/scion/private/trust/signer_gen.go:83", "github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:58", "github.com/scionproto/scion/control/trust.RenewingSigner.Sign github.com/scionproto/scion/control/trust/signer.go:44", "main.realMain.func4 github.com/scionproto/scion/control/cmd/control/main.go:521", "github.com/scionproto/scion/private/periodic.Func.Run github.com/scionproto/scion/private/periodic/periodic.go:85", "github.com/scionproto/scion/private/periodic.(*Runner).onTick github.com/scionproto/scion/private/periodic/periodic.go:213", "github.com/scionproto/scion/private/periodic.(*Runner).runLoop github.com/scionproto/scion/private/periodic/periodic.go:195", "github.com/scionproto/scion/private/periodic.StartWithMetrics.func1 github.com/scionproto/scion/private/periodic/periodic.go:145"], "num_private_keys": 1}}}
scion01 # Error: no path found
scion02 # [   22.589899] scion-control[720]: 2024-09-15 17:40:06.020298+0000    INFO               control/main.go:522  Failed signer health check      {"err": {"msg": "failed to generate signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "github.com/scionproto/scion/control/trust.RenewingSigner.Sign github.com/scionproto/scion/control/trust/signer.go:44", "main.realMain.func4 github.com/scionproto/scion/control/cmd/control/main.go:521", "github.com/scionproto/scion/private/periodic.Func.Run github.com/scionproto/scion/private/periodic/periodic.go:85", "github.com/scionproto/scion/private/periodic.(*Runner).onTick github.com/scionproto/scion/private/periodic/periodic.go:213", "github.com/scionproto/scion/private/periodic.(*Runner).runLoop github.com/scionproto/scion/private/periodic/periodic.go:195", "github.com/scionproto/scion/private/periodic.StartWithMetrics.func1 github.com/scionproto/scion/private/periodic/periodic.go:145"]}}}
scion05 # [   22.142275] scion-control[730]: 2024-09-15 17:40:06.605576+0000    INFO               control/main.go:522  Failed signer health check      {"err": {"msg": "failed to generate signer", "cause": {"msg": "no certificate found", "stacktrace": ["github.com/scionproto/scion/private/trust.SignerGen.Generate github.com/scionproto/scion/private/trust/signer_gen.go:83", "github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:58", "github.com/scionproto/scion/control/trust.RenewingSigner.Sign github.com/scionproto/scion/control/trust/signer.go:44", "main.realMain.func4 github.com/scionproto/scion/control/cmd/control/main.go:521", "github.com/scionproto/scion/private/periodic.Func.Run github.com/scionproto/scion/private/periodic/periodic.go:85", "github.com/scionproto/scion/private/periodic.(*Runner).onTick github.com/scionproto/scion/private/periodic/periodic.go:213", "github.com/scionproto/scion/private/periodic.(*Runner).runLoop github.com/scionproto/scion/private/periodic/periodic.go:195", "github.com/scionproto/scion/private/periodic.StartWithMetrics.func1 github.com/scionproto/scion/private/periodic/periodic.go:145"], "num_private_keys": 1}}}
scion01 # [   22.919453] scion-control[750]: 2024-09-15 17:40:06.286570+0000    INFO               control/main.go:522  Failed signer health check      {"err": {"msg": "failed to generate signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "github.com/scionproto/scion/control/trust.RenewingSigner.Sign github.com/scionproto/scion/control/trust/signer.go:44", "main.realMain.func4 github.com/scionproto/scion/control/cmd/control/main.go:521", "github.com/scionproto/scion/private/periodic.Func.Run github.com/scionproto/scion/private/periodic/periodic.go:85", "github.com/scionproto/scion/private/periodic.(*Runner).onTick github.com/scionproto/scion/private/periodic/periodic.go:213", "github.com/scionproto/scion/private/periodic.(*Runner).runLoop github.com/scionproto/scion/private/periodic/periodic.go:195", "github.com/scionproto/scion/private/periodic.StartWithMetrics.func1 github.com/scionproto/scion/private/periodic/periodic.go:145"]}}}
scion03 # [   22.879477] scion-control[723]: 2024-09-15 17:40:06.334225+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion03 # [   22.889987] scion-control[723]: 2024-09-15 17:40:06.344643+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion03 # [   22.900696] scion-control[723]: 2024-09-15 17:40:06.344921+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion03 # [   22.912110] scion-control[723]: 2024-09-15 17:40:06.344978+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "f39c9dca", "egress_interface": 4, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 4}}
scion01 # Error: no path found
scion02 # [   23.633221] scion-control[720]: 2024-09-15 17:40:07.063391+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion02 # [   23.643401] scion-control[720]: 2024-09-15 17:40:07.063602+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion02 # [   23.653572] scion-control[720]: 2024-09-15 17:40:07.063688+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "8b3977a1", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion01 # [   23.954925] scion-control[750]: 2024-09-15 17:40:07.321761+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 3, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 3}}
scion01 # [   23.965707] scion-control[750]: 2024-09-15 17:40:07.321929+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 1, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 1}}
scion01 # [   23.975910] scion-control[750]: 2024-09-15 17:40:07.322050+0000    INFO       beaconing/originator.go:118  Unable to originate on interface        {"debug_id": "15bb516c", "egress_interface": 2, "err": {"msg": "creating beacon", "cause": {"msg": "extending segment", "cause": {"msg": "getting signer", "cause": {"msg": "no signer cached, reload interval has not passed", "stacktrace": ["github.com/scionproto/scion/control/trust.(*CachingSignerGen).Generate github.com/scionproto/scion/control/trust/signer_gen.go:53", "main.realMain.func18 github.com/scionproto/scion/control/cmd/control/main.go:782", "github.com/scionproto/scion/control/beaconing.SignerGenFunc.Generate github.com/scionproto/scion/control/beaconing/extender.go:52", "github.com/scionproto/scion/control/beaconing.(*DefaultExtender).Extend github.com/scionproto/scion/control/beaconing/extender.go:114", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).createBeacon github.com/scionproto/scion/control/beaconing/originator.go:208", "github.com/scionproto/scion/control/beaconing.(*beaconOriginator).originateBeacon github.com/scionproto/scion/control/beaconing/originator.go:163", "github.com/scionproto/scion/control/beaconing.(*Originator).originateBeacons.func2 github.com/scionproto/scion/control/beaconing/originator.go:117"]}}}, "egress_interface": 2}}
scion01 # Error: no path found
scion01: output:
cleanup
kill machine (pid 10)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 31)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 52)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 73)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
kill machine (pid 94)
qemu-kvm: terminating on signal 15 from pid 7 (/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/bin/python3.12)
(finished: cleanup, in 0.04 seconds)
Traceback (most recent call last):
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/bin/.nixos-test-driver-wrapped", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/__init__.py", line 146, in main
    driver.run_tests()
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/driver.py", line 166, in run_tests
    self.test_script()
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/driver.py", line 158, in test_script
    exec(self.tests, symbols, None)
  File "<string>", line 35, in <module>
  File "<string>", line 15, in succeed
  File "/nix/store/07i3r7lw48irrnhgdv2ma25360z44a59-nixos-test-driver-1.1/lib/python3.12/site-packages/test_driver/machine.py", line 611, in succeed
    raise Exception(f"command `{command}` failed (exit code {status})")
Exception: command `/nix/store/79qyvacn46c8yspv3a04ir81jc1ig49b-ping-all-scion.sh >&2` failed (exit code 1)
kill vlan (pid 8)


Change feed mode switch error handling

Objective
The objective of this PR is to detect scenarios where the customer starts an AllVersionsAndDeletes CFP instance following stopping the LatestVersion CFP instance with an already initialized lease container (and vice-versa). This is to prevent scenarios where AllVersionsAndDeletes picks up a continuation from the lease outside its retention period or picks up a lease with StartFrom as BEGINNING which doesn't apply for AllVersionsAndDeletes change-feed mode.
Implementation
Transition 1: LatestVersion using EPK-range based lease to AllVersionAndDeletes:

Complete the lease store initialization flow within BootstrapperImpl.
Upon lease store initialization completion, query for EPK-range based lease documents whose id starts with a given lease prefix (or an empty prefix). This is done to see if the CFP instance in the bootstrapping phase will reuse leases or not.
If there exist leases, then extract the Mode property from the ContinuationToken of the lease document and compare it with the ChangeFeedMode value of the CFP instance in bootstrapping phase.
Throw an IllegalStateException if there is a mismatch in the Mode value from the fetched lease and the ChangeFeedMode value of the CFP instance in bootstrapping phase.

Transition 2: AllVersionAndDeletes to LatestVersion using EPK-range based lease:

Complete the lease store initialization flow within PkRangeIdVersionBootstrapperImpl.
Upon lease store initialization completion, query for query for EPK-range based lease documents whose id starts with a given lease prefix (or an empty prefix). This is done to see if the CFP instance in the bootstrapping phase will reuse leases or not.
If there exist leases, then extract the Mode property from the ContinuationToken of the lease document and compare it with the ChangeFeedMode value of the CFP instance in bootstrapping phase.
Throw an IllegalStateException if there is a mismatch in the Mode value from the fetched lease and the ChangeFeedMode value of the CFP instance in bootstrapping phase.

Transition 3: AllVersionAndDeletes to LatestVersion using Pk-range based lease:

In this scenario, when LatestVersion CFP bootstraps - it can't pick up an EPK-range based lease as the CFP instance fetches leases / .info documents whose id embeds the name-based id of the database and feed container. An EPK-range based lease & its respective .info document has id which embeds the resource id (system-generated) of the database and feed container.
Hence, in this scenario, the CFP instance will either bootstrap from pre-existing lease documents which are also PkRange-based leases (provided the lease prefix in the id of the lease document and that of the CFP instance match) or create its own Pk-range based leases.

Transition 4: LatestVersion using Pk-range based lease to AllVersionAndDeletes:

In this scenario, when AllVersionAndDeletes CFP bootstraps - it can't pick up a PK-range based lease as the CFP instance fetches leases / .info documents whose id embeds the resource id of the database and feed container. A PK-range based lease & its respective .info document has id which embeds the name-based id (user provided) of the database and feed container.
Hence, in this scenario, the CFP instance will either bootstrap from pre-existing lease documents which are also EPK-range based leases (provided the lease prefix in the id of the lease document and that of the CFP instance match) or create its own EPK-range based leases.

Design decisions

When validating change-feed modes, only 1 lease document needs to be fetched for a given lease prefix. The assumption is that all lease documents using the same lease prefix pertain to the same feed and therefore are homogeneous in terms of the value of Mode. This limits RU-usage on the lease container.
Say the lease left behind by a prior-running CFP instance has a null continuation token - this scenario should not error out on a change-feed mode switch as the subsequent-running CFP instance could still try and use the lease with its own ContinuationToken.

API change check
API changes are not detected in this pull request.

/azp run java - cosmos - tests

/azp run java - cosmos - tests

/azp run java - cosmos - tests

/azp run java - cosmos - tests

/azp run java - cosmos - tests

/azp run java - cosmos - tests

/azp run java - cosmos - tests

Looks to be a regression in several split-based tests not finishing in time. Change unrelated to splits so merging as is.

/check-enforcer override

Closes #38577


MemStatementList can safely make assumptions about how it is used

The MemStatementList uses a lock-free approach for adding and retrieving items. When adding items the MemStatementList will expand its underlying array if it is full. Support lock-free expanding and removal of items at the same time is far from trivial, so I've used a StampedLock to make sure that the remove method runs exclusively.
The remove method is only used from the snapshot cleanup thread, so we can assume single threaded access. Further more, when adding an item, we can assume that if the item was removed by the snapshot cleanup thread then it doesn't matter if we add the item back again or not.
When inserting an item into the array we need to consider the following scenarios:

The place in the array was already taken
The array was being expanded while we inserted our item
The item was removed immediately after we inserted it

The first scenario is handled by using CAS when writing to the array. The second scenario is handled by checking if the array is the same array after we've written our item, and if not then we can check if our item is still there.
The third scenario can safely be ignored because we can assume that the snapshot cleanup thread doesn't clean any active snapshots. Furthermore we can assume that if it did, then adding the item back would be safe since it would just be cleaned up in the next cleanup run.

Possibly related to #4468 ?

Hopefully yes.

I should pick this back up again.


water intake indicator extends beyond the page. There should probably be a limit on topping up water

water intake indicator extends beyond the page. There should probably be a limit on topping up water

fixed


fritz the on to Idiot Village?

This could get them to trust him. Maybe there is one more? If he is super profound?

Maybe I'll put in something where Idiot Village gives Fritz a job, but...


AttributeInstance addModifier unintuitive behavior

Currently when using AttributeInstance#addModifier the modifier will use a putIfAbsent call to add the modifier, meaning that it will not overwrite a previous value. To me this was unintuitive where I would have expected a new addModifier call to overwrite the previous value.
Just want to check I am not the only one who reads this as unintuitive behavior.

Also seemed a bit weird to me. If it's changed, I think  that addModifier will also (sometimes) have to re-compute the cached value (unless the replaced modifier is identical to the new one).


Update README.md

Regarding issue: https://github.com/njbarrett/laravel-postgis/issues/58
You only need to add the names of the fields; no need to add the class.

Coverage decreased (-0.4%) to 82.332% when pulling e5e9485b1a39f7b372eba4a8354e4e9ef4c0e319 on JaakkoTulkki:master into accec379af8ceba903ceb10df37beeb9bfb411cc on njbarrett:master.


Feature: MudCheckBox more configuration

Description

Replacement PR for  #5650
Added more options to design and customize CheckBox
<MudCheckBox Label="Monday" LabelStyle="display:flex; flex-direction:column; flex-direction: column-reverse;"/>
How Has This Been Tested?

Visually and with new unit tests.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Why do we need a separate label class if you can achieve the same with:
<MudCheckBox Class="test" />
<style>
.test label {
    ...
}
</style>

It doesn't do the same... It is two layers deeper.

Adding a typo for the label is debatable imo, But we have to stay consistent, if we allow it for checkboxes, we also have to add this option for tabs, buttons etc.

I can revert those changes. But is are there more arguments not to do this (except consistent)?

It doesn't do the same... It is two layers deeper.

I am not sure what you mean. Are you talking about the style prop? <MudCheckbox Class="test"/> applies the test class to the root node. That way, you can style child nodes. (even )

I can revert those changes. But is are there more arguments not to do this (except consistent)?

Imo not all typos make sense. Who would use a h1 for switches? Also, the material specs only specify one font size

In that case, I will close this PR and reopen #5650


Update to 1.18.2

Changes:

Updated all features to 1.18.2 (official mappings)
Updated assets to be compatible with 1.18.2
Updated build scripts to Gradle 7.4 and ForgeGradle 5.1
Removed dependency on SilentLib

Added custom HudAnchor utility class
Removed references to SilentLib player data helpers
Converted stored items data to a Forge Capability

Bump version no. to <IP_ADDRESS>

This PR was requested by a member of the community under the GNU LGPLv3 license.

It all looks good. I don't really agree with the version number, but that's something I can change. Good work, and thank you.


dal_admin_filters does not work with Django 2.2.2

After upgrading to django 2.2.2 dal_admin_filters stop working. I am think this is cause of https://docs.djangoproject.com/en/2.2/releases/2.2.2/#patched-bundled-jquery-for-cve-2019-11358-prototype-pollution this CVE fix in jQuery.
Django 2.1.9 also has this CVE patch, but all works fine.

Problem was in new algorithm of sorting assets https://docs.djangoproject.com/en/2.2/releases/2.2/#merging-of-form-media-assets

@shamanu4 It would be nice to get a release with this fix in it if possible?


matches (x of n) info is not shown

Ref: https://github.com/microsoft/vscode/issues/147685

Change the terminal scrollback to 30'000
execute for i in {0..20000}; do echo "absdj bkwefkl wqdoqwdjadcnbyx ncbahjsgf7zr92834rjpowef0sdjfisdnjfbsjdf"; done
Search for abs

This is by design because finding out the count when the result is large is very slow. We plan to revamp search such that decorations are drawn to the canvas rather than inserted to the dom so will be able to report the count and draw decorations for a large volume of search results without tanking performance.


[BBU] Hostname migration to LF

Problem/Concern
Work with @tbenzies to migrate bedrockconsortium.org to LF.

The process is straightforward and all the info can be found at https://jira.linuxfoundation.org/servicedesk/customer/kb/view/28485232 (including how to initiate the process).

Handled by LF pre-Soft-launch.

Handled by LF pre-Soft-launch.


fix: startkey -> startKey;

I made a mistake at the first try somehow :) Here is a fix. Sorry for that

hahaha, didn't noticed also


chore: small update of the apply command help

I wonder if it's worth keeping this character.  Maybe we can replace it with another one (.?)

Makes sense, I'll try and check in a new branch

Decide to stop using $ to detect the user wants to extract the k8s config context from property set in the release's cue files. Closing

In favor of  #43


A possible mistake in all sft.sh like ./scripts/v1_5/release/3b/3_sft.sh

The cmd line for SFT stage in readme.md is:
bash scripts/v1_5/paper/3_sft.sh [STAGE2_PATH] [OUTPUT_NAME]

In file  ./scripts/v1_5/release/3b/3_sft.sh, the BASE_MODEL_PATH should be substituted with STAGE2_PATH???
n_nodes=1
bs=16
# OUTPUT of stage 2 script
STAGE2_PATH=$1
# Final output checkpoint path
OUTPUT=$2

torchrun --nnodes=$n_node --nproc_per_node=8 --master_port=25001 \
    --master_addr $MASTER_ADDR --node_rank=$CURRENT_RANK \
    llava/train/train_mem.py \
    --deepspeed ./scripts/zero3.json \
    --model_name_or_path $BASE_MODEL_PATH \  ## The line I cannot understand
    --version v1 \
    --data_mixture sharegpt4v_gpt4_100k+llava_instruct+sharegpt4v_sft+dvqa_train_200k+chartqa_train_18k+ai2d_train_12k+docvqa_train_10k+geoqa+synthdog_en+vflan+shot2story_shotonly+video_chatgpt+youcook2+vatex+sharegpt_video+scienceqa+wit_subset+math+sherlock \
    --vision_tower google/siglip-so400m-patch14-384 \
    --mm_vision_select_feature cls_patch \
    --mm_projector mlp_downsample \

You are right. Fixed.

Hi there,
Our team has moved our VILA to a new location: NVLabs/VILA. We kindly request that you update your references to the old repository location with the new one (e.g, git clone / pipeline integration). This will ensure that you have access to the latest updates, improvements, and bug fixes for VILA project. Current repo will be archieved in one week (Jul 10th) and made private after one month (Aug 4th).
Thank you for your understanding and continued support. If your issue still exists, feel free to open a new one in the new place. We appreciate your patience and cooperation during this transition.
Best regards,
VILA Team


Fix PathFollow2D motion.

Fixes #13361.

Thanks, looks good. Merged manually as 40a7b7e39 to remove some whitespace clang-format was complaining about.


[Marker.io] Mobile: users have to scroll up in order to see results when they apply filters at certain position (on page)

Steps to reproduce:

scroll down till “show more”
click filter button, choose acquisition and apply
notice the page

Actual result: users have to scroll up to see results
Expected result: this needs inprovement

Reported by: Vinod<EMAIL_ADDRESS>- Contact via Marker.io
Source URL: https://na13-prezzee.webflow.io/en-us/case-studies
Issue details: Open in Marker.io
Device typemobileBrowserSafari 18.0.1Screen Size375 x 812OSiOS 18.0.1Viewport Size375 x 710Pixel Ratio@3x

recording:
https://drive.google.com/file/d/16VuHXGo33YUSyJMcd8sRNW-CL-jNx38s/view?usp=sharing


There is a bug of plan_services.dart file in chapter_06 project

line 31
old：    final id = plan.tasks.last?.id ?? 0 + 1;
new：    final id = plan.tasks.length + 1;

I think if you use length then, you might get same/duplicate id's


Don’t recommend empty enums for opaque types

Supersedes https://github.com/rust-lang-nursery/nomicon/pull/44 (which seems to have gone stale).
Fixes #29.

LGTM.
cc @ubsan @eddyb @steveklabnik

I'd rather have an explicit opaque type in the language, but in lieu of that, this is better than before.

@ubsan there is an already merged RFC for that (https://github.com/rust-lang/rust/issues/43467). This PR only updates the nomicon with better practices for the features that the language currently has. Once extern types are finished, this will need updating again.

@gnzlbg ooh! cool! I've never seen that! :D


Revert "Merge elementwise"

This reverts commit 3d858104736e93aabc0a215c3d1d1add242095a0.
We do it to investigate the source of the execution time increase

Jenkins, test this please

Jenkins CI test (for commit fc8fc0cebf286233bf913a9c7a34feb6f11ca882, target branch master) succeeded!


auto log in on irc on connect ?

Hello,
is it possible that my ZNC will auto perform a login command when it connects?

In descending order of preference: There is the sasl module, the nickserv module and the perform module.

https://wiki.znc.in/Sasl
https://wiki.znc.in/Nickserv
https://wiki.znc.in/Perform
Oh and there is even a Q module: https://wiki.znc.in/Q


Merge pull request #1221 from mercadopago/development

3.6.0

Codecov Report

Merging #1222 into development will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           development    #1222   +/-   ##
============================================
  Coverage        56.24%   56.24%
============================================
  Files              283      283
  Lines            21666    21666
============================================
  Hits             12187    12187
  Misses            9479     9479


Add 'storage' event support

Controversial PR I talked about :)
Local storage has one awesome feature — it can be synced between two (or more) widows/tabs. Window has storage event, which is only triggered when a window other than itself makes the changes.
So I added .onChange method, which accepts effector's event to set Store value to new one, which came from another window/tab.
This way it is possible to synchronise counter on two tabs of a browser. Or, closer to reality, abstract flag authenticated, when user performs logout on one tab — that triggers logout on all other opened tabs with the same application.
This additional functionality easy to implement outside of this package, but I think it is appropriate and nifty place to have such feature.
But this increased size on a whole 60 B :( And I don't know, how to decrease it now.
So, discuss :)

We can save size with small trick - separate new functionality to the new file. Api can look like this:
import {createStore, createEvent} from 'effector'
import connectLocalStorage from "effector-localstorage";
import createChangeEvent from "effector-localstorage/createChangeEvent"

const increment = createEvent('increment')
const decrement = createEvent('decrement')
const resetCounter = createEvent('reset counter')

const counterLocalStorage = connectLocalStorage("counter")
  .onError((err) => console.log(err)) // setup error callback

// createChangeEvent returns Effector event
// connectLocalStorage should save `key` inside function
const counterLocalStorageChange = createChangeEvent(counterLocalStorage);

const counter = createStore(counterLocalStorage.init(0)) // initialize store with localStorage value
  .on(increment, state => state + 1)
  .on(decrement, state => state - 1)
  .on(counterLocalStorageChange, (state, value) => value)
  .reset(resetCounter)

counter.watch(counterLocalStorage) // update localStorage on every store change

You are right, this functionality not always needed, and could be separated to new file.
But I'm not sure about «return Effector event».
Current API doesn't have any dependencies, and Effector is just peer dependency, so, strictly speaking, this package is not tied to effector, this is more like local storage API, in my opinion. It could be used without effector at all, like this:
import connectStorage from 'effector-localstorage'

const storage = connectStorage('counter')
  .onError(console.error)

// rehydrade value from local storage
const value = storage.init(0)

// ---8<---

// save new value to local storage
storage(value)

But bringing effector's createEvent will bring strong tiedness to effector. This is not bad, I'm just thinking about philosophy.
If we could tie effector, it is possible to change API completely, like this:
const counter = createPersistentStore(0, 'counter')

which will create effector's store internally, and auto-updates local storage without need to add .watch(...)

I will think on separation though

Wait! :) I was still working here :)
I decided to split to two modules, one without sync functionality, and other — with


Update running-on-gcp.md

small tweaks to doc

Thank you for all you edits!  I'm pretty competent technically but suffer from dysgraphia.

You're welcome.  Appreciate your technical skill.  Am cautiously using the autorun functionality for now but its great that you have helped make it available for us AAPS users


update pandora website

Pre-submission checklist:
Please check each of these after submitting your pull request:

[ *] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[* ] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[ *] Have you picked the single best (existing) category for your project?
[* ] Does it follow the other guidelines from the new entries section?
[ *] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[ *] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[ *] Does your project/product name match the text on the logo?
[ *] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ *] ~15 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Deploy preview for landscape ready!
Built with commit e8e05b112fe77f5948e5f455f59bc1b9f55f22ec
https://deploy-preview-1707--landscape.netlify.app


chore(deps): update common-dev-assets digest to d8a1b79

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
663cc6d -> d8a1b79

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


DEPS.xwalk: Roll chromium-crosswalk (51665bd -> dfbc583).

3b04582 : Screen orientation lock implementation for Windows
9e10775 : Page Visibility API: visibilitychange on Windows screen
lock/unlock

@rakuco

looks fine, but we generally also include the merge commits in the commit list (dfbc583 is present in the title but not in the list, for example).


[FLINK-19381][docs] Fix docs for savepoint relocation

What is the purpose of the change
Fix doc for savepoint relocation
Brief change log
update docs:

ops/state/{savepoints.md, savepoints.zh.md}
ops/{upgrading.md, upgrading.zh.md}

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): ( no )
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: ( no )
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? ( no)
If yes, how is the feature documented? (not applicable)

cc @NicoK

Sorry that this PR has been unnoticed for such a long time. Could you rebase on master please?

@AHeise thanks for the reminder, rebased.

kindly ping @NicoK

@klion26 Please also check @StephanEwen's comments here.

@carp84, I've addressed @StephanEwen's comments in #14175, please help review when you're free.

kindly ping @NicoK @carp84

Reads well from my side, definitely a big improvement over the current docs.
+1 to merge this now

Reads well from my side, definitely a big improvement over the current docs.
+1 to merge this now

@StephanEwen thanks for the review.
@carp84 @NicoK Do you have any more comments?
If there are no more comments, could anyone of you approve this then I can merge it. thanks.

@StephanEwen thanks for the review.
@carp84 @NicoK Do you have any more comments?
If there are no more comments, could anyone of you approve this then I can merge it. thanks.

@carp84 thanks for the review. will merge this soon.

@carp84 thanks for the review. will merge this soon.


Error during build

During build (debug) I receive such errors:
egrep: .../Pods/FontAwesome.swift: Is a directory
egrep: .../Pods/Target Support Files/FontAwesome.swift: Is a directory

Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure

In fact, project name generates it. What can we do with it not to have this error?

Xcode 7.3.1
FontAwesome.swift (0.7.3)

May I see a sample of your Podfile and your code?

Here is the Podfile:
platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!

pod 'Fabric'
pod 'Crashlytics'
#etc ....

target 'MyApp' do
    pod 'FontAwesome.swift'
end

target 'MyAppTests' do
	pod 'Quick', '~> 0.9'
	pod 'Nimble', '~> 4.0'
end

target 'MyAppUITests' do
end

And here is the code usage:
textField.leftView = UIImageView(image: UIImage.fontAwesomeIconWithName(.FileTextO, textColor: UIColor.blackColor(), size: CGSizeMake(20, 20)))
While performing pod install I got the version, which was 0.7.3.

I could not replicate the error. You might want to do a clean build and/or delete all derived data.

That was the first thing I've tried, unfortunately didn't help. It seems that my custom script (quite common in fact) is taking part in generating the issue:
if [ "${CONFIGURATION}" = "Debug" ]; then
TAGS="MYToDo:|MYFixMe:|MYHack:|MYTemp:|MYWarn:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" \( -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/"
fi

I have flag treatWarningsAsErrors turned to true, so this is how I declare temporary hacks/warnings/todos. As far as I saw, it's quite a common scenario. Here it tries to iterate by .swift files, and your project is ending with .swift, so it displays an error. What is worse, it will work like this for all greps not only such one.

Anyway, it seems that something gets installed incorrectly:
button.setTitle(String.fontAwesomeIconWithName(.FileTextO), forState: .Normal)

-> displays box with ?, while
let button = UIButton(type: .System)
textField.leftView = UIImageView(image: UIImage.fontAwesomeIconWithName(.FileTextO, textColor: UIColor.mfDefaultBlueColor, size: CGSizeMake(20, 20)))

-> displays the icon correctly.
I'm not sure whether this is a kind of bug or it's a known issue or that's because of install error quoted in first post under this issue.

You forgot to set font for your button's titleLabel.

On Jun 6, 2016, at 7:48 PM, Natalia<EMAIL_ADDRESS>wrote:
That was the first thing I've tried, unfortunately didn't help. It seems that my custom script (quite common in fact) is taking part in generating the issue:
if [ "${CONFIGURATION}" = "Debug" ]; then
TAGS="MYToDo:|MYFixMe:|MYHack:|MYTemp:|MYWarn:"
echo "searching ${SRCROOT} for ${TAGS}"
find "${SRCROOT}" ( -name ".swift" ) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).$" | perl -p -e "s/($TAGS)/ warning: $1/"
fi
I have flag treatWarningsAsErrors turned to true, so this is how I declare temporary hacks/warnings/todos. As far as I saw, it's quite a common scenario. Here it tries to iterate by .swift files, and your project is ending with .swift, so it displays an error. What is worse, it will work like this for all greps not only such one.
Anyway, it seems that something gets installed incorrectly:
button.setTitle(String.fontAwesomeIconWithName(.FileTextO), forState: .Normal)
-> displays box with ?, while
let button = UIButton(type: .System)
textField.leftView = UIImageView(image: UIImage.fontAwesomeIconWithName(.FileTextO, textColor: UIColor.mfDefaultBlueColor, size: CGSizeMake(20, 20)))
-> displays the icon correctly.
I'm not sure whether this is a kind of bug or it's a known issue or that's because of install error quoted in first post under this issue.
―
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Probably I'll go with attributedText then.
Anyway, coming back to grep problem. It isn't a huge issue, because we can always change search paths, like I've written, so if you want you're welcome to close the issue. Or if you find it disturbing you can investigate the issue ;). Just having folder named FontAwesome_swift instead of FontAwesome.swift would fix it.

There is no folder named FontAwesome.swift in this project. CocoaPods makes it based on the pod name. The only way to fix it is creating a new podspec and deprecate the current one but I wouldn't do it at the moment.
I suggest you to integrate it using Carthage. The framework name in Carthage is just FontAwesome .

Ok, so to sum up for anyone else seeking help with this issue, there are 2 ways to bypass the issue:

Integrate it using Carthage instead of Cocoapods. The framework name in Carthage is FontAwesome.
Change search script so it begins on your own code instead of root folder (like in 5th post).

I totally agree deprecating the project because of such small detail is without any sense. Thanks for your help.


Task/sdk 35 try switching testing to vitest

This PR is no longer needed as I got jest working in sdk-14


ImportError: cannot import name '_DictWithDeprecatedKeys' from 'sklearn.covariance._graph_lasso' on sklearn main

It might makes sense to protect against ImportError when importing private classes / functions from scikit-learn (or numpy / scipy) to make it possible to use skops across versions of those libraries.
In particular at the moment, importing skops.io fails with:
>>> from skops import io
Traceback (most recent call last):
  Input In [13] in <cell line: 1>
    from skops import io
  File ~/code/skops/skops/io/__init__.py:1 in <module>
    from ._persist import load, save
  File ~/code/skops/skops/io/_persist.py:19 in <module>
    module = importlib.import_module(module_name, package="skops.io")
  File ~/mambaforge/envs/dev/lib/python3.10/importlib/__init__.py:126 in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File ~/code/skops/skops/io/_sklearn.py:6 in <module>
    from sklearn.covariance._graph_lasso import _DictWithDeprecatedKeys
ImportError: cannot import name '_DictWithDeprecatedKeys' from 'sklearn.covariance._graph_lasso' (/Users/ogrisel/code/scikit-learn/sklearn/covariance/_graph_lasso.py)

Good idea, thanks for the suggestion.
For this particular issue, IIUC from https://github.com/scikit-learn/scikit-learn/pull/24599, we can just replace it with a normal dict, right?

Should be fixed now via #188


Color hash keys (w/ specs)

Supersedes #58

While testing your PR I ran into a bug that had previously slipped through. Fixed here:
https://github.com/awesome-print/awesome_print/pull/267
However your change means that code will once again not work correctly as it expects a symbol to begin with a colon. If plain_single_line starts adding color strings, then symbol? no longer will return true which will break the ruby19_syntax option. There's probably a really easy way to fix all this, but I can't think of it right now.
Also the name plain_single_line suggests options[:plain] = true and options[:multiline] = false. If we want a method that just does a options[:multiline] = false then perhaps it's better to create a new method that does only that and call it single_line leaving plain_single_line unmodified.
What are your thoughts?

This was a quick hack to highlight an issue. Whichever way forward colorizes / formats keys of hashes by default. Leaving this open as a reminder would probably be good to prevent falling between the cracks.

cc @gerrywastaken

@steakknife That's fine with me. I've got a few things on my plate at the moment, but I also like the idea behind this PR, so I'll come back to it, but it might not be soon. Thanks for the insight btw.


Block List Page

Acceptance Criteria:

Create Blocks Page which will display a list of blocks by default ordered by block height descending
Display by default 25 blocks on the table
The table should allow you view the latest 20 million blocks
should have a responsive design
fields:

block

links to block page

age

show timestamps in relative time, e.g. 1 hr 10 mins ago
n hover or press, , display tooltip and show the timestamps in the format of YYYY-MM-DD HH:MM:SS

txns (number of transactions)

link to transactions filtered by block number

Gas Used

Blocked by https://github.com/telosnetwork/teloscan/issues/531


Support ISO8601 format with nano second resolution

Elasticsearch returns date strings in ISO8601 format with nano second resolution which should have the format spec in arrow of: u'YYYY-MM-DDTHH:mm:ss.SSSSSSSSSZ' - however arrow only supports SSSSSS (microsecond resolution).
Alternatively, skipping some character will also resolve this, e.g. u'YYYY-MM-DDTHH:mm:ss.SSSSSS___Z' where '_' is a new token which only skips characters.

I believe this is fixed in 0.9.0.
Please have a try.

Closing. Please reopen if it is still an issue.


Strange failure with "ISO 9000:2005"

The first call worked, then the second failed?
[relaton-iso] ("ISO 9000:2005") fetching...
[relaton-iso] ("ISO 9000:2005") found ISO 9000:2005
[relaton-iso] ("ISO 9000:2005") fetching...
[relaton-iso] WARNING: no match found online for ISO 9000:2005. The code must be exactly like it is on the standards website.
[relaton-iso] If you wanted to cite all document parts for the reference, use "ISO 9000:2005 (all parts)".

Can't reproduce this issue:
[2] pry(main)> item = RelatonIso::IsoBibliography.get 'ISO 9000:2005'
[relaton-iso] ("ISO 9000:2005") fetching...
[relaton-iso] ("ISO 9000:2005") found ISO 9000:2005
=> #<RelatonIsoBib::IsoBibliographicItem:0x007f920ad3df80
...

[3] pry(main)> item.docidentifier
=> [#<RelatonBib::DocumentIdentifier:0x007f920ad5c958 @id="ISO 9000:2005", @type="ISO">]

[4] pry(main)> RelatonIso::VERSION
=> "0.12.1"

Have you tried doing twice?

@ronaldtse yes, of course.

Maybe it has to do with the local cache? This was from Metanorma.

Can't reproduce the issue now? How do you get the warning?

I don't see it anymore... closing.


Adding computed/dynamic attributes

I would like the ability to create computed attributes on my struct that call a method on self instead of taking a value in the initializer.
class Person < Dry::Struct
  attribute :first_name, Types::Strict::String
  attribute :last_name, Types::Strict::String
  attribute :full_name, Types::Strict::String

  def full_name
    "#{first_name} #{last_name}"
  end
end

john = Person.new(first_name: "John", last_name: "Doe")
john.to_hash # => { first_name: "John", last_name: "Doe", full_name: "John Doe" }

It doesn't seem like there is (currently) a way to do this. I tried just making the attribute ommittable: true, since it seemed like https://github.com/dry-rb/dry-struct/blob/d34ec0e9fd6aa0eb5fee5264fef6fa45af900475/lib/dry/struct/class_interface.rb#L138 would allow me to define my own getter, but since things like Struct#[] and Struct#to_hash use the @attributes Hash directly, the getter method isn't called.
My initial thought is to create a PR that changes https://github.com/dry-rb/dry-struct/blob/d34ec0e9fd6aa0eb5fee5264fef6fa45af900475/lib/dry/struct.rb#L123 to be:
@attributes.fetch(name) { send(name) if respond_to?(name) }

but I wanted to check in with the maintainers before attempting this.
Thanks!

At this point, I can't see how this can be useful, converting structs to hashes is a separate concern, generally speaking. If you have problems with this, you probably want to add a special kind of object for conversion/serialization. Please, raise questions like this on the gitter channel or discuss, as mentioned in the guidelines.


Error When Trying to Read Any Issue (Docker)

Request Method:
GET

http://tenma.xxxxx.com/issue/178/read

1.10.1

OSError

cannot identify image file '/tenma/media/temp/178/ComicInfo.xml'

/usr/lib/python3.6/site-packages/PIL/Image.py in open, line 2349

/usr/bin/python3

3.6.1

['/tenma',  '/usr/lib/python36.zip',  '/usr/lib/python3.6',  '/usr/lib/python3.6/lib-dynload',  '/usr/lib/python3.6/site-packages',  '/tenma']

Mon, 28 Aug 2017 12:31:39 -0500

Error during template rendering
In template /tenma/comics/templates/comics/read.html, error at line 25
cannot identify image file '/tenma/media/temp/178/ComicInfo.xml'

15

{% endblock %}

{% block page-type %}reader{% endblock %}

{% block content %}

{% for item in issue.page_set.pages %}
{% with mediaurl=issue.page_set.mediaurl %}

{% endwith %}
{% endfor %}

{% endblock content %}

Interesting. Only image files should be indexed when looking in comic files. Somehow the ComicInfo.xml file slipped through. I'll test this out.

That would explain why its happening on them all.
Thats exactly what it is, I ripped out the ComicInfo.xml file and it opened up fine on my test file.

Ok. I'll try and get a fix for this at some point this week. If you know a little python, I'll accept a pull-request! It seems like an easy enough fix. Unfortunately I have a very busy week.

If I get a chance I'll take a peek - I should know enough python to manage. Busy here too this week. Similar jobs btw lol.


feat: Declare mounting directory

Description
Most researchers use public datasets from builtin API provided by the framework (torchvision/huggingface dataset/dgl). And those data need to be persistent, and might need to be shared between projects.
For example, using dgl, the dataset is stored in ~/dgl. Here's the example for the Cora citation graph dataset.
The ~/.dgl is expected to be managed by envd.
> tree ~/.dgl
/home/envd/.dgl
|-- config.json
|-- cora_v2
|   |-- cora_v2_dgl_graph.bin
|   |-- cora_v2_dgl_graph.pkl
|   |-- ind.cora_v2.allx
|   |-- ind.cora_v2.ally
|   |-- ind.cora_v2.graph
|   |-- ind.cora_v2.test.index
|   |-- ind.cora_v2.tx
|   |-- ind.cora_v2.ty
|   |-- ind.cora_v2.x
|   `-- ind.cora_v2.y
`-- cora_v2.zip

Proposal:
# To declare a local folder
data.persistent_volume(name="dgldata", target='~/.dgl')

Other possible scenarios
# To declare envd-managed Dataset
data.persistent_volume(name=Dataset("imagenet"), target='~/.torchvision')
# To use S3 dataset
data.persistent_volume(name=S3Dataset("imagenet"), target='~/.torchvision')

Then envd will make this folder as mounted when starting container.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

The name target confuses me. Maybe source is better.

How about mount_path? target here is the path inside container

Then how to specify the path in the host with your design?

@gaocegege It's managed by envd. For example, save the data at ~/.envd/data, and envd will create a unique folder if the dataset name is new, or directly mount it to the container if already exists.
User can also specify the data path on host if needed (probably part of envd context)

MVP:
Support io.mount(src="...", target="...")
Optimization:
io.mount(src=EnvdManager("dgl"), target=C.DefaultDglPath)


Misuse of the ASF's Kafka trademark in KafkaCenter

Hi,
On behalf of the Apache Kafka PMC, I am emailing you about KafkaCenter (https://github.com/xaecbd/KafkaCenter).
You may not be aware of this, but the name KafkaCenter actually misuses the Apache Kafka trademark. For details, please see https://www.apache.org/foundation/marks/faq/#poweredby. In general, the name in the form of  "foo for Apache Kafka" or "foo powered by Apache Kafka" would both be acceptable.
We'd appreciate it if you can fix the misuse accordingly.
Thank you for your time and respect for the Apache trademark.
Jun Rao
on behalf of the Apache Kafka PMC

In progress

Due to COVID-19， the release was postponed to 2022-1-31.

the release was postponed to 2022-2-28.

done

Thank you, @TrumanDu !


Program panicked at lib.rs:535:43

I have met an error as follow.
Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [1]
Program log: Transfer 2039280 lamports to the associated token account
Program<PHONE_NUMBER>1111111111111111111111 invoke [2]
Program<PHONE_NUMBER>1111111111111111111111 success
Program log: Allocate space for the associated token account
Program<PHONE_NUMBER>1111111111111111111111 invoke [2]
Program<PHONE_NUMBER>1111111111111111111111 success
Program log: Assign the associated token account to the SPL Token program
Program<PHONE_NUMBER>1111111111111111111111 invoke [2]
Program<PHONE_NUMBER>1111111111111111111111 success
Program log: Initialize the associated token account
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]
Program log: Instruction: InitializeAccount
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3297 of 179574 compute units
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success
Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 24372 of 200000 compute units
Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success
Program<PHONE_NUMBER>1111111111111111111111 invoke [1]
Program<PHONE_NUMBER>1111111111111111111111 success
Program 22Y43yTVxuUkoRKdm9thyRhQ3SdgQS7c7kB6UNCiaczD invoke [1]
Program log: libstd rust_begin_panic
Program log: panicked at 'called `Option::unwrap()` on a `None` value', programs/swap/src/lib.rs:535:43
Program 22Y43yTVxuUkoRKdm9thyRhQ3SdgQS7c7kB6UNCiaczD consumed 14288 of 200000 compute units
Program failed to complete: BPF program panicked
Program 22Y43yTVxuUkoRKdm9thyRhQ3SdgQS7c7kB6UNCiaczD failed: Program failed to complete

I have checked the source code, the line 535 is as follow.
NonZeroU64::new(max_coin_qty).unwrap(),
'max_coin_qty' is a const.
It is very confuse how can this be error.

0x22 means the token amount in baseWallet and quoteWallet is not enough

0x12e means the amount is to small

0x12d is caused by apply risk check.
mostly, that means the exchange rate is too big.

panicked at line 535 is caused by lot size error.
that means the amount is too small

the amount is base mint amount, not quote amount.
the rate number must mul quote decimals.