[infra-proxy-service] updating organisation admin key

:nut_and_bolt: Description: What code changed, and why?

At present, the admin key can be modified during the org update, which is not recommended. As secret service already stored and manage from secrets-service so removing update admin key from org update process.
Renamed the orgs admin_key to credential_id for better readability purpose as we are storing admin_key in secrets-service.
:chains: Related Resources
NA
:+1: Definition of Done

Not allowed to update the admin key from the Org update process.
Remove unused data from the orgs list API.
Rename orgs admin key with credentail_id.
Minor updates.

:athletic_shoe: How to Build and Test the Change
Steps to build:

rebuild components/infra-proxy-service
rebuild compoments/automate-gateway

Steps to test:

make setup_docker_pg
make test

OR

Add test env server credentials.

Create org API call returning the credentail_id for more readability:

curl -sSkH "api-token: $(get_admin_token)"  -X POST https://a2-dev.test/api/v0/infra/servers/d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291/orgs?pretty -d '{"name": "test-org", "admin_user":"chefadmin1", "admin_key":"ADMIN_KEY", "server_id":"d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291"}'
{
  "org": {
    "id": "efc9cd88-b96f-4257-abed-5b0ae683fa79",
    "name": "test-org",
    "admin_user": "chefadmin1",
    "credential_id": "38076721-a899-4e0f-b5f8-685229cdc455",
    "server_id": "d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291",
    "projects": [
    ]
  }
}

GetOrg detail API now returning the credetial_id instead of admin_key

curl -sSkH "api-token: $(get_admin_token)"  https://a2-dev.test/api/v0/infra/servers/d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291/orgs/ef9dd409-7437-4aee-89c2-9b6f39a9f484?pretty
{
  "org": {
    "id": "ef9dd409-7437-4aee-89c2-9b6f39a9f484",
    "name": "4thcoffee",
    "admin_user": "chefadmin",
    "credential_id": "f538cddd-cc0f-4de3-bbef-47e65cbf7e92",
    "server_id": "d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291",
    "projects": [
    ]
  }
}

Update works for the name, admin_user update.
curl -sSkH "api-token: $(get_admin_token)"  -X PUT https://a2-dev.test/api/v0/infra/servers/d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291/orgs/efc9cd88-b96f-4257-abed-5b0ae683fa79?pretty -d '{"name": "test-org11", "admin_user":"new-chefadmin1", "server_id":"d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291"}'
{
  "org": {
    "id": "efc9cd88-b96f-4257-abed-5b0ae683fa79",
    "name": "test-org11",
    "admin_user": "new-chefadmin1",
    "credential_id": "38076721-a899-4e0f-b5f8-685229cdc455",
    "server_id": "d063dbbe-ddcf-4cec-a1bf-e0f52d5e4291",
    "projects": [
    ]
  }
}

:white_check_mark: Checklist

[x] I have read the CONTRIBUTING document.
[x] Tests added/updated?
[ ] Docs added/updated?
[x] All commits have been signed-off for the Developer Certification of Origin.

:camera: Screenshots, if applicable

im having trouble adding an org on this branch..


Terminal scrolling issue

VSCode Version: 1.2.0-Insider
OS Version: Elementary OS

Steps to Reproduce:

When i execute a command in integrated terminal then output is not show properly and I am not able to scroll up and down sometime. i.e. some text is just hidden and scroll not functional.

What sort of command did you run? Also do you have screenshot(s) showing the issue?

HI,
Here what i perform on terminal

When i reduced terminal size then i was not able to scroll to see entire output i.e scrolling was not working and i am not able to run any command.

@rajeevkumarsharma thanks, I think this fits into the class of bugs that can be fixed by https://github.com/Microsoft/vscode/issues/6838

@Tyriar yeah sure, I think, vscode terminal should have features from both black-screen and xterm.

I have had the same problem with a vertical scroll bar not appearing using v1.2.1.  I was really digging the terminal window, but need to be able to see history so I may have to go back to another command window for now.

@kliemohn there is still no scrollbar https://github.com/sourcelair/xterm.js/issues/77, but I believe this scrolling issue is fixed with the change to https://github.com/sourcelair/xterm.js

I'm having this issue still; is there anything I need to do? I'm using v1.3.1 of Code.

@ksnyde are you using oh-my-zsh? https://github.com/sourcelair/xterm.js/issues/151

Yeah I am. Thanks for the link to that thread @Tyriar .

I got the same problem with<EMAIL_ADDRESS>&& oh-my-zsh


Export PDF extent problems when view is rotated

Describe the bug
There is another issue with the Export PDF example in addition to https://github.com/openlayers/openlayers/issues/9436 which can also be seen in earlier versions.  When the view is rotated the extent exported doesn't match the view and the view isn't correctly restored to its original state.  It's because calculateExtent() is returning a bounding extent which for fit() is the extent to be bounded.  Turning off rotation, applying the fit then reapplying rotation will fix both the version 5 and version 6 examples:
  var rotation = map.getView().getRotation();
  map.getView().setRotation(0);
  var extent = map.getView().calculateExtent(size);

  map.once('rendercomplete', function () {

    ...

      // Reset original map size
      map.setSize(size);
      map.getView().setRotation(0);
      map.getView().fit(extent, {size: size});
      map.getView().setRotation(rotation);

    ...

  });

  // Set print size
  var printSize = [width, height];
  map.setSize(printSize);
  map.getView().fit(extent, {size: printSize});
  map.getView().setRotation(rotation);

A simpler solution is to avoid using extents and to simply reset the resolution in proportion to the change in map size regardless of rotation.  #9665 is currently interfering with testing with OL6
https://codesandbox.io/s/export-pdf-x78ce but the same code can be seen working with OL5 https://codesandbox.io/s/export-pdf-kopsm


Docker Orchestration slides link is broken

@jpetazzo please verify

Sorry, which link?

https://github.com/docker/labs/pull/93/commits/3900bc91386097bb0a939e00ea38ff33e0f7914a


Bump Go to 1.18.1

Bump Go to 1.18.1
Signed-off-by: David Enyeart<EMAIL_ADDRESS>

Was trying to run tests locally there is a failure, not sure it's related to the change, but worth checking
• Failure [0.002 seconds]                                                                                Fields
/Users/c0rwin/golang/src/github.com/hyperledger/fabric/common/grpclogging/fields_test.go:22
  Error
  /Users/c0rwin/golang/src/github.com/hyperledger/fabric/common/grpclogging/fields_test.go:84
    creates an error field for zap [It]
    /Users/c0rwin/golang/src/github.com/hyperledger/fabric/common/grpclogging/fields_test.go:85

    Expected
        <struct { error }>: {
            error: {
                msg: "error",
                stack: [0x17eaa17, 0x17408f6, 0x173fff8, 0x173f235, 0x1744c9a, 0x17444cc, 0x177755b, 0x1777156, 0x17763b7, 0x1779796, 0x178c153, 0x178bee8, 0x
17eb9c5, 0x11abdf4, 0x10ae041],
            },
        }
    to equal
        <struct { error }>: {
            error: {
                msg: "error",
                stack: [0x17eaa17, 0x17408f6, 0x173fff8, 0x173f235, 0x1744c9a, 0x17444cc, 0x177755b, 0x1777156, 0x17763b7, 0x1779796, 0x178c153, 0x178bee8, 0x
17eb9c5, 0x11abdf4, 0x10ae041],
            },
        }

    /Users/c0rwin/golang/src/github.com/hyperledger/fabric/common/grpclogging/fields_test.go:90
------------------------------
••

Summarizing 1 Failure:

[Fail] Fields Error [It] creates an error field for zap

Only one failure remaining... the one that @C0rWin mentioned. I don't yet understand why the error interface compare is not working on Go 1.18.

Only one failure remaining... the one that @C0rWin mentioned. I don't yet understand why the error interface compare is not working on Go 1.18.

Dave, it doesn't work on Go 1.17 either, IMO this test was broken many weeks before.

@C0rWin At least in my trials in both CI and local, this test always passes when using Go 1.17 and always fails when using Go 1.18.

@C0rWin At least in my trials in both CI and local, this test always passes when using Go 1.17 and always fails when using Go 1.18.

Yes, my fault, ran it again with 1.17 and it works, but I also discovered that now since 1.18 the following struct
package p1

type Test struct {
       A int
}

and
package p2

type Test struct {
       A int
}

despite structural equivalence with
a := 42
A := TTT{A: a}
B := pfi.TTT{A: a}

assert.True(t, reflect.DeepEqual(A, B))

fails, i.e. no longer equivivalent.

@denyeart see https://github.com/golang/go/issues/52856. We need to update the test because, with 1.18, the structural embedding works differently, and you no longer can do the assertion. I guess the intent of the test is not to ensure that error strips stack trace info after type coercion.

@C0rWin Ok, got it this time. Thanks for your help!


🐛 [Bug]: Checkbox style 不生效

Which React Vant packages are impacted?

[X] react-vant (React Vant core)
[ ] react-vant-icons(React Vant Icon)

What version of React Vant are you using?
2.0.0-alpha.22
Reproduce live demo(codesandebox or stackblitz)?
No response
Descripition
Checkbox 设置style 不生效
  <Checkbox defaultChecked checkedColor={'#1B612C'} style={{ display: 'inline-flex' }} />

v2啊？ 那得等等拉

v2 待修复


Respect vim's options on smart-case, ignore-case, etc?

Hello. Thanks for the plugin!
Just stumbled across this. I have set smartcase on in my .vimrc so it would be great if your plugin could be aware of those options and auto add the according flags to RG command...
What do you think?
Thanks

Fixed in https://github.com/jremmen/vim-ripgrep/pull/21 release v1.0.1


Support System.Text.Json.Serialization out of the box for .NET 5.0 and above

Now that System.Text.Json is widely adopted, and not require an extra dependency (the reason for the existence of the convention based serializers) it is time to support System.Text.Json based seralization out-of-the-box. The biggest challenge might be supporting Id<> and Svo<>.

@Sjaaky I changed the order of all JSON (de) serialization tests.


dist/{ipfsapi.js, ipfsapi.min.js} not actually compiled

The files dist/ipfsapi.min.js and dist/ipfsapi.js are not containing the libraries code anymore, since commit f6a7da682f205b13424dfd6082f3eaae51af7a73. The only thing I can see in the files is the standard browserify code, without anything about ipfs. Seems like we're missing to source the correct files in the build-step.

ping @Dignifiedquire (last commit on files)

😓

one of the reasons why I hate having compiled files checked into git..

Agreed, if possible, we should not have built files into scm. As @Dignifiedquire mentioned in IRC, we can make use of https://npmcdn.com/ that allows us to include the dist/ folder in our published package but not in the scm. To me making use of that makes sense.

done https://github.com/ipfs/js-ipfs-api/releases/tag/v2.7.3 :)


Fix links to @graphql-codegen/typescript

This fixes a couple links to the typescript plugin page that currently result in a 404.

Thank you @glenwinters !


Query result cache invalidation

Hi I found this plugin very handy for my node.js app, but I have a problem with query invalidation.
Once I execute the query the result still stays stored like in cache... so no matter what I send next to that same query the result will be the same as the first time.
I'm trying not to close the connection, instead of that I want to use permanent connection, and execute the same select query but with different parameters, and to get different result.
In my current node configuration, the mysql connection is executed only once when node http server starts. Far I saw in the documentation says that connection.query will automatically execute connection.connect, but if after each connection.query I do connection.end then I'm receiving an error that says that connection haven't been re-executed again.

events.js:85
throw er; // Unhandled 'error' event
^
Error: Cannot enqueue Handshake after invoking quit.
at Protocol._validateEnqueue (C:\xampp\htdocs\projects\nodesrv\node_modules
mysql\lib\protocol\Protocol.js:196:16)
at Protocol._enqueue (C:\xampp\htdocs\projects\nodesrv\node_modules\mysql\li
b\protocol\Protocol.js:129:13)
at Protocol.handshake (C:\xampp\htdocs\projects\nodesrv\node_modules\mysql\l
ib\protocol\Protocol.js:52:41)
at Connection.connect (C:\xampp\htdocs\projects\nodesrv\node_modules\mysql\l
ib\Connection.js:123:18)
at Object.authorization.login (C:\xampp\htdocs\projects\nodesrv\libs\auth.js
:19:8)
at C:\xampp\htdocs\projects\nodesrv\dispatcher.js:25:8
at C:\xampp\htdocs\projects\nodesrv\node_modules\httpdispatcher\httpdispatch
er.js:130:3
at HttpChain.next (C:\xampp\htdocs\projects\nodesrv\node_modules\httpdispatc
her\httpdispatcher.js:123:9)
at doDispatch (C:\xampp\htdocs\projects\nodesrv\node_modules\httpdispatcher
httpdispatcher.js:58:13)
at IncomingMessage. (C:\xampp\htdocs\projects\nodesrv\node_module
s\httpdispatcher\httpdispatcher.js:69:15)

then I'm receiving an error that says that connection haven't been re-executed again.

This is because a connection object can only ever be used one time: and you can .end() on it, it's useless and you have to createConnection() to create a new connection to the server.

Ok, then what do you suggest to be used in order to invalidate previous result, without ending the connection?

I've never even heard of the behavior you're describing, so I'm not sure. Can you point me to the section in the MySQL manual that describes query result caching? Perhaps I can figure something out from there.

Otherwise, you can always reset the session state on a connection using the .changeUser() command (https://github.com/felixge/node-mysql#switching-users-and-altering-connection-state).

I mentioned that it acts like it use cache, I'm not sure is there any cache involved.
This is my code:
define(['db', 'localStorage', 'MD5', 'jquery-deferred'], function (db, localStorage, md5, $) {
"use strict";
var deferred = $.Deferred();

var authorization = {

	login: function(request)
	{
		try
		{
			db.query('SELECT users.id,\
							 users.fid,\
							 users.name,\
							 users.email,\
							 users.banned,\
							 users.joined_at,\
							 NOW() as time\
						FROM users \
						WHERE email = '+db.escape(request.params.username)+'\
						AND password = '+db.escape(md5(request.params.password))+' ', function(err, rows, fields) {

				  if (err) deferred.reject({'error': err});

				  if(rows.length > 0)
				  {
					localStorage.setItem('user_'+rows[0].id, rows);
					deferred.resolve(rows);
				  }
				  else
				  {
					deferred.reject({'error': 'Nothing found'});
				  }

			});

		}
		catch(error)
		{
			deferred.reject({'error': 'Login DB error'});
			return false;
		}
		return deferred.promise();
	},

};

return authorization;

});
When I execute auth.login for the first time, it is working great, but on the second time, it returns the same result as from the first time, even if I change all the parameters.
I make sure that correct parameters are sent, and did a lot of debugging, but the result is still the same. I will try your suggestion now and see if there are any changes.
Thanks

Nope even changeUser doesn't help. It still returns the old result.

Yea, I'm not sure. The only way I can answer is I would need to have a way to reproduce the issue, if you can provide full complete code with the MySQL DDL to use and instructions on how to reproduce. Otherwise I'm not sure, especially since I've never hear about the behavior you describe.
You can also rule out that it's even this module by replacing your mysql dependency with the mysql2 module, which uses a different protocol to interact with MySQL but has the same API.
Let me know when you can do either one of those :)

/* DB file */
define(['mysql'], function (mysql) {
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'pickmeup',

});

return connection;

});
Save this file as db.js or whatever, and use it in another file under node, then try to execute the same select query just with different values in the where clause. No matter is mysql or mysql2 the result will be the same...
Instancing that file
define(['db'], function (db)
{
db.query(.....);
}

No matter is mysql or mysql2 the result will be the same...

If this is the case, what would make this an issue with this module, if it also happens with a module that does not share any of the same code? I mean, if you tried mysql2 and got the same results, it would indicate that the caching is either happening somewhere in your code or how you're using MySQL?

Save this file as db.js or whatever, and use it in another file under node, then try to execute the same select query just with different values in the where clause

I'm not able to execute your SELECT statement without creating the necessary table first, can you provide the DDL and an INSERT so I have something to select?
Also, trying that code, I get the following error:
define(['mysql'], function (mysql) {
^
ReferenceError: define is not defined
    at Object.<anonymous> (db.js:1:1)

I've never heard of the function define in Node.js. Can you provide full, complete code with full, complete instructions? So far these are just pieces. I would like to help you, but you have to provide me a way to even try.

I'm afraid that I can not place the whole project and its structure because it is in a late phase of development. The define[] method is used with requirejs.
Anyways I will try to separate the files and send you only needed files, so you can check on your local environment.
Thanks.

Just as an info, I found a solution to the problem. Actually the deferred was the one that caused this issue. It was not waiting for the db.query to finish 2nd time. So instead of having $.Deferred declared globaly I have move it to be a part of the .login method.
From my example above:
var deferred = $.Deferred();
should be now under
login:{
var deferred = $.Deferred();
.....
}
I hope that this will help the others who are using requirejs and jquery deferred together with mysql :)

Ah, I see! I saw you using it, but I've never used jQuery deferred, so had no idea if it was right or not. I have never done front-end work and am not generally familiar with jQuery (I have also never seen anyone using that on the backend before).


Images inside cards' .content

A .ui.image inside a card, but outside it's .content is beautifully 100% width.
But if you put the .image it inside .content it goes 2em width. ( card.less arround line 205 )
One should be able to use images inside .card .content even that it needs to add the .image class to it, so it displays nicely
Currently the 100% width is overwritten by a 2em width ( card.less arround line 205 )

So i did this. Sorry, i tried PR instead of just talking here :p
Also, the colored cards improovement i'll try to make in this branch.
Please check and comment: 0060fa800f16cfc99f8223e592c3e456a0a2f5be

couldn't resist. PR'd it.

Closed discussion in PR


can't connect GCP Pub/Sub Audit Logs Data Connector to MS Sentinel

Bug description
I'm trying to connect GCP Pub/Sub Audit Logs connector to Sentinel, to ingest GCP logs, but after I fill all the required fields it shows this error:

This is how it looks like when I'm filling the fields:

To Reproduce
Steps to reproduce the behavior:

Go to 'https://azuremarketplace.microsoft.com/en-us/marketplace/apps/azuresentinel.azure-sentinel-solution-gcpauditlogs-api?tab=Overview'
Install it and click manage.
Go to installed solution and choose 'GCP Pub/Sub Audit Logs'
Click 'Add new collector' and fill out all the required fields.
See error:

@odishelidzegio, Can you please share the full error message screenshot, and is there any support ticket raised for this issue?

Yes, of course, here's the full error message:

Here's Raw message:
{
"code": "DeploymentFailed",
"message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.",
"details": [
{
"code": "BadRequest",
"message": "Connectivity check failed. ConnectorId: GCPAuditLogsfa206b6c-a4e9-4dff-a82f-ae6ec19a833a, Status code:GCPB40001, Message:An unknown exception resulted in the failure to authenticate: Google.Apis.Requests.RequestError\r\nPermission 'iam.serviceAccounts.getAccessToken' denied on resource (or it may not exist). [403]\r\nErrors [\r\n\tMessage[Permission 'iam.serviceAccounts.getAccessToken' denied on resource (or it may not exist).] Location[ - ] Reason[forbidden] Domain[global]\r\n]\r\n"
}
]
}
From GCP's side it's completed, yes.
Please also note that the permission "[Permission 'iam.serviceAccounts.getAccessToken" is granted to service account

@odishelidzegio, thanks for sharing it, will check and get back to you.

@odishelidzegio, Based on the error, need to verify the role - iam.serviceAccountTokenCreator is granted to the correct service account.
You can follow the below step / refer the doc to add it and confirm once it gets from GCP end.
DOC - https://cloud.google.com/iam/docs/service-account-permissions

Go to IAM in GCP Portal and search for you service account name -

Click on the Pencil icon and edit it -

Add another role -

Search with the role - iam.serviceAccountTokenCreator and click on save -

The updated role will get displayed in service account name -

Once it gets updated, reconnect the Data connector and let us know if it still has the issue.
Thanks!

Hello!
I checked, and the permission was not granted. I granted the permission but still the same error:

Permissions granted:

@odishelidzegio, Will check with concern team for this case.

@odishelidzegio, Meantime, want to know did you get same error after deployment in different workspace? can you check and let us know it by configure it in different workspace. Thanks!

I think I have not, I'll try it.

@odishelidzegio , hi mate , did you have any solution for this . I also stucked at this point and no luck to solve it

@ulviahmadly99 / @ulviahmadly99 , Could you please follow the steps mentioned in below Doc -https://learn.microsoft.com/en-us/azure/sentinel/connect-google-cloud-platform?tabs=terraform%2Cauditlogs
And please note that once the configuration has been completed in GCP end, please wait for few minutes before setting it up in Sentinel connector.
Thanks!

@v-sudkharat any updates?
By the way, I tried it in another workspace and got this error:
Failed to parse input. Error='DataCollectionEndpoint should be in the following format: https://{Data Collection Endpoint name}-{id}-{Region}.ingest.monitor.azure.com (Parameter 'dataCollectionEndpoint')'
@ulviahmadly99 Not yet

@v-sudkharat after many tries, I'm still getting the same error:

I tried to delete everything and recreate it on GCP side but no results.

@v-sudkharat I think I have a problem with this step: https://learn.microsoft.com/en-us/azure/sentinel/connect-google-cloud-platform?tabs=manual%2Cauditlogs#grant-the-identity-pool-access-to-the-service-account
Specifically here: https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#authenticate
I don't understand how to do it. Tried to do the same as in the documentation, but I think I'm not making something correctly here.

@odishelidzegio, no worries, We can have a call to check on this issue. So please can you send the mail id and slots with us -<EMAIL_ADDRESS>And if you also try this, as it looks your project might be not having the admin access to provide the required access to the services, so you can run below command in terminal before running the terraform scripts-
 gcloud projects add-iam-policy-binding ProjectName \
  --member="user:MailID" \
  --role="roles/iam.roleAdmin"

Replace MailID as your mail Id - EX -<EMAIL_ADDRESS>Replace ProjectName with your ProjectName
Once this get successfully run, you can retry the above-mentioned steps and check for the connector status. And in GCP side the services takes some time to get sync.
So, wait for some time and then configure the connector.

@odishelidzegio, Did you get a chance to check on it? anything for us?

@odishelidzegio, Ok

Hello @v-sudkharat
I tried to run the command, and it succeeds, but still got the same error after connecting GCP connector.

@odishelidzegio, let's have the meet, please share the slots in above mail.

@odishelidzegio, Received your mail, I will schedule a call with available time slots and share it via mail. Thanks!

@v-sudkharat thanks for your great support!
It was a good experience working with you. You assisted me very well, I appreciate.
I'll close this issue now.
Thanks one more time, great assistance!

@odishelidzegio, Thanks for your valuable feedback.


Make sure rcore.o gets compiled in more situations

Currently doing the following:
make
touch rcore_desktop.c
make

Will not result in rcore.o getting compiled again, despite that rcore_desktop.c was changed.

Oops - did not test properly, this is totally broken. My bad.


Make audit log shipping possible

Description of the feature you would like to add
It's currently possible to configure "static audit logging" in KubeOne, which configures audit logging with the "log backend" in the kube-apiserver. However, the kube-apiserver pod/container is the final station of those audit logs, as there seems no sensible way to get them out of there.
There are several problems with this:

containers are volatile, thus audit logs could be lost before the max age setting
if someone gains access to the kube-apiserver, they can likely gain access to the container, thus wiping their own actions from the log file
best practices and regulations mandate several additional precautions

All of which can be solved at the same time by shipping audit logs to a secure, remote and immutable server/store. However, as outlined above, the audit logs are currently not going anywhere.
Thus at least one of two things should be implemented:

The ability to define a hostPath volume and a volumeMount for the kube-apiserver pod/container, such that the log can be written to the host (worker node) from where a different pod (with the same hostPath volume) or a local system process can ship the log
The ability to add a sidecar container to the kube-apiserver pod as well as the ability to define and mount an emptyDir volume in the kube-apiserver container, such that a log shipper can be run in the same pod alongside the kube-apiserver

Seeing as both approaches make use of different types of volumes, maybe a generic way to add volumes and volumeMounts to the kube-apiserver pod/container would make sense. But I'll focus on a MVP here, I think.
Solution details
The easiest but also least powerful would probably be:

add a boolean parameter to the KubeOneCluster CRD to enable writing the audit logs to the host, and if enabled:
mount a predictable path on the host to /var/log/kubernetes/audit.log in the kube-apiserver container

Alternative approaches
Different possibilites, I won't go into detail for each unless requested.

make it possible to define a single path on the host (to be used as hostPath) and a mount point in the volume (to be used in the volumeMount)
make it possible to define a whole block to be added to the volumes in the pod spec and also to define a whole block to be added to the volumeMounts of the container spec
additionally make it possible to define a single (sidecar) container
or instead make it possible to add a whole block to the containers of the pod spec

@judge-red Do you know about the logPath parameter in the KubeOneCluster API (.features.staticAuditLog.config.logPath)? If you do, can you please at least briefly explain why it doesn't work for you?
When you set that parameter, the desired behavior is that it'll write logs on that path on the host (i.e. the control plane nodes). The mount between the control plane container and the host will be created automatically (https://github.com/kubermatic/kubeone/blob/ade51a030bdc3e5506085f2057f47477082ceae5/pkg/templates/kubeadm/v1beta4/kubeadm.go#L282-L291). By default, logs are stored at /var/log/kubernetes/audit.log
One important remark, any changes to that configuration requires force upgrading the cluster, i.e. kubeone apply --force upgrade

So now I think policyFilePath is a path on the system where kubeone apply is executed and logPath is a path on the control plane node.

Yes, that's exactly how it works. :)


Theme

Create a theme for zero blocks which is aligned with Angular 2 and follows material design principles.
Have the theme take care of components only with CSS such as:
Create the overall structure of the theme. Look and feel of the default theme may change at a later stage.

I am moving a lot of the components described in the issue to their own issues.

I created a project, so I'm closing the issue!


Code Color Format issue in passing object to child class (in latest Vscode update ) vue js 2

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

we are developing an app before the current update our code format was fine,
but now it is giving color format issues when passing objects to a child class
<CustomSelect
label="Area"
:items="areaList"
:inputClass="{'class' : true}" here( for class key I cannot other than string value)
v-model.number="form.area_id"
@input="deliveryAreaSelect"
                                 >
                                     <template #information>
                                         <Popover :name="popUpMessage('delivery_area')" />
                                     </template>
                                     <template #has-error>
                                         <has-error :form="form" field="area_id"></has-error>
                                     </template>
                             </CustomSelect>

issue can be observed from the
a) for string color format is ok

attached images

b) for non string values

thanks for reading
is this issue is related to vscode color format or syntax error in general

VS Code does support or highlight vue out of the box. Please file this against your vue extension

@mjbvz :) Thanks mate after disabling the Vue official extension the format issue is gone.


nixos/monero: add dataDir option

Motivation for this change
A program with ever-increasing data sizes (blockchain) should have a configurable dataDir.
I also fixed a small typo 😃
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Doesn't this service complain that neither isNormalUser nor isSystemUser is set?

@aanderse I would suppose so. I did however build my entire system flake from this branch and it works just fine.
Replacing
- uid  = config.ids.uids.monero;
+ isSystemUser = true;

before a rebuild also seems to work fine.
Is there anything that should be done regarding the GID and UID in /nixos/modules/misc/ids.nix?


Report enhance

We don't really have the data for message count/channel

We could rework it to collect that information, it's not too hard to do


Record VM start time

This could solve #348 and #291.
Some languages running inside VM have quite large startup time. Measuring benchmark time from a process start to the end does include this VM startup phase. It could make sense for short-running processes like CLI instruments but for long running processes like web-servers it is usually does not matter.
Here I've added:

Step with measuring VM startup time. Process should create in a working directory a file named "ready", containing a Unix timestamp when a process is fully initialized and ready to run the main function.
MeasureAsync task checks this file content, extracts the timestamp, and calculates new metric vmStartMS as ready timestamp - process start timestamp. Just like timeMS, standart deviation is also measured. No file or empty file means that startup time is not recorded, and both values will be 0 (just like timeMS).
These new metrics are added to a table as columns VM start time and VM start stddev. They are shown only on pages containing measures with non-zero VM times, because there is no point to show VM start time for languages with no underlying VM. Also there is a checkbox which allows to hide new columns if user wants to.
There is another checkbox substract VM startup time, which substracts VM startup time from total time column. This allows to estimate real performance for long running tasks.

For example, Elixir VM startup time on Github runner machine is about 250ms while total process run time can be about 660-1300ms (depends on a benchmark), so VM startup time takes about 20-35% of the entire benchmark:

Python VM takes less time to start, only 30-35ms, but for some tasks it could be about 10% of total time:

In both cases, VM startup is much higher than standard deviation and cannot be discarded.
The proposed solution could be far from ideal, because it introduces additional IO operation during process start, but I don't see other ways this could be implemented. Printing the status into stdout/stderr is not working properly because MeasureAsync task uses shell and redirects both of these outputs to /dev/null.
Currently I've updated all .py files in the repo to generate this "ready" file. Other files should be updated separately. "hello-world" benchmark should be left intact because all it does is starting VM and then printing the output to the stdout.

It's a non-goal to rely on any in-program measurement, otherwise, it would be more appropriate to use corresponding microbenchmark frameworks
I don't think this approach properly measures VM start time, take python as an example,  it counts all import lines as VM start time, but that's actually module interpretation time after VM being started

Maybe hello-world should be used as VM startup time, it works almost the same as starting VM + creating a file. Also in case of Python print does not require any import

I don't think it makes sense to do simple math here by substracting hello world time.
e.g.  julia nsieve/1.jl aot  (input=12) = 425ms    julia helloworld aot = 199ms, diff is 226ms
while zig nsieve1/zig = 373ms        zig helloworld = 1.5ms, diff is 371.5ms
It does not make sense to claim julia nsieve is much faster than zig

It's a non-goal to rely on any in-program measurement

fyi Several language implementations support POSIX file open which updates mtime which might be used as comparable in-program timestamp.
See startup


Support Swift Package Manager

Hi,
Is there plans to make a Package.swift and support SPM? It shouldn't be too difficult - just some moving of files to respective folders. I can make a PR if needed.

Sounds good to me. Any help is appreciated.

On Aug 25, 2020, at 4:15 PM, Joebayld<EMAIL_ADDRESS>wrote:
Hi,
Is there plans to make a Package.swift and support SPM? It shouldn't be too difficult - just some moving of files to respective folders. I can make a PR if needed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/ExistentialAudio/SwiftOSC/issues/50, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDIQEMM32ILNRY7I6G7GJLSCRA2XANCNFSM4QLFYANA.

Cool.
I hit a wall with the ysocket as it's using C code. I believe this is still possible to use - but might be worth shifting to a pure swift socket. There's a lot available now with the Networking framework so maybe that's an option.

I had started to switch over to the Switch Networking Framework a while ago but had a number of issues. I believe it’s still in the dev branch if you want to take a look. It’s been over a year now so maybe they’ve improved a few things. Maybe it’s worth taking a look at that.

On Aug 25, 2020, at 5:12 PM, Joebayld<EMAIL_ADDRESS>wrote:
Cool.
I hit a wall with the ysocket as it's using C code. I believe this is still possible to use - but might be worth shifting to a pure swift socket. There's a lot available now with the Networking framework so maybe that's an option.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/ExistentialAudio/SwiftOSC/issues/50#issuecomment-680335695, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDIQEIZLK4M3Z6O3TPECQDSCRHP3ANCNFSM4QLFYANA.

I'll give it a look. There's also https://github.com/robbiehanson/CocoaAsyncSocket which is a reputable networking library and also works nicely with SPM.

I think in general I would prefer to go 100% swift going forward. I’m not opposed to using CocoaAsyncSocket if it’s a simple plug and play but if we’re going spending any time making it work I think it would be better spent just using the Swift Network Framework.

I'll give it a look. There's also https://github.com/robbiehanson/CocoaAsyncSocket https://github.com/robbiehanson/CocoaAsyncSocket which is a reputable networking library and also works nicely with SPM.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/ExistentialAudio/SwiftOSC/issues/50#issuecomment-680361314, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDIQEKBHHH4EQ3LDZBOEWLSCRJ5NANCNFSM4QLFYANA.

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)

No. I don’t remember.
But you say it’s working well. That’s good. Keep me updated if you run into any bugs.
On Dec 30, 2020, 2:34 PM -0800, Marko Krüger<EMAIL_ADDRESS>wrote:

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)

wonder if this is related to #56

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)

wonder if this is related to #56

I believe the primary reason for not releasing was because I was way too ahead of the curve. Apple had just released the Networking Framework and not many devices supported it and it was only available on the latest OSes. So please give it a spin. If successful I will release it.
Devin
On Jan 27, 2021, 11:49 PM -0800, J Curtis<EMAIL_ADDRESS>wrote:

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)
wonder if this is related to #56
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I believe the primary reason for not releasing was because I was way too ahead of the curve. Apple had just released the Networking Framework and not many devices supported it and it was only available on the latest OSes. So please give it a spin. If successful I will release it.
Devin
On Jan 27, 2021, 11:49 PM -0800, J Curtis<EMAIL_ADDRESS>wrote:

Hey Devin,
is there a chance for you to remember what the issues where with the Networking Framework? I had problems with the master branch (high cpu usage, server process was not stoped properly when my app was in the background, etc.) which where all gone once I decided to give the implementation in your dev branch a chance. Did not notice any issues so far (only in the simulator)
wonder if this is related to #56
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

@mk-conn any update on the dev branch? Any issues that you came across? If not I'll look into merging it into the master.

@mk-conn any update on the dev branch? Any issues that you came across? If not I'll look into merging it into the master.

@devinroth Noticed sometimes nw_listener_socket_inbox_create_socket setsockopt SO_NECP_LISTENUUID failed [2: No such file or directory] and nw_protocol_get_quic_image_block_invoke dlopen libquic failed but I have no clue if this is related to an issue in your code or a problem NWListener/NW protocols... It does not happen all the time and its not really reproducible (it seems)

@devinroth Noticed sometimes nw_listener_socket_inbox_create_socket setsockopt SO_NECP_LISTENUUID failed [2: No such file or directory] and nw_protocol_get_quic_image_block_invoke dlopen libquic failed but I have no clue if this is related to an issue in your code or a problem NWListener/NW protocols... It does not happen all the time and its not really reproducible (it seems)

Thanks for the update. How often does that happen?
Devin
On Jan 29, 2021, 6:15 PM -0800, Marko Krüger<EMAIL_ADDRESS>wrote:

@devinroth Noticed sometimes nw_listener_socket_inbox_create_socket setsockopt SO_NECP_LISTENUUID failed [2: No such file or directory] and nw_protocol_get_quic_image_block_invoke dlopen libquic failed but I have no clue if this is related to an issue in your code or a problem NWListener/NW protocols... It does not happen all the time and its not really reproducible (it seems)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for the update. How often does that happen?
Devin
On Jan 29, 2021, 6:15 PM -0800, Marko Krüger<EMAIL_ADDRESS>wrote:

@devinroth Noticed sometimes nw_listener_socket_inbox_create_socket setsockopt SO_NECP_LISTENUUID failed [2: No such file or directory] and nw_protocol_get_quic_image_block_invoke dlopen libquic failed but I have no clue if this is related to an issue in your code or a problem NWListener/NW protocols... It does not happen all the time and its not really reproducible (it seems)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Since the last Xcode update pretty much on every try to start the simulator, which is making the simulator unusable. On a real device there are other errors coming up, like this:
 [connection] nw_endpoint_handler_create_from_protocol_listener [C3 <IP_ADDRESS>:63357 failed channel-flow (satisfied (Path is satisfied), viable, interface: en0, scoped, ipv4, ipv6, dns)] nw_endpoint_flow_pre_attach_protocols

 [connection] nw_connection_create_from_protocol_listener_on_nw_queue [C3] Failed to create connection from listener
 [] nw_ip_channel_inbox_handle_new_flow nw_connection_create_from_protocol_listener_on_nw_queue failed

But not every time the app is run and also not reproducable.

Since the last Xcode update pretty much on every try to start the simulator, which is making the simulator unusable. On a real device there are other errors coming up, like this:
 [connection] nw_endpoint_handler_create_from_protocol_listener [C3 <IP_ADDRESS>:63357 failed channel-flow (satisfied (Path is satisfied), viable, interface: en0, scoped, ipv4, ipv6, dns)] nw_endpoint_flow_pre_attach_protocols

 [connection] nw_connection_create_from_protocol_listener_on_nw_queue [C3] Failed to create connection from listener
 [] nw_ip_channel_inbox_handle_new_flow nw_connection_create_from_protocol_listener_on_nw_queue failed

But not every time the app is run and also not reproducable.

Thanks. I'll try to tackle this when I get a chance.

Thanks. I'll try to tackle this when I get a chance.

So... got some news on the simulator issue: turns out, when you run the app, the simulator has focus, the network connections does not come up with the errors I told above - click some where in the editor in Xcode - the network connection is established. I'm heavily confused now but I'm still not thinking your code is responsible for that. ;)

Run a test on your phone. Run the app and establish connection, make sure it works, then put the phone on airplane mode.
Devin
On Feb 2, 2021, 5:02 AM -0800, Marko Krüger<EMAIL_ADDRESS>wrote:

So... got some news on the simulator issue: turns out, when you run the app, the simulator has focus, the network connections does not come up with the errors I told above - click some where in the editor in Xcode - the network connection is established. I'm heavily confused now but I'm still not thinking your code is responsible for that. ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi,
I checked out dev branch for the last weeks with my small app. It runs fine here. It can also use Bonjour.
SPM support worked without moving files, it's enough to specify the sources path in package.swift


drivers: entropy: stm32: add support for STM32F7

All the STM32F7 SoCs have a TRNG. Adding support for it is just a matter
of tweaking the #ifdef and including the right file from HAL.
Signed-off-by: Aurelien Jarno<EMAIL_ADDRESS>

Codecov Report

Merging #8666 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #8666      +/-   ##
==========================================
- Coverage    64.3%   64.29%   -0.01%
==========================================
  Files         440      440
  Lines       42093    42093
  Branches     7046     7046
==========================================
- Hits        27066    27065       -1
- Misses      11827    11828       +1
  Partials     3200     3200

Impacted Files
Coverage Δ

samples/philosophers/src/main.c
96.87% <0%> (-1.57%)
: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 7c9a1f0...e07e216. Read the comment docs.

Thanks @erwango for the review, I have done the changes you requested. I am confident it works fine, I am using it in a project for a few weeks. I have launched tests/drivers/entropy anyway on an STM32F723E-DISCO board, and the test passes:
***** Booting Zephyr OS v1.12.0-438-gd20b8bd30 *****
Running test suite entropy_api
===================================================================
starting test - test_entropy_get_entropy
random device is 0x2000127c, name is ENTROPY_0
  0xeb
  0x12
  0xf5
  0x91
  0x9c
  0xc3
  0x4b
  0xcd
  0x2b
PASS - test_entropy_get_entropy
===================================================================
===================================================================
PROJECT EXECUTION SUCCESSFUL


Blob usage - cosign & oras

Question
Hi,
I have a question related to the upload blob feature.
I'm trying to upload something before signing it, and I get weird behaviour when trying to simply get the artifact back.
lmussier@lmussier-vm:/tmp$ cosign upload blob -f artifact ghcr.io/lmussier/artifact:cosign
Uploading file from [artifact] to [ghcr.io/lmussier/artifact:cosign] with media type [text/plain]
File [artifact] is available directly at [ghcr.io/v2/lmussier/artifact/blobs/sha256:727e12e4935c52ba62c9ffb79dc37335436eed46dc0eb6ea071b0a9d9904353e]
Uploaded image to:
ghcr.io/lmussier/artifact@sha256:003f19e03f0104b91f4d247efd5578ddf59d1547ac3cb5c4695423bc0b2b4b94
lmussier@lmussier-vm:/tmp$ curl -L ghcr.io/v2/lmussier/artifact/blobs/sha256:727e12e4935c52ba62c9ffb79dc37335436eed46dc0eb6ea071b0a9d9904353e
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required"}]}

The curl error is just here for the records, I'm not sure ghcr.io is able to provide that service, this is not the issue.
When I use oras to get the artifact back, oras is reporting an empty artifact.
mussier@lmussier-vm:/tmp$ oras pull --verbose ghcr.io/lmussier/artifact:cosign -o pulls
Downloading 003f19e03f01 application/vnd.oci.image.manifest.v1+json
Processing  003f19e03f01 application/vnd.oci.image.manifest.v1+json
Skipped     727e12e4935c text/plain
Skipped     b1224fda2a64 application/vnd.oci.image.config.v1+json
Downloaded  003f19e03f01 application/vnd.oci.image.manifest.v1+json
Downloaded empty artifact
Pulled [registry] ghcr.io/lmussier/artifact:cosign
Digest: sha256:003f19e03f0104b91f4d247efd5578ddf59d1547ac3cb5c4695423bc0b2b4b94

Is there a special thing to do / know to use artifacts?
Or oras and cosign do not share the same defintion of blob.

CC @lcarva can you TAL?

@lmussier , I can reproduce the reported behavior.
I'm not too familiar with using oras, but when running with the --debug flag, I can see that oras skips the layer containing the artifact presumably because its mediaType is text/plain.
There's also the oras blob fetch command which I think is meant for fetching more generic OCI artifacts. Here's how I was able to get it to work:
🐚 cat artifact
🐇🐇🐇🐇🐇🐇🐰
🐇🐇🐇🐇🐇🐇🐰
🐇🐇🐇🐇🐇🐇🐰

 🐚 sha256sum artifact
297fa5e719a323da5f1fab09b2c188dc7f555d7fa0f1f48923f7c62af5e1ad0e  artifact

🐚 cosign upload blob -f artifact quay.io/lucarval/artifact:cosign
Uploading file from [artifact] to [quay.io/lucarval/artifact:cosign] with media type [text/plain]
File [artifact] is available directly at [quay.io/v2/lucarval/artifact/blobs/sha256:583f6dca722d18a73bc0e8a1802f9a12bf807ebd27379b555cd69a3a8acda1a1]
Uploaded image to:
quay.io/lucarval/artifact@sha256:7e329c577ff5ae0b123cdc3fa1ec938cfef0c581c003262970cd9ed6b5ad7378

🐚 oras blob fetch quay.io/lucarval/artifact@sha256:297fa5e719a323da5f1fab09b2c188dc7f555d7fa0f1f48923f7c62af5e1ad0e --output -
🐇🐇🐇🐇🐇🐇🐰
🐇🐇🐇🐇🐇🐇🐰
🐇🐇🐇🐇🐇🐇🐰

cosign upload blob wraps the blob in a application/vnd.oci.image.manifest.v1+json which appears to trip oras. oras expects the digest given to be the digest of the blob to be downloaded. It does not traverse to the layers of the manifest. For instance, here's what cosign creates:
🐚 skopeo inspect --raw docker://quay.io/lucarval/artifact:cosign | jq '.'
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.manifest.v1+json",
  "config": {
    "mediaType": "application/vnd.oci.image.config.v1+json",
    "size": 248,
    "digest": "sha256:a88330ba8ad0d71c0dc55ff9e1f84a44f00235f625df502535904ceae76298f8"
  },
  "layers": [
    {
      "mediaType": "text/plain",
      "size": 87,
      "digest": "sha256:297fa5e719a323da5f1fab09b2c188dc7f555d7fa0f1f48923f7c62af5e1ad0e"
    }
  ]
}

As you can see, the digest of the layer matches the digest of the uploaded blob.
FWIW, I think the cosign behavior here is correct. Uploading a blob without a wrapped manifest can cause the blob to be garbage collected by some registries, e.g. quay.io.

Thanks @lcarva ! I think that this is working as intended, then.
@lmussier let us know if you think there's something else we should do here.

Thanks  @lcarva for this very detailed answer. @znewman01 nothing more is needed, this is clear.
I've missed the fact that cosign follows "OCI blob spec" where ors push don't.
Thanks again !


feat(relay): add example

ion-sfu supports sfu <> sfu relay. we should add an example.
we can add a gRPC endpoint that can be called to connect to a remote sfu + session which will automatically start relaying the tracks. ion-avp does something similar already.

Implementation plan

update sfu.proto with new rpc
rpc ConnectRemote(stream Signalrequest) returns (stream signalResponse) {}

compile the sfu.proto that will generate go stubs and add connectRemote server and client implementation

in connectRemote server, I will call Server.signal with the stream coming from connectRemote stream

Add examples in the examples directory.

Awesome! I think this is a solid direction
For the api, I think we can do something like:
rpc Relay(RelayRequest) returns (RelayResponse) {}

message Request {
    string sfu = 1;
    string sid = 2;
}

Calling Relay will create an SFUClient for the given sfu address if one doesn't exist. Then SFUClient can join the remote SFUServer and begin signaling.


Problem: Figures out sort order on its own

I have a issue with Dragula. When I refresh source of the list the.columnList = newValue;
Dragula try to figure out sort order and mess up order I got from the server side.
Is there a way to prevent feature:
Figures out sort order on its own

Did you find any solution for this? I am facing the same issue

I am using Aurelia SPA framework with Dragula.
https://github.com/aurelia/templating-resources/issues/282
Solution that worked for me is to call https://github.com/jdanyow/aurelia-solitaire/blob/master/src/drag-and-drop.js#L41 to cancel Dragula operation and then update list manually via JavaScript.

Ultimately, I ended up doing the same thing. Thanks for your reply
On Tue, Jul 4, 2017 at 3:23 AM, Radenko Zec<EMAIL_ADDRESS>wrote:

I am using Aurelia SPA framework with Dragula.
aurelia/templating-resources#282
https://github.com/aurelia/templating-resources/issues/282
Solution that worked for me is to call https://github.com/jdanyow/
aurelia-solitaire/blob/master/src/drag-and-drop.js#L41 to cancel Dragula
operation and then update list manually via JavaScript.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bevacqua/dragula/issues/489#issuecomment-312842877,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALel8h0m9ejrgWIDp46rEKjjoloDK8Reks5sKhK-gaJpZM4NGY73
.


Sample of grabbing screenshots with driver tests

Request: Add a sample of how to grab screenshots with integration tests to https://flutter.io/testing/#integration-testing

Issue moved to flutter/website #2084 via ZenHub


Issues with variations with 2 attributes

Hi, I am quite new to this plugin.
I am using a Wordpress instance with WooCommerce and this plugin, but it doesn't seem to work fine with variations.
I have some products (shoes), with 2 attributes for variations: size and color.
My default language is English: everything is fine there.
I tried to create Italian versions of these products, but in the shop and in the product page it doesn't show me the variations.
It shows a message saying that the product is not available.
When I create the new post, in the variations tab it shows all the checkboxes with the values "Any size" and "Any color".
Am I missing something or is it a bug, or something else?

Hey @gabrielenosso , have you translated your attributes size and color see this issue #5

@hyyan The attributes names ("Color" and "Size") have been added automatically.
Do I need to translate the values to let it work?

@gabrielenosso Yes you need to translate the values too , give it a try and let me know if it is working

@hyyan Thanks, I will do it right now!

@hyyan It works perfectly! 👍
I just need to recreate again all the variations, but it's not a big issue for me.
Anyway, wouldn't it be possible to create standard translations for all the languages also for the attributes values? (as it happens for the attributes names?)
At least it would work and people won't have to recreate items again :)

@gabrielenosso Glad that it is working for you now , for what you have suggested , it seems a good but stills not an easy job to do . I will consider adding this in next releases

@gabrielenosso  closing this issue as it is resolved , feel free to reopen it if you still have this issue

@hyyan For the moment it works perfectly.
Also the stock management will be synced, right?

@gabrielenosso sure , you can see data which will be synced in the plugin settings page (Meta List)


Showing the users email address next to their name issue #360

@simplybenuk no it split into two lines


Pydantic 1.10.2 does not support python 3.6

Description:
Safety has identified a vulnerability in Pydantic that requires and update to 1.10.2 or greater. Pydantic 1.10.2 does not support python 3.6, which is our minimum version.
Acceptance criteria:

[ ] Decide

[ ] To drop support for python 3.6
[ ] or Find an alternative to Pydantic

Pasting output from CI (safety job):
Pydantic 1.10.2 prevents long strings as int inputs to fix CVE-2020-10735.
https://github.com/pydantic/pydantic/commit/eccd85e4d012e70ffbd81f379179da900d4621c5

Pasting output from CI (safety job):
Pydantic 1.10.2 prevents long strings as int inputs to fix CVE-2020-10735.
https://github.com/pydantic/pydantic/commit/eccd85e4d012e70ffbd81f379179da900d4621c5

Superseded by #490


Guild doesn't calculate sourcecode digest for packaged ops, including remote runs

As of 0.6.6, Guild does not attempt to generate a sourcecode digest for packages operations. The rationale is that the package version should be updated to reflect changes in source code. This information is available in the from run attribute.
There are problems with this approach:

Remote runs use Guild packages and so what starts as a project is deployed as a package and therefore loses sourcecode digest info. It's not reasonable to ask the user to update a package version for each remote operation involving a source code change.

There's no way to easily compare source code changes across package iterations as Guild doesn't show the package version in run lists.

Goals:

sourcecode digest should be the same whether running locally or remotely,

Apart from the added complexity and compute cost, there's no problem generating a sourcecode digest for packages - users should be able to easily tell when package source has changed.

As of 0.6.7.dev2 (pre-release) Guild calculates sourcecode digests for packages, which include remote runs.


small grammer edits to get us over 99% parsing

This PR:

adds set and get as possible simple_identifiers
adds optional commas after parameters

I'm getting around 99.05% parsing after these changes.
To test:
npx tree-sitter test
cc: @aryx @fwcd

@fwcd could we get this merged? 🙏

Sure!


Remove 'v' shortcut for version

This is part of an effort to bring consistency to the browserify and watchify flags (as somewhat discussed in https://github.com/substack/watchify/pull/204#issuecomment-93759292).
watchify already uses "v" for "verbose", and has no "version" flag. By removing the (arguably) seldom used "v" from browserify, (1) watchify can fully "own" it, and (2) can add a "version" flag without clashing with browserify's short form of it. Also, a lot of unix tools don't have a "v", just "version".
Alternatively, "v" could be replaced with "V" - ssh, less, among other do this.
cc: @jmm

What's the use case of having watchify be verbose without browserify also being verbose? From my perspective, I'd want my entire toolchain to be verbose while debugging, not just a portion of it.

@terinjokes Seems weird to have browserify be verbose when its output goes to stdout - but sure, maybe verbose logging should go to stderr?
FYI: watchify's verbose is simply "ZZZ bytes written to YYY.js (X seconds)" every time you rebuild. It's not really debugging. It's more like informational since it's a long running process.

@terinjokes @jmm Can we merge this in?

@zertosh Sorry for delayed reply. I have no problem with it personally, but as I mentioned on another issue, I'm no authority on the CLI. So I think someone who has more interest / expertise with it should make the call.

What do you mean by " watchify can fully "own" it"?

@terinjokes I mean that v only does what watchify already does with it.
Right now, the flag matrix looks like this:

flag
browserify
watchify

version
version
noop

v
version
verbose

verbose
noop
verbose

I think it makes more sense like this:

flag
browserify
watchify

version
version
version

v
noop
verbose

verbose
noop
verbose

If browserify were to implement some kind of "verbose", it would then look like this:

flag
browserify
watchify

version
version
version

v
verbose
verbose

verbose
verbose
verbose

(wow charts look pretty cool)

@terinjokes I'd really appreciate an answer on this. A version flag might seem trivial for watchify, but I get a lot of issues like https://github.com/substack/watchify/issues/190#issuecomment-94943128 - where users don't know whether they're using a local/global version and what version of browserify their watchify is using. The version flag I want to implement in watchify would answer those two questions (see https://github.com/substack/watchify/pull/197#issuecomment-94240851).
Without the change, if I add the version flag to watchify, we'd be looking at:

flag
browserify
watchify

version
version
version

v
version
verbose

verbose
noop
verbose

Maybe I'm over thinking this. If you agree, then let me know so I can proceed.

Merged, sorry for the delay.

@terinjokes No worries! It's cool. Thanks!


Container cat not start with "...  .pivot_root041682652: no space left on device"

Description
I installed a docker on a physical machine, I did not do any configuration on the docker,so the docker max disk space can is 100G. then i used the dd command to create a 200G large file.  When I created to about 100G when the error，after this i want stop and start my container,  When I started, there was a error
[root@A06-R12-302F0314-I35-122 ~]# docker start flume1.7.0-system Error response from daemon: Cannot start container flume1.7.0-system: [8] System error: can't create pivot_root dir , error mkdir /export/Data/docker/devicemapper/mnt/c3ba1b9dd4b57c1d399f1e5af0c780baec58d73bcb4755f2988a003ad350a736/rootfs/.pivot_root041682652: no space left on device Error: failed to start containers: [flume1.7.0-system] [root@A06-R12-302F0314-I35-122 ~]#
Describe the results you expected:
In this case there is no way for me to delete the test file where dd created.
 Can you docker rm <the container>?
Also note that you are using a really old version of Docker which is unsupported.
That said, it seems like everything is working as expected here since you ate up all the free space docker can't create new containers.
Closing since this doesn't look like a real issue, but feel free to discuss.

@cpuguy83  thanks， Above is a test I do, I would like to know is not a way to mount, delete the file I just created, and then start the container？

@whc9527 with devmapper, just mounting would be tricky.
Only way would be remove the container in question.
I would also store this kind of stuff in a volume rather than in the container FS.

@cpuguy83 i get it . thanks very much! 谢谢了！


Update angularjs-dropdown-multiselect.js

Since contains is the alias for includes and it removed from loadash 4.x
So change it to include
https://github.com/mgonto/restangular/issues/1294

Dependency on lodash was removed


Linux Version Possible?

May I ask if there woulld be the possibility to get this Software running on Linux, either natively via Mono Project, or via Wine?

Hi, thanks for the feature request. We currently don't have Linux support on the roadmap, but it should work with Wine as long as there is OpenGL 3.2 support - we will have a look at this. Native Linux support would require mostly just some GUI work - the majority of the application is platform agnostic C#, C++ and OpenGL shader code.


Error in scglue.genomics.window_graph

Hi, sorry to bother you. When I run scglue.genomics.window_graph, I got this error as follow:

And the version of bedtools is 2.31.0.
I manually added the bedtools path as suggested earlier, but it still reported an error.  I don't know exactly what went wrong, do you have any suggestions? @Jeff1995 Any help would be greatly appreciated.

Hi @LalicJ! Thanks for your interest in GLUE.
Could you post the output of the following expressions in Jupyter notebook?
scglue.__version__
scglue.config.BEDTOOLS_PATH
!{scglue.config.BESTOOLS_PATH} --version

The last line starting with ! is a Jupyter shell command.

Maybe there's a problem with my jupyter configuration and I can't run the code !{scglue.config.BESTOOLS_PATH} --version， so I just ran it in the shell.

Sorry for the late response. I'm also confused with this situation. Based on the information above, it seems that you have bedtools 2.31.0 installed in the scglue environment, so other versions should not be interfering at all. Can you find where the 2.27.1 version is installed?

I've found that not running jupyter itself on the specific conda/mamba environment the scGLUE is installed causes the bedtool error, even if you have the write kernel set for the specific jupyter script.

Hi @revolvefire! Thanks for the report.
It sounds totally possible! Jupyter might be executing shell commands in its own environment, regardless of the Python kernel. However, explicitly setting scglue.config.BEDTOOLS_PATH should dispel any ambiguity here. Could you verify if manually specifying scglue.config.BEDTOOLS_PATH resolves this error in your setting?

Hi @Jeff1995
In my case I had also installed bedtool with conda on the specific environment where scglue was installed. And for some reason, with running jupyter on another environment, even if i explicitly set scglue.config.BEDTOOLS_PATH it kept throwing errors with entangled pathways.
But I think it was more of an environment issue (and perhaps my lack of understanding on my own jupyter setup.. though perhaps i need to really delve into this to understand exactly why).
Anyhow, just starting jupyter with the right environment solved it instantly. Just wanted to share for someone experiencing the same issue maybe due to the same reason :)
and also it you could check my question on #88 would be wonderful!
Best!

Thanks for the explanation! In that case, I guess we'd recommend using a consistent environment for Jupyter as well.
Also, I just followed up on #88. Let me know if there were further issues!

Hi @Jeff1995
In my case I had also installed bedtool with conda on the specific environment where scglue was installed. And for some reason, with running jupyter on another environment, even if i explicitly set scglue.config.BEDTOOLS_PATH it kept throwing errors with entangled pathways.
But I think it was more of an environment issue (and perhaps my lack of understanding on my own jupyter setup.. though perhaps i need to really delve into this to understand exactly why). Anyhow, just starting jupyter with the right environment solved it instantly. Just wanted to share for someone experiencing the same issue maybe due to the same reason :)
and also it you could check my question on #88 would be wonderful!
Best!

你好
就我而言，我还在安装了 scglue 的特定环境中安装了带有 conda 的 bedtool。出于某种原因，在另一个环境中运行 jupyter 时，即使我明确设置了scglue.config.BEDTOOLS_PATH它也会不断抛出纠缠路径的错误。
但我认为这更像是一个环境问题（也许我对自己的 jupyter 设置缺乏理解......尽管也许我需要真正深入研究这个问题才能确切地理解为什么）。无论如何，只需在正确的环境中启动 jupyter 即可立即解决它。只是想分享给遇到同样问题的人，也许是出于同样的原因:)
而且您可以检查我在 #88 上的问题会很棒！
最好！
Thank you for your explanation, your method worked for me.


Update contributing guidelines & fix typo

Update the Contributing Guidelines to point to the PR template so that contributors have a better idea what is expected of them when adding or updating a package before opening a PR.
Fix a typo in the pull request template.

Thanks, @ericcornelissen, I really appreciate your time sending this extra PR. And I admire the instinct to improve the process you've just gone through.


Added basic logging

Based on issue #19

LGTM! Once the tests pass, we can merge this PR. The logs provided should be sufficient. Of course, we can always review this PR again in the future if necessary.


Android app reloads without crash after taking picture

Bug
After taking a picture on android device, app relaunches without any errors.
Library version 0.28.1, install with pods.
Environment info
React native info output:
React Native Environment Info:
    System:
      OS: macOS 10.15
      CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
      Memory: 583.77 MB / 8.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 12.13.1 - /usr/local/bin/node
      Yarn: 1.19.2 - /usr/local/bin/yarn
      npm: 6.12.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 13.1, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
      Android SDK:
        API Levels: 23, 26, 28, 29
        Build Tools: 28.0.3, 29.0.0
    IDEs:
      Xcode: 11.1/11A1027 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.3 => 16.8.3
      react-native: 0.59.10 => 0.59.10
    npmGlobalPackages:
      react-native-cli: 2.0.1
      react-native-rename: 2.4.1
      react-native: 0.59.9

Library version: 0.28.1
Steps To Reproduce

Launch the app
Open picker
Take a photo
Relaunch
...

Describe what you expected to happen:

Take a picture and then process it

Reproducible sample code
Image picker config
ImagePicker.showImagePicker(
      {
        title: label,
        storageOptions: {
          skipBackup: true,
          path: 'images',
          cameraRoll: true,
        },
        permissionDenied: {
          title: translate('auth_signUp_cameraField_title'),
          text: translate('auth_signUp_cameraField_description'),
          reTryTitle: translate('auth_signUp_cameraField_tryAgain'),
          okTitle: translate('auth_signUp_cameraField_cancel'),
        },
        mediaType: 'photo',
        quality: 0.8,
        noData: true,
        maxWidth: 2000,
        maxHeight: 2000,
      },
      handleFileChange,
    );

Possible solutions

largeHeap - didn't work
android permissions - all set up, sometimes it doesn't relaunch, couldn't figure out if there's a pattern
jetify - won't work, project also has stale libraries that won't support androidx even with jetifier

I have the smae problem. I get this error in logcat after taking the picture. Maybe it is related.
2019-11-27 12:05:26.554 12666-12767/? E/ImageUtils: decodeOrientation() - Fail to access file /root/storage/emulated/0/Pictures/image-747bf7e8-65a5-4f02-bc03-42d16abb1cc4.jpg     java.io.FileNotFoundException: /root/storage/emulated/0/Pictures/image-747bf7e8-65a5-4f02-bc03-42d16abb1cc4.jpg (No such file or directory)         at java.io.FileInputStream.open0(Native Method)         at java.io.FileInputStream.open(FileInputStream.java:231)         at java.io.FileInputStream.<init>(FileInputStream.java:165)         at java.io.FileInputStream.<init>(FileInputStream.java:112)         at com.oneplus.media.ImageUtils.decodeOrientation(ImageUtils.java:1665)         at com.oneplus.camera.io.PhotoSaveTask.onPrepareMediaStoreValues(PhotoSaveTask.java:533)         at com.oneplus.camera.io.MediaSaveTask.insertToMediaStore(MediaSaveTask.java:256)         at com.oneplus.camera.io.PhotoSaveTask.insertToMediaStore(PhotoSaveTask.java:366)         at com.oneplus.camera.io.FileManagerImpl$FileManageerThread$1.handleMessage(FileManagerImpl.java:515)         at android.os.Handler.dispatchMessage(Handler.java:106)         at android.os.Looper.loop(Looper.java:193)         at android.os.HandlerThread.run(HandlerThread.java:65)

Related open issues: #1201 #1185 #1188 #1192

I digged a bit deeper and seems that the issue is related to memory issues on some devices. According this thread there might not be an easy fix https://stackoverflow.com/questions/10176550/android-system-stops-application-when-launching-media-intent

There is a nice discussion about the same issue in another lib here:
https://github.com/ivpusic/react-native-image-crop-picker/issues/955
It looks that the best solution offered there is to implement your own camera screen with interface and avoid native camera intent altogether.

I digged a bit deeper and seems that the issue is related to memory issues on some devices. According this thread there might not be an easy fix https://stackoverflow.com/questions/10176550/android-system-stops-application-when-launching-media-intent

I tried deleting items to clear memory then took the photo again, seems to work fine. This is such an inconvenience


Added Random Income Source Field

I added an income field, and wrote a little script to generate random values for annual income/non taxable income.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@7c22c2a). Click here to learn what that means.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master     #162   +/-   ##
=========================================
  Coverage          ?   94.00%
=========================================
  Files             ?       94
  Lines             ?     2270
  Branches          ?      317
=========================================
  Hits              ?     2134
  Misses            ?      136
  Partials          ?        0

Impacted Files
Coverage Δ

spec/api/modern/1.0.js
96.26% <ø> (ø)

api/1.0/api.js
94.91% <100.00%> (ø)

api/1.1/api.js
94.66% <100.00%> (ø)

api/1.2/api.js
94.83% <100.00%> (ø)

api/1.3/api.js
96.77% <100.00%> (ø)

api/1.3/data/ES/inject.js
100.00% <0.00%> (ø)

api/1.1/data/IE/inject.js
100.00% <0.00%> (ø)

api/1.3/data/IR/inject.js
100.00% <0.00%> (ø)

api/1.3/data/CA/inject.js
100.00% <0.00%> (ø)

... and 89 more

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 7c22c2a...843d50b. Read the comment docs.

I don't now the exact rules, but I think, new code or new functionality should only be added to the .nextRelease directory. In general this is a great idea and I would love to see it in the api.


fix:  use with when importing the configuration instead of assert in pre-release

@nicolasfara please squash this, the PR title commit type is okay, the commit is not.


[8] Release 0.10.0

Fork from master, QA/bugfixing and create the release 0.10.0
Included tasks:

Document bug fixes
Identify and document low hanging fruits for improved testing (already at PR review) for smoother QA in the future.

Example: Helmfile template --validate

Investigate need for hot cluster where every PR is tested to complement the daily (nightly) pipelines...

Investigate need for hot cluster where every PR is tested to complement the daily (nightly) pipelines...

See also https://github.com/elastisys/compliantkubernetes-apps/issues/209

See also https://github.com/elastisys/compliantkubernetes-apps/issues/209


Should we proxy or core functions?

Or just a subset which requires fixing?

Sorry, can you elaborate? You mean if we should include all functions, or only those who don't match our guidelines?
If that is the case, I'd say all of them, so that you can just use \NAMESPACE\function_name instead of function_name as a habit.
We should limit ourselves to core functions and extensions that come with the language, though.

You've posted answer for this in https://github.com/nkkollaw/php/issues/20#issuecomment-319705197 ;)

We should limit ourselves to core functions and extensions that come with the language, though.

Agreed. For extensions we can create a separate packages.
Guess I can close this issue. Thanks!


Naming a folder with projects

IDE build number: 3101
Java version: 11.0.4
OS name and version: Arch Linux Latest

The folder for Consulo projects is called "Consulo Project", I think it would be better to have "ConsuloProjects" like Jetbrains IDE.

Hello. Hm. Looks like I missed s.
Maybe need unify it to "Consulo" it's used on win/mac.
Thanks

Hello. Hm. Looks like I missed s.
Maybe need unify it to "Consulo" it's used on win/mac.
Thanks

It's also preferably to remove the space between the words. This is unlikely to lead to real problems, but in the terminal it will look like "Console\Project" or something like that, and it's not pretty :)


get.docker.com install script does not start Docker engine on CentOS 7.1

 curl https://get.docker.com | sh command successfully installs docker engine however after the script is executed, the docker daemon is not running on CentOS 7.1
Repro steps:

create a CentOS 7.1 VM
sudo -s to be root
curl -sSL https://get.docker.com/ | sh (succeeds)
docker ps (does not work)

Output
[root@vm1 alp]# curl -sSL https://get.docker.com/ | sh
+ sh -c 'sleep 3; yum -y -q install docker-engine'
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7/docker-main-repo/packages/docker-engine-selinux-1.10.1-1.el7.centos.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 2c52609d: NOKEY
Public key for docker-engine-selinux-1.10.1-1.el7.centos.noarch.rpm is not installed
Importing GPG key 0x2C52609D:
 Userid     : "Docker Release Tool (releasedocker<EMAIL_ADDRESS> Fingerprint: 5811 8e89 f3a9 1289 7c07 0adb f762 2157 2c52 609d
 From       : https://yum.dockerproject.org/gpg

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

[root@vm1 alp]# docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

[root@vm1 alp]# ps aux | grep docker
root      2509  0.0  0.0 112640   964 pts/0    S+   19:33   0:00 grep --color=auto docker

Versions
[root@vm1 alp]# docker version
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Thu Feb 11 19:18:46 2016
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

[root@vm1 alp]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

[root@vm1 alp]# uname -a
Linux vm1 3.10.0-229.7.2.el7.x86_64 #1 SMP Tue Jun 23 22:06:11 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

@thaJeztah do you remember where that discussion was? I'd love to see it. I'm not really familiar with yum myself but it appears like there has been a breaking change in the script.

@ahmetalpbalkan don't remember which issue that discussion was on, but the first mention of the install script in the documentation for CentOS already mentions that the service has to be started after installation; https://github.com/docker/docker/blob/v1.8.0/docs/installation/centos.md#install-with-the-script

@ahmetalpbalkan for yum in general, for example try installing httpd with yum, and you'll see that it's not started after installation.
For apt, on the other hand, it's standard practice to start the service after installation

@thaJeztah I see, it appears to be right thing to do on CentOS. :-) However it is breaking the code/scripts relying on the prior behavior. I guess we have to fix that downstream. I'll dig more into commit history to see when it changed. Thanks.

@ahmetalpbalkan if you know exactly which platform you're targeting, I'd recommend to not use the install script as it's really on a "best effort base" trying to detect the distribution/version. If possible, I'd implement the steps described in the "manual" procedure of the installation guide, and install using yum/dnf directly.

@thaJeztah I am targeting many versions of many distros (ubuntu, debian, centos, rhel, coreos...) using the same script in the downstream, so I intend to keep using get.docker.com script as long as I can. :-)


Fix plugin crash if component hasn't render method

Thanks

Thanks for merge! Could you publish patch to npm?

Done :smile:


Kun, thank you so much! @wk910930


fix(userspace): obtain a reliable process lineage from thread info

What type of PR is this?
/kind bug
/kind cleanup
/kind design
/kind feature
Any specific area of the project related to this PR?
/area libsinsp
/area tests
Does this PR require a change in the driver versions?
No
What this PR does / why we need it:
First of all, the size of this PR.
We have:

+4308 lines of test only
74 new libsinsp tests
26 test files

So without tests we have "only"

~1800 lines
10 files touched

Considering that there are almost 400 lines of comments and the clone parsers refactor takes something like 700 lines we don't have a huge patch. Of course, I will split it if needed the issue is that libsinsp code is like glue so it is not easy to obtain working commits from a split. Let's say that if you want I can split the PR at this commit https://github.com/falcosecurity/libs/commit/707d6fb3736bcdb69917b9f1a8ee11a8d02a790e but the result will be a code that compiles with green tests, but not fully working and moreover the first part should be merged without tests, that is something I don't like too much. Let me know what you think :)
Now looking at the patch commit by commit

there is a new struct called thread_group_info. This as the name suggest keeps track of  all the info regarding a thread group:

threads in the group
child_sub_reaper info
pid of the group
alive threads in the group

remove flag force from remove_thread method, it is no more necessary, threads will be automatically purged when necessary
add new utility methods in thread info, is_dead(), is_invalid() ,... and some methods to handle the thread group info
assign a thread group info to each thread when it is created
split the old clone parser into 2 separate parsers: one for the child and one for the caller

the clone syscall is one of the most complex in the Linux system and there are tons of flags and different behaviors, moreover, we have also clone events not generated by the sys_exit tracepoint but by other tracepoints like in ARM. So due to the huge number of possibilities mange the 2 cases of child and parent in the same parser seems like an overkill. Moreover, during this splitting process, I found some inconsistencies/issue...On top of my mind, we didn't consider some important flags like CLONE_PARENT and CLONE_NEW_PID_NS

update some tests according to the new changes
repair invalid threads when possible in execve, this means assigning a ptid and create a thread group info for them
add a prctl parser to obtain child_sub_reaper info
update the remove_thread logic using new concepts of thread group info and reaper
adapt execve parser to delete all not leader threads when it is called. According to the manual when an execve is called all not leader threads should be removed and the main thread will take control of the execution flow.

See resurrect_thread method to discover a funny corner case with stress-ng --exec

clean up all not used methods
add a logic to clean expired threads and children when they are dead otherwise we will have an infinite list of weak_ptr increasing the memory footprint
handle a very corner case in which the init process tid=1 is not present in the system.
minor fixes/cleanup
add tons of tests for the new logic
minor fixes/cleanup

Please note that right now there are 2 scap-files used for tests. they are not huge (30 MB, 60 MB) but probably best thing here is to push them somewhere and download them when necessary
Which issue(s) this PR fixes:
Fixes https://github.com/falcosecurity/libs/issues/1139
Special notes for your reviewer:
fix(userspace): obtain a reliable process lineage from thread info

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

As always, @Andreagit97 , incredible job! Thank you very much for taking care of the insane mess that is/was our thread related enrichment...

uh I have to disable scap-file tests on s390x :/

@Andreagit97 we will take a look :rocket: :eyes:
/milestone 0.12.0

@Andreagit97 the good news is for test cases like this one here https://github.com/falcosecurity/libs/issues/1139#issuecomment-1608580705 we now have a continued parent process lineage.
However as I stated in that very same comment, it appears we have timing issues likely because of already delayed capturing in the scheduler proc exit tracepoint?

In this run you see aexepath[2] is systemd which should have been the containerd shim
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/bin/containerd-shim-runc-v2","proc.aexepath[3]":"/usr/lib/systemd/systemd","proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":2965,"proc.apid[3]":1,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"env KEY=123 /bin/bash","proc.exepath":"/usr/bin/env","proc.pexepath":"/usr/bin/runc","proc.pid":39042,"proc.ppid":39036,"proc.sid":56,"proc.tty":34816,"proc.vpgid":56}
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/bin/containerd-shim-runc-v2","proc.aexepath[3]":"/usr/lib/systemd/systemd","proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":2965,"proc.apid[3]":1,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"bash","proc.exepath":"/bin/bash","proc.pexepath":"/usr/bin/runc","proc.pid":39042,"proc.ppid":39033,"proc.sid":56,"proc.tty":34816,"proc.vpgid":56}
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/lib/systemd/systemd","proc.aexepath[3]":null,"proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":1,"proc.apid[3]":null,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"sleep 300","proc.exepath":"/usr/bin/sleep","proc.pexepath":"/bin/bash","proc.pid":39048,"proc.ppid":39042,"proc.sid":56,"proc.tty":34816,"proc.vpgid":62}

Now in another run things looked better
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/bin/containerd-shim-runc-v2","proc.aexepath[3]":"/usr/lib/systemd/systemd","proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":2965,"proc.apid[3]":1,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"env KEY=123 /bin/bash","proc.exepath":"/usr/bin/env","proc.pexepath":"/usr/bin/runc","proc.pid":40512,"proc.ppid":40508,"proc.sid":63,"proc.tty":34817,"proc.vpgid":63}
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/bin/containerd-shim-runc-v2","proc.aexepath[3]":"/usr/lib/systemd/systemd","proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":2965,"proc.apid[3]":1,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"bash","proc.exepath":"/bin/bash","proc.pexepath":"/usr/bin/runc","proc.pid":40512,"proc.ppid":40502,"proc.sid":63,"proc.tty":34817,"proc.vpgid":63}
{"container.id":"51c55f8c7f1a","container.image.repository":"docker.io/library/nginx","evt.type":"execve","proc.aexepath[2]":"/usr/bin/containerd-shim-runc-v2","proc.aexepath[3]":"/usr/lib/systemd/systemd","proc.aexepath[4]":null,"proc.aexepath[5]":null,"proc.aexepath[6]":null,"proc.aexepath[7]":null,"proc.apid[2]":2965,"proc.apid[3]":1,"proc.apid[4]":null,"proc.apid[5]":null,"proc.apid[6]":null,"proc.apid[7]":null,"proc.cmdline":"sleep 100","proc.exepath":"/usr/bin/sleep","proc.pexepath":"/bin/bash","proc.pid":40518,"proc.ppid":40512,"proc.sid":63,"proc.tty":34817,"proc.vpgid":69}

However,  even in the lucky runs we loose runc in the parent lineage, even tho when I printed the reaper via bpf_printk when reviewing the previous PR around adding the reaper_pid I saw runc as reaper as well, but again inconsistently and sometimes delayed.
In summary, this is a great improvement, and in the future we can continue to improve it even more.

Rebased on master :)
This PR contains 2 scap-files nothing huge but something like 50 MB so i would like to push them somewhere and download them when necessary instead of having them bundled in the repo, in this way we can also avoid this warning
remote: warning: File userspace/libsinsp/test/scap-files/captures/kexec_arm64.scap is 58.01 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB

Could we push them on falco.org? @FedeDP @jasondellaluce

uhm there is an issue with libs master and scap-files @gnosek i will try to provide you with a repro

I would like to investigate the kubectl exec case more if ok.
You see in our upstream Falco rules that we check for runc or null as parent, which is explained why in the additional comments ...

Terminal shell in container https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml#L2069
container_entrypoint https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml#L2014

Also effectively we break this rule if we now have systemd as parent, the "container escape" scenario is the one I am not a  big fan of and I rather have null than occasionally a wrong parent which makes consistency in rules writing even more challenging.

I would like to investigate the kubectl exec case more if ok.
You see in our upstream Falco rules that we check for runc or null as parent, which is explained why in the additional comments ...
* Terminal shell in container https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml#L2069

* container_entrypoint https://github.com/falcosecurity/rules/blob/main/rules/falco_rules.yaml#L2014

Also effectively we break this rule if we now have systemd as parent, the "container escape" scenario is the one I am not a big fan of and I rather have null than occasionally a wrong parent which makes consistency in rules writing even more challenging.

Uhm i took a look, yes probably we need to change the condition of that rule. To be honest I think that here we are doing the right thing (i.e. what the kernel does): sometimes runc is still alive and we see it as a parent when we parse the execve event but in most cases, we see the real "long-term" parent containerd-shim. So now instead of checking for a null parent, we should check for containerd-shim and I think it would be also more meaningful for a user instead of an <NA>. WDYT?
This is the actual log we have in Falco 0.35:
10:06:17.587176425: Notice A shell was spawned in a container with an attached terminal (user=root user_loginuid=-1 <NA> (id=cbcf0a08cdf8) shell=bash parent=<NA> cmdline=bash pid=53037 terminal=34817 container_id=cbcf0a08cdf8 image=<NA> exe_flags=EXE_WRITABLE)

Follow up: Could we try not to escape the container (systemd as parent in cases where we miss containerd-shim)? The fact it randomly happened on my laptop suggests there likely will be such issues in real production.

Could we push them on falco.org? @FedeDP @jasondellaluce

I think that's reasonable, and I think a good place might be https://download.falco.org/?prefix=fixtures/trace-files/. Make sure you get in touch with the test-infra maintainers to get them uploaded once everyone is onboard.

Agree with @jasondellaluce!
@Andreagit97 I can help you uploading them over there.
Also, i would love to rebase this PR to remove the commits that added the scap files to avoid pushing them into the repo history (growing its size), before eventually merging this.

Follow up: Could we try not to escape the container (systemd as parent in cases where we miss containerd-shim)? The fact it randomly happened on my laptop suggests there likely will be such issues in real production.

Uhm I can try to do something :/ if we don't choose systemd as a fallback the alternative is to set ptid = 0 so the resulting parent would be <NA>. Probably is better to not provide the info instead of providing the wrong one (systemd won't be the real parent)
At the moment I have no other ideas in mind but suggestions are welcome

@Andreagit97 yes https://github.com/falcosecurity/libs/pull/1182#issuecomment-1641677388 sounds much better! Let's not wrongly assign systemd, ty!

@Andreagit97 where are we at with the wrong systemd parent, I pulled latest changes and I was once still seeing systemd wrongly as parent? https://github.com/falcosecurity/libs/pull/1182#issuecomment-1642246631 ty!

@Andreagit97 where are we at with the wrong systemd parent, I pulled latest changes and I was once still seeing systemd wrongly as parent? #1182 (comment) ty!

Uhm I thought it was fixed but... could you provide a repo as described here https://github.com/falcosecurity/libs/pull/1182#issuecomment-1637829626. Thanks!

@Andreagit97 I will check once more tomorrow and will also get the Falco rules PR going.
@LucaGuerra you had these changes checked on a sysdig dev build, what came out? Any change requests?
We should now prioritize this PR right after we tag 0.12.0, everyone on board?

Rebased on master and reworked the scap-files tests to download them from https://download.falco.org/?prefix=fixtures/libs/scap_files/ (thanks @FedeDP)

LGTM label has been added.  Git tree hash: 4f44a368ff66965637f0c700dd20463ff74b652b

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

New changes are detected. LGTM label has been removed.

LGTM label has been added.  Git tree hash: 14b083f83484e6b18871116834f3fbc2f314c53a

Solved some conflicts :)


How to maintain SimpleConsumer and Producer connection

Hi @emmett9001,
I'm looking for a proper way to handle connection error situations. I'm setting up different threads with each a KafkaClient connection and either a SimpleConsumer object or Producer object (trying with and without rdkafka). A consumer thread notes a connection problem very quickly and then generates an error like: "Unable to connect to a broker to fetch metadata.". But what do I need to do then? Simply clean the consumer and kafkaclient objects and setup a new connection?
And in case of the Producer: the producer doesn't notice a connection problem directly, so I want to monitor the connection every 10 seconds for example. I thought calling the latest_available_offsets every 10 seconds is an idea, to check the connection and if it's broken set it up again (by cleaning the kafkaclient and producer and setup a new connection).
I couldn't find a good reference how to implement this in a proper and stable way and if my thoughts are making any sense. So a reference to a good document / post or some help would be appreciated.

@rubenbouman In the case of the SimpleConsumer, the failure of the MetadataRequest can be caught by client code. In this case, the SimpleConsumer should be cleaned up, but the KafkaClient shouldn't need to be reinstantiated.
It's less clear to me what you're seeing in the Producer case. The Producer is designed to notice connection problems that render it unable to continue message production. However, it does attempt to continue producing messages if some but not all brokers are inaccessible - maybe this is what you're noticing?
For both of these cases, the most durable way to monitor connection status independent of production/consumption is probably to examine [broker.connected for _, broker in KafkaClient.brokers], calling client.update_cluster() when there are any brokers not connected.
Hope that helps - I'll keep this ticket open as a reminder to document this a bit more clearly and in a central location.

Hi @emmett9001 It's clear now. I was putting effort in handling error situations for both SimpleConsumer and Producer, but didn't realise pykafka was handling this for me ;-) I'm now successfully catching the failure on metadatarequest and getting a new SimpleConsumer on the existing KafkaClient.
For the Producer I was thinking that it wouldn't notice a failure because it isn't continuously listning like the consumer does (in my perception). So I thought it was necessary to implement a kind of ping/keepalive thing. But indeed, you're right, the Producer is noticing connection problems too and I do not have to code it myself.
So indeed, I think it would be nice to document this a bit more, to help others implementing a good recovery of failure situations.

See the note added to the usage guide here: https://github.com/Parsely/pykafka/commit/e7dd3097ed00069f848dc5b359961c8d8d7bdeb2