Same system UUID shared between nodes when migrate failed

What happened:
I tried to migrate a vm with the same SystemUUID node , I get a error log in virt-luncher and the migration failed , than i tried to fake the systemUUID with mount a temp file to /sys/devices/virtual/dmi/id/product_uuid and /sys/class/dmi/id/product_uuid. The k8s node info has changed to the new systemUUID but i still got the error message in virt-luncher. How virt-luncher check if it is the same node and is there any solutions?
# before changed
[root@pkc06 cluster-api-chart]# kubectl get nodes -o yaml | grep UUID
      systemUUID: 11223344-5566-7788-99aa-bbcc11223344
      systemUUID: 11223344-5566-7788-99aa-bbcc11223344

# after changed
[root@pkc06 cluster-api-chart]# kubectl get nodes -o yaml | grep UUID
      systemUUID: 11223344-5566-7788-99aa-bbcc22334455
      systemUUID: 11223344-5566-7788-99aa-bbcc11223344

# error log in virt-lunvher
{"component":"virt-launcher","level":"info","msg":"cookielen=740 cookie='<qemu-migration>","pos":"qemuMigrationCookieParse:1511","subcomponent":"libvirt","thread":"26","timestamp":"2024-07-09T08:49:22.942000Z"}
{"component":"virt-launcher","level":"info","msg":"  <name>xcloud-default_cirros1</name>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942395Z"}
{"component":"virt-launcher","level":"info","msg":"  <uuid>3df3b144-362a-5efb-8d26-acbb926fa216</uuid>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942412Z"}
{"component":"virt-launcher","level":"info","msg":"  <hostname>cirros1</hostname>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942431Z"}
{"component":"virt-launcher","level":"info","msg":"  <hostuuid>11223344-5566-7788-99aa-bbcc11223344</hostuuid>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942444Z"}
{"component":"virt-launcher","level":"info","msg":"  <feature name='lockstate'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942457Z"}
{"component":"virt-launcher","level":"info","msg":"  <capabilities>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942471Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='xbzrle' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942485Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='auto-converge' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942498Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='rdma-pin-all' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942512Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='postcopy-ram' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942526Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='compress' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942540Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='pause-before-switchover' auto='yes'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942553Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='late-block-activate' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942567Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='multifd' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942582Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='dirty-bitmaps' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942599Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='return-path' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942613Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='zero-copy-send' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942627Z"}
{"component":"virt-launcher","level":"info","msg":"  </capabilities>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942640Z"}
{"component":"virt-launcher","level":"info","msg":"</qemu-migration>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942653Z"}
{"component":"virt-launcher","level":"info","msg":"'","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.942667Z"}
{"component":"virt-launcher","level":"info","msg":"xml=<qemu-migration>","pos":"qemuMigrationCookieXMLParseStr:1418","subcomponent":"libvirt","thread":"26","timestamp":"2024-07-09T08:49:22.943000Z"}
{"component":"virt-launcher","level":"info","msg":"  <name>xcloud-default_cirros1</name>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943139Z"}
{"component":"virt-launcher","level":"info","msg":"  <uuid>3df3b144-362a-5efb-8d26-acbb926fa216</uuid>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943157Z"}
{"component":"virt-launcher","level":"info","msg":"  <hostname>cirros1</hostname>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943174Z"}
{"component":"virt-launcher","level":"info","msg":"  <hostuuid>11223344-5566-7788-99aa-bbcc11223344</hostuuid>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943188Z"}
{"component":"virt-launcher","level":"info","msg":"  <feature name='lockstate'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943202Z"}
{"component":"virt-launcher","level":"info","msg":"  <capabilities>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943217Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='xbzrle' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943232Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='auto-converge' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943254Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='rdma-pin-all' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943276Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='postcopy-ram' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943293Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='compress' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943308Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='pause-before-switchover' auto='yes'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943326Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='late-block-activate' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943340Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='multifd' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943354Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='dirty-bitmaps' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943367Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='return-path' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943381Z"}
{"component":"virt-launcher","level":"info","msg":"    <cap name='zero-copy-send' auto='no'/>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943394Z"}
{"component":"virt-launcher","level":"info","msg":"  </capabilities>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943409Z"}
{"component":"virt-launcher","level":"info","msg":"</qemu-migration>","subcomponent":"libvirt","timestamp":"2024-07-09T08:49:22.943425Z"}
{"component":"virt-launcher","level":"error","msg":"internal error: Attempt to migrate guest to the same host 11223344-5566-7788-99aa-bbcc11223344","pos":"qemuMigrationCookieXMLParse:1324","subcomponent":"libvirt","thread":"26","timestamp":"2024-07-09T08:49:22.943000Z"}
{"component":"virt-launcher","level":"info","msg":"conn=0x4000400046b0","pos":"virConnectUnregisterCloseCallback:1548","subcomponent":"libvirt","thread":"27","timestamp":"2024-07-09T08:49:22.944000Z"}
{"component":"virt-launcher","level":"info","msg":"stream=(nil)","pos":"daemonRemoveAllClientStreams:519","subcomponent":"libvirt","thread":"25","timestamp":"2024-07-09T08:49:22.945000Z"}
{"component":"virt-launcher","level":"info","msg":"conn=0x4000400046b0","pos":"virConnectClose:1312","subcomponent":"libvirt","thread":"25","timestamp":"2024-07-09T08:49:22.946000Z"}
{"component":"virt-launcher","level":"info","msg":"conn=0x4000400046b0","pos":"virCloseCallbacksDomainRunForConn:346","subcomponent":"libvirt","thread":"25","timestamp":"2024-07-09T08:49:22.946000Z"}
{"component":"virt-launcher","kind":"","level":"info","msg":"Signaled target pod virt-launcher-cirros1-ltc66 to cleanup","name":"cirros1","namespace":"xcloud-default","pos":"server.go:154","timestamp":"2024-07-09T08:49:23.532690Z","uid":"93f45040-9024-46ec-8ac3-08ad4b52a44c"}
panic: received early exit signal

goroutine 1 [running]:
main.waitForDomainUUID(0x4000384900?, 0x40003847e0, 0x40003ce5a0, {0x1dbde58, 0x4000270750})
	cmd/virt-launcher/virt-launcher.go:265 +0x348
main.main()
	cmd/virt-launcher/virt-launcher.go:469 +0xe84
{"component":"virt-launcher-monitor","level":"info","msg":"Reaped pid 12 with status 512","pos":"virt-launcher-monitor.go:125","timestamp":"2024-07-09T08:49:24.483110Z"}
{"component":"virt-launcher-monitor","level":"error","msg":"dirty virt-launcher shutdown: exit-code 2","pos":"virt-launcher-monitor.go:143","timestamp":"2024-07-09T08:49:24.483192Z"}
{"component":"virt-launcher-monitor","level":"info","msg":"error when checking for istio-proxy presence","pos":"virt-launcher-monitor.go:291","reason":"Get \"http://localhost:15021/healthz/ready\": dial tcp [::1]:15021: connect: connection refused","timestamp":"2024-07-09T08:49:24.487914Z"}
{"component":"virt-launcher-monitor","level":"info","msg":"error when checking for istio-proxy presence","pos":"virt-launcher-monitor.go:291","reason":"Get \"http://localhost:15021/healthz/ready\": dial tcp [::1]:15021: connect: connection refused","timestamp":"2024-07-09T08:49:24.538853Z"}
{"component":"virt-launcher-monitor","level":"info","msg":"error when checking for istio-proxy presence","pos":"virt-launcher-monitor.go:291","reason":"Get \"http://localhost:15021/healthz/ready\": dial tcp [::1]:15021: connect: connection refused","timestamp":"2024-07-09T08:49:24.789861Z"}
{"component":"virt-launcher-monitor","level":"info","msg":"error when checking for istio-proxy presence","pos":"virt-launcher-monitor.go:291","reason":"Get \"http://localhost:15021/healthz/ready\": dial tcp [::1]:15021: connect: connection refused","timestamp":"2024-07-09T08:49:26.040989Z"}

What you expected to happen:
migrate successful even when systemUUID is same between nodes
How to reproduce it (as minimally and precisely as possible):
k8s cluster with the same systemUUID
Environment:

KubeVirt version (use virtctl version):  v1.0.0
Kubernetes version (use kubectl version): v1.28.3+rke2r2
VM or VMI specifications: N/A
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): uos-20-1060
Kernel (e.g. uname -a): 5.10.0-46.uelc20.aarch64
Install tools: rke2
Others: N/A

/cc @stu-gott

/remove-lifecycle stale
cc @iholder101 - Is this something you can help with?

/remove-lifecycle stale cc @iholder101 - Is this something you can help with?

Yes indeed.
@HenryGuo1019 thanks a lot for this issue!
We are now discussing how to solve it in the following PR: https://github.com/kubevirt/community/pull/347.
Since we'll be discussing this elsewhere, I'll close this issue. Thanks again for reporting it! I engourage you to join the discussion and express your opinions there!
/close


Roll Flutter Engine from 9dae7b708bda to f28351d8d734 (12 revisions)

https://github.com/flutter/engine/compare/9dae7b708bda...f28351d8d734
2023-08-02<EMAIL_ADDRESS>Roll Skia from 4deae93198f9 to 6cb888889ad8 (1 revision) (flutter/engine#44240)
2023-08-01<EMAIL_ADDRESS>[canvaskit] Enable CanvasKit to compute tight SkPicture bounds (flutter/engine#43361)
2023-08-01<EMAIL_ADDRESS>Roll Dart SDK from 197fc0d7fea2 to 7c03426705da (2 revisions) (flutter/engine#44237)
2023-08-01<EMAIL_ADDRESS>[Impeller] Support for rendering Android Platform Views into a HardwareBuffer backed texture. (flutter/engine#44087)
2023-08-01<EMAIL_ADDRESS>[web:a11y] add platform view role (flutter/engine#44188)
2023-08-01<EMAIL_ADDRESS>Roll Skia from 18cf818e044f to 4deae93198f9 (1 revision) (flutter/engine#44236)
2023-08-01<EMAIL_ADDRESS>Roll Skia from 58c031441cbb to 18cf818e044f (6 revisions) (flutter/engine#44234)
2023-08-01<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from g0dgOL2IlZQJCK4El... to 3JSF6hXLRdAK1wUN1... (flutter/engine#44233)
2023-08-01<EMAIL_ADDRESS>Roll ANGLE from b53d99d87e6a to 5d4b3645d0dc (1 revision) (flutter/engine#44231)
2023-08-01<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from lwCo6le6r0X-Srvx3... to KPSWBhOvG6piddBQG... (flutter/engine#44230)
2023-08-01<EMAIL_ADDRESS>Roll Skia from d53f7b880651 to 58c031441cbb (2 revisions) (flutter/engine#44229)
2023-08-01<EMAIL_ADDRESS>Remove extends JSTypedArray from JSUint8Array1 (flutter/engine#44175)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from lwCo6le6r0X- to KPSWBhOvG6pi
fuchsia/sdk/core/mac-amd64 from g0dgOL2IlZQJ to 3JSF6hXLRdAK
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jacksongardner@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Hotkeys

Hi,
i am just wondering, can i bind Control +1 in tibialyzer? when i binded with <^ etc the bind Control+F1 came up. I really want like flash client, binds like ctrl 1-5 Alt 1-5 and Shift 1-5.
Best Regards Joakim

Hello,
try this
Ctrl+1::Send {F1}
Alt+1::Send Ctrl+{F1}
It should work.

thanks and with shift its the same? like Shift+1::Send Ctrl+{F1}?

i have also a important question. i have on flashclient a important bind which is Ctrl+F but on old client its full screen is there anyway u can go around it and like unbind fullscreen etc?

Thanks for the Help man!. just 1 more question, do u know how to bind to turn? turn N,S,E,W what the command is in flash u use Shift+W,A,S,D

Hi,
Does anyone knows how i can rebind Turns from Ctrl+W,A,S,D to Shift keys instead.
Best Regards Joakim


[Bug]: Log Purging with multiple collections

What happened?

import threading
import random
import uuid
from concurrent.futures import ThreadPoolExecutor
import chromadb
import numpy as np

client = chromadb.PersistentClient("to_vacuum_or_not_to_vacuum2")

def add_and_delete(cid):
    tid = threading.get_ident()
    collection = client.get_or_create_collection(f"vac-{cid}")
    ids = [f"{uuid.uuid4()}" for _ in range(1000)]
    collection.add(ids=ids, embeddings=np.random.uniform(-1, 1, (1000, 1536)))
    print(f"{tid}: Added {len(ids)} embeddings to collection {collection.name}")
    collection.delete(ids=list(set([random.choice(ids) for _ in range(100)])))
    print(f"{tid}: Deleted 100 embeddings from collection {collection.name}")
    print(f"{tid} Done")

with ThreadPoolExecutor(max_workers=4) as executor:
    futures = [executor.submit(add_and_delete,i) for  i in range(10)]
    for future in futures:
        future.result()  # Ensure all threads complete

(venv) [chroma-taz-21]sqlite3 to_vacuum_or_not_to_vacuum2/chroma.sqlite3 'select count(*) from embeddings_queue'                                                                                20:30:49  ☁  main ☂ ⚡ ✭
9956
(venv) [chroma-taz-21]python -m chromadb.cli.cli utils vacuum --path to_vacuum_or_not_to_vacuum2                                                                                20:32:37  ☁  main ☂ ⚡ ✭
Are you sure you want to vacuum the database? This will block both reads and writes to the database and may take a while. We recommend shutting down the server before running this command. Continue? [y/N]: y

🧼 vacuum complete! Database size reduced by 8.1MiB (⬇ 5.7%).
(venv) [chroma-taz-21]sqlite3 to_vacuum_or_not_to_vacuum2/chroma.sqlite3 'select count(*) from embeddings_queue'                                                                                20:35:09  ☁  main ☂ ⚡ ✭
9956

Versions
https://github.com/chroma-core/chroma/commit/ea3ec083231621a919c94670730379e23abac4f8 onwards
Relevant log output
No response

This is reproducible on a Chroma server:
docker build -t chroma:main .
docker run -it -v ./to_vacuum_or_not_to_vacuum3:/chroma/chroma -p 8000:8000 -e ALLOW_RESET=TRUE --rm chroma:main

import threading
import random
import uuid
from concurrent.futures import ThreadPoolExecutor
import chromadb
import numpy as np

client = chromadb.HttpClient()

def add_and_delete(cid):
    tid = threading.get_ident()
    collection = client.get_or_create_collection(f"vac-{cid}")
    ids = [f"{uuid.uuid4()}" for _ in range(1000)]
    collection.add(ids=ids, embeddings=np.random.uniform(-1, 1, (1000, 1536)))
    print(f"{tid}: Added {len(ids)} embeddings to collection {collection.name}")
    collection.delete(ids=list(set([random.choice(ids) for _ in range(100)])))
    print(f"{tid}: Deleted 100 embeddings from collection {collection.name}")
    print(f"{tid} Done")

with ThreadPoolExecutor(max_workers=4) as executor:
    futures = [executor.submit(add_and_delete,i) for  i in range(10)]
    for future in futures:
        future.result()  # Ensure all threads complete

(venv) [chroma-taz-21]sqlite3 to_vacuum_or_not_to_vacuum3/chroma.sqlite3 'select count(*) from embeddings_queue'                                                                                20:53:53  ☁  main ☂ ⚡ ✭
9953
(venv) [chroma-taz-21] python -m chromadb.cli.cli utils vacuum --path to_vacuum_or_not_to_vacuum3                                                                                20:53:59  ☁  main ☂ ⚡ ✭
Are you sure you want to vacuum the database? This will block both reads and writes to the database and may take a while. We recommend shutting down the server before running this command. Continue? [y/N]: y

🧼 vacuum complete! Database size reduced by 8.1MiB (⬇ 5.7%).
(venv) [chroma-taz-21]sqlite3 to_vacuum_or_not_to_vacuum3/chroma.sqlite3 'select count(*) from embeddings_queue'                                                                                20:54:17  ☁  main ☂ ⚡ ✭
9953

Actually upon further investigation the issue seems that automatic purging does not work when users have more than 1 collection:
(venv) [chroma-taz-21]sqlite3 to_vacuum_or_not_to_vacuum4/chroma.sqlite3 'select topic,count(*) from embeddings_queue group by topic'                                                                     21:00:45  ☁  main ☂ ⚡ ✭
persistent://default/default/61ca040c-b8f6-4d24-9565-0da4d7bbc962|1
persistent://default/default/8b785a0f-9dc3-47fe-8383-443806489eec|1000
persistent://default/default/a7a182b0-19f2-43a4-a52b-b596471f94ef|1000

Culprit:
https://github.com/chroma-core/chroma/blob/cbc499a732817d0732b919e2b8f7256e26588356/chromadb/db/mixins/embeddings_queue.py#L152-L165
It seems that choosing the min for multiple seq_ids and then deleting that would clean the WAL up to the collection with min seq_id, leaving the rest.

The description of the issue does not explain what the issue actually is, only inputs and outputs. Please explicitly state the problem instead of creating a little puzzle for me to figure out to see if there's even a bug.


Using in widget

I can't get the popover menu to work in a today widget in Notification Center.

@trianglepixel Hi, the popmenu was showed on main window, so maybe you needs to add the menu to the widget view manually. Hope this resolves the problem. I was busy these days, you can pull a request and solve this.


Add Demographic Toggle Layers

Add several demographic datasets as toggle base layers, Include:

[ ] Total Popultion
[ ] Employment
[ ] Zero-vehicle Households
[ ] DVRPC 2015 Land Use

Demographic Feature Service
https://services1.arcgis.com/LWtWv6q6BJyKidj8/ArcGIS/rest/services/AccessScore/FeatureServer/11
Land Use Vector Tiles
https://tiles.dvrpc.org/data/dvrpc-landuse-2015/#13.87/39.97184/-75.15899

Land Use Style from PA TIP
https://github.com/dvrpc/pa-tip/blob/master/src/components/map/layers.js


Update to ZIO 2.0.0

Remianing:

[x] zio-http
[x] some schema related changes need to be picked from https://github.com/zio/zio-flow/pull/197

Merged into https://github.com/zio/zio-flow/pull/197


Error while using import_certificate

Hello! I'm using fastlane in order to import a certificate into the keychain.
I am using the following actions (ENV are created in a .env file)
def import_certificates
    create_keychain(
        name: ENV["KEYCHAIN_NAME"],
        default_keychain: true,
        unlock: true,
        password: ENV["KEYCHAIN_PASSWORD"]
    )
    import_certificate(
        certificate_path: ENV['CERTIFICATE_P12'],
        certificate_password: ENV['CERT_PASSWORD'],
        keychain_name: ENV['KEYCHAIN_NAME']
    )
    import_certificate(
        certificate_path: ENV['CERTIFICATE_CER'],
        keychain_name: ENV['KEYCHAIN_NAME']
    )
end

I always end up with the following error.

16:01:33: --- Step: default_platform ---
16:01:33: ------------------------------
16:01:33: Driving the lane 'ios beta' 🚀
16:01:33: -----------------------------
16:01:33: --- Step: create_keychain ---
16:01:33: -----------------------------
16:01:33: --------------------
16:01:33: --- Step: notify ---
16:01:33: --------------------
16:01:33: It's recommended to use the new 'notification' method instead of 'notify'
[16:01:34]: Variable Dump:
[16:01:34]: {:DEFAULT_PLATFORM=>:ios, :PLATFORM_NAME=>:ios, :LANE_NAME=>"ios canary"}
[16:01:34]: Exit status of command 'security import certificates/Certificates.p12 -k ~/Library/Keychains/circleci.keychain -P CertificatePassword -T /usr/bin/codesign -T /usr/bin/security' was 1 instead of 0.

Using the command within the terminal, it works correctly? Any clue?
Thanks

What was the issue?

@KrauseFx I did not specify the password for the keychain. On CircleCI I created a new keychain and now it works. Maybe there something missing on CircleCI documentation.
Thanks.


Koa multer can not work with koa-router

Hi, this multer can not work with alexmingoia/koa-router  (My koa is 1.x) My code is:
const uploader = require('koa-multer')({dest: path.join(__dirname, '../upload')}); const router = new (loadLib('koa-router'))(); router.post('/lo/banner/img', uploader.single('image'), function *() {...})
When upload a file, it will throw an Error below:
TypeError: next[(intermediate value)] is not a function
at Object.allowedMethods (/home/zsl/git/iooly/server/LockscreenManager/node_modules/koa-router/lib/router.js:374:12)
at next (native)
at Object.allowedMethods (/home/zsl/git/iooly/server/LockscreenManager/node_modules/koa-router/lib/router.js:374:12)
at next (native)
at Object.dispatch (/home/zsl/git/iooly/server/LockscreenManager/node_modules/koa-router/lib/router.js:336:14)
at next (native)
at Object.serve (/home/zsl/git/iooly/server/LockscreenManager/node_modules/koa-static/index.js:43:14)
at next (native)
at Object.serve (/home/zsl/git/iooly/server/LockscreenManager/node_modules/koa-static/index.js:43:14)
at next (native)
at onFulfilled (/home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:65:19)
at /home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:54:5
at Object.co (/home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:50:10)
at Object.toPromise (/home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:118:63)
at next (/home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:99:29)
at onFulfilled (/home/zsl/git/iooly/server/LockscreenManager/node_modules/co/index.js:69:7)
So I make some changes with koa-multer and make it work with koa-router successful.The code I changed is: iooly/iooly-koa-multer.

@iooly Can you create a PR?

@fundon Yes, I created it.

@fundon Yes, I have created it: https://github.com/koa-modules/multer/pull/8

I'm sorry but my changes make it can not work koa-rout, maybe I should create moude just for koa-router

@iooly Yes, I thought that you should do that. Create a wrapper for kia-router.
Thanks, again!

@fundon Not at all.I find this problem when use it in my project.

koa-router is the most popular router. This middleware must be able to support it

How's this issues going? koa-router is still not supported yet? It would be better to put a notice on README file if it's still unavailable


add multisite support

adding namespace
multisite support
checkbox options replace text input
implementing coding standards
introduce class variables
sanitize input

@alexpflores - please review this Pull Request and merge if acceptable. It's a bit premature, but wanted to get the ball rolling.

Looks great, love the checkboxes. Tested on my local, everything works fine, but what happens in the "Test Endpoints" section when you click one in a multisite setup?
Also, wondering if there's any value in identifying and then displaying what plugin registered the custom post type? Looking at this list, not sure where 2-3 of these are coming from. Not sure if there's an quick way of doing that.

https://github.com/BCcampus/rest-endpoints/pull/1/commits/a9f268c3b78393a6b7404ef095d74f9c73582fb2 will take care of test section on multisite. What ends up happening is that although the new route is registered for all sites in a multisite, the link is based off of the network url, which more often than not does not contain the custom post type. If this test section were to work, it could grab one of the sites on a multisite, and provide that as a test route, or it could just be removed. What do you think?

I think that a quick note pointing them in the right direction on how to test their endpoints should suffice.


Implement velocity

We need to implement velocity in order for this client to be playable

Does documentation for minecraft velocity handling exist or would this have to be obtained by first decompiling and then reading the source code like in this video? https://www.youtube.com/watch?v=Wz1EI7NnUTo

Does documentation for minecraft velocity handling exist or would this have to be obtained by first decompiling and then reading the source code like in this video? https://www.youtube.com/watch?v=Wz1EI7NnUTo Edit: Found this https://www.mcpk.wiki/wiki/Movement_Formulas

I suppose this information is version specific, do you know which version it is related to?

It explicitly mentions a different jump height after 1.9 in the notes if you click on the recursive formulas, but other than that no. The default assumption would be that there are no other changes I think.
To be absolutely sure I assume you would still need to decompile.

This is for b1.7.3
https://github.com/ddevault/TrueCraft/wiki/Entity-Movement-And-Physics

Also I think this issue is technically a duplicate of https://github.com/Lea-fish/Leafish/issues/22 .
It's probably necessary to write tests to accomplish this, either by calling the java code directly, having rust interface with a java client via https://crates.io/crates/minect , or by extracting a set of known good movement data to test against. I think decompile->rust-java interface-> write tests for individual functions would probably be the most robust, but it depends on whether you want to exactly replicate the movement code with enough precision to fool anti cheats or whether you want to possibly reimplement parts of it in a more optimized fashion.

This is how Minosoft handles it:
https://github.com/Bixilon/Minosoft/blob/e84e08e99125f60c0ecc696736feff49fb7851e9/src/main/java/de/bixilon/minosoft/data/entities/entities/player/local/LocalPlayerEntity.kt

Just to give an idea, this is e.g. how I would do horizontal movement (this is more pseudocode, I havent looked up what all the variables in the project are named)
`const S_T: f64 = match surface_type{
"normal"=>0.6,
"slime"=>0.8,
"ice"=>0.98,
"air"=>1.0,
_=>0.6,
};
let E_t:f64=(1.0+0.2speedbufflevel)(1-0.15*slownesslevel)
if E_t<0{
E_t=0;
}
let strafemod=0.98;
if movement.is_key_pressed(Actionkey::forward)&& (movement.is_key_pressed(Actionkey::left)|| movement.is_key_pressed(Actionkey::Right)){
stafemod=1.0;
}
let M_t1 =match ground_movement_type {
"sprinting"=>1.3strafemod,
"walking"=>1.0strafemod,
"sneaking" =>0.3strafemod,
"stopping"=>0.0,
_=>0.0,
};
let M_t2=match strafe_type{
"forward"=>0.98,
"strafe" =>1.0,
"strafesneak"=>0.982.0f64.sqrt(),
_=>0.98,
};
let M_t=M_t1*M_t2;
//ground movement
let accelmod:f64=match isAirborne{
true=>0.02,
false=>0.1
}
velocity.velocity.x =velocity.velocity.xS_t0.91+accelmodM_tE_t*(0.6/S_t)(0.6/S_t)(0.6/S_t)yaw.cos(); //mave have to swap cos and sin
velocity.velocity.z =velocity.velocity.zS_t0.91+accelmodM_tE_t(0.6/S_t)(0.6/S_t)(0.6/S_t)*yaw.sin();
if (jumpkeyaction && isSprinting) :{
velocity.velocity.x+=0.2yaw.cos();
velocity.velocity.z+=0.2yaw.sin();
}
//velocity.velocity.y =; //probably wrong;
updatePosition(velocity, *position);
if (velocity.velocity.x.abs() * S_t*0.91) < 0.003 { // 0.005 before 1.9
velocity.velocity.x = 0.0;
}
if (velocity.velocity.y.abs() * S_t*0.91) < 0.003 { //probably wrong, also 0.005 before 1.9
velocity.velocity.y = 0.0;
}
if (velocity.velocity.z.abs() * S_t*0.91) < 0.003 { //0.005 before 1.9
velocity.velocity.z = 0.0;
}
`

A normal and physically sensible acceleration formula would probably be
velocity=velocity+currAccel*dt; ``` or something similar. I think it's technically possible to rewrite the formulas in that form if you invent the right forces, but I don't think it'd achieve the goal of being completely identical in terms of every floating point decimal matching.

Also I think this issue is technically a duplicate of #22 .
It's probably necessary to write tests to accomplish this, either by calling the java code directly, having rust interface with a java client via https://crates.io/crates/minect , or by extracting a set of known good movement data to test against. I think decompile->rust-java bindings-> write tests for individual functions would probably be the most robust, but it depends on whether you want to exactly replicate the movement code with enough precision to fool anti cheats or whether you want to possibly reimplement parts of it in a more optimized fashion.

I wouldn't call it "movement" in general to respond to velocity packet received from the server (although that's just my opinion and we are really just bikeshedding here)

Also all the research you did is really impressive, thank you for that!

Just trying to collect info to reduce the barrier to entry to solving this because I think a fully mojang-independent client+server implementation is desperately needed.
Also found this crate for movement.
Their goal in the readme is explicitly to avoid triggering anti cheats (because they're writing bots). Not sure how complete it is, but it ought to be mentioned.
https://github.com/mat-1/azalea/blob/21e3f73c23d750995a1bf715fe6191584cf4064d/azalea-physics/src/lib.rs


KNX: Added config option for broadcasting current time to KNX bus.

Description:
Added config option for broadcasting time to KNX bus.
Some devices (e.g. Gira Touch sensor 3 plus ) are able to display the time in the display. If this config option is set, the time is broadcasted to the KNX bus with the configured group address.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#4007
Example entry for configuration.yaml:
knx:
    time_address: '0/0/1'

Please add this to the documentation.

@usul27 : we reverted that change to choose a more generic approach. New PR will come (hopefully) next weekend. I will keep you updated.


Update models.rst

Add part about how to insert records when there are one to many models in the db.

Thanks, but I don't want to add more "how to use sqlalchemy" docs, that's already covered in sqlalchemy's docs.


Not working on Android

code:
bool hasFlash = await TorchCompat.hasTorch;
error:
E/flutter (17404): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method turnOn on channel g123k/torch_compat)
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.9.1+hotfix.6, on Microsoft Windows [Versione 10.0.18363.476], locale it-IT)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.5)
[√] VS Code, 64-bit edition (version 1.40.2)
[√] Connected device (1 available)

I didn't test it on iOS yet

Actually neither TorchCompat.turnOn or tornOff works in Android

Have you tried to clean your project and re-run it?
Have you tried the sample attached to the project?
With with device (+ Android version) are you facing this problem?

I think that the problem is that I'm trying to toggle the flash with the camera open...
Anyway flutter clean has no effect, you example app works and the device is a Huawei/Honor JSN-L21.

Indeed, this project can not work if you have another camera session opened.
Android doesn't allow to have multiple instances at the same type.

I close the issue, since it's not related to the plugin itself.
Please open a new one, if necessary :)


Exceptions logging

Added:

customized logging for WebApplicationException
generic logging for all other exceptions

#48

Replaced with #51


Should HikariCP issue a commit after the initial setup in PoolBase.setupConnection?

Environment
HikariCP version: 3.3.1
Database        : PostgreSQL
Driver version  : 42.2.5

I set a schema in my hikari.properties, so Hikari calls Connection.setSchema in PoolBase.setupConnection when connections are first initialised.
I am using a pool with autoCommit=false.
If the first transaction immediately after a connection is first borrowed is rolled back, then the SET SESSION search_path command the driver issues when setSchema is called gets rolled back as well, which leaves the connection in an unexpected state.
If future statements on that connection use raw table names rather than prepending the schema to the table, they will fail because the database default schema will be used instead of the schema configured on the pool, and the relation will not be found.
This can be mitigated simply by calling config.setConnectionInitSql("COMMIT;") before creating the pool.
Perhaps someone could explain whether this is expected, or if there an underlying issue with Hikari connection setup?

Hi, thanks for the workaround you found. However, it seems this issue isn't unique to HikariCP, I have the same weird behaviour using Apache DBCP2's BasicDataSource (i.e. you create the data source object with default auto commit to false, and set a custom schema, and then, upon the second connection retrieved by the pool, if the sql statement used omits schema names, an error of table not found is thrown).
I don't have tried with other dbs, in order to pinpoint a possible issue at JDBC driver level, I'll keep you updated.


Add cert-manager.io

Add cert-manager.io crds

Thank you :)
Those are popular CRs that I wanted to add to this project!


New module: publish to GitHub pages

A new foundation level module could help us include a publishing workflow for "collie foundation docs" to deploy the generated vuepress page on GitHub pages.
This makes a lot of sense after
#109
At meshcloud we are already using this internally to publish documentation for our collie managed landing zones

#139


Explain: improvements in messages

A few comments on wording:

Do not print CRN values in the middle of a sentence because real CRNs are very long. Instead, print the error message and then add: "The CRN of the offending resources: \n \t [CRN1] \n \t [CRN2] \n"

Avoid using language that refers to the code. Examples I encountered:
"ignoring floatingIP public-gw1: target.ResourceType public_gateway is not supported (only networkInterfaceResourceType supported)". I don't understand the warning (I did not use the name of a public gateway as src or dst so what is this warning about?) so I can't suggest a new phrasing. However, none of the following should be used: floatingIP, target.ResourceType, networkInterfaceResourceType

"The following connection exists between vsi1[<IP_ADDRESS>] and vsi2[<IP_ADDRESS>]: All Connections" -- replace "All Connections" with "all connection types" or "all protocols" (in this and all other relevant scenarios where this phrase is used).

Replace the following:

No connection between private-2-instance[<IP_ADDRESS>] and Public Internet <IP_ADDRESS>/16;
no fip/pgw and dst is external

with:
No connection between private-2-instance[<IP_ADDRESS>] and Public Internet <IP_ADDRESS>/16;
    The dst is external but there is no Floating IP or Public Gateway connecting to public internet

Replace the following:

illegal src: in combined-vpc-local-tg1 there is more than one resource (crn:467, crn:521) with the given input string vsi1-subnet2. can not determine which resource to analyze. consider using unique names or use input UID instead.

with:
ambiguous src: the configuration contains multiple resources named vsi1-subnet2, try using the VPC name to scope resources: vpc-name/instance-name

Do not use "combined-vpc-local-tg1" in messages, this is an internal entity.

Replace the following:

src test-vpc2/vsi1-subnet2 and dst test-vpc0/vsi0-subnet0 connected by more than one transit-gateway - local-tg1, local-tg2 - this usecase is not supported, yet.

with
The src and dst are in separate VPCs connected by multiple transit gateways (local-tg1, local-tg2). This scenario is currently not supported.

Originally posted by @kyorav in https://github.com/np-guard/vpc-network-config-analyzer/issues/538#issuecomment-2061187132

A few comments on wording:

* Avoid using language that refers to the code. Examples I encountered:
  "ignoring floatingIP public-gw1: target.ResourceType public_gateway is not supported (only networkInterfaceResourceType supported)". I don't understand the warning (I did not use the name of a public gateway as src or dst so what is this warning about?) so I can't suggest a new phrasing. However, none of the following should be used: floatingIP, target.ResourceType, networkInterfaceResourceType

This specific message has nothing to do with explainabiliy - it is printed as part of the parsing, I believe. Perhaps we should open another issue for this - also maybe avoid printing it e.g. in explainability @adisos

A few comments on wording:

* Avoid using language that refers to the code. Examples I encountered:
  "ignoring floatingIP public-gw1: target.ResourceType public_gateway is not supported (only networkInterfaceResourceType supported)". I don't understand the warning (I did not use the name of a public gateway as src or dst so what is this warning about?) so I can't suggest a new phrasing. However, none of the following should be used: floatingIP, target.ResourceType, networkInterfaceResourceType

This specific message has nothing to do with explainabiliy - it is printed as part of the parsing, I believe. Perhaps we should open another issue for this - also maybe avoid printing it e.g. in explainability @adisos

This is indeed not part of explainability output.
It's a warning  (printed by the logger, while parsing) , for certain resources being ignored/skipped from the input config object.

* "The following connection exists between vsi1[<IP_ADDRESS>] and vsi2[<IP_ADDRESS>]: All Connections" -- replace "All Connections" with "all connection types" or "all protocols" (in this and all other relevant scenarios where this phrase is used).

This wording is not mine - its from func (c *Set) String() string of connectionSet of package connection and its also used in other places - e.g. the basic connectivity report. If it is to be changed its should be changed there, with a sepreate issue and PR. Probobably not for V0.4 @kyorav @adisos @zivnevo


Send screen

[x] Refactor routing to re-use navbar (in popup).
[x] Paste invoice.
[x] Scan Invoice.
[x] Confirm.

The QR code scanning does not work for me in the popup (in FF) - I guess I do not get asked if I want to allow access to the camera.
When I fully open the popup.html in it's own tab it works. Maybe we have to open the full page for scanning?

It seems asking for permission from within the extension is problematic in Firefox. After granting permissions from within popup.html in it's own tab it's working fine.
It returns the following error from the addon: "NotAllowedError : The request is not allowed by the user agent or the platform in the current context."

So the scanning can work fine from within the popup, but it seems we need to ask permission from within a tab. See: https://discourse.mozilla.org/t/call-getusermedia-from-web-extension/36835/2

Is there a way that we can keep the permission status on a page reload.
Now if the user visits the settings page again it again shows the button to grant the permissions.

@bumi this is possible in Chrome, but unfortunately not in Firefox & Safari yet AFAIK.
See: https://stackoverflow.com/a/64274323

@johnsBeharry what do you say?

Firefox build: https://wormhole.app/R8NBl#CY7X9aKDrHoXE-LT5y7I4A
Chrome build: https://wormhole.app/bbxqD#ufpnbXlBFxPQv5RYmtTVnA


UseUnsafeUrl remove 'unsafe' from url?

Firstly a great library, well done.

I was wondering when using the UseUnsafeUrl set to true, is there a way for the unsafe word to be removed from the url?
https://localhsot:5001/image/unsafe/.... to https://localhsot:5001/image/.... ?

Firstly a great library, well done.
Thanks :smiley:

I was wondering when using the UseUnsafeUrl set to true, is there a way for the unsafe word to be removed from the url?
https://localhsot:5001/image/unsafe/.... to https://localhsot:5001/image/.... ?

You should never use the unsafe mode because of url tampering especially for public services.
But if you use the unsafe mode, you should see every time that your urls are unsafe. Thats the reason.

@usercode Thanks for the great project. Can you elaborate somewhere how the hash is generated and whether it is possible to generate it in other way than using the client library? I've read the code and understood that the hash is being generated using the image path and a secret key, is it possible to generate hashes from the front-end spa, for instance?
I am asking this because consider a following scenario:
I have some objects in the database that have an ImageUrl field, that contains an (duh) url to the image. I am serving the objects via an azure search index, because there are millions of these objects and using the db is too slow. The objects get into the index via a SQL view. So, using the view, I am unable to generate hashes to resize the images, because I'm not sure I can replicate the hash algo in SQL. Is there an obvious solution to this case, that I'm missing?

The signature based on HMACSHA256 . You can find the source here:
https://github.com/usercode/ImageWizard/blob/a0bc5a6bd208765b996123fe3ba3c4711bd51406/src/ImageWizard.Utils/CryptoService.cs#L45-L50
But it's absolute no good idea to generate the siganture by a client app. If the client app contains the secret key, your security is broken.
Maybe this is an alternate way:
If your app has an user login, you can add the authorization policy to the imagewizard endpoint.

I'm not sure I can replicate the hash algo in SQL. Is there an obvious solution to this case, that I'm missing?

I don't understand, why you want to put the siganture into azure. Caching of transformed images is the job of imagewizard. You can create your own ImageCache to handle this. (IImageCache delivers all metadata like signature.)
https://github.com/usercode/ImageWizard/blob/a0bc5a6bd208765b996123fe3ba3c4711bd51406/src/ImageWizard.Core/ImageCaches/IImageCache.cs#L14-L31
Or you can use the AzureBlobLoader to load the original images from azure.
The signature is just for allowing trusted clients to use the imagewizard middleware. All other components like image cache and image loader should not have a reference to the signature. (The signature can be changed.)


4.3.0 regression / TinyMCE image caption alignment regression

Affected Version
4.3.0
Description
Image caption cannot be realigned independently of the image anymore.
Steps to Reproduce
Browser: Chromium Version 70.0.3538.67 (Official Build)

Go to the admin panel
Open a content page to edit (or create a new one)
In the content section press "Insert from Files"
Pick an image (or upload a new one)
Choose Alignment "Center"
Add any caption text
Press "Update/Insert"
Try to realign the caption text within the text editor to "Left"

The caption text always stays centered.
Notes

Related to https://github.com/silverstripe/silverstripe-framework/issues/8529

PR

[x] silverstripe-simple#59 partial fix

Partially fixed by https://github.com/silverstripe-themes/silverstripe-simple/pull/59
Realignment for caption still does not work correctly.


TO/TP Self Service - Clone Existing Service for New Build

TO/TP Self Service - Clone Existing Service for New Build
Allow users to duplicate an existing delivery service with minor changes

@ryandurfey
@ashish-timilsina


[SB8] "Author image" is missing a title and alt text

The markup has changed. See comparison screenshot:

https://develop.design-system.pages.dev/?path=/story/foundation-images-author-image--author-image

fixed

Verified


(#1140) Add stream-check and consumer-check subcommands

Here we add the stream-check and consumer-check subcommands to the server command.
These subcommands are hidden, and will use the system credentials to iterate all servers, streams and consumers and display debugging related information to the user in a table.

Thank you @ploubser


Generate From impls

Error types commonly provide From impls so that they can be constructed by ?.
I don't want to become a fully general From derive, but I would be okay with providing a convenient From impl just for sources. Any From impl other than from the source should be handwritten for visibility or using something like derive_more.
#[derive(Error, Debug)]
enum EnumError {
    Example(#[from] io::Error),
}

For the case of lots of variants that all want a From impl there could be an enum-level attribute to opt in to all of them.
#[derive(Error, Debug)]
#[error(from_source)]
pub enum E {
    E0(#[source] io::Error),
    E1(#[source] serde_json::Error),
    E2(#[source] regex::Error),
    E3(#[source] hyper::Error),
    E4(#[source] anyhow::Error),
}

Relevant thread:
https://www.reddit.com/r/rust/comments/dfkwfo/announcing_thiserror_a_convenient_modern/f34fo4h/?context=1

I've been poking at this a little; for structs, should this only work if there's one field (which is source)?

The behavior of the attributes (AFAICT) is that "first found wins", so the first found with the attribute or with the right name would be found as the source bit.

"First found wins" is not intended behavior, I filed https://github.com/dtolnay/thiserror/issues/6 to fix it. The From should work if there is exactly one field which is the source, or two fields source and backtrace in which case a backtrace should be captured from within the From impl.

Thanks for the clarification @dtolnay. I know there's some issues to triage, but I do plan to try my hand at implementing some of these fixes anyhow to learn more about macros, so let me know if I can be of help.
@mathstuf my question above was not directed as much at knowing which field to to use; but rather about how in the From impl it's hard to know how to fill in all the other non-source (and non-backtrace) fields.

Oh, that's a good point. Maybe From should only be implemented for source-as-only-field. Probably easier for enum than struct too, but you have to be careful that there's only a single instance of that source type in any variant. That's another reason to not do From by default. I'd be surprised if this kind of stuff doesn't end up as another case study in https://github.com/dtolnay/case-studies in all the ways Rust code can tickle assumptions for macro writers ;) .

Just a note that there may be multiple enum variants with the same source error type. In this case, I guess the ergonomic thing to do is:

when doing per-variant opt-in, double check all variant source types to make sure there's no overlap.
when doing a 'global' opt-in for all variants, have an additional attr that opts-out (#[no_from]), or just error out.

Or, the derive could just report an error and ask the user to manually impl From
It looks like err-derive tends towards allowing more macro machinery to work it out ergonomically. https://old.reddit.com/r/rust/comments/dfkwfo/announcing_thiserror_a_convenient_modern/f34n4hs/
It seems like you're trying to keep thiserror minimal, so I'm curious to know if adding all this logic is part of the project's scope.

@dtolnay, two questions:

I'm having some trouble working how to do the #[source, from] syntax. Unless I'm missing something, you can't automatically squash multiple attributes together. Can you point me in the right direction?

Would you want to use trybuild now? I've added some new test structs to tests/test_error.rs, and taken a peek using cargo-expand, but I'm starting to think about how to test some of the failure modes.

Regarding #[source, from], you are right, it doesn't seem possible to parse this with rustc currently. I think since we plan to only support From for sources, this can be written as just #[from], i.e. #[from] will always imply #[source] implicitly.
#[derive(Error, Debug)]
pub struct Error(#[from] io::Error); // io::Error is implicitly the source

Yes absolutely. I filed https://github.com/dtolnay/thiserror/issues/11 to track this as it can happen independently.

If we want #[source, from], how about #[from_source]/#[source_from] to keep #[from] unused for possible better use case in the future?

I'm the author of derive_more. I saw this crate popping up on reddit and I like the way this crate derives the Error trait. Then I saw this issue and I was thinking that another solution would be to combine forces on this. The current master branch of derive_more supports the following From derive:
// Default not from
#[derive(From, Debug)]
enum EnumError {
    #[from]
    Example(io::Error),
    NotFromable(i32),
}

// Default from
#[derive(From, Debug)]
enum EnumError {
    Example(io::Error),
    #[from(ignore)]
    NotFromable(i32),
}

and together with the Display derive from the crate
// Default from
#[derive(From, Display)]
#[display(fmt="E prefix: {}")
pub enum E {
    #[display(fmt='io error')]
    E0(io::Error),
    E1(serde_json::Error),
    E2(regex::Error),
    E3(hyper::Error),
    E4(anyhow::Error),
    #[from(ignore)]
    #[display(fmt="wrong count {}", count)]
    SomeCustomError{count: i32},
}

I think it would be very nice if we could combine the good parts of this library and derive_more.
// Default from
#[derive(From, Display, Error)]
#[display("E prefix: {}")
pub enum E {
    #[display('io error')]
    E0(io::Error),
    E1(serde_json::Error),
    E2(regex::Error),
    E3(hyper::Error),
    E4(anyhow::Error),
    #[from(ignore)]
    #[source(ignore)] // maybe #[error(ignore)]
    #[display("wrong count {count}")]
    SomeCustomError{count: i32, backtrace: Backtrace},
}

@dtolnay what do you think?

@JelteF that does not sound promising to me because error objects require a pretty error-specific impl of From when it comes to dealing with backtraces.

I'm not entirely sure what you mean, wouldn't you want to simply forward the backtrace call to the source error?

The From impl needs to capture a backtrace if the source error doesn't already have one.

That's definitely a good point. Some options I can think of:
// Specific solution for error, that does auto detection of backtrace field
#[derive(From, Debug)]
enum EnumError {
    #[from(error)]
    Example{error: io::Error, backtrace: Backtrace),
    NotFromable(i32),
}

// More general, but more verbose
#[derive(From, Debug)]
enum EnumError {
    Example{
       error: io::Error,
       #[from(default="Backtrace::capture()")]
       backtrace: Backtrace,
    },
    NotFromable(i32),
}

Because of the way I've implemented attribute handling, the first one would also work easily for the big struct by putting the from attribute on the enum:
#[derive(From, Display, Error)]
#[display("E prefix: {}")
#[from(error)]
pub enum E {
    #[display('io error')]
    E0{source: io::Error, backtrace: Backtrace},
    E1{source: serde_json::Error, backtrace: Backtrace},
    E2{source: regex::Error, backtrace: Backtrace},
    E3{source: hyper::Error, backtrace: Backtrace},
    E4{source: anyhow::Error, backtrace: Backtrace},
    #[from(ignore)]
    #[source(ignore)] // maybe #[error(ignore)]
    #[display("wrong count {count}")]
    SomeCustomError{count: i32, backtrace: Backtrace},
}

I'll think a bit more about this, but I actually like the option above quite a bit.

FYI to the people with :+1: reaction above -- @drrlvn @Alexendoo @hwchen @joseluis @CAD97 @NAlexPear @jplatte @mitchmindtree @twistedfall @Jezza @MikailBag @MOZGIII
From impls have been implemented in thiserror 1.0.2!
Here are the release notes: https://github.com/dtolnay/thiserror/releases/tag/1.0.2


fixed jsonwebtoken, introduced lodash

Description

A clear and concise summary of the change and which issue (if any) it fixes. Should also include relevant motivation and context.
Resolved or fixed issue:
Affirmation

[ ] My code follows the CONTRIBUTING.md guidelines

Checkmarx One – Scan Summary & Details – 272b5eed-7985-4c75-a390-c2203e8cddf9
Policy Management Violations - Pull/merge request blocked

Policy Name
Rule(s)
Break Build

High and Medium
Medium Severity, High Severity
true

New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2024-34391
Npm-libxmljs-1.0.11
Vulnerable Package

CVE-2024-34392
Npm-libxmljs-1.0.11
Vulnerable Package

CVE-2024-34394
Npm-libxmljs2-0.33.0
Vulnerable Package

CVE-2024-42459
Npm-elliptic-6.5.4
Vulnerable Package

CVE-2024-42460
Npm-elliptic-6.5.4
Vulnerable Package

CVE-2024-42461
Npm-elliptic-6.5.4
Vulnerable Package


Shorter gitignore

Summarise the changes this Pull Request makes.
A shorter .gitignore file, without all the things that we aren't using
Please include a reference to a GitHub issue if appropriate.
https://github.com/justeat/JustSaying/pull/377#discussion_r210893230

Would be good to add .DS_Store (for the macOS users) and thumbs.db (for Windows).


Improve screen resolution during drawing

Hi @tpietzsch,
This is the old branch that I used when coding the interval painting with BDV.
I now see a design problem with it: The code has a Model-View-Controler pattern.
With:
viewer = BDV
model = ImageLabelingModel
controller = LabelBrushController
When the brush is used, the LabelBrushController fires a ImageLabelingModel.dataChangeNotifier().notifyListeners() event. Which tells all the listeners that the content of ImageLabelingModel.labeling() changed. One of the listeneres if th BDV / BasicLabelingComponent, that repaints it screen. This PR adds a "screen interval" as parameter to the event. The controller and viewer can correctly interpret this "screen interval" as they know the current viewer transform. But the other listerners don't know
the current viewer transform. Hence the "screen interval" can not be interpreted correctly by them.
This is not a functional problem, just a little bit dirty about the design. Does any apparent solution come to your mind?

This is not a functional problem, just a little bit dirty about the design. Does any apparent solution come to your mind?

Nothing simple.
To make the changes viewer transform independent, it would make sense to give the updated region in source space:
which source, which timepoint, and which 3D interval change. BDV could then react to this, checking whether the current screen region is affected by the update, and re-painting the corresponding screen interval if it is.
Longer-term it would be good to push this type of change notification framework deeper into bigdataviewer or even imglib2. It could happen automatically when pixel data is modified through accesses, or manually triggered. Automatic could be on the access level, maybe a more powerful version of the Dirty accesses in imglib2. But it is relatively unclear to me how that would look exactly.
Anyway, for now, I think your solution is fine...

I rebased it onto current master. From my point of view it's ready to merge...

Ok, lets stay with the current solution then.

I love how smooth the drawing works now!
But I found a bug too. I get an exception whenever the brush goes off the screen / bdv window. The exception can be reproduced like this:
BdvStackSource< IntType > bdvSource = BdvFunctions.show( ArrayImgs.ints( 100, 100 ), "black" );
Thread.sleep( 1000 );

// Request to repaint an interval which is off screen -> causes exception
bdvSource.getBdvHandle().getViewerPanel().requestRepaint( Intervals.createMinSize(-50, -50, 10, 10) );

While debugging the code I found that these lines calculate an interval with negative height or width:
https://github.com/bigdataviewer/bigdataviewer-core/blob/master/src/main/java/bdv/viewer/render/ScreenScales.java#L234-L239
This later on causes the exception. There are of cause two ways to fix this:

Never request to repaint an interval which is off screen.
Change BDV core to properly handle an off screen repaint request.

It think the second option is more robust and better. @tpietzsch What do you think?

Yes, second option sounds better. I'll fix it...

@maarzt it's fixed now

@tpietzsch Thank you for working on this!


WebServiceTarget - Enable OptimizeBufferReuse by default

Waiting for NLog ver. 4.5

This change is

Current coverage is 81% (diff: 84%)

Merging #1912 into master will decrease coverage by <1%

@@             master      #1912   diff @@
==========================================
  Files           285        285
  Lines         19398      19412    +14
  Methods        2946       2946
  Messages          0          0
  Branches       2256       2258     +2
==========================================
- Hits          15803      15799     -4
  Misses         3058       3058
- Partials        537        555    +18

Powered by Codecov. Last update c65edc2...b6d67f7

Added support for HttpWebRequest Headers. Not sure if it should be pushed to NLog 5.0, as it is a breaking change.

Where is the breaking change?

Where is the breaking change?

This method is now throwing an exception:
protected override void DoInvoke(object[] parameters, AsyncContinuation continuation)
{
   // method is not used, instead asynchronous overload will be used
   throw new NotImplementedException();
}

As it has been replaced by this override method:
protected override void DoInvoke(object[] parameters, AsyncLogEventInfo logEvent)

@304NotModified Now modified the code, so it is no longer a breaking change.

\0/ thanks!

Updated documentation:
https://github.com/NLog/NLog/wiki/WebService-target


Update fs2-core, fs2-io to 3.2.4

Updates

co.fs2:fs2-core
co.fs2:fs2-io

from 3.2.3 to 3.2.4.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "co.fs2" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report

Merging #597 (c790998) into main (9d2f9f7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #597   +/-   ##
=======================================
  Coverage   85.30%   85.30%
=======================================
  Files         124      124
  Lines        1599     1599
  Branches       34       34
=======================================
  Hits         1364     1364
  Misses        235      235

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9d2f9f7...c790998. Read the comment docs.


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20221121163735365 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20221121163735365 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.003%) to 41.946%

Files with Coverage Reduction
New Missed Lines
%

src/sql/workbench/services/connection/browser/connectionDialogWidget.ts
1
73.05%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
28745

Relevant Lines:
63663

💛  - Coveralls


Visual glitch with recipe catalog

Bug description

Operating system
Fedora 40
Installation Method
None
Version
next (development version)
Steps to reproduce
Small screen
Relevant log output
No response
Additional context
No response

Looks like already been fixed

@gastoner if you use a snapshot of ai-lab, you'll still see the issue.

@gastoner you can inspect and replace v1.3.0 by a very very long string, you will see that the More details come out of the card


[Creator Starter Kit] BUG: Fluent Details List (0.0.20) is not rendering index to Zero after unrelate items

Describe the bug
As both tables are using different data sources from Dataverse, there are 1:N relationships. When I unrelate items, the index is not set to zero after unrelated items.
Example Scenario
There are two FluentDetailsList_A and FluentDetailsList_B, with FluentDetailsList_B using Item = FluentDetailsList_A .Selected.'Other Source'.Name.
The rendering is fine when using ForAll Relate Functions to add related items in FluentDetailsList_B, but I have issues when using ForAll Unrelate Functions. FluentDetailsList_B does not render the index to Zero after unrelate selected items. Let's say If I select 4 Items in FluentDetailsList_B to unrelate items, it will be 4 Items in the index as the last value in FluentDetailsList_B until I select other records in FluentDetailsList_B, then it will fix it as the current total number selected records.

Hi @yaseralhosani - thank you for submitting this and describing the issue description.
Just so I can be sure I understand fully, could you share a simple solution that demonstrates the issue?

Hi @yaseralhosani - Thank you for this. Although I can't import this solution because it doesn't have the tables included - I can see the Power Fx code you are using from unpacking the app. I'll look into your sceario and run some tests.
In the meantime, you may want to try without using the navigation property fdlStrategicObjectivesDataSO.Selected.'Strategic Key Performance Indicators' - instead Filter the sub-grid using the primary key of the 'Strategic Objectives' table.
E.g if you were going to filter a sub grid to only show the related contacts for a selected Account in fdlAccounts, you would bind the contacts grid items to be:
Items = Filter(Contacts,AsType('Company Name',[@Accounts]).Account = fdlAccounts.Selected.Account)

The AsType wouldn't be needed in your scenario assuming you don't have a polymorphic relationship.
Additionally, after you have performed the Relate and Unrelate operations, use Referesh('Strategic Key Performance Indicators') to get the latest values.
Once I have more information on using the navigation property as a data source, I'll update this issue.
FYI - There is also an issue that will be fixed in the July release where the selection is cleared after the grid is refreshed/filtered.
Thank you for helping with the Creator Kit!

Hi @scottdurow,
I really appreciate your reply.
It was my fault that I did not provide a proper solution 😥.
Based on my scenario, the subgrid is working great so far. Thanks for reminding me about polymorphic relationships (I had forgotten about this).
In addition to what you mentioned in your last comment, there is an issue where the selection is cleared after the grid is refreshed/filtered. In addition, I noticed subgrid selections when to relate and unrelate are refreshed and able to get the latest values without using the Refresh function because it's already linked with the first grid (If my guess was right), but selections in the subgrid were not cleared until I select one or more items in the subgrid then it will count one or more based on a number of selections in the subgrid.
Thank you and I really appreciate it and I can't wait for the July release 😀

@yaseralhosani can you please confirm if the refresh behavior you were looking for was resolved in the July update?

@yaseralhosani can you please confirm if the refresh behavior you were looking for was resolved in the July update?

I will check and update.

@denisem-msft As expected, it now works perfectly.

Thank you for validating.


training time

Cool project! I was wondering what is the expected runtime for 5K iterations?

For me it was extremely fast for Stable Diffusion on a 3090, about 20 steps/s. It didn't seem to produce good results. The author said he's working on it.

On a V100:
For LDM: 5k iterations take roughly one hour.
For Stable Diffusion they are about half as fast (so roughly 2 hours).
@AmericanPresidentJimmyCarter working on it indeed. Inversion should already be working fine (i.e. 'a photo of *') but editing doesn't work too well with current parameters. If you're getting 20 steps/s there might be something else different in your setup though, since I'm getting roughly 1.5/s on a V100.

@rinongal Something is broken on my branch I think. I got it running last night after editing a lot on my branch, but I don't think it's working right as it doesn't dump images periodically.
Is there some other unpushed stuff to make it work with SD, or should I just revert and try to make it work with the settings on reddit?

Nothing unpushed for SD. You should be able to invert into SD by pointing main.py at the config file here: configs/stable-diffusion/v1-finetune.yaml.
It should be dumping images into the logs directory every 500 steps. If that doesn't work for you, open another issue and I'll try to help you there.

any idea how long or if its even possible to fine tune on a 3070?

How much VRAM do you have on that? And are you planning to invert the LDM model, or Stable Diffusion?

8gb wanted to know on SD

It's going to be rough.
With SD I'm currently using up 21 GB with a batch size of 2, so just batch changes won't cut it. Maybe you can tweak it to work on lower resolution images and save some memory, but it's a non trivial change.

Just to be sure, does that mean running this repo with SD takes up more resources than with LDM?

For inversion, yes. Roughly 3 times as much, mostly on account of the increased image resolution.
It may be possible to do the inversion on 256x256 images, but my main focus atm is getting it to work properly with SD to begin with. After that we'll see about optimizing the memory requirements.

Closing this since its answered and there's no activity. Feel free to re-open if you need more help.


[Feature Request]: Support for units of speed and acceleration

This is not an issue but a feature request to add units of speed to convert. Data sizes (e.g 1tb to kb) would be another great addition. Thanks for all the good work on this so far.

Data is already a supported format since v1.
Compound units, like speed (distance/time), would definitely be a useful addition to the library, but are difficult to implement with the way the project is currently setup. I can play around with it some though, and see if I'm able to come up with a solution.


Vim modelines

helping vim users to automatically setup tabs/indents within the project

Coverage remained the same at 76.59% when pulling 2b1b64fd8f3b0782ccf2ea35faf98b1bfc65c837 on gbordyugov:vim-modelines into d7f6efd1e8b66c8f677b4aa0c902ccb276f48e86 on zalando:dev.


Javascript Library?

What about making a javascript library for the same purpose it would be cool if this would be able to be handled with the browser more easily to test out with languages within the browser rather than relying on server side python running etc...

we can do. need contributors for this.


chore: preparing 3.8.1 release

Summary
prepare for release 3.8.1
Test plan
All FSC and unit tests must be passed.

Coverage remained the same at 99.477% when pulling 949654aa98701a636b2853c6ab42306fccd439bd on uzair/prepare-3.8.1-release into 6f844cab104b446cb6eebd4bbc56cd648d1cbe82 on master.


peripherals manager

@gauteh I am building now something I felt I mess in the previous version of the buoy - a way to keep track of whether a peripheral is in use or not, to talk to which devices, and how this knowledge should be used to swith the peripheral on / off.
This is what I am implementing here:
https://github.com/jerabaul29/OpenMetBuoy-v2021a/blob/feat/platformio-tracker-add-peripheral-manager/tracker/lib/peripheral_manager/peripheral_manager.h
https://github.com/jerabaul29/OpenMetBuoy-v2021a/blob/feat/platformio-tracker-add-peripheral-manager/tracker/lib/peripheral_manager/peripheral_manager.cpp
If you have any comments / criticisms / thoughts etc, as usual will be happy to hear, but as usual no problem if you are too busy to look at it :) .

This is a bit similar to a bus manager, or shared_bus in rust (but without the power management of the device). You probably have to assume that the PeripheralManager or BusManage(?) will be used from multiple threads, so it needs to use a cortex-m mutex (essentially using interrupt_free context), see the shared-bus source code.
One way to do this is to wrap the I2C device in the BusManager, then you can hand out new leases to it to each device and the bus manager will synchronize their access. Both sharing the I2C bus and doing power-management at the same time might complicate the design, maybe it should be two split in two concepts?

Many thanks for the comments :) . I think I will work with the hypothesis that it is single threaded so far :) . When not using a RTOS the code is single threaded except for the interrupts, and this is not some operations that should be done from within an interrupt. What do you think?

Yeah. Just reading from the same I2C bus in an interrupt - say sampling the IMU from RTC or new-sample-interrupt will be unsafe unless you sync the bus access.

Right, I had not thought about that, thanks. I will think a bit extra about it. My idea originally was to use this manager to only keep track of switching things on and off, but I see what you mean. Thanks! :)

This is really interesting - I am so used to the arduino way of thinking, where we do "everything" in a single thread, and interrupts are not used for "hidden multithreading", that I forget that such things can happen ^^ :) .
I have one worry, and it is that, given that I use arduino libraries that are often quite "low quality" / not thought for ISR driven mutlithreading, if I start doing things more complex than updating a counter from an ISR (like, if I communicate with a device on I2C / SPI from within an interrupt), things will likely break (like, getting stuck in an ISR, because it relies on some delay that is implemented using an ISR, or something like this). So I think I will avoid doing stuff like reading a device from an ISR, and instead have my own hand-engineered "event loop" of some kind. This is a poor man's fix, but I think I am stuck there as long as I remain in the arduino ecosystem - and I think alternatives are not fully mature yet, and anyways I do things that go quite slow, so arduino ecosystem is good enough to me so far :) . But many thanks, will keep it in head.
I will update the documentation to make this clear :) .

Actually, the library for the 6dof for example looks very good; I think I will implement what you suggest here, as there should be no issues using the library from withing an ISR triggered context.
So what I plan would be to implement things so that:

to use the port, you have to "loan it",
the port "loaning" is protected by i) disabling interrupts, ii) a mutex; this way, cannot be used by 2 separate threads, and cannot jump in an interrupt / "hidden thread" either, as this would block things up - i.e. avoid no more progress in the first thread that is holding the mutex, and no progress in the ISR that is trying to get the mutex.

I have to think if I create 2 methods (loan and give_back), or if I build an additional object to do RAII.
Anything I am missing @gauteh ? :) (and thank you again for your patience and explanations :) ).

If you are the sole owner (own with mutability in rust) you don't need to protect it with the mutex (that is you have no other devices on the same I2C bus, and can pass it to the ISR). Otherwise Mutex (implemented using interrupt guards) works!


Doc: net_info in detailed stats is undocumented

Issue
The documentation for 'Get detailed stats for a STARTED App' (http://apidocs.cloudfoundry.org/239/apps/get_detailed_stats_for_a_started_app.html) does not mention a net_info object, but one is being returned.
Steps to Reproduce
$ cf curl v2/apps/6a5601d5-ae48-4b5c-b440-580b245bb4f0/stats
{
   "0": {
      "state": "RUNNING",
      "stats": {
         "name": "test-application-lclah",
         "uris": [
            "test-application-lclah.xxxx"
         ],
         "host": "x.x.x.x",
         "port": xxxx,
         "net_info": {
            "address": "x.x.x.x",
            "ports": [
               {
                  "container_port": xxxx,
                  "host_port": xxxxx
               },
               {
                  "container_port": xxxx,
                  "host_port": xxxxx
               }
            ]
         },
         "uptime": xx,
         "mem_quota": 536870912,
         "disk_quota": 536870912,
         "fds_quota": 16384,
         "usage": {
            "time": "2016-07-28T09:31:15.164895799Z",
            "cpu": 0.0018390040377131692,
            "mem": 321777664,
            "disk": 170438656
         }
      }
   }
}

(Customer Ref: https://github.com/cloudfoundry/cf-java-client/issues/540)

@twoseat,
Thanks for bringing this to our attention!  This field was added unintentionally so we've decided to remove it instead of adding it to the documentation.  This work was done in 7685f6f, so if you continue to encounter the net_info field on this endpoint in the future please feel free to reopen this issue.
Best,
@thausler786
CAPI team member


Convert boolean value in Profile Page to Yes/No

Is your feature request related to a problem? Please describe.
Whenever we visit user profile page, the Subscribed to emails value shows true/false. It's not a good for end-user with little technical knowledge.

Describe the solution you'd like
We should convert the value to normal language [Yes/No].

For true value show Yes
For false value show No

Are you working on this? (Yes/No)
No

Hi , I would like to work on this issue. Can you add me to this issue?

Hi , I would like to work on this issue. Can you assign this issue to me?

cc @vedant-jain03

Hi , I would like to work on this issue. Can you assign this issue to me?

I would like to work on this issue if it is still open.

Hi, I would like to work on this issue if it is still open
@vedant-jain03

Hi, I would like to work on this issue if it is still open @vedant-jain03

@Aishwarya1396 Sure, go ahead!

Hello, if it is still open, I will like to work on this issue.

Hi @Imsurajr you can try it, i have issues running the app on my emulator.

@vedant-jain03 Please assign this issue to me.

Hello @vedant-jain03 , I have succesfully made the pull request for issue #263  following all the contribution guidlines, please let me know if there is some fault in my code or for any suggestions. If everything works fine at your end too, please merge the Pull Request.


container load metrics from cpuacct.stat

Hi,
I red throughout this blog post :
http://blog.docker.io/2013/10/gathering-lxc-docker-containers-metrics/
about gathering containers' metrics.
I wonder how, based upon cpuacct.stats "user" and "system" metrics, how can I say a container is actually full loaded .
Anyone went deeper in it ?
Thanks.
A

#9984 was merged so you can now receive cpu, memory, io, network and more via the docker api


"NETSDK1213: Targeting .NET 8.0 or higher in Visual Studio 2022 17.7 is not supported." missing from doc

Type of issue
Missing information
Description
NETSDK1213: Targeting .NET 8.0 or higher in Visual Studio 2022 17.7 is not supported.
It is missing, it was added here: https://github.com/dotnet/sdk/blob/main/src/Tasks/Common/Resources/Strings.resx.
Page URL
https://learn.microsoft.com/en-us/dotnet/core/tools/sdk-errors/
Content source URL
https://github.com/dotnet/docs/blob/main/docs/core/tools/sdk-errors/index.md
Document Version Independent Id
617440e5-3596-7bf3-8cbf-0cfa0d477f5a
Article author
@tdykstra
Metadata

ID: 84bd87ce-62bc-500a-6d55-3f76787ae850
Product: dotnet-fundamentals
Technology: dotnet-cli

Thanks! @tdykstra


Query leads to endless loop (because of Optimizer?)

Running TPC-H Q13 leads to an endless loop in peloton. I tried to follow the execution path and it seems to me that the optimizer runs in infinitely many tasks and the actual execution never starts. However, I am not familiar with this part of peloton.

TPC-H Q13 (includes creating schema)
CREATE TABLE nation  ( n_nationkey  INTEGER NOT NULL,
                       n_name       CHAR(25) NOT NULL,
                       n_regionkey  INTEGER NOT NULL,
                       n_comment    VARCHAR(152));

CREATE TABLE region  ( r_regionkey  INTEGER NOT NULL,
                       r_name       CHAR(25) NOT NULL,
                       r_comment    VARCHAR(152));

CREATE TABLE part  ( p_partkey     INTEGER NOT NULL,
                     p_name        VARCHAR(55) NOT NULL,
                     p_mfgr        CHAR(25) NOT NULL,
                     p_brand       CHAR(10) NOT NULL,
                     p_type        VARCHAR(25) NOT NULL,
                     p_size        INTEGER NOT NULL,
                     p_container   CHAR(10) NOT NULL,
                     p_retailprice DECIMAL(15,2) NOT NULL,
                     p_comment     VARCHAR(23) NOT NULL );

CREATE TABLE supplier ( s_suppkey     INTEGER NOT NULL,
                        s_name        CHAR(25) NOT NULL,
                        s_address     VARCHAR(40) NOT NULL,
                        s_nationkey   INTEGER NOT NULL,
                        s_phone       CHAR(15) NOT NULL,
                        s_acctbal     DECIMAL(15,2) NOT NULL,
                        s_comment     VARCHAR(101) NOT NULL);

CREATE TABLE partsupp ( ps_partkey     INTEGER NOT NULL,
                        ps_suppkey     INTEGER NOT NULL,
                        ps_availqty    INTEGER NOT NULL,
                        ps_supplycost  DECIMAL(15,2)  NOT NULL,
                        ps_comment     VARCHAR(199) NOT NULL );

CREATE TABLE customer ( c_custkey     INTEGER NOT NULL,
                        c_name        VARCHAR(25) NOT NULL,
                        c_address     VARCHAR(40) NOT NULL,
                        c_nationkey   INTEGER NOT NULL,
                        c_phone       CHAR(15) NOT NULL,
                        c_acctbal     DECIMAL(15,2)   NOT NULL,
                        c_mktsegment  CHAR(10) NOT NULL,
                        c_comment     VARCHAR(117) NOT NULL);

CREATE TABLE orders  ( o_orderkey       INTEGER NOT NULL,
                       o_custkey        INTEGER NOT NULL,
                       o_orderstatus    CHAR(1) NOT NULL,
                       o_totalprice     DECIMAL(15,2) NOT NULL,
                       o_orderdate      DATE NOT NULL,
                       o_orderpriority  CHAR(15) NOT NULL,
                       o_clerk          CHAR(15) NOT NULL,
                       o_shippriority   INTEGER NOT NULL,
                       o_comment        VARCHAR(79) NOT NULL);

CREATE TABLE lineitem ( l_orderkey    INTEGER NOT NULL,
                        l_partkey     INTEGER NOT NULL,
                        l_suppkey     INTEGER NOT NULL,
                        l_linenumber  INTEGER NOT NULL,
                        l_quantity    DECIMAL(15,2) NOT NULL,
                        l_extendedprice  DECIMAL(15,2) NOT NULL,
                        l_discount    DECIMAL(15,2) NOT NULL,
                        l_tax         DECIMAL(15,2) NOT NULL,
                        l_returnflag  CHAR(1) NOT NULL,
                        l_linestatus  CHAR(1) NOT NULL,
                        l_shipdate    DATE NOT NULL,
                        l_commitdate  DATE NOT NULL,
                        l_receiptdate DATE NOT NULL,
                        l_shipinstruct CHAR(25) NOT NULL,
                        l_shipmode     CHAR(10) NOT NULL,
                        l_comment      VARCHAR(44) NOT NULL);

select
	c_count,
	count(*) as custdist
from
	(
		select
			c_custkey,
			count(o_orderkey) as c_count
		from
			customer left outer join orders on
				c_custkey = o_custkey
				and o_comment not like '%special%deposits%'
		group by
			c_custkey
	) as c_orders
group by
	c_count
order by
	count(*) desc,
	c_count desc;

@chenboy can you take a look at this?

@tcm-marcel The loop is caused because this query contains a Left Outer Join. A group in 15721 is working on implementing outer joins in the optimizer (#1280) so it should hopefully be fixed soon. I'll keep the issue open for now.
For the future though we should probably throw an exception for unimplemented SQL functions in the optimizer instead of looping.


Remove .form-group

Form group is currently being used inconsistently across many projects
for layout purposes. This commit removes it, we'll have a PR for how we
can handle atomic design and form layout this sprint.
Review

@cfarm

👍


Adding some smoothing to hybrid controller

Adding smoothing to the wind and solar in the hybrid controller

@misi9170 This should be ready to be reviewed and merged in now!


Plugin installation problem

Describe The Bug:
Plug-in doesn't seem to install correctly when using it in HOOBS
To Reproduce:

Expected behavior:
Correct installation
Logs:
Show the Homebridge logs here, remove any sensitive information.
07/12/2020, 08:29:15 The requested platform "EufySecurityHomebridgePlugin" was not registered by any plugin.
07/12/2020, 08:29:15 Your config.json is requesting the platform "EufySecurityHomebridgePlugin" which has not been published by any installed plugins.
Plugin Config:
Only entered my email address and password
Show your Homebridge config.json here, remove any sensitive information.

**Screenshots:**
<!-- If applicable, add screenshots to help explain your problem. -->

**Environment:**

* **Plugin Version**: Latest ( as of this morning )
* **Homebridge Version**: I am using  HOOBS in Docker on my Synology NAS
* **Node.js Version**: <!-- node -v -->
* **NPM Version**: <!-- npm -v -->
* **Operating System**:HOOBS in Docker on my Synology NAS

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->

Looks like a config.json issue. Can you post that? (Redact sensitive information)￼

Hello,
Perhaps you can help mei have the same problem, but i also validate before the config.json
{
"username": "...............",
"password": "............",
"name": "Eufy",
"platform": "EufySecurityHomebridgePlugin"
},

I'm also having the same issue:
{
            "username": "...",
            "password": "...",
            "enablePush": true,
            "platform": "EufySecurityHomebridgePlugin"
        }

    at /usr/local/lib/node_modules/homebridge-plugin-eufy-security/node_modules/eufy-node-client/build/http/http.utils.js:24:15
    at Generator.next (<anonymous>)
    at fulfilled (/usr/local/lib/node_modules/homebridge-plugin-eufy-security/node_modules/eufy-node-client/build/http/http.utils.js:5:58)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)```

any solutions or ideas? I am also running into this problem :-/ with a wired doorbell
[3/3/2021, 5:14:07 PM] [EufySecurityHomebridgePlugin] registering a push token timed out
[3/3/2021, 5:14:15 PM] [EufySecurityHomebridgePlugin] failed to register push token Error: Request failed: https://mysecurity.eufylife.com/api/v1/passport/login -> 26052 - need validate code
    at /usr/local/lib/node_modules/homebridge-plugin-eufy-security/node_modules/eufy-node-client/build/http/http.utils.js:24:15
    at Generator.next (<anonymous>)
    at fulfilled (/usr/local/lib/node_modules/homebridge-plugin-eufy-security/node_modules/eufy-node-client/build/http/http.utils.js:5:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)


Border radius argument doesn't agree with folder structure

While the border radius argument only accepts input of the form '#px', the generate.sh script calls for folders titled '${SIZE}px', which gives an error since the folders '#pxpx' don't exist.

Actually, the border radius argument should only take a single number, not #px. And the size argument takes a single number too. Hmm... actually, it looks like my last commit to try and get rid of the contradiction actually just worsened the contradiction. I think I wanted it to be possible for there to be more styles in the future as opposed to just border sizes, but then ultimately decided it wasn't worth. I'll fix the readme, sorry.

There was a problem in the generate script itself, too. It may not be something you agree with, but at least it's consistent now. Please close if you're satisfied with the fix.

Yeah, now it works just as expected. Thanks kindly.


Compress style in production mode

.packages__test-modules_abc to .8934ad897647f9 for example (MD5).

You can use cssnano for this, please check http://cssnano.co
I suppose that is the reason for not be included

@JWo1F have you tried using https://www.npmjs.com/package/postcss-hash-classname for this? I haven't tried itself, but it looks like it should do the trick.


Added error message for Sphinx minimum version

There is a imgmath extension error that's thrown prior to version 1.4.3.  I've added a more clear message in case someone tries to compile with an older version.  The fix is mostly ported from https://github.com/rtfd/readthedocs.org/issues/2418 and https://github.com/sphinx-doc/sphinx/issues/2436.
#1317

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Tested on CentOS 7 with yum repo version 1.1.3 and pip version 1.6.4.


Fix the bug when the value of unique index is NULL

What is the purpose of the change
close #213
Brief change log

If the current Key contains NULL when processing elements in KeyedProcessFunction, collect the row directly without the duplication check.
If the indexValue contains NULL when adding row into DeduplicateRowBuffer, add the row directly.
move DeduplicateRowBuffer and RowBuffer to the package buffer.

Verifying this change
This change added tests and can be verified as follows:

TiKVDeduplicateNullableIndexTest#testDeduplicateWithNullUniqueIndex()

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The runtime per-record code paths (performance sensitive): (no)

Documentation

Does this pull request introduce a new feature? (no)

/run-all-tests

@shiyuhang0 @humengyu2012 @zhangyangyu @Daemonxiao  PTAL

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests


Replicas missing in deepcopy

Replicas have not been added in deepcopy. In current master annotations, labels are available options in the the deployment spec.
func (in *GrafanaDeployment) DeepCopyInto(out *GrafanaDeployment) {
	*out = *in
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

I can add the replica deep copy in this PR https://github.com/integr8ly/grafana-operator/pull/106

@AdheipSingh I ran the automatic code generation against master (operator-sdk generate k8s) and it doesn't look like anything is missing. Since the deployment spec is added as a pointer in the grafana type spec, I don't think we need a layer of deepcopy for it.

@pb82 yes i see that, the only thing which concerned me is that replicas were not included in the deepcopy objects whereas annotations and labels were rightly present.
I ran the same command but strange it does'nt genereate deepcopy for replicas.
Don't you think replicas should also be added in this, as the deployment spec also includes the replica paramenter. Maybe i am missing on some thing.
func (in *GrafanaDeployment) DeepCopyInto(out *GrafanaDeployment) {
	*out = *in
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

@AdheipSingh No, i don't think we should manually add anything to the auto generated code. Closing this issue as i don't think there's a problem with the auto generated code.


Clarification of terms of use regarding creation of derivative works

I followed the link to the "Stanford AIMI" link with the dataset https://stanfordaimi.azurewebsites.net/datasets/521d0d11-7c3c-45ef-8b99-a49cd70cba2c, and reading the license agreement I found this statement among other terms of use: "You must not modify, reverse engineer, decompile, or create derivative works from the INSPECT: A Multimodal Dataset for Pulmonary Embolism Diagnosis and Prognosis Dataset."
What is the definition of "derivative works"? Aren't model weights, or any artifact generated by the code that uses the dataset an instance of "derivative works"? How about publications that use the dataset?
It would be helpful if the definition of "derivative works" could be provided as part of the repository documentation.

Thanks for the question!
We are still finalizing our licence with our Privacy Office, with the hope that our dataset can be open freely to the community to build their own models/papers.


remove hpat temporarily

As title.

@seibert fastparquet and librosa failures aren't related, could you give this a quick review and merge if good?


[BUG] Couldn’t recognize the image file format

Checklist before submitting an issue

[X] I have searched through the existing closed and open issues for eww and made sure this is not a duplicate
[X] I have specifically verified that this bug is not a common user error
[X] I am providing as much relevant information as I am able to in this bug report (Minimal config to reproduce the issue for example, if applicable)

Description of the bug
I have a script running that listens to playerctl to download current mpris:artUrl, but when i try to display that image with the image widget i get above error.
The image is fine for other applications (kitty icat, Gimp).
Reproducing the issue
Test mpris Art
(image
    :path "path to image"
    :width 118
    :height 118

Expected behaviour
Display the image.
Additional context
Some debug info:
$ file pictures/mpris_art.jpg
pictures/mpris_art.jpg: JPEG image data, JFIF standard 1.01,
resolution (DPCM), density 236x236, segment length 16,
baseline, precision 8, 640x640, components 3

That's something wrong on your side. Check if you have libjpeg installed.

You are right, of course i had libjpeg installed, but the jpeg useflag is not enabled by default for gdk-pixbuf, enabling it fixed it for me...


[DOC] Add documentation for peer recovery stats

What do you want to do?

[ ] Request a change to existing documentation
[x] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
Add documentation for https://github.com/opensearch-project/OpenSearch/pull/12490
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.

Thanks, @Arpit-Bandejiya. Is this targeting the 2.14 release?

Hi @Arpit-Bandejiya , what is your ETA for producing the doc PR? To meet entrance criteria, the PR must be open and in review by 4/30. Thanks!

The changes are now being tracked for 2.15 @hdhalter . Thanks for the follow up!

Hi @Arpit-Bandejiya - will this go out in 2.15?


[ 🚧 WIP ] Factorial of a number in JS

Closes #790
What's being changed:
Added javascript file to return factorial of a number

Updated
On Mon, Oct 3, 2022 at 11:21 PM Harsh Raj @.***> wrote:

@.**** requested changes on this pull request.
Please update filename to FindFactorialOfANumberByRecursion.js
—
Reply to this email directly, view it on GitHub
https://github.com/codinasion/program/pull/809#pullrequestreview-1128791804,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYAWZHCETOG7ON7V53KIJEDWBMMINANCNFSM6AAAAAAQ26QRNQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Record causes of failed attempts for RetryingClient

Motivation:
#5283
Modifications:

Separating onResponse into onResponseOnClient and onResponseOnServer as refactoring
Add failureAttempts(Throwable error) and failureAttempts(HttpStatus httpstatus) at ClientRequestMetrics and make us enable to record causes of failed attempts

Result:

Closes #5283
The metrics for failed requests while retrying now include the cause of the failure.

Thanks a lot, @my4-dev!


Network independent data

Is BIO_write network independent data transfer. If it's not, what other data type can i use to transfer network independent data?

#include <iostream>
#include <fstream>
#include <string>
#include <google/protobuf/message.h> // Include Protocol Buffers header

// Define your Protocol Buffers message (replace MyMessage with your message name)
#include "my_message.pb.h"

bool writeToNetwork(const google::protobuf::Message& message) {
    // Serialize the Protocol Buffers message to a string
    std::string serializedData;
    if (!message.SerializeToString(&serializedData)) {
        std::cerr << "Failed to serialize message." << std::endl;
        return false;
    }

    // Here you would write the serializedData to the network
    // For example, using socket operations, or any network library

    // For demonstration, let's print the serialized data
    std::cout << "Serialized data: " << serializedData << std::endl;

    return true;
}

bool readFromNetwork(google::protobuf::Message& message) {
    // Read data from the network (for demonstration, we'll use a string)
    std::string serializedData = "your_serialized_data_from_network";

    // Parse the serialized data into the Protocol Buffers message
    if (!message.ParseFromString(serializedData)) {
        std::cerr << "Failed to parse message." << std::endl;
        return false;
    }

    // Use the parsed message as needed

    return true;
}

int main() {
    // Create an instance of your Protocol Buffers message
    MyMessage myMessage;

    // Populate the message with data
    // Example: myMessage.set_field_name(value);

    // Write the message to the network
    if (!writeToNetwork(myMessage)) {
        return 1;
    }

    // Read the message from the network
    if (!readFromNetwork(myMessage)) {
        return 1;
    }

    // Use the received message
    // Example: std::cout << "Received field: " << myMessage.field_name() << std::endl;

    return 0;
}

Your question is unclear.  BIO_writes data to a socket, in much the same way send msg or send does.  What question is there?  It sounds like you might be asking if BIO_write converts data to network byte order, but it's not clear.  If that is your question, the answer is no, network indian conversion is the responsibility of the producer and consumer if the content

Marking as inactive, to be closed at the end of 3.4 dev barring further input


[Bug] rlp error

When I try to start a transaction and send it to the node, I encounter the following error:
(variant {err="wrong eth_sendRawTransaction result: {"jsonrpc":"2.0","id":2,"error":{"code":-32000,"message":"rlp: expected input list for types.AccessList, decoding into (types.DynamicFeeTx).AccessList"}}
"})
Transaction type: EIP1559 and EIP2930 (But Legacy is successful)

Do you have a project or code snippet to reproduce the error? I'm not sure if there's something wrong with the RPL library that's being used or at this library. Thanks

Just send a common EIP1559 signed transaction;
dfx canister call backend deploy_evm_contract '(vec{1:nat8}, 5:nat64, 100:nat64, 100:nat64, 100: nat64)'
parse result to hex text (return #ok(AU.toText(res.1));)
{"jsonrpc": "2.0", "method": "eth_sendRawTransaction", "params": ["0x02f84d058064646480800181c080a0cc3dbe377003569c916e6013cec9e2d3fec19e20d1b22149430a7a73950ae259a07aa55377d13d2d82165d411922caf5427efcd3d2762b5dedaf15490dc9af4843"], "id": 1}
would be failed.
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32000,
"message": "rlp: expected input list for types.AccessList, decoding into (types.DynamicFeeTx).AccessList"
}
}

Any updates on this? Do we think the error is in the RLP encoder?

Fixed at commit 011be00


Fix vulnerability in separate responses due to nonce reuse

This pull request fixes a security vulnerability that allows an attacker to decrypt the start of the plaintext of every single OSCORE encrypted separate response.

This is a capture of the stack using separate responses alongside OSCORE encryption. The messages with no key ID & repeated Partial IVs end up reusing the AEAD nonce. Since they are consecutive & the first message is very predictable (it is always an empty ACK) this is much easier to exploit than the nonce reuse attacks from before we started using context IDs.
The screenshot actually shows older stack behaviour (from before #700 was merged). In the current stack the PIV is not included within separate responses, and the messages actually cannot be decrypted as the correct cached PIV can't be identified without a token (which the first ACK cannot have).
The fix is quite simple - identify the types of messages that would reuse the nonce, and then increment & transmit the PIV for those messages as well.

~format

~format

~format

Here's the current behaviour of separate responses

The first separate ACK is encrypted, alongside the more important separate response. The final ACK is sent as an empty CoAP frame. All OSCORE messages can be decrypted by Wireshark.