Store gateway fails to sync block meta.json

Thanos, Prometheus and Golang version used:

Image: quay.io/thanos/thanos:v0.9.0
thanos, version 0.9.0 (branch: HEAD, revision: 0833cad83db8b257a2275ec83a3d034c73659056)
build user:       circleci@8e3da52515a2
build date:       20191203-17:03:13
go version:       go1.13.1
prom/prometheus:v2.12.0
prometheus, version 2.12.0 (branch: HEAD, revision: 43acd0e2e93f9f70c49b2267efa0124f1e759e86)
build user:       root@7a9dbdbe0cc7
build date:       20190818-13:53:16
go version:       go1.12.8
Object Storage Provider: S3
What happened: The compactor and store gateway entered a crash loop. I checked the validity of each JSON file in the S3 bucket with an adhoc script. Every JSON file appears to be valid JSON format. I ran the thanos bucket verify --repair tool. This indicated that it fixed a couple issues, but it did not resolve any of the issues observed. I have tried removing some of the bad blocks that the compactor has complained about, but it continued crashing on other bad blocks.
What you expected to happen: On the store gateway, I expect to see some way to identify which block contains the invalid JSON file. On the compactor, I expect the repair tool to fix any bad blocks.
How to reproduce it (as minimally and precisely as possible): Unsure
Full logs to relevant components:
Compactor Logs:
level=warn ts=2019-12-11T20:30:35.543841262Z caller=prober.go:117 msg="changing probe status" status=not-ready reason="error executing compaction: compaction failed: compaction failed for group 0@14986719258624701985: compact blocks [/data/compact/0@14986719258624701985/01DME8R02C5W0EQKNX9HTHBR26 /data/compact/0@14986719258624701985/01DMEFKQAE6HHZPE7YFV74D06V /data/compact/0@14986719258624701985/01DMEPFEJMYW6A0FPCGBJH0QEA /data/compact/0@14986719258624701985/01DMEXB5TCV14HJX1CVJCCXX2Q]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=info ts=2019-12-11T20:30:35.543939219Z caller=http.go:78 service=http/server component=compact msg="internal server shutdown" err="error executing compaction: compaction failed: compaction failed for group 0@14986719258624701985: compact blocks [/data/compact/0@14986719258624701985/01DME8R02C5W0EQKNX9HTHBR26 /data/compact/0@14986719258624701985/01DMEFKQAE6HHZPE7YFV74D06V /data/compact/0@14986719258624701985/01DMEPFEJMYW6A0FPCGBJH0QEA /data/compact/0@14986719258624701985/01DMEXB5TCV14HJX1CVJCCXX2Q]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=info ts=2019-12-11T20:30:35.543960437Z caller=prober.go:137 msg="changing probe status" status=not-healthy reason="error executing compaction: compaction failed: compaction failed for group 0@14986719258624701985: compact blocks [/data/compact/0@14986719258624701985/01DME8R02C5W0EQKNX9HTHBR26 /data/compact/0@14986719258624701985/01DMEFKQAE6HHZPE7YFV74D06V /data/compact/0@14986719258624701985/01DMEPFEJMYW6A0FPCGBJH0QEA /data/compact/0@14986719258624701985/01DMEXB5TCV14HJX1CVJCCXX2Q]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=error ts=2019-12-11T20:30:35.54398373Z caller=main.go:194 msg="running command failed" err="error executing compaction: compaction failed: compaction failed for group 0@14986719258624701985: compact blocks [/data/compact/0@14986719258624701985/01DME8R02C5W0EQKNX9HTHBR26 /data/compact/0@14986719258624701985/01DMEFKQAE6HHZPE7YFV74D06V /data/compact/0@14986719258624701985/01DMEPFEJMYW6A0FPCGBJH0QEA /data/compact/0@14986719258624701985/01DMEXB5TCV14HJX1CVJCCXX2Q]: write compaction: chunk 8 not found: reference sequence 0 out of range"

Store Gateway Logs:
level=debug ts=2019-12-11T19:42:56.423840267Z caller=main.go:101 msg="maxprocs: Updating GOMAXPROCS=[1]: using minimum allowed GOMAXPROCS"
level=info ts=2019-12-11T19:42:56.424073196Z caller=main.go:149 msg="Tracing will be disabled"
level=info ts=2019-12-11T19:42:56.424156986Z caller=factory.go:43 msg="loading bucket configuration"
level=info ts=2019-12-11T19:42:56.620788641Z caller=cache.go:172 msg="created index cache" maxItemSizeBytes=131072000 maxSizeBytes=262144000 maxItems=math.MaxInt64
level=info ts=2019-12-11T19:42:56.621005242Z caller=options.go:20 protocol=gRPC msg="disabled TLS, key and cert must be set to enable"
level=info ts=2019-12-11T19:42:56.621309084Z caller=store.go:261 msg="starting store node"
level=info ts=2019-12-11T19:42:56.621513052Z caller=prober.go:127 msg="changing probe status" status=healthy
level=info ts=2019-12-11T19:42:56.62156242Z caller=http.go:53 service=http/server component=store msg="listening for requests and metrics" address=<IP_ADDRESS>:10902
level=info ts=2019-12-11T19:42:56.621814375Z caller=store.go:216 msg="initializing bucket store"
level=info ts=2019-12-11T19:45:19.464301604Z caller=http.go:78 service=http/server component=store msg="internal server shutdown" err="bucket store initial sync: sync block: iter: load meta: read meta.json: unexpected end of JSON input"
level=info ts=2019-12-11T19:45:19.464692447Z caller=prober.go:137 msg="changing probe status" status=not-healthy reason="bucket store initial sync: sync block: iter: load meta: read meta.json: unexpected end of JSON input"
level=info ts=2019-12-11T19:45:19.464742786Z caller=grpc.go:117 service=gRPC/server component=store msg="gracefully stopping internal server"
level=info ts=2019-12-11T19:45:19.464781601Z caller=grpc.go:129 service=gRPC/server component=store msg="internal server shutdown" err="bucket store initial sync: sync block: iter: load meta: read meta.json: unexpected end of JSON input"
level=info ts=2019-12-11T19:45:19.464821219Z caller=prober.go:107 msg="changing probe status" status=ready
level=info ts=2019-12-11T19:45:19.464874564Z caller=grpc.go:98 service=gRPC/server component=store msg="listening for StoreAPI gRPC" address=<IP_ADDRESS>:10901
level=error ts=2019-12-11T19:45:19.464912706Z caller=main.go:194 msg="running command failed" err="bucket store initial sync: sync block: iter: load meta: read meta.json: unexpected end of JSON input"

Anything else we need to know:
The bucket contains approximately 2TB of metrics. I would like to be able to recover the metrics in this bucket, but currently, it is unusable since the store gateway is crashing.

This looks similar to #453.
Couple of questions for you:

what is the backing store for your S3 bucket?
what version of Thanos produced these blocks?  The producer will either be Compactor (if the source blocks are already compacted) or Sidecar (if these are new blocks)

I'd split it to two issues:
The store should not crashLoop because of one block with missing metadata.json. In my case I have stores pointed to dozens of TSDB blocks that actually duplicate each other, so one block being partially uploaded/corrupted - not a big deal.
And another issue connected to the compactor.

@zygiss Hi, thanks for responding!

We are using an s3 bucket. Can you clarify what you mean by "backing store"?
The set of blocks causing the compactor to fail in the logs I provided were produced by the sidecar. However, I also saw compactor blocks that were also bad that I backed up and removed from the bucket.

@homelessnessbo Would you like me to restructure this into two separate GitHub issues?

@ryanprobus:

1. We are using an s3 bucket. Can you clarify what you mean by "backing store"?

By "S3" most poeple mean AWS, but there are other storage systems that implemnet the S3 API (Ceph, OpenStack Swift, MinIO).
There are several open bugs about block corruption when using Ceph (#1728, #1345) for instance, so wondered if you're affected by one of those.

@zygiss Ahh, sorry about the misunderstanding. We are using AWS S3.

We found a similar problem, where the local cache of the meta.json contained empty files. This caused our store servers to crash loop. I wonder if there's a race between the compactor adding new meta.json files and the store downloading them.
Details here: https://gitlab.com/gitlab-com/gl-infra/production/issues/1525

Ack, thanks for the report. This is really useful finding. I believe the empty meta.json can be left on filesystem when store crashes during meta.json download time.

I also encountered the same problem using aliyun objstore.
Compactor Logs:
level=warn ts=2020-01-03T03:08:51.82788962Z caller=prober.go:117 msg="changing probe status" status=not-ready reason="error executing compaction: compaction failed: compaction failed for group 0@17628213559036925513: compact blocks [/var/thanos/compactor/compact/0@17628213559036925513/01DXCYAP626GTB43C85XZ6AS3A /var/thanos/compactor/compact/0@17628213559036925513/01DXD56DE29C91EMH303GFD80K /var/thanos/compactor/compact/0@17628213559036925513/01DXDC24P3R8HAM4GSDZWXCKA9 /var/thanos/compactor/compact/0@17628213559036925513/01DXDJXVY3Q04CHAG4XCNSZH3F]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=info ts=2020-01-03T03:08:51.828156418Z caller=http.go:78 service=http/server component=compact msg="internal server shutdown" err="error executing compaction: compaction failed: compaction failed for group 0@17628213559036925513: compact blocks [/var/thanos/compactor/compact/0@17628213559036925513/01DXCYAP626GTB43C85XZ6AS3A /var/thanos/compactor/compact/0@17628213559036925513/01DXD56DE29C91EMH303GFD80K /var/thanos/compactor/compact/0@17628213559036925513/01DXDC24P3R8HAM4GSDZWXCKA9 /var/thanos/compactor/compact/0@17628213559036925513/01DXDJXVY3Q04CHAG4XCNSZH3F]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=info ts=2020-01-03T03:08:51.828202681Z caller=prober.go:137 msg="changing probe status" status=not-healthy reason="error executing compaction: compaction failed: compaction failed for group 0@17628213559036925513: compact blocks [/var/thanos/compactor/compact/0@17628213559036925513/01DXCYAP626GTB43C85XZ6AS3A /var/thanos/compactor/compact/0@17628213559036925513/01DXD56DE29C91EMH303GFD80K /var/thanos/compactor/compact/0@17628213559036925513/01DXDC24P3R8HAM4GSDZWXCKA9 /var/thanos/compactor/compact/0@17628213559036925513/01DXDJXVY3Q04CHAG4XCNSZH3F]: write compaction: chunk 8 not found: reference sequence 0 out of range"
level=error ts=2020-01-03T03:08:51.82828033Z caller=main.go:194 msg="running command failed" err="error executing compaction: compaction failed: compaction failed for group 0@17628213559036925513: compact blocks [/var/thanos/compactor/compact/0@17628213559036925513/01DXCYAP626GTB43C85XZ6AS3A /var/thanos/compactor/compact/0@17628213559036925513/01DXD56DE29C91EMH303GFD80K /var/thanos/compactor/compact/0@17628213559036925513/01DXDC24P3R8HAM4GSDZWXCKA9 /var/thanos/compactor/compact/0@17628213559036925513/01DXDJXVY3Q04CHAG4XCNSZH3F]

I try to see the data on aliyun objstore bucket, then i found that：
01DXCYAP626GTB43C85XZ6AS3A  block have chunks folder, index file and meta.json file
01DXD56DE29C91EMH303GFD80K block have chunks folder, index file and meta.json file
01DXDC24P3R8HAM4GSDZWXCKA9 block have chunks folder, index file and meta.json file
01DXDJXVY3Q04CHAG4XCNSZH3F block just have index file and meta.json file not found

met something similar but from different angle:
level=warn ts=2020-01-03T10:30:29.887625771Z caller=prober.go:117 msg="changing probe status" status=not-ready reason="error executing compaction: compaction failed: compaction failed for group 0@3883330991078906199: gather index issues for block /thanos-compact-data/compact/0@3883330991078906199/01DXKWN08YHZQMCHHJ3VQVVDSP: open index file: try lock file: open /thanos-compact-data/compact/0@3883330991078906199/01DXKWN08YHZQMCHHJ3VQVVDSP/index: no such file or directory"
level=info ts=2020-01-03T10:30:29.888132722Z caller=http.go:78 service=http/server component=compact msg="internal server shutdown" err="error executing compaction: compaction failed: compaction failed for group 0@3883330991078906199: gather index issues for block /thanos-compact-data/compact/0@3883330991078906199/01DXKWN08YHZQMCHHJ3VQVVDSP: open index file: try lock file: open /thanos-compact-data/compact/0@3883330991078906199/01DXKWN08YHZQMCHHJ3VQVVDSP/index: no such file or directory"

Meantime in the bucket:
{
	"ulid": "01DXKWN08YHZQMCHHJ3VQVVDSP",
	"minTime":<PHONE_NUMBER>000,
	"maxTime":<PHONE_NUMBER>000,
	"stats": {
		"numSamples": 954058569,
		"numSeries": 906289,
		"numChunks": 8144375
	},
	"compaction": {
		"level": 2,
		"sources": [
			"01DXJYK0WNNX8WKK3KXSK2JR6S",
			"01DXK5ER4N46ST170D3D8JX1FS",
			"01DXKCAFCYHS2Z94XP5QYBFJHA",
			"01DXKK66MG06PDAQAQD1YNS8AX"
		],
		"parents": [
			{
				"ulid": "01DXJYK0WNNX8WKK3KXSK2JR6S",
				"minTime":<PHONE_NUMBER>000,
				"maxTime":<PHONE_NUMBER>000
			},
			{
				"ulid": "01DXK5ER4N46ST170D3D8JX1FS",
				"minTime":<PHONE_NUMBER>000,
				"maxTime":<PHONE_NUMBER>000
			},
			{
				"ulid": "01DXKCAFCYHS2Z94XP5QYBFJHA",
				"minTime":<PHONE_NUMBER>000,
				"maxTime":<PHONE_NUMBER>000
			},
			{
				"ulid": "01DXKK66MG06PDAQAQD1YNS8AX",
				"minTime":<PHONE_NUMBER>000,
				"maxTime":<PHONE_NUMBER>000
			}
		]
	},
	"version": 1,
	"thanos": {
		"labels": {
                             ....
		},
		"downsample": {
			"resolution": 0
		},
		"source": "compactor"
	}
}

So it seems compactor failed to upload itself and not crashing against it.

@yahaa Let's keep this issue focused on Store GW syncing meta.json failures.
For compactor issues please refer and comment on: https://github.com/thanos-io/thanos/issues/1300


Feedback for code quality for A0141019U

Main

Classes and non-trivial methods missing header comments
Can apply SLAP further in these places

There are similar places where you can apply SLAP further to have the method in the same abstract level
When a method gets too long consider applying SLAP further to it

Test

It is a good set of unit tests. Can include few more integrated tests as well

Docs

No comments

Noted, thanks


Remov. doc/non-exist. member x,y,z in Plane class

There aren't such x,y,z members in Plane class.
See https://github.com/godotengine/godot/blob/34c988cfa92f19c232b65990704816ba1c7d2622/core/math/plane.h

This file is generated, if the property is removed from code it'll be removed from docs too. Also, just because the properties aren't directly defined in the class it doesn't mean they aren't bound in some other way,

Yeah, you can still retrieve those values from code:
https://github.com/godotengine/godot/blob/047cb97ff7e04db17c0ac8af5af11ef46263ae29/core/variant_op.cpp#L1583-L1598
Thanks for the PR, but this properties are still available and removing from the XML doesn't make any difference since they would be back the next time the docs are synced.


How to get session from EFT launcher?

I can't auth. I've tried to sniffing traffic from EFT client, but it's HTTPS with cerificate verification. When I'm trying to use Charles for example - I got error in EFT client (Certificate invalid).

The game won’t let you sniff traffic because of a security feature called “certificate pinning”. Unless they added that to the launcher recently (I don’t know because I haven’t played in a bit) you should be able to grab the session from the launcher.

«you should be able to grab the session from the launcher.»
I’m Sorry, how?  I Hope you will update information on GitHub how to do it.
Thank you

Пятница, 28 февраля 2020, 23:49 +03:00 от Dan Kyung<EMAIL_ADDRESS>
The game won’t let you sniff traffic because of a security feature called “certificate pinning”. Unless they added that to the launcher recently (I don’t know because I haven’t played in a bit) you should be able to grab the session from the launcher.
—
You are receiving this because you authored the thread.
Reply to this email directly,  view it on GitHub , or  unsubscribe .

С уважением,
Никита Исаев
<EMAIL_ADDRESS>

@nisaev sniff the EFT launcher traffic with Fiddler or Charles. The session is in the traffic.


[Feature Request] Team patches & markers

We want to have our team icons as patches in-game and markers for the map.

Patches

[!NOTE]
Patches need to be stitch-ified to look good on the models. Maybe get AI help?

[ ] Archer patch
[ ] Bandit patch
[ ] Castle patch
[ ] Warden patch
[ ] Command patch

Markers

[x] Archer marker
[x] Bandit marker
[x] Castle marker
[x] Warden marker
[x] Command marker

@Maxwell-Sentinel I need some transparent team markers if possible.
And also ones for Rogue and Chariot pls :)


fix: Revert registry changes on review branches

This reverts commit ee21c6dffcfe6b5c407037170f3eae960a777bac.Reverts SocialGouv/carnet-de-bord#212

:tada: This PR is included in version 1.36.2-alpha.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Program

Is this program still supported? If so will this work on a dual pc setup?

It's still in use by some Rust streamers. It is focused on 2 pc setups.
You can keep this issue open in case if you have difficulties using it.

How exactly should this program be setup? I’ve downloaded all the programs but I’m having issues setting it up. Should map link live on the gaming pc and connect to streaming pc?

How exactly should this program be setup? I’ve downloaded all the programs but I’m having issues setting it up. Should map link live on the gaming pc and connect to streaming pc?

Maplink is ran on the gaming pc, it connects over to the streaming pc using obs websockets.
Make sure you have dotnet framework installed

Okay, I haven’t checked that, dotnet should be installed on which pc? Also when maplink says ip to connect to I would assume it’s the ipconfig ip on the streaming pc and not the <IP_ADDRESS> default correct?

Okay, I haven’t checked that, dotnet should be installed on which pc? Also when maplink says ip to connect to I would assume it’s the ipconfig ip on the streaming pc and not the <IP_ADDRESS> default correct?

Yes, the ip for  the streaming pc alongside the password.
Dotnet runs on the computer maplink is running

Okay, I haven’t checked that, dotnet should be installed on which pc? Also when maplink says ip to connect to I would assume it’s the ipconfig ip on the streaming pc and not the <IP_ADDRESS> default correct?

Yes, the ip for the streaming pc alongside the password. Dotnet runs on the computer maplink is running

Password to obs websocket

Thank you, I will try installing dotnet. I appreciate the quick response

installing dotnet fixed it, thank you!


Merge pull request #1 from xtaci/master

sync from xtaci/master

This pull request is now managed with CodeReviewHub. Refresh.

sync from xtaci/master


Fix all fixable Codacy issues

There's a lot of false positives in Codacy, sadly. But I've fixed all the ones that are plausible to fix.
I actually pushed for some more dubious changes, just so they could be talked about here in review. I'm happy to rework or revert any change.

Travis reports and other compilation errors:
[error] /home/travis/build/sbt/sbt/main-settings/src/main/scala/sbt/std/InputConvert.scala:16: value WrapInitTaskName is not a member of object sbt.std.ParserInput
[error]       case ParserInput.WrapInitTaskName => Converted.Failure(in.pos, initTaskErrorMessage)
[error]                        ^

I actually pushed for some more dubious changes, just so they could be talked about here in review.

I'm not particularly good at spotting bad changes. Which ones do you feel are more dubious?

the various places where I opted to use NonFatal.. are those all correct changes?
the performance impact of using pattern matching over if/else's

I'll actually compile it locally now and get this building :)

All green. I'll fixup the commits and rebase after the initial review.

LGTM


Feature/bphh 1458/finalize revision request

Description
This is the first PR for the revision flow, it:

adds a model to track revision requests
adds a fieldArray form for reviewers to submit revision requests
provides all for the form reformatting and style logic, providing buttons, highlighting etc

it does not:

handle statuses, updates, or notifcations
prevent re-submission based on status

What type of PR is this? (check all applicable)

[x ] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📦 Chore (Release)
[ ] ✅ Test

Related Tickets & Documents
https://hous-bssb.atlassian.net/browse/BPHH-1458
https://hous-bssb.atlassian.net/browse/BPHH-1456
https://hous-bssb.atlassian.net/browse/BPHH-1455
Steps to QA
See card at:
https://hous-bssb.atlassian.net/browse/BPHH-1458

https://github.com/bcgov/HOUS-permit-portal/pull/576


[WIP] feat(row-level-security): add filter grouping an

SUMMARY
This PR adds two new fields to Row Level Security Filters (RLS):

Filter type: Currently RLS filters only apply additional where clauses if a user belongs to a role referenced by a RLS filter. This can cause leakage of sensitive data, as a person that doesn't satisfy any RLS filters will see all data (=no RLS filters applied). To fix this, a base filter type is added that can be used to apply a minimum filter that applies to all users. This is especially useful for cases where by default we don't want to show any rows if a user doesn't belong to any roles that have RLS filters attached to them. In this case we can set a base filter of 1 = 0, which will always be false.
Grouping key: currently RLS filters are always additive (=intersection). This can be problematic in cases where a user belongs to many roles that are exclusive: If, for instance, a person belongs to departments A and B and there is a RLS filter for both departments, the user won't see any rows, as the where clause will be department = 'A' AND department = 'B'. For these cases a group key department can be assigned to both RLS filters, after which they are ORed together.

Example:

We want all data in a table to be visible to the Admin role
For regular users, we should only show 1 year of data
For researchers, 10 years of data will be shown
Data for domestic region is available to all users
Data for foreign region is restricted to management only

RLS filters:

Filter 1: type: Base, excluded roles: Admin, grouping key: "duration", clause: "date > now - 1 year"
Filter 2: Type: Regular, roles: Research, grouping key: "duration", clause: "date > now - 10 year"
Filter 3: Type: Base, excluded roles: Admin, grouping key: "region", clause: "region = 'domestic'"
Filter 4: Type: Regular, roles: Management, grouping key: "region", clause: "region = 'foreign'"

This would render the following extra clauses:

Admin user: None
No roles: (date > now - 1 year) AND (region = 'domestic')
Research: (date > now - 1 year OR date > now - 10 year) AND (region = 'domestic')
Management: (date > now - 1 year) AND (region = 'domestic' OR region = 'foreign')
Management + Research: (date > now - 1 year OR date > now - 10 year) AND (region = 'domestic' OR region = 'foreign')

This change is backwards compatible, meaning that current filters will continue to function as before.
SCREENSHOTS

TEST PLAN
CI + new tests
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Thanks @bkyryliuk for the review, great comments!

@bkyryliuk this is ready for another round of review

This looks like it adds power/flexibility to RLS without adding unnecessary complexity if you don't want that flexibility.
I can definitely see a use-case for it - seems really cool and I greatly appreciate that it doesn't break backwards compatibility


Decide if use of server side key generation should be recomended

The EST RFC defines a mechanism where EST clients can request that the EST Server generates the key pair for them, which is useful for EST Clients that are unable to generate a key pair with the required entropy in a reasonable time frame or without affecting the primary operation of the device.
However while researching EST Server implementations and testing during virtual workshops, limited support for EST Server side key generation has been found. And currently, no testing has been performed of additional security of the private key on top of TLS, as defined in RFC 7030 (https://tools.ietf.org/html/rfc7030#section-4.4).
Currently in BCP-003-03 we state that EST Servers & Clients MAY support this process.
Is it appropriate for some EST Clients to rely on the endpoint existing when there appears to currently be limited support for it?
In the BCP, there is provision for devices that cannot generate their own key pair to instead have the key pair and/or certificate loaded by an out of band method.

Examined on call. Needs further discussion wrt #5.

Should this method be removed in v1.0 of the BCP, to be re-added once tested if required after work on #5 is complete?
To prevent performance issues on low power devices, a mitigation was added to the BCP to disable automatic renewals, see #11 for more information.

I suggest removing support for server side key generation from the BCP and adding this issue to it to the v1.1 milestone

The current v1.0-dev now says that the "EST Server SHOULD support" it and "to accommodate low-powered devices, it is RECOMMENDED that this is carried out by the EST Server."
So can this issue be closed?


Recursive lists

Are recursive lists supported with this library? I.e. a sortable container within a sortable item.

I guess I can assume this library is dead..


Domain in azure portal and service endpoint configuration have any connects?

In service endpoint configuration website has to create according to the domain we given in azure portal verified id the trust domain

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: f84b158e-eebc-7d96-0992-8864316ddf5c
Version Independent ID: 8909ba9b-bf26-fb5c-29f0-76244984e75a
Content: Tutorial - Configure your tenant for Microsoft Entra Verified ID - Microsoft Entra
Content Source: articles/active-directory/verifiable-credentials/verifiable-credentials-configure-tenant.md
Service: decentralized-identity
Sub-service: verifiable-credentials
GitHub Login: @barclayn
Microsoft Alias: barclayn

@Muthurajj
Thanks for your feedback! We will investigate and update as appropriate.

@Muthurajj could you please elaborate, what is the change you are suggesting?

Hi @barclayn the domain name which we give here

and in the service endpoint configuration we have create a website
so my question is the domain which i gave while setup organization in azure portal and the website we create also should be same domain?

@Muthurajj  yes, you would use the same names. The names you specify under organization name is just a name/identifier only displayed in the portal. The domain is actually shown to users in some cases, and it is used during verification of domain ownership.


Improve docstrings and add examples where it makes sense

This PR fixes a few nits in the docstrings (such as the Attributes issue discussed awhile ago in more places), as well as adds a few examples to places where users could get confused on the usage, or it is not extremely straightforward to use from the documentation.
These specific cases are ones where numerous issues have been opened, asking how to use the specific item.
This helps us document it in two places: the official documentation/tutorials for folks who need more information, and the docstring for folks who do not and just need the boilerplate.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Bump Microsoft.CodeAnalysis version

I've been squashing all the warnings in my project, and the following warning is my last remaining exception:
CSC : warning AD0001: Analyzer 'Microsoft.CodeAnalysis.CSharp.Analyzers.FixAnalyzers.CSharpFixerWithFixAllAnalyzer' threw an exception of type 'System.TypeInitializationException' with message 'The type initializer for 'Microsoft.CodeAnalysis.Analyzers.FixAnalyzers.FixerWithFixAllAnalyzer`1' threw an exception.'.

This appears to be an issue in 1.0.0 that has since been resolved. See  https://github.com/dotnet/roslyn/issues/7276

Are you trying to upgrade from Roslyn 1.0.0 to the next version?

I've left Roslyn as it is in my project, just thought I'd leave an issue as a note. It's a very minor issue, of course.

It's just... I'm not sure I understand what you are doing or what issue / situation your are facing.
You'll need to give me more details ;-)

Apologies for the delay. The current Microsoft.CodeAnalysis.Analyzers package version used by Umbraco and the ModelsBuilder will result in compiler warnings in your solution. So, if you install Umbraco >=7.4 to your solution, you will get a compiler warning once compiled in Visual Studio. The warning is a result of the linked issue above.
1>------ Rebuild All started: Project: CodeAnalysisThrowaway, Configuration: Debug Any CPU ------
1>CSC : warning AD0001: Analyzer 'Microsoft.CodeAnalysis.CSharp.Analyzers.FixAnalyzers.CSharpFixerWithFixAllAnalyzer' threw an exception of type 'System.TypeInitializationException' with message 'The type initializer for 'Microsoft.CodeAnalysis.Analyzers.FixAnalyzers.FixerWithFixAllAnalyzer`1' threw an exception.'.
1>  CodeAnalysisThrowaway -> C:\dev\temp\CodeAnalysisThrowaway\CodeAnalysisThrowaway\bin\Debug\CodeAnalysisThrowaway.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

This compiler warning was a result of compiling https://github.com/ryanlewis/CodeAnalysisThrowaway.
I did a pass at removing all compiler warnings from my solution (removing unused variables, etc.) and this was the last remaining compiler warning.
Does this make more sense?

My turn to apologize for the delay. So if I understand correctly, the ModelsBuilder depends on Microsoft.CodeAnalysis.CSharp.dll which contains some analyzers that run when your project builds, and fail, thus causing a warning that you'd like to get rid of?
If that is the case then the solution is to upgrade to Roslyn 1.x (the next, current version) and that is #106. Closing this issue, but re-open if necessary.


Keep the dragging of Rigidbodies between objects from adding the default circle

Currently, if you drag a Rigidbody from one GameObject to another, it will add the default circle shape to the rigidbody. Steps to reproduce:

Create two empty GameObjects, A and B
Add a Rigidbody to object A
Replace the default circle collision shape with something else.
Drag and drop the Rigidbody and Transform from object A onto object B

Now if you look in the Rigidbody editor, you should see that it kept the shape we replaced the default shape with, but it re-added the default circle.
I'm assuming that this is because the Rigidbody is re-created rather than moved, and during it's construction the default circle is added. However, I also noticed that cloning a GameObject does not add back-in that default circle, so the functionality already exists somewhere to re-create the Rigidbody without adding that default circle.

Thanks for reporting! This is probably a minor bug in editor-related code.

I've tracked down the bug, but can't think of a good solution so I'm posting my findings here to see what other people think.
The problem occurs here:
https://github.com/AdamsLair/duality/blob/5f0f69127e09469c722e54f2d1dc2f6f816f9f2a/Duality/Components/Physics/RigidBody.cs#L1154
In the case of a drag-and-drop operation, OnInit is called with context set to AddToGameObject, and we are in the editor, so the RigidBody is assuming that it is a new RigidBody, which is not the case in a drag-and-drop operation.
At first I naively thought to check if the RigidBody's shape count was 0, but that'd cause the same bug if I was drag-and-dropping a RigidBody that I intended to have no shapes.
There could be a new InitContext, such as InitContext.Construction, but that clutters the InitContext enum even more, which just causes more problems for issue #136, so that's not a good fix. Perhaps the fix for this bug will stem from a fix to the InitContext issue.
We could add the default circle in the event handler for creating a new RigidBody. I haven't looked at that code yet so I'm not sure if that's going to provide a clean solution. Furthermore, I could see other Component's needing to know whether or not they are a completely new instance, so whatever solution is developed for this bug should address this issue for other Component's as well.

Very good analysis of the problem! I would see the solution to be implemented within the editor, rather than the core itself, since this is actually an editor feature which (unfortunately) was previously implemented in the core.
One thing the editor could benefit from would be some kind of mechanism to perform additional initialization to newly created Components (and Resources!) beyond simply calling the constructor. This would make sense whenever something is created for the purpose of being set up for user editing.
One way to deal with this could be to introduce a new context for EditorActions, allowing editor plugins to implement a custom user-editing setup action for select Component and Resource types.
Since dragdrop is not creation, the code would not trigger in this specific case as expected.

What if components had an EditorDefault property, which is used to clone components from when a new Component is created in the editor?
Or to keep this from mixing editor code with core code, the editor can keep a lookup table of these defaults. Then any plugin developers can push their own defaults on to the lookup table to have their Components initialized from within the editor correctly.
Duality's built in components can have their defaults hard coded into the editor plugin.

Duality's built in components can have their defaults hard coded into the SceneView plugin.

I always try to follow the principle of not making a distinction between "official" plugins and third-party plugins, so whenever one of "my" plugins gets to have a feature, there should always be a way to access it from the outside as well. This doesn't always work, but I think you can see why I wouldn't want to choose that kind of hardcoding to solve the issue.

What if components had an EditorDefault property, which is used to clone components from when a new Component is created in the editor?

So.. a static property that returns an already initialized instance of the Component / Resource, which will be used as a cloning source for new user-generated objects for editing?
That doesn't sound too bad. Now the main decision seems to be whether to use default data (your suggestion) or init code for default data (having some kind of custom init code as I described previously), as well as to whether or not to expose a core plugin way of providing either.

A problem that I could see is what if the editor default for a Component needed to know about the GameObject it was being added to. For that, we would need the lookup table to be something like a Dictionary.

This case would seem to suggest a code-wise solution, rather than a default data solution. However, I'm not sure whether this case should be addressed at all, since the GameObject in question will always be in an "under construction" state that allows only limited insight into the context the new Component is created in. It may be better to think of the creation as an isolated process independent from context other than the purpose for which the object is created.

I think I didn't explain my proposed solution very well... that and I've iterated upon my idea. Third-party plugins would have the ability to define editor only initializers for their components. I'll explain my solution in more detail in a second.
The reason I think it should be done within the editor and not backed by the core is that these initializers are only valid within the context of the editor. Without the editor, you have regular Component initialization which can be handled by the OnInit method.
Your point about the GameObject reference is spot-on, hadn't thought about it that way.
Now for a better run-down of my proposed solution:
Within the SceneView.Editor project, create a new static class ComponentInitializers, that looks roughly like this:
    public static class ComponentInitializers
    {
        //The GameObject parameter isn't needed as you've said,
        // but I'm copying this from my current code
        private static readonly Dictionary<Type, Func<GameObject, Component>> cmpInitializers = new Dictionary<Type, Func<GameObject, Component>>();

        static ComponentInitializers()
        {
            cmpInitializers.Add(typeof(RigidBody), delegate (GameObject o)
            {
                RigidBody body = new RigidBody();
                body.AddShape(new CircleShapeInfo(128.0f, Vector2.Zero, 1.0f));
                return body;
            });
        }

        public static bool Add(Type cmpType, Func<GameObject, Component> initializer)
        {
            if (cmpInitializers.ContainsKey(cmpType))
            {
                return false;
            }

            cmpInitializers.Add(cmpType, initializer);

            return true;
        }

        public static bool Remove(Type cmpType)
        {
            return cmpInitializers.Remove(cmpType);
        }

        public static bool Contains(Type cmpType)
        {
            return cmpInitializers.ContainsKey(cmpType);
        }

        public static Func<GameObject, Component> Get(Type cmpType)
        {
            return cmpInitializers.ContainsKey(cmpType)
                ? cmpInitializers[cmpType]
                : null;
        }
    }

In the static constructor we define the functions that will build Duality's core Components for us, if they require special editor only handling. Then when creating new Components through the SceneView.CreateComponent() method we can check to see if there is a function defined for the type of Component. Third-party plugins would just have to reference the SceneView dll and call ComponentInitializers.Add() with their own functions.
I agree this is not a perfect solution because of the special case handling provided to the core components, but it seems to me like we can go two ways with this:

Muck up Duality's core to provide special cases for the editor
Muck up the editor to provide special cases for the core

The way I look at it, the editor already relies on the core, so number 2 isn't too bad, whereas number 1 forces a connection between two sections of code that doesn't have to be there. Number 1 is a two-way dependency between Core and Editor, number 2 is one way from Editor to Core.
I've sudo-implemented this already, and it seems to work great, but I am having a horrible time with referencing the ComponentInitializers class from my own projects when I try to create an initializer for my own components - VS is giving me a "does not exist in current context" error that is proving to be very hard to fix....

After re-reading the discussion here I seem to have missed a point you've been mentioning. This shouldn't really be handled inside SceneView, and could easily be moved into the Daulity.Editor project. Don't know why I've been forcing it into SceneView.

I've pushed my possible solution to my duality fork at:
https://github.com/deanljohnson/duality/tree/fix-rigidbody-dragging
I took the class I proposed up above and placed it in the DualityEditor project, removed the editior initialization code within RigidBody, and added a check for initialization functions within SceneView.CreateComponent. Everything works as it should for RigidBody, but I still need to check the other Duality Components for editor initialization code.
Using this from a third-party plugin is as simple as calling ComponentInitializers.Add. To use it from a game project, you have to create an editor plugin that references your GamePlugin.core and describes how to initialize your Components for editor use. While this isn't as user friendly as I had hoped, it is clear in it's intent - for editor-specific functionality, you need an editor plugin.
The reason this has to be done in an editor plugin is because a game projects CorePlugin is a portable project type, which keeps it from accessing the DualityEditor assembly. If this class was moved into the Duality assembly we wouldn't have this issue, but I still think that is needless mixing of editor and core functionality. To me it's a trade off between usability and maintainability. If others think it's better off in the Duality assembly, that's a very simple fix for me to make, but that makes this solution a little convoluted - might as well have the EditorDefault properties on Component's as I mentioned above.

The reason I think it should be done within the editor and not backed by the core is that these initializers are only valid within the context of the editor. Without the editor, you have regular Component initialization which can be handled by the OnInit method.

I agree completely. This should be implemented in the editor.
There is, however, the already existing exception of the declarative core editor interface, which allows users to specify how certain types and members behave using core attributes without any dependency on the editor. A similar interface could theoretically used for specifying this behavior without an additional dependency - for the purpose of user convenience.
I'm a bit wary of adding editor-specific code to the core though, so I'm leaning more towards the editor-only solution so far. I think we're mostly on the same page here.

Now for a better run-down of my proposed solution:

Something like this was present a lot in the initial design of the editor: Static classes providing some kind of centralized functionality with Add methods for third-party plugins. I have since redesigned the editor to get rid of these patterns completely in favor of a declarative approach. Core plugins already work in a purely declarative way and I think that consistency is a good reason to aim for editor plugins taking a similar direction.
The EditorActions I've linked above are a good example for the declarative way: There is no central static class managing data with which plugins have to communicate. Instead, they define custom Types that implement a certain interface or base class. The editor then uses reflection to determine the full set of available Types and uses them as it sees fit. Instead of explicit communication and the problem of manual (and thus potentially faulty) initialization and disposal / add and remove, this approach works mostly behind the scenes.
Here are some examples of implemented editor actions - they are not added anywhere, they're just defined and used automatically according to the interface / base class they implement.
Even though I am not sure whether EditorActions would be a proper fit for an editor-specific object init / setup mechanism, their API would be a match so far and the declarative idea behind it is one that I would prefer. It has yet to be determine whether the purpose of EditorActions matches the one of custom editor initializers closely enough to use them directly.

I could see the EditorActions working and I would like to stick with current design decisions. I'll work on this via a separate branch on my fork and see how it comes out. What kept me away from the EditorAction approach was it's apparent complexity for this issue that seemed simple to me at first. Now as I've delved more into the problem I can see the possible benefit towards that approach. If I run into any glaring issues I'll post them here. Or, would you prefer me to submit a pull request sooner rather than later so that the PR can be used as a place to discuss this?

Saw your PR - thanks! Will take a look once I get around to it and then get back to you with feedback :)

PR merged and fixed.


[Feature] Please support the normal distribution function, which is often used in scientific statistics and is also NORM.S.DIST in stocks.

Initial checklist

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Problem
如题，求求了！
js计算 cdf累计正态函数是这个
function erf(x) {
// 误差函数的数值逼近
let sign = 1;
if (x < 0) {
sign = -1;
}
x = Math.abs(x);
let a1 =  0.254829592;
let a2 = -0.284496736;
let a3 =  1.421413741;
let a4 = -1.453152027;
let a5 =  1.061405429;
let p  =  0.3275911;
let t = 1.0 / (1.0 + p * x);
let y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);
return sign * y;
}
function normalCDF(x, mean = 0, stdDev = 1) {
// 正态分布的CDF
let z = (x - mean) / stdDev;
let cdf = 0.5 * (1.0 + erf(z / Math.sqrt(2)));
return cdf;
}
// 示例：计算正态分布CDF
let x = 1.0; // 你想要计算的值
let mean = 0; // 均值
let stdDev = 1; // 标准差
let cdf = normalCDF(x, mean, stdDev);
console.log(The CDF of ${x} in a normal distribution with mean ${mean} and stdDev ${stdDev} is ${cdf});

NORM.DIST?

ERF is currently supported, and other formulas are under development.
You can find a list of supported functions here: https://univer.ai/guides/sheet/features/core/formula#已经支持的公�
For faster implementation, let us know the required Excel formulas (not JavaScript functions).

NORM.DIST?

是的

ERF is currently supported, and other formulas are under development.
You can find a list of supported functions here: https://univer.ai/guides/sheet/features/core/formula#已经支持的公�
For faster implementation, let us know the required Excel formulas (not JavaScript functions).

标题里面有了

ERF is currently supported, and other formulas are under development.
You can find a list of supported functions here: https://univer.ai/guides/sheet/features/core/formula#已经支持的公�
For faster implementation, let us know the required Excel formulas (not JavaScript functions).

标题里面有了

不是 erf，是 norm.s.dist，就是求累计正则分布数值

ERF is currently supported, and other formulas are under development.
You can find a list of supported functions here: https://univer.ai/guides/sheet/features/core/formula#已经支持的公�
For faster implementation, let us know the required Excel formulas (not JavaScript functions).

你的正在开发中的也没有啊

I'm not sure what prompted your previous comment, but I can confirm that NORM.DIST and NORM.S.DIST are currently under development. We are progressively implementing a wide range of Excel functions. While we generally follow our own roadmap, we do adjust priorities based on user needs.
While we appreciate your input, please remember that GitHub Issues are designed for tracking bugs and feature requests, not for back-and-forth conversations. Using them as such can make it difficult to manage and track important information. Please aim to provide all necessary details in a single, comprehensive comment. Otherwise, we will consider it abuse of the issues.

@IQEQSQ https://github.com/dream-num/univer/pull/3463


comment to english

Change the comments in the code to English.This can avoid some coding problems, or foreign friends to see.

closed by #80


Watch expressions crash client debugger

It seems failed watch expressions, or watch expressions with exceptions or fatal errors, can crash the client debugging sliently. Stopping the debugger results in a python bad file descriptor error because the socket isn't open, and looking for the open port doesn't find it.

I was able to reproduce this with a minimalist index.php by adding these two watch expressions:
$foo['bar']->baz['bunk']
$bunk['baz']->bar['foo'][0]

These variables needn't (even shouldn't) exist.
I'm running mac yosemite, sublimetext 3, connecting to a vagrant machine running ubuntu 14.04 with auto remote callback.


Hue LCX002

Play gradient lightstrip 65” (LCX002)

Device information

Home Assistant Device information

Checklist

[X ] I have created a single PR per device. When you have multiple submissions please create separate PR's.
[X ] For lights - I have only included the gzipped files (*.gz), not the raw CSV files.
[X ] For lights - I have provided a CSV file per supported color mode. Look that up in Developer Tools -> States

Additional info

@bramstroker updated the marketing name. Let me know if that works.

@bramstroker updated the marketing name. Let me know if that works.

Thanks that name is good now, but I see on second inspection now you have duplicate submitted model.json.
also under export dir. this one needs to be removed.
Only needs to be under profile_library/signify dir.

@bramstroker sorry about that, went too quick. Removed the export folder and fixed the json file.

Thanks @dewbot6 for the contribution. LGTM now.


create console command to generate and export the openapi doc in a file

add support for json and yaml formats

fixed in https://github.com/open-solid/open-api-bundle/commit/3ece2e3d029375e4d9517ac71044e53684ef2e17


Read/Write PNG tEXT chunks

I was recently tinkering with an idea for generating thumbnails on linux and wanted to use zigimg. Unfortunately the Freedesktop thumbnail caching standard on linux uses PNG tEXT chunks to save metadata about the original file, so in the end I had to use a different library for png since zigimg does not support reading or writing tEXT chunks. I'm not sure how the API would work, but I thought I'd make a feature request since I had a use case in mind.

Actually png reader supports implementing custom extensions for parsing any kind of chunk. That means you should be able to implement the extension yourself that will parse tEXT chunk as you want. You can read more about it here: https://igor84.github.io/blog/png-reader-in-zig/

That is very useful to know! Thank you for the link and the guide.


Feature/home page text

Text added

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: mustafaaltinkaya sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


More unit tests are needed

Summary
We need more unit tests to test functionality within the application.
Examples
n/a
Context
As complexity grows, the risk of regressions will grow as well for each new change.

I will work a bit on this.


Make prefix sorting in quick open aware of used language

バージョン 1.2.0-insider
コミット 7ccb21d7e7256a7d42f3dda8b2d3721b8e59724f
This is purely a usability issue on Japanese localized environment but I think "Install Extension" should be shown first place if we type "install ext" or something.
The problem is that "Show Installed Extensions" is translated as "インストール済みの拡張機能を表示" but "Install Extension" as "拡張機能のインストール" and the order is changed during the translation process...

Our prefix sorting in quick open widget is not aware of the command alias we introduced.

@bpasero

Our prefix sorting in quick open widget is not aware of the command alias we introduced.

Do you mean Localized texts by "command alias"?
If so, my intention is different. I think the commands should be sorted using the original command names like en-US:

Yes, that would be the idea, but this is not easily possible without a bit of work currently.

This feature request will not be considered in the next 6-12 months roadmap and as such will be closed to keep the number of issues we have to maintain actionable. Thanks for understanding and happy coding!


ModuleNotFoundError when using ReceiverFunctionInversionShibutani

examples/receiver_function/receiver_function_inversion.ipynb fails at the line
    my_receiver_function = espresso.ReceiverFunctionInversionShibutani(example_number=4)

giving the following error
    ModuleNotFoundError                       Traceback (most recent call last)
    ~/mambaforge/envs/seislib/lib/python3.9/site-packages/espresso/_receiver_function_inversion_shibutani/rf.py in <module>
         16 try:
    ---> 17     from .build import rfc as rfm # if file is only to be used as library
         18 except:

    ModuleNotFoundError: No module named 'espresso._receiver_function_inversion_shibutani.build'

    During handling of the above exception, another exception occurred:

    ModuleNotFoundError                       Traceback (most recent call last)
    /tmp/ipykernel_43816/3476467975.py in <cell line: 1>()
    ----> 1 my_receiver_function = espresso.ReceiverFunctionInversionShibutani(example_number=4)

    ~/mambaforge/envs/seislib/lib/python3.9/site-packages/espresso/_receiver_function_inversion_shibutani/_receiver_function_inversion_shibutani.py in __init__(self, example_number)
         42         super().__init__(example_number)
         43
    ---> 44         from . import rf
         45         self.rf = rf
         46

    ~/mambaforge/envs/seislib/lib/python3.9/site-packages/espresso/_receiver_function_inversion_shibutani/rf.py in <module>
         17     from .build import rfc as rfm # if file is only to be used as library
         18 except:
    ---> 19     from build import rfc as rfm # if file is to be executed
         20 import numpy as np
         21 #matplotlib.use('Qt4Agg')

I think this is now solved with the switch to the new implementation pyrf96, as we're no longer using the internal build of Shibutani's code via f2py. @auggiemarignier has redirected the espresso _receiver_function_inversion_shibutani forward code to the ctypes version pyrf96  Can we agree to close this?

Yeah, I'll close it for now as this appears to be fixed

This Shibutani problem should be resolved at this point, but I can foresee the same problems for the Kennett and the FMM until they also get wrapped in their own external packages.
Happy to close this issue now.


Restore Unit Tests

The commit d9b72a58333fb6531230c767be8af4d1c06136ca deleted a whole bunch of unit tests from the common library.
This is because it uses a lot of Mockito mocks without code generation and this doesn't work with type safety.
So, we need to generate the mocks and replace all the hand crafted mocks with the generated mocks. Also, you need to fix up compilation issues. You can see all the old tests in the branch addunittestsback
It would be great if you could even fix up a few test files at a time.

Any Idea how to fix this? The captureAny returns a Null which was not a problem before null safety but gives the following error now
The argument type 'Null' can't be assigned to the parameter type 'TextElement'.
where captureAny is used like:
https://github.com/Nimblesite/nimble_charts/blob/891e115fabb36f51cb05b1b6417c9aa08e8f7fda/charts_common/test/chart/treemap/treemap_label_decorator_test.dart#L187.
Seems like it can be done in mocktail but couldn't find a solution for that in mockito.


Add to GPM

This looks like a useful plugin, but it doesn't appear to be registered in GPM?
It would be good to get this added to GPM so that more people find out about it and to make installation easier.

Sure! I just completely forgot that Grav maintains it own list of plugin... On my way to add an issue to the Grav project ;)

Waiting for approval --> https://github.com/getgrav/grav/issues/3038


'Session closed unexpectedly. Re-establishing Session" after Homebridge 1.1.3 update

Last night I updated Homebridge to 1.1.3 on on restart I get this in the logs every 5 seconds it looks like:
...
[9/5/2020, 10:54:18 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:18 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:23 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:23 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:28 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:28 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:33 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:33 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:38 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:38 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:43 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:43 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:48 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:48 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:54 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:54 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:54:59 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:54:59 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:55:04 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:55:04 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:55:09 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:55:09 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:55:14 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:55:14 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:55:19 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:55:19 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[9/5/2020, 10:55:24 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[9/5/2020, 10:55:24 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
...

The TPI interface reset on its own for some reason and the issue resolved itself. Not sure why.

Turns out not fixed after all. I was able to get it working for a while by either restarting both homebridge and the envisalink together  or just waiting about 24 hours or so for the TPI to seemingly reset for a while, but now even that doesn’t work.  It’s been days and nothing I try gets past this error now. Envisalink shows a TPI logout and login (I get emails) but the plug-in never syncs back up and just repeats this error every 5 seconds.

Hi,
You are running few version behind the current version is 1.1.8.  There are a few configuration changes you can change including timeout value and enabling or disabling auto re-connect within the configuration file. The error occurs at the TCP/IP level when your homebridge is losing connection to Envisakit. When this occur I would recommend you login into your homebridge and try doing a ping to your Envisakit module.

I am on 1.1.8 now I reopened the old issue but I will try a few things and report back. I did already try the auto reconnect both on and off and that didn’t seem to help much.

Hmm... NodeJS TCP error "ECONNRESET" usually happens when one end of the TCP connections closes its end due to any protocol-related errors. Remember only one process can connect to Envisakit module at a time. Envisakit terminate this session and another process starts the Envisakit module will reject connects from module.
Few questions:

Are you getting a missing heartbeat error prior? if so what is your heartbeat value?
What is autoreconnect value in your configuration file. A false value would just terminate auto connect and cause a shutdown module upon an TCP error, rather than restart it.
Have you set your Envisalink to a static IP address?

I dont see any messages about a heartbeat, no.  It is a static IP, technically a DHCP reservation.
I've tried several different settings, but his is how it stands now:
            "openZoneTimeout": 30,
            "heartbeatInterval": 120,
            "commandTimeOut": 10,
            "autoreconnect": false,

It does look like the issue is on my envisalink side... it kills the connection almost immediately if I attempt to telnet to that port.
apple:.homebridge [redacted]$ telnet [redacted] 4025
Trying [redacted]...
Connected to envisalink.[redacted]
Escape character is '^]'.
Connection closed by foreign host.

I'll see what I can track down on that end...

So I noticed my EVL4 module had a firmware update available.  I did that and it reconnected after the reboot for a bit but went back to this every 5 seconds issue shortly later... I have verified that there is nothing else on that network using the TPI that may be blocking it so I'm wondering if maybe something about my config is screwy enough to cause it to fail the first time then it can't reconnect because EVL4 thinks the TPI is still "in use"
It did indeed miss a heartbeat which triggered the loop again after looks like 4 minutes after the successful reconnect on the EVL reboot (12:40:58 -> 12:44:59) -- any thoughts on what might cause a heartbeat miss?  Ping is OK from that machine.
[10/14/2020, 12:40:58 PM] [Envisalink] Successful TPI session established
HAP Warning: Characteristic 00000066-0000-1000-8000-0026BB765291 not in required or optional characteristics for service 00000049-0000-1000-8000-0026BB765291. Adding anyway.
[10/14/2020, 12:44:59 PM] [Envisalink] Missing Heartbeat: Trying to re-connect session...
[10/14/2020, 12:44:59 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/14/2020, 12:45:04 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/14/2020, 12:45:09 PM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/14/2020, 12:45:09 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/14/2020, 12:45:14 PM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/14/2020, 12:45:14 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/14/2020, 12:45:19 PM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/14/2020, 12:45:19 PM] [Envisalink] Error: connect ECONNRESET <IP_ADDRESS>:4025
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'connect',
  address: '[redacted]',
  port: 4025
}
[10/14/2020, 12:45:24 PM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/14/2020, 12:45:24 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/14/2020, 12:45:29 PM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/14/2020, 12:45:29 PM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:207:27)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}

Hi
A missing heartbeat indicates that virtual panel (Envisalink) is not providing updates. Based on your setting above that would about 2mins with no communication, thus the module try to re-create the connect since Envisalink module has a habit of dropping connections without any notification.

I will look into why the auto-connect false is not being enforce, it shouldn't try to re-connect base on your configuration.
The max heartbeat set to 120 seconds... I will allow the setting to be higher. Maybe, your panel is not as talkative as mine. So, will set the max to about 10 mins (e.g. 6000 seconds).
I will also look at the disconnect logic. Maybe something is left open.

I will post a new envisalink.js sometime this evening. You will need to manually replace that file and let me know if it fixes the issue, will include a little more logging detail so we track whats going on.

Thanks for checking it out!  It is really odd how it sort of degraded over time, too.  Was fine for a long, then all of a sudden when I'd restart homebridge for code updates it would do this, but rebooting Envisalink fixed it every time for a while.  Then, in 24 hours it would fix itself... and now it just never works.  Very odd!
Thanks again for the help!

Hi,
Upload a new envisalink.js, it contain a fix to autoreconnect option begin ignored. However, I added a new option to the module to control the session watcher specifically. A new property call sessionwatch option that allow you to disable session watcher feature. In addition increase heart beat interval max value to 10 mins. You will need to copy envisalink.js and .json file if you want update to the configuration UI.  I usually let the code run on my homebridge for a few day prior to packaging and releasing as package update.  I did trying to trigger the same issue as above, even forcing random disconnect the module always reconnected.
To disable sessionwatcher:
"autoreconnect": true,
"sessionwatcher": false,
Or to increase heart beat interval check to 5 mins.
"heartbeatInterval": 300,
"autoreconnect": true,
"sessionwatcher": true,

In addition confirm that - Enable TPI Session Alerts is check on the web console.

So with the new envisalink.js file it acts the same, if I disable the session watcher obviously it stays "connected" -- but it doesnt work.  If I try to arm for example, then it shows it's not actually connected (shown below).  It seems like something else is going on here on my network at this point and the plugin is most likely working correctly.  I'll dig into that angle more... I found some threads about similar issues using Unifi gear (which I am) so I'm wondering if that's what's going on here.
[10/16/2020, 11:13:35 AM] [Envisalink] Arming alarm to Stay (Home).
[10/16/2020, 11:13:35 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/16/2020, 11:13:40 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/16/2020, 11:13:40 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}
[10/16/2020, 11:13:45 AM] [Envisalink] Alarm request did not return successful in allocated time. Current alarm status is  READY
[10/16/2020, 11:13:45 AM] [Envisalink] Session closed unexpectedly. Re-establishing Session...
[10/16/2020, 11:13:45 AM] [Envisalink] Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
 {
  errno: -54,
  code: 'ECONNRESET',
  syscall: 'read'
}

Unfortunately it does sound like it is a network connection issue with Envisalink module. I am also running Unifi as my backbone of my network - not using the router however...just the switch, NVR and APs. Would love to understand if there are known issues that I may encounter in the future.
I have uploaded a raw debug nodejs script for envisalink located in /Debug folder. I used this in my development of the module. It opens a connect with envisalink module and dump all data that it receives from envisalink module to the screen until control break is issued. Useful to see if you are getting any raw string from envisalink prior to disconnect. This also enable all debug statement in envisalink.js script so you can also see the modules errors.
Copy cid.js, envisalink.js, helper.js, tpi.js and your config.json into same folder as raw-envisalink.js on a system with Nodejs installed and issue nodels raw-envisalink.js
You can also just create a new config.json file with following entries to keep it simple
{
"name": "Envisalink-Ademco",
"host": "YOUR IP",
"port": 4025,
"deviceType": "Honeywell Vista",
"password": "YOUR MODULE PASSWORD",
"pin": "0000",
"openZoneTimeout": 30,
"heartbeatInterval": 30,
"commandTimeOut": 10,
"autoreconnect": true,
"sessionwatcher": true
}

Finally had time to dig in.  I appreciate the debug script, it was helpful!  I was able to finally get port mirroring of my EVL4 up and going and was able to find something else on the network communicating with it after all.  Turned out to be a long uninstalled instance of homeassistant that came back to life apparently just enough to race to the TPI and lock it out.
Thanks again for the help, I'm all set now so I'll close the issue.


Revert back to default class map version (task #5563)

Codecov Report

Merging #505 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #505      +/-   ##
============================================
- Coverage     29.33%   29.31%   -0.02%
  Complexity      911      911
============================================
  Files            84       84
  Lines          3106     3108       +2
============================================
  Hits            911      911
- Misses         2195     2197       +2

Impacted Files
Coverage Δ
Complexity Δ

src/Shell/Task/Upgrade20180214Task.php
0% <0%> (ø)
33 <0> (ø)
:arrow_down:

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 cdc2c18...b671f13. Read the comment docs.


GPL too strict.

Hello,
I have been inspired by your approach to the MCMC samplers. However the GPL license prevents me from utilizing the library or parts of it in any other library/application which has a freer license than GPL such as MIT or BSD. I just wanted to ask if this is intentional or whether you would be okay with a freer license.

The license is now Apache Version 2.


Add block producers metric in summary section

Closes: #511

In a draft state until https://github.com/Granola-Team/mina-block-explorer/pull/799 is merged


Coredump on node::TLSCallbacks: Assertion 'object->InternalFieldCount() > 0' failed

Don't know what to call this one, and I can't really give many more details than this, but I ran into this error on a GET request today when using node v0.12.7, request 2.58.0, ubuntu 14.04.
node: ../src/util-inl.h:117: TypeName* node::Unwrap(v8::Local<v8::Object>) [with TypeName = node::TLSCallbacks]: Assertion object->InternalFieldCount() > 0' failed.`

Why you can't give more details? How are we supposed to reproduce this bug? Also I'm not sure that such a low level debug log would be helpful (at least for me).

Closing due to inactivity.

For anyone else who ends up here, this seems to be a manifestation of a bug in node: https://github.com/nodejs/node-v0.x-archive/issues/9028
I don't know about @Freyert, but I ran into this when trying to serialise response in the request callback for logging, and the class mentioned in the error was node::crypto::SecureContext.

If anybody is using a test framework, we found that asserting on the response object directly shows this error instead of the actual error.  Here is our fix.
From:
expect(response)
  .to.have.property('statusCode', 200);

To:
expect(response.statusCode)
  .to.equal(400);


Can NOT Clear Proxy

Set some proxy like http://<IP_ADDRESS>:1087.
Then set the proxy to empty in settings.
It sill use the proxy.
I've to remove $HOME\AppData\Roaming\Code - Insiders.

I can't just remove the proxy line in settings.
I've to set "http.proxy": ""


Ability to format text (to highlight and bold text for emphasis)

Is your feature request related to a problem? Please describe.
Residents can easily glaze over important text on forms if it isn't highlighted or in bold.
Describe the solution you'd like
The ability to make text (such as in static question types or other question types) bold or a different color.

Recapping standup discussion - we already have URL formatting in civiform (turns URLs into hyperlinks), and could use something like a subset of html or markdown syntax to implement this feature. Main challenge is making markup easy while avoiding unintended parsing of text content as markup.
This is a nice to have that would be useful for UDP.

I think this is also relative to #888 ?

Oh yes! Thanks Bai—it’s definitely the same one. I’ll remove mine and flag #888.
Thanks,
Elise
[Title: City of Seattle logo]Elise Kalstad
City of Seattle, Innovation & Performance
206-256-5515 |<EMAIL_ADDRESS>Learn more about Innovation & Performance: seattle.gov/innovation-performancehttps://www.seattle.gov/innovation-performance
Facebookhttps://protect2.fireeye.com/v1/url?k=daf2de2b-8569e719-daf2f69b-8697e44c76c2-ac8cbbaf40b6a748&q=1&e=a18b8788-8c55-40b3-b962-7521a34eb6bf&u=https%3A%2F%2Fwww.facebook.com%2Fseattlemayorsoffice%2F | Twitterhttps://twitter.com/CityofSeattle | Subscribe to Mayor Durkan's E-Newsletterhttp://wwwqa.seattle.gov/mayor/subscribe
From: Bai Pai @.>
Sent: Thursday, September 23, 2021 8:01 AM
To: seattle-uat/civiform @.>
Cc: Kalstad, Elise @.>; Author @.>
Subject: Re: [seattle-uat/civiform] Ability to format text (to highlight and bold text for emphasis) (#1615)
CAUTION: External Email
I think this is also relative to #888https://protect2.fireeye.com/v1/url?k=e2af1ecd-bd34263b-e2af367d-8681010e5614-a43c2b377534008f&q=1&e=abaea8f1-73a0-420c-ab06-f6069e8cd649&u=https%3A%2F%2Fgithub.com%2Fseattle-uat%2Fciviform%2Fissues%2F888 ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://protect2.fireeye.com/v1/url?k=7814d3d6-278feb20-7814fb66-8681010e5614-c95edf3d21747638&q=1&e=abaea8f1-73a0-420c-ab06-f6069e8cd649&u=https%3A%2F%2Fgithub.com%2Fseattle-uat%2Fciviform%2Fissues%2F1615%23issuecomment-925948170, or unsubscribehttps://protect2.fireeye.com/v1/url?k=78f7f5a4-276ccd52-78f7dd14-8681010e5614-4a577a2bbd92c9d9&q=1&e=abaea8f1-73a0-420c-ab06-f6069e8cd649&u=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAUQYIY7ENZFIIHISUEDN7DTUDNFMVANCNFSM5D65MQNQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://protect2.fireeye.com/v1/url?k=5d8d516f-02166999-5d8d79df-8681010e5614-c373dca85f0cadb0&q=1&e=abaea8f1-73a0-420c-ab06-f6069e8cd649&u=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub.

Same as #888 so closing


Clean a bit html and css pages.. Needs a lot more work to clean perfe…

Make works the 4 pages
index
home
get_involved
about
Need more work to clean the code
Unused css
clean name of css variables
clean indentation (I didn't have the precommit activated)
make it responsive
make it plus joli car ca fait pas pro
Change the text to add more information
move everything in the folder visualization (some images are somewhere else I guess)

@MaxenceQueyrel tu peux valider et merge comme ça je pense. c'est un bon debut de cleaning


unixODBCDrivers.mariadb: fix build with clang 16

Description of changes
Set the older standard explicitly to allow building with clang 16.
https://github.com/NixOS/nixpkgs/issues/234710

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

This should have been fixed by #253532, which was merged yesterday. Do you still have the issue even after that?

That PR solves it, I'll close this.


[Enhancement] Confusing argument 'null', unclear if a varargs or non-varargs call is desired.

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request

located at:
eventmesh-common/src/main/java/org/apache/eventmesh/common/config/convert/converter/ObjectConverter.java line 142,147,191
Describe the solution you'd like
e.g.

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

This issue is resolved. ISSUE#3083 can be closed

line 146.


Chameleon page, accessibility audit

Hover on template images

I think we should postpone this until the layout mockup is somewhat finalised.


Finnish was missing from the other languages list

What does this PR do?
Add info
For resources
Description
Finnish was missing from the other languages list in the README.MD file.
Why is this valuable (or not)
How do we know it's really free?
For book lists, is it a book?
Checklist:

[ ] Not a duplicate
[ ] Included author(s) if appropriate
[ ] Lists are in alphabetical order
[ ] Needed indications added (PDF, access notes, under construction)

How did we miss that??? Thank you for you support!


Option to hide window instead of close

Given that Atom takes a decent amount of time to open again after closing a window, I'm wondering if there would be a way to add an option to this plugin that would change the functionality from "closing" the window to "hiding" it instead (CMD+H on macOS). Hiding the window takes it out of view, but doesn't close the whole window, meaning it all opens back up quickly when you next need to edit a file.

Ohhh, that's a really neat idea, @InterestingJohn -- thanks for asking here! I have to admit that I don't know for sure if Atom can do that, but I'm guessing it can.  If you (or anyone else) would like to try and implement that feature -- I'd be happy to review and merge a pull request!
Thanks again! 🍰

I don't have a ton of experience with this kind of coding, but I could possibly take a crack at it, I assume it would be fairly easy to do as it's similar functionality.


Dependency Check report does not include bundle-audit results

Describe the bug
When running version 6.1.5 of the CLI OWASP dependency checker, the bundle-audit results are not included. In the logs, I can see bundle-audit is run but the Gemfile.lock in the generated report always shows 0 vulnerabilities despite manual runs of bundle-audit indicating there are vulnerabilities. Other vulnerabilities in Javascript code are reported correctly.
Version of dependency-check used
The problem occurs using version 6.1.5 of the CLI
Log file
https://gist.github.com/conman2305/e015cf818aa0d1618fce980769c903bb
I think (?) the issue might be here:
[INFO] Launching: [bundle-audit, version] from /home/app
[WARN] Warnings from bundle-audit
[INFO] Ruby Bundle Audit Analyzer is enabled and is using bundle-audit with version details: bundler-audit 0.8.0
. Note: It is necessary to manually run "bundle-audit update" occasionally to keep its database up to date.
[WARN] Did not find org.owasp.dependencycheck.analyzer.RubyGemspecAnalyzer.
[INFO] Launching: [bundle-audit, check, --verbose] from /home/app
[INFO] Launching: [bundle-audit, check, --verbose] from /home/app
[INFO] Launching: [bundle-audit, check, --verbose] from /home/app
[WARN] Warnings from bundle-audit
[WARN] Warnings from bundle-audit
[WARN] Warnings from bundle-audit
[INFO] Finished Ruby Bundle Audit Analyzer (0 seconds)

This seems similar to jeremylong/DependencyCheck#1086 but this is not a Rails app. There is only one Gemfile.lock in the /home/app directory.
To Reproduce
Steps to reproduce the behavior:

Download and extract dependency-check CLI
Install bundle-audit (gem install bundle-audit), verify that bundle-audit can be run manually
Execute bundle-audit update to pull latest report DB
Execute CLI: /tmp/owasp/dependency-check/bin/dependency-check.sh --project "$PROJECT_NAME" --scan "$(pwd)" --bundleAuditWorkingDirectory "$(pwd)" -o /opt/output -l log --disableYarnAudit

Expected behavior
The dependency check reports should also include the results from bundle-audit
Additional context
I don't think it would matter, but this is being run inside a docker container. None of the directories being scanned are volume mounted and the CLI script is being invoked by the user that owns /home/app

Sorry about that... Can't believe I used a while (bufferedReader.ready()) to test if we should continue to read from the stream....  The fix will be included in the next release.


File permission on dhcp.leases seems to change after rc.linkup: plugins_configure dhcp runs

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
We encounter an issue where the dhcp leases file is not readable by 'others' anymore. Normally a restart of dhcpd or a complete reboot fix this temporarily. We had this behavior for quite a while (can't say, when exactly it started) but with Version OPNsense 23.1.1_2-amd64 and the previous stable version it seems to trigger frequently.
To Reproduce
We've observed this behavior on two occasions up until now:

The less frequent one: when adding ip reservations on a dhcp scope in the Web-UI. I can't supply logs for this one atm.
The more frequent one: restarting a connected - on a LAN port - gateway (in a double NAT setup) seems to trigger /usr/local/etc/rc.linkup: plugins_configure dhcp (execute task: dhcpd_dhcp_configure()). These are the moments we discovered the loss of the read permissions

Expected behavior
I expect the permissions to stay the same after a reconfiguration as they were set after a service restart.
Describe alternatives you considered
At first, we just restarted the dhcpd service or our whole appliance. This fixes the issue temporarily.
An even better alternative would be the usage of an API to get the leases (see section 'Additional context'). As far as I know, there's currently no such Api available.
Screenshots

-rw-r-----  1 dhcpd  dhcpd  2629794 Mar  2 17:09 /var/dhcpd/var/db/dhcpd.leases

Relevant log files
I'm not really an OPNSense pro. Can provide relevant logfiles, if you help me find it :)
Additional context
Currently we've automation in place, that fetches via scp and parses the dhcp.leases of every OPNSense we use in production, to find devices like printers and configure them automatically. The automation uses a specific user that has limited access. Basically, permission to access shell and read - with said 'others' read permission - /var/dhcpd/var/db/dhcpd.leases.
As already mentioned, we tried to implement this automation with an (REST) API but couldn't find one for dhcp out of the box. But to be fair, it's been some time since we looked.
Environment
OPNsense 23.1.1_2-amd64
FreeBSD 13.1-RELEASE-p6
OpenSSL 1.1.1t 7 Feb 2023

Configd infamously mangles permissions for files created. I’m not sure about touching them though. Yet AFAIK dhcpd would be the only one to recreating these files (while switching to the strange copy they make on edits?) so we might not have further influence on this directly. Umask change might be the only option here.
Cheers,
Franco

PS: An API for the IPv4 leases is on the roadmap for 23.7…

Thanks for the fast response!
Will a Umask change survive an OPNsense update? We automated them too with a canary deployment.
As far as I know, I can change the system default with a corresponding script in /etc/profile.d/ - or overwrite it with ~/.bashrc.
But won't at least /etc/profile.d/ be touched in an upgrade?

We created a user with the OPNsense UI called 'dhcpreader' and a group 'lease_reader', allowed the user to connect to shell
# /etc/passwd
dhcpreader:*:2000:65534::/home/dhcpreader:/bin/sh

# /etc/group
lease_readers:*:2000:dhcpreader

Now that I think about it, 'lease_readers' is not needed anymore. This group has only the permission to access the ARP Table API - this was our first approach.
Essentially, the user 'dhcpreader' accesses the file /var/dhcpd/var/db/dhcpd.leases with its permission to access shell and the permission for 'others', which would be read normally.

We just added the user to the dhcpd group. This may be not the best solution in terms of permissions, but since we want to rework our solution after the release of the ipv4 API (hopefully in 23.7 :wink: ) anyway, I think we can live with this workaround.
Thanks for your time & help!

Sorry, it was a bit busy getting 23.1.2 out the door. I was thinking the same about dhcpd group, but discarded it because a few versions back it wasn't possible to retain system users with system groups over a reboot, but we did change that last year I think so it should be a pretty good solution for the time being. 👍
Close issue?
Cheers,
Franco


Prepare the static binding for the new object-oriented binding design.

This won't build until I push the new object-oriented binding open source. I deliberately prepared it in advance of that change.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

17 of 52 (32.69%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.3%) to 66.592%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

topologies/binding/binding.go
17
52
32.69%

Totals

Change from base Build<PHONE_NUMBER>:
2.3%

Covered Lines:
594

Relevant Lines:
892

💛  - Coveralls

Brandon made some adjustments to how we run staticcheck in https://github.com/openconfig/featureprofiles/pull/181. You may need to rebase to featureprofiles main to benefit.


java-microprofile: what server config artifacts should be copied into the deployment image?

Summary
The current appsody build builds the entire target server config directory into the Docker image, via:
mv wlp/usr/servers/*/* /config/
On the other hand, the updated "getting started" guide only copies the src config directory, using:

COPY --chown=1001:0 src/main/liberty/config/ /config/
COPY --chown=1001:0 target/*.war /config/apps/

ADVANTAGES / DISADVANTAGES
By copying the target server config dir, we allow any config generation/merge done by the liberty-maven-plugin to take effect.  E.g. the merge of  POM properties, plugin config (inline and pointing to external files), -Dx=y..
By copying the server config contents from src, we avoid an issue like:
https://github.com/appsody/stacks/issues/516
where a "local dev" config artifact like server.env gets built into the image, though it shouldn't.
As the resolution of #516 shows, a solution here is to use appsody commands to structure your local dev (appsody run/test/debug) differently.   But we still have to decide if this should be the user's responsibility.

Finally, I'm not sure what the overlap is precisely yet, but the issue https://github.com/appsody/stacks/issues/364 is also relevant.

Define and describe what artifacts are expected where too.  For example, dependency jars as noted in https://github.com/kabanero-io/docs/issues/181.

There is a layered problem in here in that the stack actually uses liberty/wlp instead of wlp as the base directory for the server, so that mv wlp/usr/servers/*/* /config/ is not really doing anything since there is nothing in "target/wlp/..." at the end of a build.

<Deleted my comment from 30 minutes ago as it was not making the problem clear. I am still rewording it for clarity and collecting more precise path collections for the examples.>

Though this issue hasn't been solved in the java-microprofile stack, relabeling to the java-openliberty stack, which is where we will prioritize a solution.

PROBLEM:
How to get resource adapters and shared libraries into Docker image.
ASSUMPTION:
Shared libraries and resource adapters are dependencies of the current project
SOLUTION - liberty-maven-plugin (LMP)
Nearer term proposal
LMP dev mode detects maven-dependency-plugin:copy/copy-dependencies goal configs
and calls them at some point in the dev mode-internal sequence (not sure what we call it...a "lifecycle"?).
Guessing this is easy enough to detect in the general case (e.g. incorporating parent POMs), if not restrict to easier pattern?
Possibly in liberty:run too??
Possible future enhancement
From dependency, LMP generates config (jdbcDriver, possibly references via defaultDatasource) and copies into special locations (customizable maybe?).
Note the work on the https://github.com/MicroShed/boost[Boost plugin] did this for JDBC driver, (not shared libs).
Near-term workaround
Launch dev mode after explicitly calling the copy goals, e.g.:
mvn liberty:create dependency:copy@my-execution-1 ... liberty:dev
(You might need to have some extra considerations like needing to create the server first as in this example.)
Appsody
We could workaround this by introducing a workaround variable, e.g.:
ENV APPSODY_RUN="... mvn $APPSODY_MVN_EXTRAS liberty:dev"
and then propagating env vars via appsody through Docker like:
appsody run --docker-options="--env APPSODY_MVN_EXTRAS=dependency:copy@my-execution-1
Docker
From the Dockerfile perspective, while the stack has to pick one order for layering to minimize image sizes, it would be easy for Champ, etc. to tweak and use a different order.
 # Stage 2: Package Open Liberty image
 FROM open-liberty:kernel-java8-openj9

 # 2a) shared resources change the least-frequently  (* - see note below)
 COPY --chown=1001:0 --from=0 /shared/resources /opt/ol/wlp/usr/shared/

 # 2b) next copy shared library
 COPY --chown=1001:0 --from=0 /config/libs/ /config/

 # 2c) Server config, bootstrap.properties, and everything else
 COPY --chown=1001:0 --from=0 /config/ /config/

 # 2d) Changes to the application binary
 COPY --chown=1001:0 --from=0 /project/user-app/target/*.war /config/apps

(*) Even for the one-app containerized server, carry forward the convention of using usr/shared/resources, since the special Liberty config property shared.resource.dir maps to it.
Setup from Stage 1 not shown here.

See discussion in LMP issue 705.

While it would require some design and discussion to get consensus on including some but not other entries with the target Open Liberty install, as long as we continue just copying everything (what we are doing today), then there's not much value in keeping this issue open.  Closing.


Unify the loading of providers with IBMQ.load_accounts

Make IBMQ.load_accounts() the method for loading accounts across all of the tutorials.  This does not include 'teach me qiskit' since most of those notebooks need a fair bit of work in order to run on 0.6

Damn checkpoint files.

Not sure what you mean.  I did not have to add from qiskit import IBMQ to all of the notebooks, some already had it, but loaded credentials from a qconfig.  I went back to look, and it seems that they all have an IBMQ import.

that answers my questions. Did not read the ipynb just the changes.


Formatting of setup.py is changed by release-please

Environment details

OS: Ubuntu
release-please version: The one used by the latest release-please-action@v2

Steps to reproduce

Use release-please in a Python project where setup.py is formatted using psf/black
Observe that the release pull request changes the formatting (adds spaces around the = operator)
Because of that, we always have to correct the commit before merging to remove the spaces.

See https://github.com/nodejs/gyp-next/commit/5b3fa5c3c756e37fade6487b78573341b9655e73
diff --git a/setup.py b/setup.py
index 31f0117..ec313b0 100644
--- a/setup.py
+++ b/setup.py
@@ -15,7 +15,7 @@

 setup(
     name="gyp-next",
-    version="0.8.0",
+    version = "0.8.1",
     description="A fork of the GYP build system for use in the Node.js projects",
     long_description=long_description,
     long_description_content_type="text/markdown",

@targos agreed that this is annoying, will work on patching soon 👍

I created a PR: https://github.com/googleapis/release-please/pull/782


Localisation

Apply localisation strings throughout so that the system can support other languages.

Localisation has been applied throughout.


Type mismatch for @callback handle_info/2 in Phoenix.Socket.Transport behaviour.

Hi, I'm getting this error when linting my module.
I saw that SubscriptionsTransportWS.Socket do @behaviour Phoenix.Socket.Transport, so don't know if my module is doing something wrong or the lint is complaining about some wrong type returning on func handle_info/2.
Don't know if mix resolved some different version of dependencies and contracts might be varying.
Thank you.

Hi, could you show the code giving the error message? And the version of Phoenix you're using.

This is the error displayed by the dialyzer:
ws_agent_socket.ex:3:callback_type_mismatch
Type mismatch for @callback handle_info/2 in Phoenix.Socket.Transport behaviour.

Expected type:
{:ok, _} | {:push, {atom(), _}, _} | {:stop, _, _}

Actual type:
{:reply, :ok, {:text, _}, atom() | %{:json_module => atom(), _ => _}}

________________________________________________________________________________

Deps:

:absinthe_phoenix, "2.0.1"
:phoenix, "1.5.7"

Might be here?
https://github.com/maartenvanvliet/subscriptions-transport-ws/blob/113d3282789706abd3dbc1cc60e3a8cb2d72e509/lib/subscriptions_transport_ws/socket.ex#L314

Thx! Could you checkout this branch (https://github.com/maartenvanvliet/subscriptions-transport-ws/tree/issues/fix-return-type) to see if it fixes the error, and the socket still behaves correctly (esp. around keep alive)

Thank you @maartenvanvliet, lint is now happy.
Just out of curiosity, how dangerous would this be in production? Could socket connection/messages get lost because of this type mismatch?
Also, does the lib have unit tests to cover this part of implementation? I would be glad to add if not.
Thank you again, this lib is really helpful and works pretty good.

Yes, this is a bug in the socket. It would not have worked for keep alive and multi-node setups.
I'll add tests to cover this.

Should also add a github action to run dialyzer.

Fix is pushed https://github.com/maartenvanvliet/subscriptions-transport-ws/releases/tag/v1.0.1

that worked amazingly well @maartenvanvliet, thank you!


issues with go-playground: ‘search failed: “\n\n”

Does go-play require some setup? I’m finding that when I try to run any of go-play-buffer, go-play-region, go-download-play, I get the following error:
ERROR IN PROCESS SENTINEL: search failed: “

“

It should work without any additional setup.
It looks like its not connecting to https://play.golang.org/. Does your emacs have gnutls enabled? What does C-h v system-configuration-features show for you?

Its value is
"XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETT\INGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LIBSYST\EMD LCMS2"
I checked whether I have gnutls installed, and it appears I do. I’m unsure what you mean by enabled. As in, have I set gnutls somewhere in my init script? I haven’t.

I meant is your emacs built with GNUTLS support turned on? Looks like it is.
Try this to see what the response emacs is getting:
M-: (switch-to-buffer (url-retrieve-synchronously "https://play.golang.org/p/HmnNoBf0p1z"))

M-: is undefined, (but ooh that looks like a useful, what is it?) I put this in scratch and called M-x eval-defun, I got this:
Debugger entered--Lisp error: (void-function url-retreive-synchronously)                                          (url-retreive-synchronously "https://play.golang.org/p/HmnNoBf0p1z")                                            (switch-to-buffer (url-retreive-synchronously "https://play.golang.org/p/HmnNoBf0p1z"))                         eval-region(146 233 t #f(compiled-function (ignore) #<bytecode 0xd8da77>))  ; Reading at buffer position 146    elisp--eval-defun()                                                                                eval-defun(nil)                                                                                funcall-interactively(eval-defun nil)                                                                           call-interactively(eval-defun record nil)                                                                       command-execute(eval-defun record)                                                                              execute-extended-command(nil "eval-defun" "eval-def")                                                           funcall-interactively(execute-extended-command nil "eval-defun" "eval-def")                                     call-interactively(execute-extended-command nil nil)                                                            command-execute(execute-extended-command)

You may need to (require 'url) although if you've already loaded go-mode that should already be there.
What version of emacs are you using?

I'm going to close out this issue since there hasn't been any updates for a few months.