Mechanism to abort the debug launch without showing launch.json

We have today the with this method:
interface DebugConfigurationProvider {
resolveDebugConfiguration(...)
So far is flexible enough except in scenarios where we want our provider to abort the debug launch without having vscode to think that the configuration is wrong or missing something important. In the 'live share' scenario we are launching remote debug sessions by allowing vscode to display them  but not necessary to launch a remote debug session that will eventually arrive later. We want the resolveDebugConfiguartion to allow this by return a blessed debug configuartion or probably best by throwing a DebugConfiguartionCancelledException() that vscode would handle nicely.

Just ran into this today.  After the PowerShell extension is activated, it takes about 5-8 seconds for the PowerShell Editor Services (lang/debug server) to finish starting up.  While that is happening it isn't a good time to start debugging.  ATM we have a NullReferenceException that occurs in PSES because it is still initializing.  We could certainly fix the NullReferenceEx in PSES but I'm afraid this might be the tip of the iceberg in this case.
So I've put code in resolveDebugConfiguration to check the status of PSES and if it isn't in the Running state, we pop a warning notification and return out of the function.  The notification asks the user to retry after PSES has finished starting but unfortunately, VSCode has switched the active editor to launch.json.  This makes this approach annoying for the user as now they can't just press F5 again, they have to reselect the PowerShell editor window again and then press F5.
BTW if there's a better way to prevent debugging until the extension is ready, please let me know.

I've fixed this issue by adding the following line to the comment for  resolveDebugConfiguration and implementing the behaviour on the VS Code side:

Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.

With this it is now possible to control what happens when aborting  resolveDebugConfiguration:
resolveDebugConfiguration(folder: WorkspaceFolder | undefined, config: DebugConfiguration, token?: CancellationToken): ProviderResult<DebugConfiguration> {

	return vscode.window.showErrorMessage(`Program missing in debug configuration`, { modal: true }, `Open 'launch.json'`).then(result => {
		if (result && result.indexOf('Open') >= 0) {
			return null;	// opens launch.json
		}
		return undefined;	// aborts debugging silently
	});
}

@weinand I like the new behavior, it works well for the workspace with launch.json file, but there may be a potential break change for the workspace without launch.json. It's better to keep the debugger owners for awareness.
In current VS Code 1.27.1, when the user clicks F5 in the workspace without launch.json file, VS Code will invoke resolveDebugConfiguration api first, if it's returned value is {}, or undefined, null, then delegate to provideDebugConfiguration api to generate launch.json file.
In the insider with your new change, the debugger extension must return null explicitly for resolveDebugConfiguration api, then VS Code will continue delegating to provideDebugConfiguration api to generate launch.json file.  For all other return values, it will try to launch or abort debug session, no launch.json is generated or opened.

We've concluded that the fix is good and @isidorn will make debug adapter authors aware of the change.

@dantup I know you are depending on this mechanism so please be aware of the change we are making in the new vscode release.
This comment covers the change https://github.com/Microsoft/vscode/issues/54213#issuecomment-420965778
Basically now you should return null to explicitly let vscode know to open launch.json

@isidorn Great, thanks! I can remove some crufty code with this (where we return a debug config that has a type = null). I'll make the changes and do some testing and shout if I hit any problems.

Tested it and it works great for me, closes https://github.com/Microsoft/vscode/issues/51069 too. Thanks!


Update home.ts

Update to the typescript file, to stick with the requirement

Okay well perfect, thank you ;)


HTTP Errors are not correctly propagate to the application and Astrapy crashes trying to parse the error message

Version
astrapy==0.6.2
Problem:
I have a simple ingestion pipeline with LlamaIndex
Even if Astra is answering with errors like "HTTP/1.1 503 Service Unavailable"  and "HTTP/1.1 400 Bad Request", because my Astra DB database is no more available, the application is making progress, crashing with an error because "find" is trying to parse the results of a request that returned 400 Bad Request:
raw_find_result["data"]["documents"])
Error
<ExceptionInfo KeyError('data') tblen=25>
Expected behaviour:
The application should have been notified of the real errors
Full logs:
2023-12-11 10:54:32,475 [INFO] ASTRA_DB_KEYSPACE is not set.
        Args:
            vector (list): The vector to search with.
            limit (int): The maximum number of documents to return.
            filter (dict, optional): Criteria to filter documents.
            fields (list, optional): Specifies the fields to return.
            include_similarity (bool, optional): Whether to include similarity score in the result.
        Returns:
            list: A list of documents matching the vector search criteria.
        """
        # Must pass a limit
        if not limit:
            raise ValueError("Must pass a limit")

        # Pre-process the included arguments
        sort, projection = self._pre_process_find(
            vector,
            fields=fields,
        )

        # Call the underlying find() method to search
        raw_find_result = self.find(
            filter=filter,
            projection=projection,
            sort=sort,
            options={
                "limit": limit,
                "includeSimilarity": include_similarity,
            },
        )

>       return cast(List[API_DOC], raw_find_result["data"]["documents"])
E       KeyError: 'data'

../../../../../Library/Caches/pypoetry/virtualenvs/ragstack-ai-1_8bFyNQ-py3.11/lib/python3.11/site-packages/astrapy/db.py:233: KeyError
2023-12-11 10:54:42,442 [INFO] Test report line: test_astra.py::test_ingest_llama_retrieve_langchain -> ❌ <ExceptionInfo KeyError('data') tblen=25>
2023-12-11 10:54:42,443 [INFO] All tests report:
2023-12-11 10:54:42,443 [INFO] test_astra.py::test_ingest_llama_retrieve_langchain -> ❌ <ExceptionInfo KeyError('data') tblen=25>

@eolivelli I believe this should be solved as a consequence of https://github.com/datastax/astrapy/pull/128 . Here all errors from the API should get propogated up. Maybe can try this test against this branch?


fix(curriculum): fix typo for "your" in one of the curriculum challenge

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #57524
This PR -

Fixes a typo for the word "your" in the curriculum challenge.

@huyenltnguyen fyi this PR fixes #57524

@gikf done! sorry for that

Hi @chaitanyarahalkar. Congrats on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We are happy to accept these changes and look forward to future contributions. 📝


Add Triangle Voronoi node

This adds a new voronoi texture node which uses the triangle distance metric for its cells. Based on this shadertoy by Thomas Hooper. Sample outputs:

Why does it have circular gradients if it uses triangle distance?


(maint) fix puppetdb-env.erb so it generates valid bash

There is a bug affecting some OSes where this template will miss a necessary newline in the bash it generates.  An example is here:
https://gist.github.com/wkalt/fe8949ea40eb95c3aa9b
note that JAVA_BIN and INSTALL_DIR are on the same line

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/459/

I don't think we use that file in our packaging any more?

@ajroetker yeah affects stable. A customer raised it on PE 3.3.1.

@kbarber fixed

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/485/

@pljenkinsro retest this please

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/488/

@pljenkinsro retest this please

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/490/

@pljenkinsro retest this please

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/491/

@pljenkinsro retest this please

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/493/


[Hacker Rank]: Project Euler #1: Multiples of 3 and 5 solved ✓

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (52416da) to head (f99f948).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #13   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         4    +2
  Lines           28        57   +29
  Branches         0         2    +2
=========================================
+ Hits            28        57   +29

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Extend EDGAR with a rudimentary mechanism to execute software on a peer

EDGAR should become the tool to manage peers at the edge. Currently it only manages a peer's network stuff regarding the connectivity of the DuTs to setup a cluster.
This issue should prepare the foundation for a mechanism to run third party software on EDGAR's peer.
To start small the following constraints apply:

The software can be configured at the peer configurator.
This should indicate, that the configuration about the software to run is more 'static' and can't be reconfigured per cluster etc.
EDGAR will download and run software at start only.
This limitation can be removed if it doesn't have much impact to the complexity of a minimal implementation.
The software has to be bundled into a container image.
It is currently open for discussions which technology to use [docker vs. podman]
The runtime [docker/podman] has to be pre-installed.
The container registry must be reachable from EDGAR.

ToDos:

[x] Determine restrictions of podman. Do we need root containers?
~Verify whether EDGAR could ship/download/install podman.~
[x] Extend PeerDescriptor:
For containers users may Specify via LEA/CLEO:

[x] engine: one of [docker, podman]
[x] name of the container.
[x] the image to pull. (mandatory)
[x] files or directories to mount.
[x] devices to pass through.
[x] environment variables.
[x] ports to publish.
[x] command and arguments to start.

[x] Adjust LEA, so a user can configure the above parameters.
[x] Adjust CLEO, so a user can configure the above parameters.
[x] After a PeerDescriptor is received in CARL, a PeerConfiguration resource should be created.
[x] In the open() function of the PeerMessagingBroker, this PeerConfiguration should be sent as a Downstream message to EDGAR.
[x] Receive the PeerConfiguration on EDGAR.
[x] Implement a simple exec to talk to Podman and run the configured container.

thank you @voelkera


fix: Correct Node versions were not installed on test matrix

Fixes a bug in GitHub Action workflow resulted in all tests were running only on Node 12.x
Also now tests on minimum node version from package.json engines instead of any 10.x
~The test for network-error partial response was failing on Node 10.16 and set conditionally.
I've expected it to be fixed by #845, but it seems that there is some underlying problem in Node <12.10 (I do believe it's https://github.com/nodejs/node/pull/29376). This probably may be attended in a separate PR or leave as is (the functionality difference is that on Node < 12.10 fetch is resolving with a partial response)~
Fixes test for a partial response that was failing on Node < 12.10 due to https://github.com/nodejs/node/pull/29376 by backporting changes from that PR.

Hello, this issue is blocking the release 3.0.0-beta.7...
Maybe I can help moving forward on this issue?


Add resolver types to AppSync docs

Add resolver types to AppSync docs - to be referenced from 1.2.0 release notes.

LGTM! 🚀


export Renderman Shading properties per object

Added RIB attribute output for Shading Rate, Interpolation, Motion and Focus per object.  Please review.

If these look good, I can hook up the Visibility props next.

Actually I think the smooth vs constant interpolation were referring to this.
https://renderman.pixar.com/resources/current/RenderMan/attributes.html#rishadinginterpolation
Not sure why someone would want to do constant...

Gotcha. I'll fix that.

Thanks.  I think you can just resubmit the pull request with the changes.

Just a note, all you have to do is push the latest to your repository and it is automatically added to the pull request. Thanks for all the work rendermouse.

There is a "photon" visibility attribute, but according to the docs, that is REYES-only. Can you confirm this?

Yeah, I would redo the visibilty attributes.  You could do use the indirect and direct visibility and camera, simplify things.

You know what we really need in the object properties here is single vs double sided. The way that maya does it is they have a single vs double sided property and if single sided you can reverse the sidedness

Would that be an RiSides setting? Checking a "single-sided" box would reduces 2-sided to 1.
http://renderman.pixar.com/resources/current/RenderMan/risAttributes.html#sides


Set default timezone to UTC?

The timezone in the image is set to America/Chicago: https://github.com/envygeeks/jekyll-docker/blob/master/repos/jekyll/Dockerfile#L35
Was there any particular reason why this is the case (this was somewhat unexpected while using the image to build jekyll sites)? Would it make sense to set it to UTC?

I don’t live in West England? I have no plans to change this. Set the TZ when you run the image with -e. Sorry.

I find that most services use UTC as the default timezone and it took me by surprise that this image explicitly sets it to a different one. I think the above request is worth another consideration.


Match nav button colors to theme

Are these style changes too gross? I figure if anywhere is gonna abuse inline styles, it's a component we won't reuse XD

So I think we should make the "on hover" style of the button be more bold. it looks like it is really faded.

Actually, the bigger point here is that the non-selected buttons in navigation look like they are disabled. They are too faded IMO.
The actual selected button looks good though.


Set state to failed when the issuer returns a cert that is expired

What this PR does / why we need it:
In https://github.com/jetstack/cert-manager/issues/3067 we are discussing the behavior of cert-manager when a CA returns an expired cert. This is my proposal on how to handle this.
Special notes for your reviewer:
I find it very suspicious that there were tests for exactly this case... not sure what was happening here? Did I misunderstand something?
For this reason:
/assign @JoshVanL
/assign @munnerz
as they touched the tests both according to the Git blame
Release note:

Mark CertificateRequest as failed when issuer returns an expired cert

I think this may be overloading the CertificateRequest controller's job imo, and the current behavior is as expected.

I see what you mean here. Will close this one.
/close


BUG? Beware! Using over 8 arguments may lead to duplicate checksums being calculated...

SELECT CHECKSUM(1,0,0,0,0,0,0,0,0) -- 1
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1) -- 1
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0) -- 16
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0) -- 16
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0) -- 256
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0) -- 256
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0) -- 4096
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0) -- 4096
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0) -- 65536
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0) -- 65536
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 1048576
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0) -- 1048576
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 16777216
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0) -- 16777216
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 268435456
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0) -- 268435456
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 1
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0) -- 1
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 16
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0) -- 16
SELECT CHECKSUM(1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0) -- 16
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -- 256
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0) -- 256
SELECT CHECKSUM(1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0) -- 256
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123) -- 379
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,123) -- 379
SELECT CHECKSUM(1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,123) -- 379
SELECT CHECKSUM(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'ETC...') -- 159919566
SELECT CHECKSUM(0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,'ETC...') -- 159919566
SELECT CHECKSUM(1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,'ETC...') -- 159919566

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

ID: 854e5542-ae5e-098e-7bbf-3005953f14d3
Version Independent ID: 597e2c06-935d-1742-6dd4-906294d2a6f3
Content: CHECKSUM (Transact-SQL) - SQL Server
Content Source: docs/t-sql/functions/checksum-transact-sql.md
Product: sql
Technology: t-sql
GitHub Login: @MikeRayMSFT
Microsoft Alias: mikeray

It looks like BINARY_CHECKSUM also exhibits the same behavior...

@MikeRayMSFT These might be "edge" conditions, with value sets carefully designed for a demo of a truth that may be of little or no practical consequence in the daily business world.  If so, it would perhaps not be helpful to add mention of such cases into the live Docs article, tho ultimately it is a matter of personal judgment.
Also, CheckSum is openly direct that it sometimes returns the same values even when given different input.  The rate of duplication is believed to be small and reasonable in practical use. The citation of specially designed edge cases that show a higher rate of duplicate values might not be helpful to the large majority of Docs readers.
Or, perhaps one cautionary sentence could be added to the effect that - More the eight parameters might be counter-productive toward the goal of generating unique returned values from CheckSum().
It is all for you to decide, as you own the article.

@ggoodfrd thank you. Reviewing.

@ggoodfrd - CHECKSUM() uses a relatively simple but fast algorithm for checksum calculation based on shifting and XORing for INT. It should be used to build hash indexes and for that purpose it is fast and good enough.
Another example, CHECKSUM_AGG is designed to detect changes in a group of values – a simple XOR on inputs is very fast and good enough algorithm for this.
On the other hand, HASHBYTES intrinsically supports common checksums such as MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512, but is much slower.
We're working to update the documentation to explicitly state that CHECKSUM() does not guarantee unique results.
Thank you.

Thanks for the clarification. I fully understand that the function would take an approach that is optimized for performance since it has to process the input of each parameter, which could be large strings, for example. It's good to mention the performance differences as you have here, as one might not have understood that impact without taking time to set up some examples with large datasets, etc. I appreciate that you're going to update the docs to show the limitations and which options might be better for determining uniqueness when checking a large number of inputs together.
I believe over the years the term checksum has sort of become analogous to being like a "fingerprint" for whatever it's calculated on, which many would consider to be a unique identifier.
Thanks again for the detailed response and subsequent doc updates!


Is there a compiled version for v2.0?

Could you please upload the .exe for v2.0?

Nevermind, I just compiled the source code using Visual Studio myself. I ran the exe and it isn't able to detect the battery level of my Bluetooth devices. I've tried v1.0 and it's the same issue as well. I've tried detecting multiple bluetooth devices and none of them work.

Make sure they are BLE(Bluetooth Low Energy). Or you maybe need to remove the Bluetooth device in windows and re-pair

Thanks for the reply. Yes, it is BLE. It's got the "LE" next to the connection in my Windows Bluetooth settings.
I've already tried to re-pair the device. I'm using a WH-1000XM3 and it's currently connected as LE-WH-1000XM3

how does one install this?

I am searching compiled version, too.

v2 not work well.

I'm using a WH-1000XM3 and it's currently connected as LE-WH-1000XM3

I have the same problem with a WH-1000XM5, it keeps showing as "Unpair" although - according to Windows - it is "Connected" (and I can hear sound through it). The tool is working fine with a connected iPhone though.

Only work for BLE (Bluetooth Low Energy) device.

I'm not 100% sure about this, the technical specifications list the Bluetooth version as "Bluetooth Specification Version 5.2", but no mention of "low energy".
However, the App shows it as "LE" in what I assume is the "name" column:

Maybe LE of WH-1000XM5 only support for Sony HeadphonesClient Connect App.
Try https://github.com/Plutoberth/SonyHeadphonesClient

Guys, just download and use this, it's much easier and works great:
https://www.bluetoothgoodies.com/


Extension unable to connect

Despite Lapcord installed globally, the extension is unable to connect. Below is the screenshot of the log file. I am currently on POP OS 22.04.

Sorry for taking so long. Yes, the error is because there is no idle object in options, which inherits from params.initializationOptions. It's a bit complicated to explain how we missed that simple error, but thanks for opening an issue.
The Lapce proxy is a bit confusing to understand, but I'll try to be as simple as possible. Suppose you install an extension, its parameters are intact, i.e. its configuration, how does the Lapce proxy send to the extension those parameters? Through an object, but here comes its particularity, it only sends the properties that have been manipulated at least once. You get the idea, when you install a new extension, you have never manipulated its parameters, so, guess how Lapce sends the object? Exactly, empty. That's when the code goes into chaos.
Obviously, as we had been testing several configurations, the object that Lapce sent us was complete, with each of the parameters, so we didn't have that inconvenience.
If you iterate all the configuration parameters the extension will work. But of course, we understand that this is annoying and we will be working on a solution.

Screenshot

Thanks again!

Additionally, I am aware of your proposal. From what I understood, you suggested that the lapcord binaries (lsp) be located in the $HOME path and that the command to run be ts-node --swc ~$HOME/.lapcord/src --stdio, i.e., compile in a different location when installing the extension? To be honest I don't understand 100% the functionality of that.

The suggestion i proposed eliminates the use of installing lapcord binary provided ts-node is installed globally, all it does is transfer the files in the src/ folder to a new folder $HOME/.lapcord/src.
Currently the plugin runs lapcord --stdio in the background so the solution i proposed is to convert the plugin to run ts-node $HOME/.lapcord/src --stdio(--swc is not necessary) in the background.


Document that some systems only have docker compose and docker-compose will fail

See https://github.com/suborbital/docs/pull/155#discussion_r943837606

I think this is a duplicate of #159 - se the more detailed description there. I just reopened that issue and will close this as a duplicate, feel free to correct me if that's not right.
Laura if #155 fixed this (or the issue mentioned above) feel free to close that one as fixed!


'set' action don't check if path contains a variable

I have been already report this issue in https://stackoverflow.com/questions/54786489/karate-when-sending-jsonpath-to-another-feature-set-function-dont-see-that
And in comment I got reponse: "Variables will not work for the set command. And you cannot use JsonPath. If you have dynamic paths, you can do this, refer: https://github.com/intuit/karate#eval"
But 'eval' action doesn't support JsonPath, only pure JS, and JsonPath is not pure JS.
I want add for 'set' function ability to check if path contains a variable. I founded that you use eval function and ScriptEngine class for this.
Is it ideologically compatible?
If yes how can I contribute to project? I found this page https://github.com/intuit/karate/blob/master/.github/CONTRIBUTING.md but I have a few question:

Can I use IntelliJ instead Eclipse?
Do i have do a fork or I can clone project locally?
How can I run and biuld project?

this is a "wontfix" for me. in fact set and jsonpath is NOT guaranteed and now I realize I explained this to you in detail here: https://stackoverflow.com/a/54928848/143475
you can refer to this issue if you really want to do a PR, but it is not easy IMO. I suggest you take the help of someone who can help you with maven and github

there is no need for this. in the latest dev version of karate you can do this:
* def json = { foo: 'bar' }
* def var1 = 'foo'
* json[var1] = 'hello'
* match json == { foo: 'hello' }

try it and see. in fact going forward, we might recommend to stop using set completely.


请问这个模型可以干嘛，

请问可以提取地震相的backbone吗

SeisCLIP is specifically designed for seismological problems and is not suitable for seismic data interpretation. If you're interested in a foundational model for seismic exploration, I recommend checking out our other paper dedicated to that subject.   'Seismic Foundation Model (SFM): a new generation deep learning model in geophysics'


Adds a NDJSON-capable Bulk Data Import Provider

This PR builds on #3022, which added an NDJSON parser to HAPI FHIR.
We build on the existing bulk import tooling in HAPI FHIR to create a bulk data import provider appropriate for ingesting NDJSON in the same format as emitted by HAPI FHIR's BulkDataExportProvider.
We attempt to stay as true as possible to the intent and vision telegraphed by the existing bulk import tooling.  It is noteworthy, though, that in the initial pass at bulk import here, each import operation would act on only a single file.  Thus, the procedure for importing bulk export data would be to submit each file as a separate job.  I have included comments indicating some simple changes that would allow a user to submit several different NDJSON files as part of the same bulk import job, and I am happy to implement those changes if it is decided that it is an acceptable modification to the original vision of bulk import.
Automatic tests are included.

Merge pls

This looks good, I'll merge shortly.
FYI the work on a backend implementation of Bulk Import is now done and about to merge, so I'll hook that up to this implementation. Thanks for the submission!


Publish to the Snap Store

CC @golang/release

Please provide more information about this request.
What do you suggest be published (Go releases, or something else)?
Which Snap Store are you referring to? Link?

Distribute binary releases through Snap Store in order to make it installable and updatable on linux using snap CLI sudo snap install go for example.
The process would be triggered automatically after setting a GitHub action or using existant Go build tool.
Publishing Guide: Snapcraft publishing guide

Unless I'm not up to date on this, the Release Team does not package and publish Go for Linux distros (for example the .deb package for debian, etc...). They have external packagers/maintainers. Why would snap be different?


Scaling & performance optimizations (sync up)

Close due to merge conflicts. New PR will come right after.


#842 Issue Is the 842 error still the same?

#842
I'm trying to use Giscus https://giscus.app/ but I've done all the necessary settings in the repository and installed it in the repository, but I'm getting an error: "giscus is not installed on this repository"
works. Next.js version is 14.2.3.
my .env.example
NEXT_PUBLIC_GISCUS_REPO="Samdasoo1076/blog-test"
NEXT_PUBLIC_GISCUS_REPOSITORY_ID="R_kgDOMFy0gQ"
NEXT_PUBLIC_GISCUS_CATEGORY="General"
NEXT_PUBLIC_GISCUS_CATEGORY_ID="DIC_kwDOMFy0gc4Cf6GO"
NEXT_PUBLIC_UTTERANCES_REPO=
NEXT_PUBLIC_DISQUS_SHORTNAME=

The current preview blog uses Next.js 14.2.3 so there should not be any issue. Please ensure that you have carried out the following steps:

The repository is public, otherwise visitors will not be able to view the discussion.
The giscus app is installed, otherwise visitors will not be able to comment and react.
The Discussions feature is turned on by enabling it for your repository.

I tried all the answers you gave me before I posted the issue, but it didn't work
Is the surest way to initialize the project?

You should put those values on Vercel or an .env file, not .env.example. As the name suggests, .env.example is just an example.

oh... thank you
i Solved this problem


[wip] unification of torchao.float8 with the rest of torchao

context
Today, torchao.float8 has a separate API from the rest of torchao.  This is for historical reasons:

float8 development started in https://github.com/pytorch-labs/float8_experimental, which is now archived
in early 2024 float8_experimental was migrated to torchao in https://github.com/pytorch/ao/pull/551, to set us up for eventually unifying float8 with the rest of torchao
float8 inference originally started in torchao.float8 but recently moved to quantize_ to better align with other inference APIs
there are some requirements which are important for float8 today and are not yet easy in other torchao APIs, such as: persistent state (delayed scaling), distributed integrations, extensibility to larger graphs than ops surrounding a linear layer

next steps
We need to figure out the requirements for training, inference, and known future use cases for both.  Then, we should align on how to best structure the torchao APIs to meet these requirements.  Stay tuned, we will get this going after PTC 2024.

I think we could separate the implementation for the model prepared for training and the model for inference. something like the following:
model = ...
# can be implemented with hooks, or module swaps etc. more friendly with training
prepare_for_training_(model, ...)

# use tensor subclass for everything for better serialization/deserialization UX
convert_to_inference_(model)


Individual column searching

Hi,
Is there a way for - multi column searching like https://datatables.net/examples/api/multi_filter.html ?
Thanks & Regards!

The currently implementable simply does server-side search for the value on all searchable fields.  I have not done anything to make individual field filtering easier but you can definitely do it with datatables.net native way.  Feel free to do a pull request if you want to make improvement on this plugin.
But based on the instruction you link, it's simply:

On initComplete, render the filter fields on footer or header of the table for each column.
Search field can either be filter by client-side or server-side by passing in query string for individual column as in, fname=blah&email=blah@blah.  More details example on server-side searching with laravel datatables.net implementation: https://itsolutionstuff.com/post/custom-filter-search-with-laravel-datatables-exampleexample.html

        ajax: {
          url: ...,
          data: function (d) {
                d.email = $('.searchEmail').val(),
                d.fname = $('input[name="fname"]').val()
            }
        }

How to render the filter fields on header of the table for each column on initComplete or on table-created event?


aws-nuke - Nuke account itesm to backup

Overview
This ticket is meant to a note what we want preserve on account nuking procedures to reduce waste resources on our account.

I think we pay for public names, not subdomains. So we may want preserve their records post-destroying the cluster.

Do we want to backup Route53 hostnames?

I think we pay for public names, not subdomains. So we may want preserve their records post-destroying the cluster.

We need to put Route53 on the exclusion filter of aws-nuke. (to avoid issues on DNS propagation)

If the target region is us-east-1, it's not necessary to inform the region in the post nuke commands.
https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html#options


SO-77

Added Create and Update API's to reciepts
Updated Reciept interface from database.interface

TODO

Fix the alerts
Utilizing the image exported info, for filling in data to input fields.


How to configure mimetype?

Hi, I saw somewhere in the release notes around being able to configure mimetypes, but i didnt see anything in the docs relating to how to configure it or with examples. Is it possible to give a simple config with how to configure the mimetypes?
Great application by the way!! copyparty is absolutely awesome!
Thanks

Thanks for the heads-up, I keep forgetting to document stuff :>
And thanks for using copyparty 😁 👍  glad you like it!

Thank you for the quick response! Awesome work as always!


Ensure Ancestors on Correct Device During Sampling

Fixes https://github.com/outlines-dev/outlines/issues/649

You would need to do this for every sampling method

Good catch. Beam and greedy needs changes as well.
Smoke tested, can confirm for all 3 samplers the device is set correctly:
>>> next_token_ids.device, ancestors.device, weights.device
(device(type='cuda', index=0), device(type='cuda', index=0), device(type='cuda', index=0))

Thanks for the fix!


Support for new I2C master driver. (AEGHB-572)

When is support planned for the new I2C master driver?

Hello, do you mean the file esp_lcd_panel_io_i2c_v1.c and esp_lcd_panel_io_i2c_v2.c.
This interface should not be used in the application, compatibility has been done at the io_handle layer.
Can I learn more about your needs?

I am building our application for the ESP-BOX using latest VSCode, IDF Master (v5.3-dev-2381-g9f4e8eb0cd).
Application compiles and links, only complains about:
/Users/andremaree/DevSpace/z-comp/gui_basic/gui_lvgl.cpp:87:33: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]    87 |     lv_label_set_text(lv_label, "#FF0000 "LV_SYMBOL_BELL" Hello world Espressif and LVGL "LV_SYMBOL_BELL"#\n#FF9400 "LV_SYMBOL_WARNING" For simplier initialization, use BSP "LV_SYMBOL_WARNING" #");       |                                 ^ /Users/andremaree/DevSpace/z-comp/gui_basic/gui_lvgl.cpp:87:57: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]    87 |     lv_label_set_text(lv_label, "#FF0000 "LV_SYMBOL_BELL" Hello world Espressif and LVGL "LV_SYMBOL_BELL"#\n#FF9400 "LV_SYMBOL_WARNING" For simplier initialization, use BSP "LV_SYMBOL_WARNING" #");       |                                                         ^ /Users/andremaree/DevSpace/z-comp/gui_basic/gui_lvgl.cpp:87:105: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]    87 |     lv_label_set_text(lv_label, "#FF0000 "LV_SYMBOL_BELL" Hello world Espressif and LVGL "LV_SYMBOL_BELL"#\n#FF9400 "LV_SYMBOL_WARNING" For simplier initialization, use BSP "LV_SYMBOL_WARNING" #");       |                                                                                ^ /Users/andremaree/DevSpace/z-comp/gui_basic/gui_lvgl.cpp:87:135: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]    87 |     lv_label_set_text(lv_label, "#FF0000 "LV_SYMBOL_BELL" Hello world Espressif and LVGL "LV_SYMBOL_BELL"#\n#FF9400 "LV_SYMBOL_WARNING" For simplier initialization, use BSP "LV_SYMBOL_WARNING" #");       |                                                                                ^ In file included from /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/lvgl__lvgl/src/core/lv_obj.h:140,                  from /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/lvgl__lvgl/lvgl.h:35,                  from /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/espressif__esp-box/include/bsp/esp-box.h:18,                  from /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/espressif__esp-box/include/bsp/esp-bsp.h:8,                  from /Users/andremaree/DevSpace/z-comp/gui_basic/gui_lvgl.cpp:16: /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/lvgl__lvgl/src/core/lv_obj_style.h: In function 'void lv_obj_remove_style_all(_lv_obj_t*)': /Users/andremaree/DevSpace/z-projects/irmacs/managed_components/lvgl__lvgl/src/core/lv_obj_style.h:94:48: warning: bitwise operation between different enumeration types '<unnamed enum>' and '<unnamed enum>' is deprecated [-Wdeprecated-enum-enum-conversion]    94 |     lv_obj_remove_style(obj, NULL, LV_PART_ANY | LV_STATE_ANY);       |                                    ~~~~~~~~~~~~^~~~~~~~~~~~~~
On boot complains in log about:
boot i2c This driver is an old driver, please migrate your application code to adaptdriver/i2c_master.h

@espressif2022
The way I understand it the build should automatically use the new i2c_master functionality when compiled with IDF v5.3 ie Master?

@ammaree , hello, sorry for my delayed reply.

I think it'll still use the old driver.
#define esp_lcd_new_panel_io_i2c(bus, io_config, ret_io) _Generic((bus),  \
            i2c_master_bus_handle_t : esp_lcd_new_panel_io_i2c_v2, \
            default : esp_lcd_new_panel_io_i2c_v1) (bus, io_config, ret_io) \

esp_err_t esp_lcd_new_panel_io_i2c_v2(i2c_master_bus_handle_t bus, const esp_lcd_panel_io_i2c_config_t *io_config, esp_lcd_panel_io_handle_t *ret_io)
esp_err_t esp_lcd_new_panel_io_i2c_v1(uint32_t bus, const esp_lcd_panel_io_i2c_config_t *io_config, esp_lcd_panel_io_handle_t *ret_io)

It can be seen that IDF internally handles compatibility between V1 and V2, mainly to determine the parameter type.
If the parameter of new_panel is i2c_master_bus_handle_t, V2 will be selected;
If it is uint32_t type, the driver of V1 will be selected.
I saw the following definition in esp_lcd/esp_lcd_panel_io.h, so the V1 driver should still be used.
typedef uint32_t esp_lcd_i2c_bus_handle_t;                    /*!< Type of LCD I2C bus handle */

About warnning.
There are also some compilation warnning mentioned above, this example code is from esp_bsp?
And it should be caused by some differences between C++ and C compilers.

@espressif2022
I just tried to rebuild the app using latest esp_box v3.0.5 with esl_lvgl_port v2.0.0 and lvgl v9 build the build fails, unable to find a working combination.
The last working combination was using box/v3.0.4 with port/v1.4.0 and lvgl 8.3.11
We are not too worried about tsp-box or lvgl or esp_lvgl_port versions, what is critical is to use the new (5.1.x. onwards) I2C master driver since this allows us to intercept the I2C API calls and transparently route them throughout our dedicated I2C task.
How can we achieve this?
As far as the "invalid suffix" compile warnings/errors are concerned, the code was lifted from a BSP example but we have fixed those.
Help on making the I2C master driver interface work will be much appreciated.

what is critical is to use the new (5.1.x. onwards) I2C master driver since this allows us to intercept the I2C API calls and transparently route them throughout our dedicated I2C task.
I'm sorry. This description above is not very clear to me.
According to the existing driver, if we use our esp_lcd/esp_lcd_panel_io interface, the old IIC driver will be called, which requires modification by IDF.
Does the current driver not meet the requirements?

Temporarily closed due to the extended period of time with no response. Should you have additional questions or concerns, don't hesitate to reopen the issue.

Sorry about the long delay but this problem still persists.
In order to simplify the situation we have:

changed to the ESP32-S3-LCD-EV-BOARD-2
building a GUI application using ESP-IDF Master (v5.4)
using the latest BSP for the devboard
also using latest LVGL component

The I2C controller is not used by anything in our application but the BSP includes I2C support for the touch controller.
At startup the following message still occurs:
boot i2c This driver is an old driver, please migrate your application code to adapt driver/i2c_master.h
What do we have to change in the configuration, BSP, LVGL or IDF to force the use of the new V2 I2C driver?
The comments on Mar 14 were just for background, if we can force the use of the V2 driver the problem will go away...

@ESP-Mars
I have also check with the just released lv_port_espressif_esp32-s3-lcd-ev-board demo/example from the LVGL Project Creator extension for VS-Code and the exact same situation there.
So it seems all these projects are missing something to force the use of the I2C V2 drivers

@ESP-Mars I have also check with the just released lv_port_espressif_esp32-s3-lcd-ev-board demo/example from the LVGL Project Creator extension for VS-Code and the exact same situation there.
So it seems all these projects are missing something to force the use of the I2C V2 drivers

Yes, all our current BSPs are not compatible with the new I2C driver. When you mix the old and new drivers in your code, the program will automatically detect crashes.
Why do you need the new driver，and how can we help you?

We have an I2C task that allows us to combine multiple read and write operations with timers, delays and events to streamline I2C operation.
In order to support libraries that use I2C APIs directly we wrap the IDF I2C APIs and redirect them to our I2C task.
All we need is that the BSP's support the new I2C master interface.

We have an I2C task that allows us to combine multiple read and write operations with timers, delays and events to streamline I2C operation.
In order to support libraries that use I2C APIs directly we wrap the IDF I2C APIs and redirect them to our I2C task.
All we need is that the BSP's support the new I2C master interface.

Hello, you can refer to this https://github.com/espressif/esp-bsp/issues/391, we'll support bsp in this  respository.


<EMAIL_ADDRESS>config.yml and games.yml are not persisted

When I first started rpc3, a new config.yml and games.yml were created and config.yml and games.yml  in the persist folder are still 0 bytes

close

@Calinou can close, @satorope


ci: implement push latest image process

Related #46
Push latest main with SHA

Fail on CI:
try

Github security note

https://stackoverflow.com/questions/73866908/github-actions-main-repository-secret-not-picked-up-from-pull-request-build
https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions


Improve the Bank Tags plugin's "tag tab tab" view.

Improves the "tag tab tab" view:

Allowing the left-click option on the button at the top left of the bank to be swapped to any of the options in the right-click menu, using a config dropdown menu.

Changes tab selection to always scroll the tab into view in the sidebar - this is so that when a tab is selected from the "tag tab tab" view it will be visible in the sidebar so that you know which tab you're looking at, and can drag new items into the tab.

Also just in case this feature is obscure (I didn't know it existed until a few days ago), this is the thing I'm talking about:

Changed the icon for "View tag tabs" to this:

closing because it is somewhat superfluous now that the option can be swapped in other ways, also making the tag tab list scroll to the selected tag is sometimes annoying and would have to be reworked.

closing because it is somewhat superfluous now that the option can be swapped in other ways, also making the tag tab list scroll to the selected tag is sometimes annoying and would have to be reworked.

Do you mind listing some of the other ways this can be swapped?  I stumbled upon this coming to suggest this change, but am failing to find a way to do it now, and I'm sure others might as well

@Zoboomaku "Custom Menu Swaps" plugin hub plugin.


Implement efficient management of datasets contained within a workbook

User should be able to add, reorder, rename, and delete datasets that were added to the workbook as freely as they choose. Maybe add a "Dataset" section to the tree menu underneath each workbook.

Creating "Surfaces" section in menu.

Creating "Surfaces" section in menu.

Releted to #113.

Releted to #113.


replay error: state.AppHash does not match AppHash after replay

Hello guys, my problem comes out when I stop a node and start it again
Describe the Bug
when I send amount of transactions:
Using validator address: 2EA57322BE82261F883DA250FBCBF23B97B29D75
length mempool 1
length mempool 0
length mempool 1
length mempool 0
length mempool 4
length mempool 95
length mempool 45

I break a node suddenly and start it again, the system return a error like this:
Using validator address: 2EA57322BE82261F883DA250FBCBF23B97B29D75
panic: Tendermint state.AppHash does not match AppHash after replay. Got 8A826BE861F929EDDAE40646601C99FF24AA33CE4678E13037A238010F29F445555718BC53D95B1B92478E3C3CAF717D96743C3A23E5BE5FAF2374199D2F6C9E, expected 3EAF0A5D08DAA3484E04C5C206282B104F60E0FAA16BED888442CEA858AFAD30E3DA76C45E6F1A5AD55DE5FBBA95CEDF88EEA1ABB481A6F8B7A9C4BE47124842 [recovered]
	panic: Tendermint state.AppHash does not match AppHash after replay. Got 8A826BE861F929EDDAE40646601C99FF24AA33CE4678E13037A238010F29F445555718BC53D95B1B92478E3C3CAF717D96743C3A23E5BE5FAF2374199D2F6C9E, expected 3EAF0A5D08DAA3484E04C5C206282B104F60E0FAA16BED888442CEA858AFAD30E3DA76C45E6F1A5AD55DE5FBBA95CEDF88EEA1ABB481A6F8B7A9C4BE47124842

goroutine 1 [running]:
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009b5f50, 0x10cec20, 0xc0008a7310)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:39 +0xda
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009b5fb0, 0x10cec20, 0xc0008a7310)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:29 +0xc2
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009e8b10, 0x10cec20, 0xc0008a7310)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:29 +0xc2
github.com/jawher/mow.cli/internal/flow.(*Step).callDo.func1(0xc0009e8b40, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:52 +0x4a
panic(0x10cec20, 0xc0008a7310)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
gitlab-new.bap.jp/BLOCKCHAIN/tendermint/consensus.checkAppHash(0xa, 0x0, 0xc000137156, 0x6, 0xc001e80680, 0x14, 0x6d2a, 0x621aa, 0xc001942200, 0x40, ...)
	/home/bapvn/go/pkg/mod/gitlab-new.bap.jp/!b!l!o!c!k!c!h!a!i!n/tendermint@v0.31.90/consensus/replay.go:461 +0x188
gitlab-new.bap.jp/BLOCKCHAIN/tendermint/consensus.(*Handshaker).replayBlocks(0xc000cd7018, 0xa, 0x0, 0xc000137156, 0x6, 0xc001e80680, 0x14, 0x6d2a, 0x621aa, 0xc001942200, ...)
	/home/bapvn/go/pkg/mod/gitlab-new.bap.jp/!b!l!o!c!k!c!h!a!i!n/tendermint@v0.31.90/consensus/replay.go:437 +0x2f8
gitlab-new.bap.jp/BLOCKCHAIN/tendermint/consensus.(*Handshaker).ReplayBlocks(0xc000cd7018, 0xa, 0x0, 0xc000137156, 0x6, 0xc001e80680, 0x14, 0x6d2a, 0x621aa, 0xc001942200, ...)
	/home/bapvn/go/pkg/mod/gitlab-new.bap.jp/!b!l!o!c!k!c!h!a!i!n/tendermint@v0.31.90/consensus/replay.go:358 +0xa47
gitlab-new.bap.jp/BLOCKCHAIN/tendermint/consensus.(*Handshaker).Handshake(0xc000cd7018, 0x1611420, 0xc000955260, 0x2, 0x15fd5e0)
	/home/bapvn/go/pkg/mod/gitlab-new.bap.jp/!b!l!o!c!k!c!h!a!i!n/tendermint@v0.31.90/consensus/replay.go:264 +0x537
gitlab-new.bap.jp/BLOCKCHAIN/tendermint/node.NewNode(0xc000399680, 0x15f3d20, 0xc001d588e0, 0xc000125b90, 0x15d52c0, 0xc001ebfe80, 0xc000cd72c0, 0xc000cd72b0, 0xc000125a50, 0x15fd5e0, ...)
	/home/bapvn/go/pkg/mod/gitlab-new.bap.jp/!b!l!o!c!k!c!h!a!i!n/tendermint@v0.31.90/node/node.go:266 +0x9e6
gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/consensus/tendermint.NewNode(0xc000399680, 0x15f3d20, 0xc001d588e0, 0xc00038a380, 0xc0000c0780, 0xc000125a50, 0xc001cb0f78, 0xc0015d26c0, 0x0, 0x15d5980, ...)
	/home/bapvn/go/src/gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/consensus/tendermint/tendermint.go:72 +0x3f5
gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/core.(*Kernel).LoadTendermintFromConfig(0xc0008c2240, 0xc0009e61e0, 0x15f3d20, 0xc001d588e0, 0x15f3d20, 0xc001d588e0)
	/home/bapvn/go/src/gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/core/config.go:103 +0x9e5
gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/core.LoadKernelFromConfig(0xc0009e61e0, 0x12f782a, 0x1b, 0xc000a0f0e0)
	/home/bapvn/go/src/gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/core/config.go:142 +0x53a
gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/cmd/burrow/commands.Start.func1.1()
	/home/bapvn/go/src/gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/cmd/burrow/commands/start.go:25 +0x229
github.com/jawher/mow.cli/internal/flow.(*Step).callDo(0xc0009e8b40, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:55 +0x7b
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009e8b40, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:25 +0x43
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009e8ae0, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:29 +0xc2
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0009b5f80, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:29 +0xc2
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00093fec8, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/internal/flow/flow.go:29 +0xc2
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000187400, 0xc00003c1a0, 0x1, 0x1, 0xc00093fec8, 0xc0009b5f80, 0xc0009b5fb0, 0x203000, 0x7)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/commands.go:681 +0x50e
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000187300, 0xc00003c190, 0x2, 0x2, 0xc00093fec8, 0xc00093fec8, 0xc0009b5f50, 0x30, 0x120bfe0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/commands.go:695 +0x74b
github.com/jawher/mow%2ecli.(*Cli).parse(0xc0009e0280, 0xc00003c190, 0x2, 0x2, 0xc00093fec8, 0xc00093fec8, 0xc0009b5f50, 0x12fded8, 0x1f)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/cli.go:76 +0x13f
github.com/jawher/mow%2ecli.(*Cli).Run(0xc0009e0280, 0xc00003c180, 0x3, 0x3, 0x0, 0x0)
	/home/bapvn/go/pkg/mod/github.com/jawher/mow.cli@v1.1.0/cli.go:105 +0x144
main.main()
	/home/bapvn/go/src/gitlab-new.bap.jp/BLOCKCHAIN/xek-core-blockchain/cmd/burrow/main.go:15 +0x76

My opinion
I believe the reason is not from tendermint, because I run tendermint alone and everything is fine. Maybe when burrow using iavl (https://github.com/tendermint/iavl) to calculate, it make the difference of apphash. If I remove the old db of that node, it is ok when I restart. However, I think the updating state process will waste a huge of time when orther nodes are at high height. So that is my temporary solution for now.
Technical Details

[ ] Burrow Version v0.26.1
[ ] Go Version v1.13
[ ] Iavl Version v0.12.2

Any else solution for that?

Thanks for the report, can you provide the version you are using?

Memory is a little fuzzy, possibly the fix included in: https://github.com/hyperledger/burrow/releases/tag/v0.30.0 may be what you are seeing

Ah Tendermint's dreaded autofile. We've had some issues around this implementation before. Some older things: https://github.com/tendermint/tendermint/issues/890. To be fair this may be nothing to do with autofile.
It may be you do just need more file handles, you can try increasing file ulimits (see: https://www.linuxtechi.com/set-ulimit-file-descriptors-limit-linux-servers/). It may be we/Tendermint is holding open files it does not need to. I would need to look into that.
For memory issues the profiler is helpful (Golang pprof). It can be enabled in the config and Go ships with a webserver to look at memory dumps.
What we need in this area is a holistic stress test combined with some profiling to find out where we might be leaking memory. I am aware there are some issues lingering in state and IAVL in particular that are likely to contribute to memory issues. If you are able to pinpoint a specific leak then I could take a look. Unfortunately I don't have time to spend digging on this just now, but I hope to in the future.

I hope this error can be fixed as soon as possible, anyway, thank for your response, I appreciate that!


Make it easy to work with the underlying WebGL objects

At the moment, a setTimeout hack is needed in order to work with underlying Three.js objects, for example:
            domNodes.forEach(n => {
                n.on('gl-loaded', () => {
                    setTimeout(() => {
                        node.three.material.opacity = 0.3
                        node._needsToBeRendered()
                    })
                })
            })

We need to make some adjustments to the order of operations in the lib so that it works without the timeout, so that people won't be confused why it doesn't work.
For example they should be able to do it without the timeout:
            domNodes.forEach(n => {
                n.on('gl-loaded', () => {
                    node.three.material.opacity = 0.3
                    node._needsToBeRendered()
                })
            })

This is now finally complete as of c7d1cb95fd5d124189998bacc1d2bf518de10eae. Examples are updated and don't use setTimeout, and all underlying WebGL objects are available when reasonably expected in user code.


[ALLUXIO-homework1]

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17510/
Test PASSed.


how to use the vad ?

hello,
After I build the libfvad,
I want use the VAD to cut a speech wav or raw ,
how to use ?
thx

hello,
After I build the libfvad,
I want use the VAD to cut a speech wav or raw ,
how to use ?
thx

after build(check the readme file), make sure the fvad.h is in /usr/local/include, then you can just use it like the fvadwav.c in examples, I tried, it worked

@fengchangfight
Thanks,
but could you say it in detail, for a little poor power
if I use
gcc fvadwav.c -o fvadwav
it tells me
fvadwav.c:19:21: fatal error: sndfile.h: No such file or directory
compilation terminated.

hello,
After I build the libfvad,
I want use the VAD to cut a speech wav or raw ,
how to use ?
thx

after build(check the readme file), make sure the fvad.h is in /usr/local/include, then you can just use it like the fvadwav.c in examples, I tried, it worked

hello, I try to use it to instead the vad mod in unimrcp, but build failed.can you give me some better suggest?


SVGMorph problems

I am having real troubles with tthe morphing, here is a link: https://codepen.io/xyndra/pen/LYeWOvN

Reading and understanding the demo/docs is key, I suggest not skipping it next time.

I have now edited the code pen and removed the sub-shapes from the sun(all in all making it two single shapes), and it still doesn't work(I am sorry if I overlooked a step, I am a bit to stupid for the docs)

import KUTE from<EMAIL_ADDRESS>
const sunToMoon = KUTE.fromTo(
      "#sun",
      { path: "#sun" },
      { path: "#moon" },
      { duration: 1000 });
const moonToSun = KUTE.fromTo(
      "#sun",
      { path: "#moon" },
      { path: "#sun" },
      { duration: 1000 });
sunToMoon.chain(moonToSun);
moonToSun.chain(sunToMoon);

async function test() {
  sunToMoon.start()
}

test();

This works for me, but you need to fix your paths, something is wrong.

ok, thanks a lot

I found the problem! The morph precision was much to low


make HARK less "verbose" -- introduce logger

…with variable configuration levels. Fixes #283
The way you can change the verbosity level at the top of a notebook is now, e.g.:
import HARK.logger as logger
logger.verbose()

or
import HARK.logger as logger
logger.quiet()

I've shown this at the top of one of the example notebooks to demonstrate.
This PR so far only introduces the logger's functionality for the PerfForesightConsumerType and IndShockConsumerType, which have implemented checkConditions() methods.
If the design passes review, I can change other print statements to logging.info statements.

I probably missed this conversation regarding this but shouldn't
import HARK.logger as logger

be used in ConsIndShockModel.py?
Users should use something like
IndShockConsumerType(verbose=True)

instead of creating a "global" loggers while creating an example/notebook?

@MridulS No, I don't think so.
In this, PR, ConsIndShockModel.py imports logging, and then uses logging.info, logging.warning, or logging.debug instead of print statements.
This effectively puts the logging module, which is a Python standard library, as an intermediary between these statements and STERR. (With a little more sophisticated tuning, it could pipe these messages to STOUT, but this is the simplest implementation currently.)
This is done "globally" because that's the simplest implementation. If we needed something more complex, we could do it. But that would require more expressing logging configuration.
I think it's not smart to have verbosity be a model parameter.
Logging configuration should be done at the global level because really it's a configuration of the Python environment's I/O. Specifically, the O. Trying to patch it through the program logic creates a lot of messy interaction between model, controller, and view logic. It's harder to maintain and makes it difficult to give the user the ability to turn verbosity on or off.

Oh, hmmm. @MridulS you might be right about something actually.
Really, it depends on what the default behavior. This is disputed. See #699

I'll add the logger to the init file as per this PR from Mridul
https://github.com/pymc-devs/pymc3/pull/1416/files

In the latest commit to this PR, the logging configuration is moved to HARK.__init__
Now this code is executed when HARK packages are imported.
For library code, the HARK logger needs to be invoked explicitly. I.e.:
from HARK import _log

_log.info("An informative message")

The HARK user does not need to do anything extra to run this code! This is good.
However: in the current PR:

Most (but not all) of the checkConditions messages are at the INFO level
This INFO level is logged to the user by default for HARK.
checkConditions is run automatically before solve() is called.

This means that for the current PR, the user will automatically see the checkConditions() messages.
This I believe satisfies the requirements of #283 but contradicts #699
This looks like a difference of opinion between @mnwhite and @llorracc and I defer to their consensus on the final implementation.

I need to check the boolean flags for verbosity the default dictionaries; there is no disagreement otherwise.

This is superseded by #714


Config bug

Whenever I set any configurable options to false, such as restartOnPushState or restartOnRequestAfter, their default value is used instead.
I think it's line 48 of /index.js
I'm not sure of the best approach, but I fixed it temporarily by changing line 48 to:
_paceConfig[key] = baseConfig.pace.hasOwnProperty(key) ? baseConfig.pace[key] : _defaultPaceConfig[key];

I submitted a PR to fix this, but have not heard anything from the author yet.

@williamhector @andybluntish Thanks a lot for the https://github.com/vectart/ember-cli-pace/pull/3 pull request, it's merged and 0.0.13 version is deployed to NPM. Please let me know, if something else might be improved!


Seed timeout

Saw this in my console:

2016-04-06 10:28:14+0100 [Server] [ERROR] failed to query seed: timed out

Just checking does your ob.cfg have these entries:
[LIBBITCOIN_SERVERS]
mainnet_server1 = tcp://libbitcoin1.openbazaar.org:9091
mainnet_server3 = tcp://libbitcoin3.openbazaar.org:9091

@seigneur I'm talking about seeds, no LibBitcoin servers.
[MAINNET_SEEDS]
mainnet_seed2 = seed2.openbazaar.org:8080,8b17082a57d648894a5181cb6e1b8a6f5b3b7e1c347c0671abfcd7deb6f105fe
mainnet_seed3 = seed.obcentral.org:8080,f0ff751b27ddaa86a075aa09785c438cd2cebadb8f0f5a7e16f383911322d4ee

Those are both down for me.

same here:
Exception : No UPnP device discovered
[Server] [ERROR] failed to query seed: timed out
I'm behind a firewall with NAT. I exposed the ports


On hold while building CSS::Selectors

CSS::Selectors is in turn banked up behind a LibXML port.
I think this module may need a basic dom/rendering-tree to work properly, and be useful, so parked at the moment.

Unreleased CSS selectors now exists as part of the CSS module (under construction).
Have also since released LibXML. Can possibly use that to represent the DOM.
Have also twigged realized that PDF does have its own standard tree structure for representing content in the form of tagged PDF. So will likely use that to get tagged PDF and rendering working in one go.
Tagged PDF does seem to be unrepresented in many of the more mature APIs, but if used well, does result in higher qualify PDFs for such things as E Readers where reflow/resizing etc are desirable.

Also planning to make use of CSS::TagSet::TaggedPDF and PDF::Tags to make styling tag-aware.
This will be a good incentive to construct tagged PDF files, as the API user gains automatic styling when using tags. Also, this has an HTML like familiarity.
First cut at revised API:
$page.graphics: -> $gfx {

    $root.Header1: $gfx, {
        .&style('Marked Level 1 Header', :text-position[50, 120);

    $root.Paragraph: $gfx, {
        .&style('Marked paragraph text', :text-position[50, 100]);
    };

    # add a marked image
    my PDF::XObject::Image $img .= open: "t/images/lightbulb.gif";
    $root.Figure: $gfx, { .&style($img) }, :Alt('Incandescent apparatus');

}

That's it. The revised API know what styles to apply and when to break lines (using .print(...:nl) or .say(...)) for 'display:block'. Also whether it dealing with text or xobjects

Snippet from actual landed API:
my CSS::TagSet::TaggedPDF $styler .= new;
my PDF::Tags $tags .= create: :$pdf, :$styler;
my PDF::Tags::Elem $doc = $tags.Document;

# add tagged/styled header text
my PDF::Tags::Elem $header = $doc.Header1;
my $elem = $body.element: :text("Tagged/Styled PDF Demo"), :tag($header);
note $elem.css; # display:block; font-size:2em; font-weight:bolder; margin-bottom:0.67em; margin-top:0.67em; unicode-bidi:embed;
.render($page.gfx, 10, 750) with $elem;

# add tagged/styled figure image
my PDF::Tags::Elem $figure = $doc.Figure: :Alt("light bulb");
my Str $image = "t/images/snoopy-happy-dance.jpg";
my CSS::Properties() $css = "padding:2px; border:1px dashed red; opacity:0.5";
my $image-elem = $body.element(:$image, :tag($figure), :$css);
.render($page.gfx, 10, 550) with $image-elem;

So, breaks things down into creating tags and styling elements, which is slightly longer but a bit more explicit.

Module has landed as CSS rather than CSS::Selectors. Currently just using CSS::Font::Resources.


Intermittent permissions errors from multiple GHA runs on self-hosted runners

Describe the bug
On multiple GHA workflow runs, occasionally we see permissions errors when the worker attempts to clean up its /runner/_work directory.
2021-08-09T22:15:11.2384401Z [command]/usr/bin/git config --local --get remote.origin.url
2021-08-09T22:15:11.2413148Z https://github.com/org/repo
2021-08-09T22:15:11.2427272Z ##[group]Removing previously created refs, to avoid conflicts
2021-08-09T22:15:11.2431002Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2021-08-09T22:15:11.2462004Z HEAD
2021-08-09T22:15:11.2472613Z [command]/usr/bin/git rev-parse --symbolic-full-name --branches
2021-08-09T22:15:11.2503865Z ##[endgroup]
2021-08-09T22:15:11.2505886Z ##[group]Cleaning the repository
2021-08-09T22:15:11.2507411Z [command]/usr/bin/git clean -ffdx
2021-08-09T22:15:11.2604862Z warning: failed to remove .pytest_cache/v/cache/stepwise: Permission denied
2021-08-09T22:15:11.2606855Z warning: failed to remove .pytest_cache/v/cache/nodeids: Permission denied
2021-08-09T22:15:11.2608515Z warning: failed to remove .pytest_cache/README.md: Permission denied
2021-08-09T22:15:11.2609874Z warning: failed to remove .pytest_cache/.gitignore: Permission denied
...
2021-08-09T22:15:11.4287979Z ##[endgroup]
2021-08-09T22:15:11.4295434Z ##[warning]Unable to clean or reset the repository. The repository will be recreated instead.
2021-08-09T22:15:11.4310445Z Deleting the contents of '/runner/_work/org/repo'
2021-08-09T22:15:11.4321152Z ##[error]Command failed: rm -rf "/runner/_work/org/repo/.pytest_cache"
rm: cannot remove '/runner/_work/org/repo/.pytest_cache/v/cache/stepwise': Permission denied
rm: cannot remove '/runner/_work/org/repo/.pytest_cache/v/cache/nodeids': Permission denied
...

Checks

[x ] My actions-runner-controller version (v0.x.y) does support the feature
[ ] I'm using an unreleased version of the controller I built from HEAD of the default branch

To Reproduce
Steps to reproduce the behavior:

Create a self-hosted runner for a repo, preferably one with several jobs
Trigger multiple jobs so they queue up
At some point, at least for us, one of the jobs will error, usually on the first step or two, on permissions

Expected behavior
I would expect we could queue up these jobs and they would be able to clean themselves without permissions errors.
Environment (please complete the following information):

Controller Version = 0.18.2
Deployment Method = Kustomize

The example I was able to reproduce here mentions being unable to clean up pycache, but I've seen this error in a couple of other plugins, namely the asdf plugin, so we don't think it has anything to do with pycache in particular. We've seen the error in several of our repos also, so it's not isolated to the repo that produced these logs either.
It seems like the runners at times anyway are not restarting with a clean slate. I'm having a heck of a time getting any more information that might be useful, but I will update this if I find out anything else. Please let me know if there's anything you would like me to add to this issue that might help you track down the problem.

This is unlikely to be a actions-runner-controller issue, https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging I doubt it but does enabling the debug logs help at all for finding more information? Do you download these files at all via the actions/download-artifact action? They do not guarantee permisisons are maintained https://github.com/actions/download-artifact#permission-loss. If you investigate the permisisons on the files e.g. ls -al what do they look like?

We don't use actions/download-artifact directly. The two most common actions we see the failure are actions/checkout@v2 and<EMAIL_ADDRESS>but they are also usually the first two steps that get executed in any of our workflows. The ephemeral nature of the runner pods is making it difficult to get a good look at the failed actions once they happen. I will try adding a ls -la step to the test workflow prior to the two aforementioned actions. I will also look into enabling debug logs and I will get back to you with any more information.

I was able to reproduce the permissions error I mentioned that's related to the asdf-vm action. I attached a sanitized version of the log output with debug enabled.
2021-08-11T18:49:23.6895824Z Cloning asdf into ASDF_DIR: /home/runner/.asdf
2021-08-11T18:49:23.6962088Z [command]/usr/bin/git clone --depth 1 --branch master https://github.com/asdf-vm/asdf.git /home/runner/.asdf
2021-08-11T18:49:23.7027628Z fatal: destination path '/home/runner/.asdf' already exists and is not an empty directory.
2021-08-11T18:49:23.7074810Z ##[error]Action failed with error Error: The process '/usr/bin/git' failed with exit code 128

This one seems to be complaining about /home/runner and not the main /runner/_work directory. Is the ASDF_DIR correct there or should I change it to /runner/_work?
I had added a ls -la /runner/_work as a step previous to this one, but apparently it's not the directory that's related. Here are some output results of directory permissions after this was run, which means the runners have been reset at this time.
kubectl exec -it x k8s-test-runner-lcj26-4vj7h -c runner -- ls -la
total 4
drwxr-xr-x   1 root   root     67 Aug 11 19:17 .
drwxr-xr-x   1 root   root     67 Aug 11 19:17 ..
lrwxrwxrwx   1 root   root      7 Jul 23 17:35 bin -> usr/bin
drwxr-xr-x   2 root   root      6 Apr 15  2020 boot
drwxr-xr-x   3 root   root     20 Aug 11 19:17 certs
drwxr-xr-x   5 root   root    360 Aug 11 19:17 dev
-rwxr-xr-x   1 root   root   3652 Aug 11 15:43 entrypoint.sh
drwxr-xr-x   1 root   root     25 Aug 11 15:45 etc
drwxr-xr-x   1 root   root     20 Aug 11 15:44 home
lrwxrwxrwx   1 root   root      7 Jul 23 17:35 lib -> usr/lib
lrwxrwxrwx   1 root   root      9 Jul 23 17:35 lib32 -> usr/lib32
lrwxrwxrwx   1 root   root      9 Jul 23 17:35 lib64 -> usr/lib64
lrwxrwxrwx   1 root   root     10 Jul 23 17:35 libx32 -> usr/libx32
drwxr-xr-x   2 root   root      6 Jul 23 17:35 media
drwxr-xr-x   2 root   root      6 Jul 23 17:35 mnt
drwxr-xr-x   1 root   root     29 Aug 11 15:45 opt
dr-xr-xr-x 391 root   root      0 Aug 11 19:17 proc
drwx------   2 root   root     37 Jul 23 17:38 root
drwxr-xr-x   1 root   root     21 Aug 11 19:17 run
drwxrwxrwx   8 runner docker  244 Aug 11 19:17 runner
drwxr-xr-x   1 runner docker   21 Aug 11 15:45 runnertmp
lrwxrwxrwx   1 root   root      8 Jul 23 17:35 sbin -> usr/sbin
drwxr-xr-x   2 root   root      6 Jul 23 17:35 srv
dr-xr-xr-x  13 root   root      0 Aug  9 18:45 sys
drwxrwxrwt   1 root   root    128 Aug 11 19:17 tmp
drwxr-xr-x   1 root   root     45 Aug 11 15:44 usr
drwxr-xr-x   1 root   root     41 Jul 23 17:38 var

kubectl exec -it k8s-test-runner-lcj26-4vj7h -c runner -- ls -la /home/runner
total 12
drwxr-xr-x 1 runner runner   39 Aug 11 19:17 .
drwxr-xr-x 1 root   root     20 Aug 11 15:44 ..
-rw-r--r-- 1 runner runner  220 Aug 11 15:44 .bash_logout
-rw-r--r-- 1 runner runner 3771 Aug 11 15:44 .bashrc
-rw-r--r-- 1 runner runner  807 Aug 11 15:44 .profile
-rw-r--r-- 1 runner runner    0 Aug 11 19:17 .sudo_as_admin_successful

kubectl exec -it k8s-test-runner-lcj26-4vj7h -c runner -- ls -la /runner/_work
total 0
drwxrwxrwx 2 runner docker   6 Aug 11 19:17 .
drwxrwxrwx 8 runner docker 244 Aug 11 19:17 ..

The ephemeral nature of the runner pods is making it difficult to get a good look at the failed actions once they happen.

https://github.com/actions-runner-controller/actions-runner-controller#additional-tweaks
You can set ephemeral: false in the spec to prevent the pod being restarted which might allow you to investigate further if you can also reproduce the issue

@toast-gear Thanks for the tip! I will try it out. I did end up adding ls -la /home/runner as a first step in all my test jobs that use asdf and I was able to verify that on a runner that should have restarted (default configuration ephemeral: true), I see that /home/runner/.asdf is indeed present on the jobs that end up failing at the asdf step.
Here's a snippet of the relative parts of the log output that hopefully shows what I mean:
2021-08-11T22:12:15.3359378Z ls -la /home/runner
...
2021-08-11T22:12:15.3477389Z total 16
2021-08-11T22:12:15.3478994Z drwxr-xr-x  1 runner runner   52 Aug 11 22:11 .
2021-08-11T22:12:15.3479983Z drwxr-xr-x  1 root   root     20 Aug 11 15:44 ..
2021-08-11T22:12:15.3480953Z drwxr-xr-x 16 runner runner 4096 Aug 11 22:11 .asdf
2021-08-11T22:12:15.3482167Z -rw-r--r--  1 runner runner  220 Aug 11 15:44 .bash_logout
2021-08-11T22:12:15.3483223Z -rw-r--r--  1 runner runner 3771 Aug 11 15:44 .bashrc
2021-08-11T22:12:15.3484275Z -rw-r--r--  1 runner runner  807 Aug 11 15:44 .profile
2021-08-11T22:12:15.3485441Z -rw-r--r--  1 runner runner    0 Aug 11 22:10 .sudo_as_admin_successful
....
2021-08-11T22:12:15.3746395Z ##[group]Run asdf-vm/actions/install@707e84f3ee349548310aeabdad0dd3bfcb9b69fa
2021-08-11T22:12:15.3747272Z with:
2021-08-11T22:12:15.3747737Z   asdf_branch: master
...
2021-08-11T22:12:15.4478708Z Cloning asdf into ASDF_DIR: /home/runner/.asdf
2021-08-11T22:12:15.4523228Z [command]/usr/bin/git clone --depth 1 --branch master https://github.com/asdf-vm/asdf.git /home/runner/.asdf
2021-08-11T22:12:15.4577431Z fatal: destination path '/home/runner/.asdf' already exists and is not an empty directory.
2021-08-11T22:12:15.4618160Z ##[error]Action failed with error Error: The process '/usr/bin/git' failed with exit code 128

I have also experienced this issue and found the same results as @jslusher in my attempts to debug it.

@lucas-pate We're currently blocked rolling this out to our teams because of this bug. We have GHA using self-hosted runners for about 98% of our repos, but we have a "monolith" repo that is very involved about 6 separate jobs with every push) and this bug comes up on a regular enough basis that we're holding off until we can hopefully figure out a solution or workaround. One thought we had was to explicitly add a rm -rf /runner/_work/. and rm -rf /home/runner/.asdf step at the top of each job, but it's not ideal of course.

Hey! Thanks for reporting.

I was able to reproduce the permissions error I mentioned that's related to the asdf-vm action. I attached a sanitized version of the log output with debug enabled.

This one doesn't look like a permission error to me. Perhaps that's more like asdf-vm action's bug that it doesn't check for the existence of $HOME/.asdf before it does its own cache save?
https://github.com/asdf-vm/actions/blob/b797cb8027b273ade6b7701ba2b4ce5fd1d477cb/install/main.js#L1237-L1252
I.e. I think the asdf-vm action needs to be fixed so that it checks the existence of the directory referenced by asdfDir before committing to run git clone.

This one seems to be complaining about /home/runner and not the main /runner/_work directory. Is the ASDF_DIR correct there or should I change it to /runner/_work?

As I said above, my theory says this is more like a asdf-vm bug 🤔 In other words, I don't have any theory that says changing it to use /runner or /runner/_work fix the issue.

For the original issue of permission errors you've encountered, I guess that one of the causes might be due to the instability of --once flag. The flag is provided by actions/runner and used by actions-runner-controller to configure a runner as ephemeral.
And the flag is considered experimental and known to have race issues that it ends up running two or more jobs before terminating even though the expected behavior of an ephemeral runner is to run only one job.
As long as each ephemeral runner runs the job only once, there should be no need to clean /runner/_work dir at all.
FWIW, https://github.com/actions-runner-controller/actions-runner-controller/issues/466 is one of outcomes of the race issue. And we, actions-runner-controller maintainers and GitHub, are currently testing the new --ephemeral flag as part of https://github.com/actions-runner-controller/actions-runner-controller/issues/697 so that there's no race issue anymore.

To be clear, I don't think actions/runner nor actions-runner-controller is responsible for cleaning up $HOME. It should be each plugin's responsibility to use $HOME correctly.
Here's where actions/runner runs git clean and rm -rf for a clean up. It looks to target the runner dir only, not $HOME:
https://github.com/actions/runner/blob/be9632302ceef50bfb36ea998cea9c94c75e5d4d/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs#L188-L207

@lucas-pate What were the exact error messages you've encountered?
To me Permission denied errors and asdf errors are completely different things from completely different sources, and I'm interested in which one you're seeing.

I've looked back through the workflows, and I was unable to find the exact error message. I'm sure that mine didn't reference an asdf directory. I'll try to reproduce the issue.

@mumoshu Thank you for the details on the issue.

This one doesn't look like a permission error to me. Perhaps that's more like asdf-vm action's bug that it doesn't check for the existence of $HOME/.asdf before it does its own cache save?

Although the error isn't permissions-based exactly, I still think it's caused by the same race condition as the other action's permissions errors. I'm guessing that the asdf-vm action is not accounting for the race condition like the other actions.

And we, actions-runner-controller maintainers and GitHub, are currently testing the new --ephemeral flag as part of #697 so that there's no race issue anymore.

Do you have any idea when we should expect this fix to be in place? I was thinking of putting a couple of initial steps in my workflows that would remove anything leftover in /runner/_work and /home/runner/ before running the job, but if the race condition will be fixed soon enough I'll just wait. Thanks again!

@jslusher Hey!

I'm guessing that the asdf-vm action is not accounting for the race condition like the other actions.

To be clear, I still believe it's a bug in asdf-vm action.
actions/runner doesn't seem to be responsible for cleaning up /home/runner and not all actions use /home/runner. It might be the case that only asdf-vm in your workflow relies on /home/runner and it doesn't handle dirty /home/runner gracefully.

Do you have any idea when we should expect this fix to be in place?

Sry but I don't know. Only the god may know...
My theory is that if you use ephemeral: false today, permissions errors on /runner/_work might go away, but asdf-vm errors on /home/runner persists. Then the only workaround you would need would be to clean up /home/runner leftovers on each run.
Have you tried

Do you have any idea when we should expect this fix to be in place? I was thinking of putting a couple of initial steps in my workflows that would remove anything leftover in /runner/_work and /home/runner/ before running the job, but if the race condition will be fixed soon enough I'll just wait. Thanks again!

@jslusher FYI I saw the latest comment on https://github.com/actions/runner/pull/660 is saying Septermber. Obviously we're not GitHub employees so we have no idea if they will hit that date or if priorities will shift but that's the expectation they are setting atm.

@mumoshu I tried setting ephemeral: false on our test cluster and I haven't been able to reproduce either of the issues I posted here in the earlier comments. This is a little confusing to me because I was under the impression that those issues were being cause by a runner not getting restarted and therefore leaving files behind from previous jobs, and I would assume setting ephemeral: false would do the same thing. For my knowledge, can you explain why this might fixed the problem? Also thanks!


Adding Seldon Go Operator

Seldon Core is an open source machine learning orchestration and deployment framework built on Kubernetes with integrations to popular ML frameworks (e.g. Tensorflow, Sklearn, etc).
We recently launched the Seldon Go Operator, which is now in production orchestrating machine learning deployments. We would like to submit a PR to add Seldon as a Community Operator. Our operator was initially built with Kubebuilder so it had a different structure, but it seems we have now added the structural changes required for this to work with the operator-sdk command.
We have made relevant changes to our Seldon Go Operator to make sure it can be aligned, in order to test it with the operator-sdk you can pull the operatorhub_scorecard branch in a fork of our operator: https://github.com/axsauze/seldon-operator/tree/operatorhub_scorecard.
Right now we are experiencing a segfault when running the scorecard command. To reproduce you can run the following command from the top level directory:
operator-sdk scorecard --cr-manifest config/crds/machinelearning_v1alpha2_seldondeployment.json --csv-path ./seldonoperator.0.1.2.clusterserviceversion.yaml

You will actually be able to see that the seldon operator is started and terminated:
kubectl get pods -w
NAME                                   READY   STATUS    RESTARTS   AGE
seldon-operator-controller-manager-0   1/1     Running   1          43s
seldon-operator-controller-manager-0   1/1     Terminating   1          60s

Here is the seg fault error mentioned above:
donoperator.v1alpha2.clusterserviceversion.yaml
WARN[0000] Could not load config file; using flags
Running for cr: config/crds/machinelearning_v1alpha2_seldondeployment.yaml
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x1820aac]

goroutine 1 [running]:
github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/apis/meta/v1.(*ObjectMeta).GetNamespace(...)
        ~/go/src/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go:131
github.com/operator-framework/operator-sdk/internal/pkg/scorecard.getProxyLogs(0x0, 0x0, 0x0, 0x0, 0x0)
        ~/go/src/github.com/operator-framework/operator-sdk/internal/pkg/scorecard/resource_handler.go:374 +0x1bc
github.com/operator-framework/operator-sdk/internal/pkg/scorecard.(*WritingIntoCRsHasEffectTest).Run(0xc000878370, 0x209a6c0, 0xc0000560d0, 0x1)
        ~/go/src/github.com/operator-framework/operator-sdk/internal/pkg/scorecard/basic_tests.go:144 +0x82
github.com/operator-framework/operator-sdk/internal/pkg/scorecard.(*TestSuite).Run(0xc00063c5b0, 0x209a6c0, 0xc0000560d0)
        ~/go/src/github.com/operator-framework/operator-sdk/internal/pkg/scorecard/test_definitions.go:102 +0x95
github.com/operator-framework/operator-sdk/internal/pkg/scorecard.runTests(0x0, 0x0, 0x0, 0x0, 0x0)
        ~/go/src/github.com/operator-framework/operator-sdk/internal/pkg/scorecard/scorecard.go:291 +0x2d0b
github.com/operator-framework/operator-sdk/internal/pkg/scorecard.ScorecardTests(0xc0003eb680, 0xc0004b4b00, 0x0, 0x4, 0x0, 0x0)
        ~/go/src/github.com/operator-framework/operator-sdk/internal/pkg/scorecard/scorecard.go:382 +0x8a
github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra.(*Command).execute(0xc0003eb680, 0xc0004b4ac0, 0x4, 0x4, 0xc0003eb680, 0xc0004b4ac0)
        ~/go/src/github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra/command.go:762 +0x465
github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc0000fcc80, 0x2053500, 0xc0003ca200, 0x0)
        ~/go/src/github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra/command.go:852 +0x2ec
github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra.(*Command).Execute(...)
        ~/go/src/github.com/operator-framework/operator-sdk/vendor/github.com/spf13/cobra/command.go:800
main.main()
        ~/go/src/github.com/operator-framework/operator-sdk/cmd/operator-sdk/main.go:80 +0x4ce

To update this issue, the Seldon operator has been merged through #395 and currently a new PR was submitted to finalise this submission by adding the Seldon opertor into the community-operators folder.

Pull request has been added and approved for Seldon Community Operator https://github.com/operator-framework/community-operators/pull/447.

How did you resolve the segfault issue?

The CSV was modified to have the fields it has now (sitting in master under community-operators/seldon-operator). These changes avoided seeing this segfault.


msctl: cannot fork - thread limit?

Hi there,
we have set up a bungeecord proxy and 4 spigot v1.15.2 servers on a debian 10 vps. They seem to run fine for a while but after a day or two and seemingly after throwing "mscs restart world1 world2 world3 world4" we get errors like these each time we try to use any mscs other command.
/usr/local/bin/msctl: 595: /usr/local/bin/msctl: Cannot fork
/usr/local/bin/msctl: 603: /usr/local/bin/msctl: Cannot fork

and the last minecraft server that tried to start throws
[0,063s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached

We have read so far that it should be either a process, or a memory limit. memory is fine, 7 out of 16GB used. We tried upping the process limit by setting DefaultTasksMax=infinity in /etc/systemd/system.conf and raised other ulimits on the fly (ulimit -l, -u and -n to unlimited) but it doesn't help.
Any idea how to find out what limit we run into and how to raise it (or how to fix the cause if the limits should never be reached under normal circumstances)?

I would guess you are running out of memory on your VPS from the error messages you have shown, even though you think it is fine. Some VPS vendors will allocate you a lower limit than stated as dedicated memory, and the remainder as burst. If the system your VPS is on is oversold, that burst memory may not be available.  I would check with your hosting provider and ask about this.

@MrSlimbrowser: Hopefully you were able to figure out the issue with your VPS.  I am going to close this issue, but feel free to reopen it if necessary.


"the class has no constructor" for an inner class

I have two programs that should take almost the same command-line arguments.
I thought to make the two different functionalities "subcommands" in the picocli sense.
So that each can observe the effects of command-line arguments passed to the main program, I made each subcommand an inner class (that is, a non-static nested class) of the main program.  However, at run time picocli gives me the error "the class has no constructor" (see program and stack trace below).  The class does have a zero-parameter constructor, but in the bytecode the <init> method has a parameter to which the enclosing class must be passed as an argument.  Can picocli accommodate this?
More generally, what is a way to permit two different programs to accept mostly the same command-line arguments, which may be passed before or after the subcommand name (whichever the user prefers)?
Here is the picocli stack trace:
picocli.CommandLine$InitializationException: Cannot instantiate Main$MergeDriver: the class has no constructor
	at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5689)
	at picocli.CommandLine$Model$CommandUserObject.getInstance(CommandLine.java:12273)
	at picocli.CommandLine$Model$CommandSpec.userObject(CommandLine.java:6441)
	at picocli.CommandLine$Interpreter.clear(CommandLine.java:13530)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:13576)
	at picocli.CommandLine$Interpreter.processSubcommand(CommandLine.java:13915)
	at picocli.CommandLine$Interpreter.processArguments(CommandLine.java:13811)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:13597)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:13565)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:13460)
	at picocli.CommandLine.parseArgs(CommandLine.java:1552)
	at picocli.CommandLine.execute(CommandLine.java:2173)
	at org.plumelib.merging.Main.main(Main.java:24)
Caused by: java.lang.NoSuchMethodException: org.plumelib.merging.Main$MergeDriver.<init>()
	at java.base/java.lang.Class.getConstructor0(Class.java:3585)
	at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2754)
	at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5660)
	at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5687)
	... 12 more

Here is the program:
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;

/** Acts as a git merge driver or merge tool. */
@Command(
    name = "plumelib-merge",
    subcommands = {Main.MergeDriver.class, Main.MergeTool.class, CommandLine.HelpCommand.class},
    description = "Acts as a git merge driver or merge tool.")
public class Main {

  /** If true, merge adjacent. */
  @Option(names = "--adjacent")
  public boolean adjacent = false;

  /**
   * Acts as a git merge driver or merge tool.
   *
   * @param args the command-line arguments
   */
  public static void main(String[] args) {
    int exitCode = new CommandLine(new Main()).execute(args);
    System.exit(exitCode);
  }

  /**
   * Does the actual work of merging.
   *
   * @param ms a merge state
   * @return int the status code indicating success or failure
   */
  private int mainHelper(Object ms) {
    // All the business logic is here.
    System.out.println(ms);
    return 0;
  }

  ///////////////////////////////////////////////////////////////////////////
  /// Subcommands (implemented as non-static inner classes)
  ///

  /** Acts as a git merge driver. */
  @Command(name = "driver", description = "Acts as a git merge driver")
  public class MergeDriver implements Runnable {

    /** Creates a MergeDriver. */
    public MergeDriver() {}

    @Override
    public void run() {
      Object ms = new Object();
      mainHelper(ms);
    }
  }

  /** Acts as a git merge tool. */
  @Command(name = "tool", description = "Acts as a git merge tool")
  public class MergeTool implements Runnable {

    /** Creates a MergeTool. */
    public MergeTool() {}

    @Override
    public void run() {
      Object ms = new Object();
      mainHelper(ms);
    }
  }
}

Thanks in advance for your help.

Hi @mernst !
Yes this is possible, you need to use a factory that passes the enclosing instance to the constructor of the inner class.
I have used this in testing:
src/test/java/picocli/InnerClassFactory.java
Can you give this a try?

@mernst Did that help?

I found the example a bit complex.  I ended up changing the command line interface to prohibit arguments before the subcommand (and changing clients), plus some large code refactorings to accommodate picocli's preferred programming model.  This works well enough.  Thanks!


Design method to add a new faculty user with an expertId

New faculty users can login to AE resulting in a keycloak user record with appropriate IDs

This is already in place.  On the next iteration, we can verify that this is working correctly, if we get any new senate members.


More gracefully handle exceeding the API limit.

I've started using other tools that use SESSIONID, alongside Procurement.  They don't play well together.  This is an initial stab at making Procurement work better when it unexpectedly encounters 429 errors from the GGG API.

 Would recquire a bit of a rework but I think it would be worth it in the longer term.
I had a stab at it but I got distracted xD
See: https://github.com/aydjay/Procurement/tree/poly

The responses and request restrictions around the trade API have changed significantly since we last updated it in Procurement, details here.
If we're going to refactor Procurement's throttling code, then I'd like to take this into account since we can now actually know up front if we should throttle back or not.

If I'm not mistaken, those rate-limiting headers are for the trade API, which appears to be separate from the stash/inventory requests Procurement makes.
On the other hand, Procurement handles the current rate limits well; that is, our current values are still the most aggressive we can be without getting throttled. (I have been using this PR locally, and when I have another tool make API requests at the same time Procurement is, Procurement is throttled very quickly and reliably, which means Procurement fully utilizes the allowed request limits, but is never throttled when running by itself.)

@Stickymaddness , could we merge this PR?  I know there are additional, more complex, features we could add to the throttler, but this is a simple code change that greatly improves Procurement's behavior in cases where it does go over the API limit (which, as I said, does not happen during the normal operation of Procurement in isolation).


Extraction bug in points-free style type abbreviations

Extracting this with --codegen OCaml fails with
Error: Unexpected error; please file a bug report, ideally with a minimized version of the source program that triggered the error.
Substitution must be fully applied: instantiation of %A failed; got %A

module Test
type t (i:nat) = unit
type s = t
let f (x: s 0) = ()

For reference, the workaround is to η-expand the type.

This comes up very regularly ... we should fix it quickly

This failure also happens in a possibly unrelated case:
module Essai
noeq type class' : (carrier: Type0) -> Type u#1 =
| Class:
  (carrier: Type0) ->
  (b: bool) ->
  (ancestor_carrier: (squash (b == true) -> Tot Type0)) ->
  (ancestor_class: (squash (b == true) -> Tot (class' (ancestor_carrier ())))) ->
  class' carrier

With fstar.exe --lax --codegen OCaml Essai.fst, extraction fails with the following error message:
Unexpected error; please file a bug report, ideally with a minimized version of the source program that triggered the error.
Failure("Substitution must be fully applied (see GitHub issue #490)")
However, extraction succeeds if I replace Type0 with nat.

Another case where extraction fails with the same message: I am trying to define a typeclass-like structure packaging some operators and predicates, and an invariant packaging lemmas about these operators and predicates, as follows:
module Es2
noeq type class: Type u#1 = | Class: (preserved: (nat -> GTot Type0)) -> class
noeq type class_invariant (c: class) : Type0 = {
  preserved_always: (
    (i: nat) ->
    Lemma
    (requires True)
    (ensures (Class?.preserved c i))
  );
}
let lemma_preserved_always (c: class { class_invariant c} ) (i: nat) : Lemma
  (requires True)
  (ensures (Class?.preserved c i))
= Squash.bind_squash #(class_invariant c) #(Class?.preserved c i) ()
    (fun (j: class_invariant c) -> j.preserved_always i)

This example fails to extract (when trying to extract lemma_preserved_always), with the same error message.
Replacing the type of preserved_always with forall instead of a function does not help, extraction still fails with the same error message.

How to localize the problematic type? Could the failure message include a source location?

The source of the error can be hard to locate. Without any debug flags, the last output lines look something like:
Extracted module M
Unexpected error; please file a bug report, ideally with a minimized version of the source program that triggered the error.
Failure("Substitution must be fully applied (see GitHub issue #490)")

This could be misleading as the problem is certainly not in module M but the module extracted just after it. Say it's module N; the flags --debug_level Extraction --debug N will produce much more detailed information that can help locate the problematic code.

We are still struggling to debug instances of this bug in mitls-fstar extraction. A patch that tells us where to look at would be very helpful.

The two examples reported by @tahina-pro are unrelated to the points-free style.
Renaming this issue to reflect what remains to be solved.

I fixed this during last week's bug squash day. It should work now, including Tahina's examples.
Would be great if folks reporting issues from mitls etc. can confirm that this is indeed no longer an issue in their code so we can close this.

AFAICT, this hasn't popped up, closing.


[FEATURE] Different replica scheduling strategies

Is your feature request related to a problem? Please describe
Right now, where to schedule replicas depends on the existing implicit rules instead of obvious specific/tunable strategies, so users don't have ways to decide the scheduling strategies except node tags, node/disk scheduling, etc.
There are some discussions at https://github.com/longhorn/longhorn-manager/pull/1397#pullrequestreview-1037016789, so it's good to see what strategies are valuable to design.
Describe the solution you'd like
Have different replica scheduling strategies based on some conditions like the number of replicas, available disk space, etc.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
cc @c3y1huang @derekbit @shuo-wu

Use https://github.com/longhorn/longhorn/issues/5149 instead.