[WFLY-10091] Check Java version before setting up GC logging

Jira: ~https://issues.jboss.org/browse/WFLY-10091~
https://issues.jboss.org/browse/WFCORE-3996

I don't see any regression on JDK8.
============================================
Once I start standalone with JDK10 with default settings and export GC_LOG="true", standalone prints to console logs this:
[0.007s][info][gc] Using G1
....
[1.089s][info][gc] GC(1) Pause Young (G1 Evacuation Pause) 34M->8M(64M) 7.700ms
[1.199s][info][gc] GC(2) Pause Young (G1 Evacuation Pause) 36M->11M(64M) 5.351ms
[1.249s][info][gc] GC(3) Pause Young (G1 Evacuation Pause) 41M->14M(64M) 2.678ms
[1.288s][info][gc] GC(4) Pause Young (GCLocker Initiated GC) 42M->16M(64M) 4.192ms
[1.346s][info][gc] GC(5) Pause Young (G1 Evacuation Pause) 44M->18M(64M) 3.945ms
[1.545s][info][gc] GC(6) Pause Young (G1 Evacuation Pause) 46M->19M(64M) 5.240ms
[1.717s][info][gc] GC(7) Pause Young (G1 Evacuation Pause) 46M->21M(77M) 5.348ms
[1.753s][info][gc] GC(8) Pause Young (G1 Evacuation Pause) 54M->23M(77M) 5.560ms

this is change of behaviour against JDK8, do we really want this?
===========================================
I test this with JDK10.

I start standalone and stop standalone
JDK10 creates JBOSS_HOME/standalone/log/gc.log (with detailed information) and JBOSS_HOME/standalone/log/gc.log.0 (with brief summary of gc logging)
I start standalone and stop standalone again
JDK10 moves original gc.log to gc.log.1
JDK10 keep original gc.log.0
JDK10 creates new gc.log (with detailed information) and gc.log.2 (with brief summary of gc logging)
I start standalone and stop standalone again
JDK10 keep original gc.log.0, gc.log.1, gc.log.2
JDK10 moves original gc.log to gc.log.3
JDK10 creates new gc.log (with detailed information) and gc.log.4 (with brief summary of gc logging)

I'm not sure, whether this behaviour is intuitive ...  can this behaviour be changed by some JDK settings?
Anyway, current mv commands may be revisited for JDK10, maybe removed.

https://github.com/chewiebug/GCViewer (build from develop branch) is unable to parse gc.log, gc.log.4 or both files together (from previous example). This is regression of behaviour against JDK8 gc logs, maybe caused by missing support on GCViewer side or by wrong WF-Core settings

@bmaxwell Seems that GC logging needs redesign, it's unusable in production on Java 9+ even with this PR
@msve @kabir fyi

Current rotation behaviour:

JDK10 creates gc.log (detailed information), and gc.log.1 (brief information).
Once gc.log needs to be larged that 3MB, current gc.log is archived to gc.log.2 and gc.log contains latest gc information.
Once there are more gc.log.1,2,3 and 4, gc.log.1 doesn't contains brief information anymore, but it contains detailed backuped gc information. In my PoV, this is not user-friendly too.

JDK10 gc logs are much more verbose against jdk8 gc logs (regression of behaviour against JDK8 too).

GCViewer currently support SOME JDK9+ loggging options. So not all of them.

Looks good @jmesnil & @kabir .

Can this JIRA be moved to WFCORE please and any commit messages and PR titles use the WFCORE JIRA? Thanks.
I realize this PR may be reworked.

Moved - https://issues.jboss.org/browse/WFCORE-3996

@marekkopecky I am not sure exactly what you are asking from @rstancel? I am just jumping in and am by no means a JDK 9 expert but I am good at googling ;) I believe you have two problems:

Too aggressive log rotation
Will my suggestion at https://github.com/wildfly/wildfly-core/pull/3403#pullrequestreview-144518989 help?

Log file format
A quick search comes up with https://dzone.com/articles/disruptive-changes-to-gc-logging-in-java-9 which says 'So, if you are using any custom scripts/tools to analyze GC logs, those scripts/tools will need to be enhanced to support this new format.'

Do we support GCViewer? What is the significance of not being able to use that? The latest release of GCViewer seems to be over a year old with little activity leading up to the release https://github.com/chewiebug/GCViewer/commits/1.35 - I believe this date was before JDK 9 was even released. There is more activity on the https://github.com/chewiebug/GCViewer/commits/develop branch, but I don't know if that is JDK 9 related or not.
CC @ropalka @jmesnil

pasting email content from Marek 2 days ago, you are in that thread guys :)
Sure,
top issues, based on priority/importance in QE PoV

JDK10 with settings from PR3403 [1] prints all GC logs to console, see first part of my comment [2]. This is regression against JDK8. This IO traffic can slowdown performance and can confuse console output.
weird naming of gc log files, can this be changed by GC settings? See the second part of [2]
mv commands needs to be revisited/fixed, see the third part of [2]
weird rotation, see first part of [5], related with 3.
JDK10 gc logs are much more verbose against jdk8 gc logs, can this be fixed by some JDK10 gc settings? See the second part of [5].
wrong gc-viewer behaviour, see [4]

I agree with Rostislav, wrong gc-viewer behaviour has the loweset priority in PR3403 issues [1] based on previous list
Marek
[1] https://github.com/wildfly/wildfly-core/pull/3403
[2] https://github.com/wildfly/wildfly-core/pull/3403#issuecomment-409109169
[3] https://github.com/wildfly/wildfly-core/blob/master/core-feature-pack/src/main/resources/content/bin/standalone.sh#L268-L273
[4] https://github.com/wildfly/wildfly-core/pull/3403#issuecomment-409111061
[5] https://github.com/wildfly/wildfly-core/pull/3403#issuecomment-409122973

@jamezp "logging" is your area, can you please look into this ? Especially log rotation point, also GC log items printed to console. A bit weird are those 2 log files, one with detailed information and one with brief summary.

I noticed in a few places we're executing java $some-args -version. What does everyone thing of an approach more like this https://github.com/wildfly/wildfly-core/compare/master...jamezp:WFCORE-3996.
The idea is to add a simple entry point to the launcher.jar that will return just the required GC and optional --add-modules java.se if required. I'm not too sure what the performance repercussions would be, but my guess is it wouldn't be all that bad.
I've test on Fedora and Windows with Java 9 only. On Fedora it worked on Java 8, 9, 10, 11 and a build of 12. I didn't test the ps1 scripts as I didn't change those yet.
Please note this was just a quick work up. We could use the same thing in other scripts to help with unifying things like -secmgr as well.

I should note the output when GC is enabled to the console is still a bit goofy, but we can take a deeper look at that if this approach seems okay.
jperkins@localhost ~/projects/jboss/wildfly/wildfly-core/build (WFCORE-3996) $ ./target/wildfly-core-6.0.0.Alpha6-SNAPSHOT/bin/standalone.sh
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /home/jperkins/projects/jboss/wildfly/wildfly-core/build/target/wildfly-core-6.0.0.Alpha6-SNAPSHOT

  JAVA: /usr/lib/jvm/java-10-openjdk-<IP_ADDRESS>-1.fc28.x86_64/bin/java

  JAVA_OPTS:  -server -verbose:gc -Xlog:gc:file=/home/jperkins/projects/jboss/wildfly/wildfly-core/build/./gc.log:time,uptimemillis:filecount=5,filesize=3M -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=com.yourkit,org.jboss.byteman -Djava.awt.headless=true

=========================================================================

[0.003s][info][gc] Using G1
11:45:10,926 INFO  [org.jboss.modules] (main) JBoss Modules version 1.8.5.Final
[0.524s][info][gc] GC(0) Pause Young (G1 Evacuation Pause) 24M->5M(64M) 5.054ms
11:45:11,212 INFO  [org.jboss.msc] (main) JBoss MSC version 1.4.2.Final
11:45:11,223 INFO  [org.jboss.threads] (main) JBoss Threads version 2.3.2.Final
11:45:11,336 INFO  [org.jboss.as] (MSC service thread 1-1) WFLYSRV0049: WildFly Core 6.0.0.Alpha6-SNAPSHOT starting
[0.744s][info][gc] GC(1) Pause Young (G1 Evacuation Pause) 15M->6M(64M) 4.099ms
[1.080s][info][gc] GC(2) Pause Young (G1 Evacuation Pause) 28M->8M(64M) 4.719ms
11:45:11,778 INFO  [org.wildfly.security] (ServerService Thread Pool -- 6) ELY00001: WildFly Elytron version 1.5.1.Final
11:45:11,900 INFO  [org.jboss.as.controller.management-deprecated] (Controller Boot Thread) WFLYCTL0028: Attribute 'security-realm' in the resource at address '/core-service=management/management-interface=http-interface' is deprecated, and may be removed in a future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
11:45:11,943 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
11:45:11,969 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.6.4.Final
11:45:11,977 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.6.4.Final
11:45:12,028 INFO  [org.jboss.remoting] (MSC service thread 1-7) JBoss Remoting version 5.0.8.Final
[1.466s][info][gc] GC(3) Pause Young (G1 Evacuation Pause) 34M->11M(64M) 11.121ms
11:45:12,084 INFO  [org.jboss.as.patching] (MSC service thread 1-4) WFLYPAT0050: WildFly cumulative patch ID is: base, one-off patches include: none
11:45:12,103 WARN  [org.jboss.as.domain.management.security] (MSC service thread 1-6) WFLYDM0111: Keystore /home/jperkins/projects/jboss/wildfly/wildfly-core/build/target/wildfly-core-6.0.0.Alpha6-SNAPSHOT/standalone/configuration/application.keystore not found, it will be auto generated on first use with a self signed certificate for host localhost
11:45:12,160 WARN  [org.jboss.as.domain.http.api.undertow] (MSC service thread 1-2) WFLYDMHTTP0003: Unable to load console module for slot main, disabling console
11:45:12,232 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
11:45:12,234 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://<IP_ADDRESS>:9990/management
11:45:12,234 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://<IP_ADDRESS>:9990
11:45:12,235 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Core 6.0.0.Alpha6-SNAPSHOT started in 1558ms - Started 85 of 88 services (23 services are lazy, passive or on-demand)

I think the main concern is WHAT to add and not really HOW to add.
Launcher idea was discussed on the mailing list, https://github.com/wildfly/wildfly-core/compare/master...jamezp:WFCORE-3996 shows a bit different approach where the launcher acts as a helper. I have no strong feelings about the helper approach, but we first need to know WHAT should be added.

That is a good point @rsvoboda. The what is definitely important. I'm honestly not sure what the original requirements were, but the article @kabir posted does seem to have a mapping between the settings so maybe we can use that to help a bit.
The only real thing I like about the launcher is it keeps the logic in one place so don't have to keep touching a minimum of 6 scripts if we need to change anything.

Another possible option I've thought of is we could move the settings, not the rotation logic just the VM arguments, into the standalone.conf. Then it would just need to be uncommented based on the Java version they're using.

I think this is what we want for the JAVA_OPTS on Java 9+
-Xlog:gc*:file=$JBOSS_LOG_DIR/gc.log:time,uptimemillis:filecount=5,filesize=3M

We need to remove the -verbose:gc which will stop the stderr output. We could also do something like:
-Xlog:gc*=$GC_LOG_LEVEL:file=$JBOSS_LOG_DIR/gc.log:time,uptimemillis:filecount=5,filesize=3M

which would default GC_LOG_LEVEL to info so if we need debug or trace it could be overridden without requiring a script change.

-Xlog:gc*=$GC_LOG_LEVEL is new feature, needs to be tracked in EAP7 + ranked

VM arguments in standalone.conf ... this file defines GC_LOG="true"/"false", this is the interface for the users, implementation is done in standalone.* scripts and not sure it should be exposed in .conf files

We definitely don't need the $GC_LOG_LEVEL part. It was just more of an idea in case we were missing something in the logs since they've changed. Something to avoid users having to change the scripts :)
My main concern is the scripts are already complicated and detecting the Java version in the scripts is making them more complicated. We're going to end up having to do the same for all the domain scripts too if we need to add the --add-modules=java.se argument. Granted that isn't part of this PR however this PR is setting precedence and it's something we need to consider IMO.

Where are we at with this? I know the tabs need to be changed into spaces. The *.sh scripts need to redirect stdout/stderr so they don't show up on the console and I think the batch scripts the quoting needs to be fixed.

I have taken latest updates from James and Richard and opened new PR. I have added fixes also from your comments. New PR can be found here: https://github.com/wildfly/wildfly-core/pull/3496
@jamezp @marekkopecky @rsvoboda FYI


regexp in _parse_release_file()

There are multiple issues with the current regexp (r'([^0-9]+)?(?: release )?([\d+.]+)[^(]*(?:(([\D]+)))?'):

Because of greedy matching, it does not strip out the "release" keyword (Ok, you strip it lateron).
It does not allow for distro names that happen to have a digit in name (not sure such distros currently exist, but excluding that seems to be an arbitrary restriction).
The version is restricted to contain just digits and the dot. Anything after the so defined version is dropped. E.g. suffixes with letters (e.g. "rc", "dev", "a") are dropped, or the hyphen.
The regexp does not allow for digits in the codename. Again, that seems to be an arbitrary restriction.

In addition, the current code does not handle the case where the regexp does not match.
Overall, the greedy matching makes it nearly impossible to come up with a regexp that resolves these issues, without introducing arbitrary restrictions. Parsing the reverse string gets greedy matching to work in the right direction:
    _release_version = re.compile(
        r'(?:\)(.*)\()? *([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)')
    m = _release_version.match(content[::-1])
    if not m:
        name = version = codename = ''
        # TODO: Maybe improve this way of handling non-matching
    else:
        name = m.group(3)[::-1]   # regexp ensures it is non-None
        version = m.group(2)[::-1]   # regexp ensures it is non-None
        codename = (m.group(1) or '')[::-1]   # may be None
    props = {
        'name': name,
        'version_id': version
        'codename': codename
    }
    return props

I wanted to be as restrictive as possible as I think making this to permissive can cause much harm.. but you've got me thinking this over and i'm implementing this.
One problem that I have with this, though, is codename. Take OpenSUSE for example, its first line in  /etc/SuSE-release in 42.1 is simply: "openSUSE 42.1 (x86_64)". x86_64 it not a codename. We can document that we're not responsible for weird things that come from non-standardized codenaming in release files.. or we can (since i'm not familiar with any distribution which has digits in its codenames), not allow this and if we ever stumble into such a situation, we'll modify the code.
We can also specifically restrict this when on openSUSE (as per what I intend to do in _set_distribution_properties)
What do you think?

Anyhow,  https://github.com/nir0s/ld/tree/various-fixes-and-optimizations contains the modified code for now. We should think this through, but I guess your solution is clearer.

solved in 0.2.0


Graphite 1.1.2 release

I'm going to release bugfix 1.1.2 release in a week or so. I backported all current patches to 1.1.x branch, so, that's a last call for adding more before release.

This can probably be closed. :)
Upgraded to 1.1.2 today and it seems much smoother!
Thanks guys :)

Cool, thanks for testing that, @wridgers !


Corrected text of error message ("you" to "Your")

Corrected text of error message:
"you project must be" to
"your project must be"
Also capitalised first two lines of error message.

Thanks! Looks good to me. Please rebase your commit before merging it.

In rebasing and renaming "master" to "main" (possibly quite ineptly) I caused the PR to automatically close. I will create a new PR now.


Close pool and all connections?

I'm trying to figure out a way to close the pool and all its connections but can't figure out a way. Is there no API for that or am I missing sth. obvious?

nvm, of course dropping the pool works – I was wondering why it didn't and of course there was a clone of the pool I didn't drop…


update goalcategory description

Docs Build status updates of commit bdf9e1d:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-InsufficientPermissionOnRepo] User eric-urban does not have sufficient permission on https://github.com/MicrosoftDocs/Advertising-docs repository. Hint: required permission 'Read', actual permission 'None'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@zgf - The necessary changes are covered by another commit here. Thanks


Fixes and improvements to pm policy

This PR addresses 2 issues:

Buggy implementation of the latency requests that result in incorrect max latencies allowed by the system
Fix implementation of the next event registration. Since the next event is not registered with the kernel timeout manager, the sleep will be incorrect.

I'll update the message and add more information about the error that happens!

While going through the policy_api tests I realized that I don't understand the usage of the latency APIs. So I have an example that should help clarify my question, and potentially might help close this PR without any changes.
Is the following usage correct?
static struct pm_policy_latency_request my_dummy_req;

static int my_dummy_thread(void *p1, void *p2, void *p3)
{
    struct my_dummy_msg msg;

    while (true) {
        k_msgq_get(&my_dummy_msgq, &msg, K_FOREVER);
        pm_policy_latency_request_update(&my_dummy_req, 2000);
        ...
        /* Do work that requires latency < 2ms */
        ...
        pm_policy_latency_request_update(&my_dummy_req, SYS_FOREVER_US);
    }
}

static int dummy_driver_init(const struct device *dev)
{
    k_thread_create(
        ...,
        my_dummy_thread,
        ...
    );

    /**
     * Add a latency request to be used by the thread
     */
    pm_policy_latency_request_add(&my_dummy_req, SYS_FOREVER_US);
}

Or do we want to remove the latency request each time till the next time we get a message? Seems inefficient to remove and add the latency from the list each time imho. However if the API is written that way, I guess I have no option but to conform to the design.
The problem I am trying to fix happens when I do pm_policy_latency_request_update(&req, SYS_FOREVER_US) and some other thread wants lower latency.

To add more information about the error for context. Following is the error that I observe.
Focusing on this snippet only:
		if ((new_max_latency_us == SYS_FOREVER_US) ||
		    ((int32_t)req->value_us < new_max_latency_us)) {
			new_max_latency_us = (int32_t)req->value_us;
		}

Thread A registers request with latency of 2ms
Thread B registers request with latency of SYS_FOREVER_US

The snippet runs for the request from thread A, new_max_latency_us is set to 2000.
The snippet runs for the request from thread B, new_max_latency_us is 2000 however the request from B is SYS_FOREVER_US(-1). Since -1 < 2000, new_max_latency_us is now set to SYS_FOREVER_US(-1).
At the end of update_max_latency() max_latency_cyc is set to -1

Now when pm_system_suspend() runs, pm_policy_next_state() it will think there are no latency requests, and put the device in the lowest power mode possible depending on the ticks it can sleep for.

@ceolin, do you have any idea? If not, could you tag someone who would know what the expected usage is?

To add more information about the error, following is what I observe.
Focusing on this snippet:
		if ((new_max_latency_us == SYS_FOREVER_US) ||
		    ((int32_t)req->value_us < new_max_latency_us)) {
			new_max_latency_us = (int32_t)req->value_us;
		}

Thread A registers request with latency of 2ms Thread B registers request with latency of SYS_FOREVER_US

The snippet runs for the request from thread A, new_max_latency_us is set to 2000.
The snippet runs for the request from thread B, new_max_latency_us is 2000 however the request from B is SYS_FOREVER_US(-1). Since -1 < 2000, new_max_latency_us is now set to SYS_FOREVER_US(-1).
At the end of update_max_latency(), max_latency_cyc is set to -1

Now when pm_system_suspend() runs, pm_policy_next_state() will think there are no latency requests, and put the device in the lowest power mode possible depending on the ticks it can sleep for.

Yep, that is definitely a bug, the fix looks correct to me. There are problem in the other commit, fix them and we are good have this pr in.

Hey @ceolin, I removed the second commit which was adding the next event subscription list in favour of propagating the next event through the kernel timer. I have added the information in the commit message. Please let me know if the commit message isn't clear enough!

Hey @ceolin, I removed the second commit which was adding the next event subscription list in favour of propagating the next event through the kernel timeout manager. I have added the information in the commit message. Please let me know if the commit message isn't clear enough!

That is not correct, this changes the purpose of the event. The event is about something t that will happen and will wake up the system. We use it to select a state that will be able respond that event in a timely manner.
What you are doing here is creating a new interruption re-programming the clock to wake the system in addition to the original event that will happen. Lets put this way, you application know that it will receive from serial every 10ms you use this event api to tell the policy not choose any power state that would cause problem to respond this interruption properly. The serial interruption will wake up the sysetem !

Hey @ceolin, I removed the second commit which was adding the next event subscription list in favour of propagating the next event through the kernel timeout manager. I have added the information in the commit message. Please let me know if the commit message isn't clear enough!

That is not correct, this changes the purpose of the event. The event is about something t that will happen and will wake up the system. We use it to select a state that will be able respond that event in a timely manner.
What you are doing here is creating a new interruption re-programming the clock to wake the system in addition to the original event that will happen. Lets put this way, you application know that it will receive from serial every 10ms you use this event api to tell the policy not choose any power state that would cause problem to respond this interruption properly. The serial interruption will wake up the sysetem !

Thanks for clarifying the expected usage!
So the problem I described in my commit message needs to be solved by utilizing the latency requests along with the next event information instead of relying on a timeout to force a wakeup?

Hey @ceolin, I removed the second commit which was adding the next event subscription list in favour of propagating the next event through the kernel timeout manager. I have added the information in the commit message. Please let me know if the commit message isn't clear enough!

That is not correct, this changes the purpose of the event. The event is about something t that will happen and will wake up the system. We use it to select a state that will be able respond that event in a timely manner.
What you are doing here is creating a new interruption re-programming the clock to wake the system in addition to the original event that will happen. Lets put this way, you application know that it will receive from serial every 10ms you use this event api to tell the policy not choose any power state that would cause problem to respond this interruption properly. The serial interruption will wake up the sysetem !

Thanks for clarifying the expected usage!
So the problem I described in my commit message needs to be solved by utilizing the latency requests along with the next event information instead of relying on a timeout to force a wakeup?

I can't see the problem. You have this problem because you have assumed that the system will sleep over the event, but what happens is that event will happen and will wake up the system.  We use this API to inform that subsystem that this external event (that is not scheduled in Zephyr, otherwise it will reflect in the next ticks) will happen so the subsystem will not select a power state that had min residency greater than the time to this "unknown" event.

Hey @ceolin, I removed the second commit which was adding the next event subscription list in favour of propagating the next event through the kernel timeout manager. I have added the information in the commit message. Please let me know if the commit message isn't clear enough!

That is not correct, this changes the purpose of the event. The event is about something t that will happen and will wake up the system. We use it to select a state that will be able respond that event in a timely manner.
What you are doing here is creating a new interruption re-programming the clock to wake the system in addition to the original event that will happen. Lets put this way, you application know that it will receive from serial every 10ms you use this event api to tell the policy not choose any power state that would cause problem to respond this interruption properly. The serial interruption will wake up the sysetem !

Thanks for clarifying the expected usage!
So the problem I described in my commit message needs to be solved by utilizing the latency requests along with the next event information instead of relying on a timeout to force a wakeup?

I can't see the problem. You have this problem because you have assumed that the system will sleep over the event, but what happens is that event will happen and will wake up the system. We use this API to inform that subsystem that this external event (that is not scheduled in Zephyr, otherwise it will reflect in the next ticks) will happen so the subsystem will not select a power state that had min residency greater than the time to this "unknown" event.

The problem is that the latency introduced by entering the sleep state is too high for the system to be able to respond to it in a timely manner. The only way to deal with it is to also specify a latency requirement from the thread to prevent the cpu from entering sleep state.


Better errors for paging misconfigurations.

UsePaging on non-list types reports: The UsePaging attribute needs a valid node schema type.
which does not really help when debugging the stuff.

which does not really help when debugging the stuff.

+1, as googling this brought me here to learn what it actually meant


--overwrite

Which version of the AzCopy was used?
ALL
Note: The version is visible when running AzCopy without any argument
Which platform are you using? (ex: Windows, Mac, Linux)
ALL
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
What problem was encountered?
" By default, AzCopy will overwrite the files at the destination if they already exist. To avoid this behavior, please use the flag --overwrite."
Should the option be --NOoverwrite instead? The current one is confusing,
How can we reproduce the problem in the simplest way?
Have you found a mitigation/solution?

".........To avoid this behavior, please set the flag --overwrite=no  " would be a bit more clear.


Incorrect NuGet Package

You might want to remove this package or unlist it https://www.nuget.org/packages/BeatPulse.UI.dll/1.0.0/

Thanks for the warning @shanselman. That package is not ours. I think it might be from one of our latest contributors.
@GustavoFonsecaDeAlmeida based on the package owner name I think it might be yours. Could you unlist that package? It can be misleading for users

Sorry, I Will unlist. I make this to test some things. I forgot to delete.

@CarlosLanderas

Can use this to make a question?
The Last merge dont upload a new version to nugget?  The Last version at nuget is 3.0.1 @CarlosLanderas

@GustavoFonsecaDeAlmeida we are having trouble with AppVeyor deploying to smbsrc.net due to a certificate expiration. You can follow it here:
https://github.com/NuGet/Home/issues/6082
Closing the issue :)


Update README.md

added contributions welcome badge
NOTE: Please read the CONTRIBUTING.md guidelines before submitting your patch,
and ensure you followed them all:
https://github.com/Kong/kong/blob/master/CONTRIBUTING.md#contributing
Summary
SUMMARY_GOES_HERE
Full changelog

[Implement ...]
[Add related tests]
...

Issues resolved
Fix #XXX

Thank you, but we'll review our README and its badges eventually, for now we are happy with them :)
We use the standard CONTRIBUTING.md convention on this repository and already maintain a list of links to this document.


fix(toolchain): fix task manager compilation for windows

#531
#530  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


Topics. Add DescribeConsumer and DescribePartition to control plane

https://github.com/ydb-platform/ydb-java-sdk/pull/316


docs: use author name as seed for blog avatar

Description
Use the new seed prop in avatar for the blog so each author gets a unique avatar background.
Pull Request Checklist

[x] Ask the contributors if a similar effort is already in process or has been solved.
[x] Review the contribution guidelines.
[x] Use staging as your pull request's base branch. (All PRs using production as its base branch will be declined).
[x] Ensure all gulp scripts successfully compile.
[x] Update, remove, or extend all affected documentation.
[x] Ensure no private Dialpad links or info are in the code or pull request description (Dialtone is a public repo!).

Obligatory GIF (super important!)

Hmm for some reason this is not working on the preview but works locally..

Hmm for some reason this is not working on the preview but works locally..

I think it should be updated to dialtone-vue 3.33.0 where the seed avatar was added

Hmm for some reason this is not working on the preview but works locally..

I think it should be updated to dialtone-vue 3.33.0 where the seed avatar was added

That was it thanks!


Updated logos

Added commissioned logos to app.
Dashboard header:

Login screen:

Loading screen (the artist has not finished the animated version of the line art, which will replace the current static one):

Looks good


Server with modules is not availabe

The server configured in the app to download new modules deanderezwaartekracht.nl is not available.  I will try to make the server configurable in the app.
For now if someone wants to use another server, the source code has to be changed.  If you want to provide your own server, you only need to create a directory /Earmouse_localized/ on the given server, put in there the json-files from Earmouse/assets/ and server them over http.

Actually the modules in assets/ are the ones that are hard-coded in the app, the tools/ directory contains all the modules that were available thru the manager.
I don't have a place to host at the moment so I'll make a release that has them all hardcoded in, it does require a fresh re-install of the app to get them then.

Why not host with github pages?
And making the adress configurable it would be possible for every user to provider her own modules without changing the application.

I tried that shortly but it didn't work, if that should work as you say i will just use github.

It's working like a charm.  I followed this page: Creating Project Pages manually - User Documentation and only created a directory Earmouse_localized, copied the lists and modules from Earmouse/tools into this directory and pushed the new gh_pages branch: et voilà https://kolewu.github.io/Earmouse/Earmouse_localized/list_de.json
I would recommend checkout to its own directory, just to not mix up with your working copy of the code:
git clone git@github.com:pklinken/Earmouse.git Earmouse-pages
and then the next steps.

That worked.
https://github.com/pklinken/Earmouse/commit/c11cb4302d0e3483480e96e4f0e07965076d0b60


Improve parse tests

This PR moves the large chunks of SQL and ParsedExpr onto single lines. It also adds some validity tests.
These are improvements that were added in the now closed #26 but would still be beneficial to have.

Thanks, Alastair.


ThemePrepared and variables interfaces are not typed out fully

The ThemePrepared interface varies significantly from what themes.teams or themes.teamsDark looks like. Providing proper types for this helps greatly in customization.
Also variables property of many components is not typed properly.
EDIT: quickly added variables part to the issue since it is related.

Any thoughts on this yet?


Negative Binomial Distribution calculator

Would like to add Negative Binomial Distribution calculator.
Thanks!

Closing as it already exists.


Setup: check if DNS is required for Gen3

Remember gen3 might require DNS? -- need to double check

DNS is not required if on localhost


the parameters resourceCores/resourceMem/resourceName cannot work

The template below is mostly useful for bug reports and support questions. Feel free to remove anything which doesn't apply to you and add more information where it makes sense.
1. Issue or feature description
as the title described, all self-defined values cannot work
2. Steps to reproduce the issue
deployed with cmd:
helm install hami hami-charts/hami  --set resourceCores=xx/vcuda-core --set resourceMem=xx/vcuda-memory  --set scheduler.kubeScheduler.imageTag=v1.22.8 -n kube-system
yaml:
apiVersion: v1
kind: Pod
metadata:
  name: xlabfe73ef20d3cc329522779f35dd1ebaa4
spec:
  restartPolicy: OnFailure
  containers:
    - name: xlabfe73ef20d3cc329522779f35dd1ebaa4
      image: "swr.cn-east-3.myhuaweicloud.com/senseyu/exam-gpu:dev_1.0"
      command: ["bash", "-c", "sleep 100000"]
      resources:
        limits:
          #nvidia.com/gpu: 2
          #nvidia.com/gpumem: 3000
          #nvidia.com/gpucores: 33
          #xx/vcuda-memory: 1
          xx/vcuda-core: 1
          #nvidia.com/gpumem: 3000

above the task got error:
Error: endpoint not found in cache for a registered resource: xx/vcuda-core
Allocate failed due to can't allocate unregistered device xx/vcuda-core, which is unexpected
cm about hami-scheduler-newversion:
apiVersion: v1
data:
  config.yaml: |
    apiVersion: kubescheduler.config.k8s.io/v1beta2
    kind: KubeSchedulerConfiguration
    leaderElection:
      leaderElect: false
    profiles:
    - schedulerName: hami-scheduler
    extenders:
    - urlPrefix: "https://<IP_ADDRESS>:443"
      filterVerb: filter
      bindVerb: bind
      nodeCacheCapable: true
      weight: 1
      httpTimeout: 30s
      enableHTTPS: true
      tlsConfig:
        insecure: true
      managedResources:
      - name: nvidia.com/gpu
        ignoredByScheduler: true
      - name: xx/vcuda-memory
        ignoredByScheduler: true
      - name: xx/vcuda-core
        ignoredByScheduler: true
      - name: nvidia.com/gpumem-percentage
        ignoredByScheduler: true
      - name: nvidia.com/priority
        ignoredByScheduler: true
      - name: cambricon.com/vmlu
        ignoredByScheduler: true
      - name: hygon.com/dcunum
        ignoredByScheduler: true
      - name: hygon.com/dcumem
        ignoredByScheduler: true
      - name: hygon.com/dcucores
        ignoredByScheduler: true
      - name: iluvatar.ai/vgpu
        ignoredByScheduler: true
      - name: huawei.com/Ascend910-memory
        ignoredByScheduler: true
      - name: huawei.com/Ascend910
        ignoredByScheduler: true
kind: ConfigMap
metadata:
  annotations:
    meta.helm.sh/release-name: hami
    meta.helm.sh/release-namespace: kube-system
  creationTimestamp: "2024-06-16T12:41:49Z"
  labels:
    app.kubernetes.io/component: hami-scheduler
    app.kubernetes.io/instance: hami
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: hami
    app.kubernetes.io/version: 0.0.2
    helm.sh/chart: hami-2.0.0
  name: hami-scheduler-newversion
  namespace: kube-system
  resourceVersion: "72005391"
  uid: 7c8697ce-114c-4e16-9732-d4ccf7290e6b

3. Information to attach (optional if deemed irrelevant)
hami image version: v2.3.12 and latest all failed
Common error checking:

[ ] The output of nvidia-smi -a on your host
[ ] Your docker or containerd configuration file (e.g: /etc/docker/daemon.json)
[ ] The vgpu-device-plugin container logs
[ ] The vgpu-scheduler container logs
[ ] The kubelet logs on the node (e.g: sudo journalctl -r -u kubelet)

Additional information that might help better understand your environment and reproduce the bug:

[ ] Docker version from docker version
[ ] Docker command, image and tag used
[ ] Kernel version from uname -a
[ ] Any relevant kernel output lines from dmesg

thanks ,we will fix that soon

@archlitchi are you in the fix this issue?

@jxfruit can you try again using below yaml content to test.
apiVersion: v1
kind: Pod
metadata:
  name: xlabfe73ef20d3cc329522779f35dd1ebaa4
spec:
  restartPolicy: OnFailure
  containers:
    - name: xlabfe73ef20d3cc329522779f35dd1ebaa4
      image: "swr.cn-east-3.myhuaweicloud.com/senseyu/exam-gpu:dev_1.0"
      command: ["bash", "-c", "sleep 100000"]
      resources:
        limits:
          nvidia.com/gpu: 1
          xx/vcuda-core: 1

@lengrongfu still failed when create pod, got error:
Node didn't have enough resource: xx/vcuda-core, requested: 1, used: 0, capacity: 0
BTW, the doc(https://github.com/Project-HAMi/HAMi/blob/master/docs/config.md) said that the install parameter 'devicePlugin.deviceSplitCount' will generate N vgpu, but after setting, I create pod  use the vgpu, which will failed.
So is there something I missed?

Hope to provides below info:

[ ]  provide node yaml content, node having registry nvidia.com/gpu=10 to allocatable and capacity?
[ ] provide you used hami version info?
[ ] Node didn't have enough resource: xx/vcuda-core, requested: 1, used: 0, capacity: 0 This error is what components appear?

[ ]
apiVersion: v1
kind: Pod
metadata:
name: xlabfe73ef20d3cc329522779f35dd1ebaa4
spec:
restartPolicy: OnFailure
containers:

name: xlabfe73ef20d3cc329522779f35dd1ebaa4
image: "swr.cn-east-3.myhuaweicloud.com/senseyu/exam-gpu:dev_1.0"
command: ["bash", "-c", "sleep 100000"]
resources:
limits:
nvidia.com/gpu: 10

[ ] hami image version: v2.3.12 and latest all failed

[ ] I am confused. I install hami with the command:
helm install hami hami-charts/hami --set resourceCores=xx/vcuda-core --set resourceMem=xx/vcuda-memory --set scheduler.kubeScheduler.imageTag=v1.22.8 -n kube-system
And I create pod with yaml:
apiVersion: v1
kind: Pod
metadata:
name: xlabfe73ef20d3cc329522779f35dd1ebaa4
spec:
restartPolicy: OnFailure
containers:

name: xlabfe73ef20d3cc329522779f35dd1ebaa4
image: "swr.cn-east-3.myhuaweicloud.com/senseyu/exam-gpu:dev_1.0"
command: ["bash", "-c", "sleep 100000"]
resources:
limits:
nvidia.com/gpu: 1
xx/vcuda-core: 1

the pod describe info get the error info with command: kubectl describe pod/xlabfe73ef20d3cc329522779f35dd1ebaa4
Name:         xlabfe73ef20d3cc329522779f35dd1ebaa4
Namespace:    default
Priority:     0
Node:         inter-app2/
Start Time:   Tue, 18 Jun 2024 15:36:08 +0800
Labels:
Annotations:  hami.io/bind-phase: allocating
hami.io/bind-time:<PHONE_NUMBER>
hami.io/vgpu-devices-allocated: GPU-5a6f5eeb-ad9e-7ac9-a40f-30ba7bbc5713,NVIDIA,15109,1:;
hami.io/vgpu-devices-to-allocate: GPU-5a6f5eeb-ad9e-7ac9-a40f-30ba7bbc5713,NVIDIA,15109,1:;
hami.io/vgpu-node: inter-app2
hami.io/vgpu-time:<PHONE_NUMBER>
Status:       Failed
Reason:       UnexpectedAdmissionError
Message:      Pod Allocate failed due to can't allocate unregistered device xx/vcuda-core, which is unexpected
the message changed....
After I tried a few times, I got:
Warning  FailedScheduling  25s   hami-scheduler  binding rejected: node inter-app2 has been locked within 5 minutes

nvidia.com/gpu: 10 this field in the limits config value how what？ because i look have one pod value is 10， another pod value is 1.
this field in the limits value cannot more then node native device num.

@lengrongfu the two pods are different situations. I just make a response for your questions. When only use ‘nvidia.com/gpu: 10’, the pod will be pending for the sake of no enough resource can be allocated. When add 'xx/vcuda-core' , the pod will throw the error: Pod Allocate failed due to can't allocate unregistered device xx/vcuda-core, which is unexpected

I test this case, don't recurrence?

kind: Deployment
apiVersion: apps/v1
metadata:
  name: vgpu-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: vgpu-test
          image: chrstnhntschl/gpu_burn
          args:
            - '6000'
          resources:
            limits:
              nvidia.com/vgpu: '1'
              test/vcuda-core: '50'
              test/vcuda-memory: '4680'
      schedulerName: hami-scheduler

I test this case, don't recurrence?

kind: Deployment
apiVersion: apps/v1
metadata:
  name: vgpu-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: vgpu-test
          image: chrstnhntschl/gpu_burn
          args:
            - '6000'
          resources:
            limits:
              nvidia.com/vgpu: '1'
              test/vcuda-core: '50'
              test/vcuda-memory: '4680'

can u share config.yaml or install command ?
I try it again

helm -n nvidia-vgpu get values nvidia-vgpu; you can refer to below value yaml, i am not found helm install command.

hami:
  ascendResourceMem: huawei.com/Ascend910-memory
  ascendResourceName: huawei.com/Ascend910
  dcuResourceCores: hygon.com/dcucores
  dcuResourceMem: hygon.com/dcumem
  dcuResourceName: hygon.com/dcunum
  devicePlugin:
    deviceCoreScaling: 1
    deviceMemoryScaling: 1
    deviceSplitCount: 10
    disablecorelimit: "false"
    extraArgs:
    - -v=false
    hygonImageRepository: 4pdosc/vdcu-device-plugin
    hygonImageTag: v1.0
    hygondriver: /root/dcu-driver/dtk-22.10.1-vdcu
    hygonimage: 4pdosc/vdcu-device-plugin:v1.0
    hygonnodeSelector:
      dcu: "on"
    imagePullPolicy: IfNotPresent
    libPath: /usr/local/vgpu
    migStrategy: none
    mlunodeSelector:
      mlu: "on"
    monitorctrPath: /usr/local/vgpu/containers
    monitorimage: projecthami/hami
    nvidianodeSelector:
      nvidia.com/gpu.deploy.container-toolkit: "true"
      nvidia.com/vgpu.deploy.device-plugin: "true"
    pluginPath: /var/lib/kubelet/device-plugins
    podAnnotations: {}
    registry: docker.m.daocloud.io
    repository: projecthami/hami
    runtimeClassName: ""
    service:
      httpPort: 31992
    tolerations: []
  fullnameOverride: ""
  global:
    annotations: {}
    gpuHookPath: /usr/local
    labels: {}
  iluvatarResourceCore: iluvatar.ai/vcuda-core
  iluvatarResourceMem: iluvatar.ai/vcuda-memory
  iluvatarResourceName: iluvatar.ai/vgpu
  imagePullSecrets: []
  mluResourceCores: cambricon.com/mlu.smlu.vcore
  mluResourceMem: cambricon.com/mlu.smlu.vmemory
  mluResourceName: cambricon.com/vmlu
  nameOverride: ""
  podSecurityPolicy:
    enabled: false
  resourceCores: test/vcuda-core
  resourceMem: test/vcuda-memory
  resourceMemPercentage: nvidia.com/gpumem-percentage
  resourceName: nvidia.com/vgpu
  resourcePriority: nvidia.com/priority
  resources:
    limits:
      cpu: 500m
      memory: 720Mi
    requests:
      cpu: 100m
      memory: 128Mi
  scheduler:
    customWebhook:
      enabled: false
      host: <IP_ADDRESS>
      path: /webhook
      port: 31998
    defaultCores: 0
    defaultGPUNum: 1
    defaultMem: 0
    defaultSchedulerPolicy:
      gpuSchedulerPolicy: spread
      nodeSchedulerPolicy: binpack
    extender:
      extraArgs:
      - --debug
      - -v=4
      imagePullPolicy: IfNotPresent
      registry: docker.m.daocloud.io
      repository: projecthami/hami
    kubeScheduler:
      enabled: true
      extraArgs:
      - --policy-config-file=/config/config.json
      - -v=4
      extraNewArgs:
      - --config=/config/config.yaml
      - -v=4
      imagePullPolicy: IfNotPresent
      imageTag: v1.24.0
      registry: k8s-gcr.m.daocloud.io
      repository: kubernetes/kube-scheduler
    leaderElect: true
    metricsBindAddress: :9395
    mutatingWebhookConfiguration:
      failurePolicy: Ignore
    nodeName: ""
    nodeSelector:
      nvidia.com/gpu.deploy.container-toolkit: "true"
    patch:
      imagePullPolicy: IfNotPresent
      newRepository: liangjw/kube-webhook-certgen
      newTag: v1.1.1
      nodeSelector: {}
      podAnnotations: {}
      priorityClassName: ""
      registry: docker.io
      repository: jettech/kube-webhook-certgen
      runAsUser: 2000
      tag: v1.5.2
      tolerations: []
    podAnnotations: {}
    service:
      annotations: {}
      httpPort: 443
      labels: {}
      monitorPort: 31993
      schedulerPort: 31998
    serviceMonitor:
      enable: false
    tolerations: []
  schedulerName: hami-scheduler
  version: v2.3.11

Sorry,  failed to use your values.yaml to deploy. The chart is incomplete. Can u share the total installing helm charts?
BTW, in my testing, field resourceName works when custom value. However, it cannot allocate the vgpu which is greater than the current node.


[Question] Before route change event

Hello!
I have a page in my app with editable data by user. When user add some data there I need to show alert like "Are you sure you want to close page? You will loose your data" when user click Android Back button, or some link in Drawer Menu.

Hello , can you share your code ?

@Dani93380 I don't know what share. I just want to prevent Actions['any_route'] somehow if it is called.

I think you should set a listener on your Back Button and your link in Drawer Menu then inside your function do your alert before redirecting to other page


Added spans.Retry constructor of trace.Retry

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

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

Project coverage is 41.04%. Comparing base (90106e7) to head (0e2f199).

:exclamation:  There is a different number of reports uploaded between BASE (90106e7) and HEAD (0e2f199). Click for more details.
HEAD has 523 uploads less than BASE

Flag
BASE (90106e7)
HEAD (0e2f199)

macOS
24
1

unit
72
3

go-1.21.x
48
2

ubuntu
103
2

go-1.22.x
48
1

go-1.23.x
55
0

ydb-23.3
24
0

integration
71
0

windows
24
0

ydb-24.2
24
0

ydb-24.1
23
0

ydb-nightly
8
0

experiment
8
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1518       +/-   ##
===========================================
- Coverage   70.93%   41.04%   -29.90%
===========================================
  Files         356      353        -3
  Lines       37180    36942      -238
===========================================
- Hits        26372    15161    -11211
- Misses       9707    21273    +11566
+ Partials     1101      508      -593

Flag
Coverage Δ

experiment
?

go-1.21.x
42.40% <ø> (-27.99%)
:arrow_down:

go-1.22.x
40.98% <ø> (-27.46%)
:arrow_down:

go-1.23.x
?

integration
?

macOS
42.37% <ø> (+1.32%)
:arrow_up:

ubuntu
41.03% <ø> (-29.90%)
:arrow_down:

unit
41.04% <ø> (-0.02%)
:arrow_down:

windows
?

ydb-23.3
?

ydb-24.1
?

ydb-24.2
?

ydb-nightly
?

Flags with carried forward coverage won't be shown. Click here to find out more.

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


Add .gitignore for Bazel projects

Closes https://github.com/bazelbuild/bazel/issues/555
Reasons for making this change:
Allow new repositories that use Bazel to easily start with a preconfigured .gitignore file.
Links to documentation supporting these rule changes:
This is based on discussion on Closes https://github.com/bazelbuild/bazel/issues/555
which is copy-pasted from Bazel's own .gitignore file.
If this is a new template:

Link to application or project’s homepage: http://bazel.build

@cgrushko apologies for the delay in replying to this.
I had a lot of these templates requested, but I couldn't quite figure out the right place for them. I ended up settling on #2857, and the Bazel template now lives at community/Bazel.gitignore.
Feel free to add any further changes there, and thanks again for the contribution!


docs: remove commas in example policy.json

minor tweak to image signing quickstart guide. making it easier to copy the example policy file
Fixes: #111
Signed-off-by: Alex Carter<EMAIL_ADDRESS>

btw, thank you @Xynnn007 for making the guide in the first place, it has been hugely useful


pull request for e2e test at 12/27/2016 09:56:12

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


ERR! npm install

Some error occurred when run npm install
Here add some images of the error on the terminal

something wrong on your side

it was a node error, I installed node 12 and uninstalled the xcode program from my MAC and the error no longer occurs.


Content Suggestion: What Is Money Show

Link to Content: https://www.youtube.com/watch?v=4rvTppy1qLI&list=PL2jAZ0x9H0bRvoNt1xNJWYa9_8_an03h0
Briefly Describe Content: Robert Breedlove's youtube show about money and Bitcoin
Suggested Section: Video podcasts

ACK

Added


chore(release): production v1.2.2

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.4 out of 5 committers have signed the CLA.:white_check_mark: tangollama:white_check_mark: njvrzm:white_check_mark: nr-opensource-bot:white_check_mark: michaelgoin:x: Vinit PatelVinit Patel seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Use flight experiment to allow skipping semantic token for html syntax

Summary
Currently the LSP semantic tokens call identifies html syntax rather than purely relying on TextMate.
This PR helps use flight experiments that would help understand whether or not we would regress performance when using only TextMate for html syntax.

[x] Skips adding semantic token for html syntax markups
[x] Allows TextMate Name/Value capability

Implementation Detail:

[x] Uses IsCachedFlightEnabled to check for flight experiment
[x] Uses the flight experiment to add SkipHtmlSyntaxSemanticTokens feature flag
[x] Uses the feature flag to skip tokens for html syntax by adding a property for LanguageServerFeatureOptions
[x] No need for user toggle option (the value decided based on the existence of flight experiment, so it can only get enabled via flight experiments)

TODO (next)

[x] Check if we could get away with just using IVsExperimentationService.IsCachedFlightEnabled w/out needing a feature flag
[ ]  Confirm we have no obvious TextMate issues causing behavioral regression
[x] Update tests

TODO (After reviewing the flight experiment) we may decide to

[ ] Remove markups from legend

Comparisons
There would be some pretty noticable differences between having the html syntax skipping tokens (only TextMate) vs not:
(TextMate on right hand side):

Few examples from the above screenshot:

TextMate:

Tokens for html syntax:

TextMate:

Tokens for html syntax

I assume these differences aren't easily captured in the textmate grammar. If not, it looks like textmate classification isn't an option.
Given that, is there something that can be done to prevent the textmate grammar from contributing to colorization?


no module named 'visualizer'

import pyviz3d.visualizer as viz  in vis_scannet200.py caused an error named 'no module named visualizer'
How to solve this error?

I just follow the guide command at the visualization '1) Install PyViz3D' 'pip3 install pyviz3d' Is that not okay?


Extend LeveragedsRequest class

Add optional underlying_product_id and shortlong support for LeveragedsRequest

@Chavithra for me it is convenient to select on underlying_product_id, I'd suggest to make this an optional input for backwards compatibility purposes.
Thanks anyway for this great python package!

Hi @MaartenMJR,
just merged PR #128.
These fields will be available on next release.
Thanks


[flutter_tools] Windows tool_integration_tests_2_6 flakes on timeout

For example: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8783915727124773233/+/u/run_test.dart_for_tool_integration_tests_shard_and_subshard_2_6/test_stdout
17:18 +6 ~1 -1: test/integration.shard/break_on_framework_exceptions_test.dart: breaks when EditableText.onChanged throws [E]
  TimeoutException after 0:15:00.000000: Test timed out after 15 minutes.
  dart:isolate  _RawReceivePort._handleMessage

Another timeout from the same file:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8783422608420748369/+/u/run_test.dart_for_tool_integration_tests_shard_and_subshard_2_6/test_stdout
29:14 +24 ~1 -1: test/integration.shard/break_on_framework_exceptions_test.dart: breaks when RenderObject.performLayout throws [E]
  TimeoutException after 0:15:00.000000: Test timed out after 15 minutes.
  dart:isolate  _RawReceivePort._handleMessage

So I was able to reproduce this quite reliably locally, and was able to get verbose logging:
14:12 +26 -1: breaks when StatefulWidget.build throws [E]
  Timed out launching `flutter test`
  package:matcher                                                        fail
  test/integration.shard/break_on_framework_exceptions_test.dart 623:11  _timeoutAfter.<fn>

250s            Spawning flutter [test, --disable-service-auth-codes, --machine, --start-paused, test/test.dart] in /tmp/flutter_break_on_framework_exceptions.GUJDAZ

251s <=stdout=  {"protocolVersion":"0.1.1","runnerVersion":null,"pid":25763,"type":"start","time":0}

<=stdout=  {"suite":{"id":0,"platform":"vm","path":"/tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart"},"type":"suite","time":0}

<=stdout=  {"test":{"id":1,"name":"loading /tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":0}

258s <=stdout=  {"testID":1,"error":"Exception: the Dart compiler exited unexpectedly.","stackTrace":"package:flutter_tools/src/base/common.dart 10:3  throwToolExit\npackage:flutter_tools/src/compile.dart 813:13    DefaultResidentCompiler._compile.<fn>\ndart:async/zone.dart 1391:47                     _rootRun\ndart:async/zone.dart 1301:19                     _CustomZone.run\ndart:async/zone.dart 1209:7                      _CustomZone.runGuarded\ndart:async/stream_impl.dart 392:13               _BufferingStreamSubscription._sendDone.sendDone\ndart:async/stream_impl.dart 402:7                _BufferingStreamSubscription._sendDone\ndart:async/stream_impl.dart 291:7                _BufferingStreamSubscription._close\ndart:async/stream_transformers.dart 87:11        _SinkTransformerStreamSubscription._close\ndart:async/stream_transformers.dart 21:11        _EventSinkWrapper.close\ndart:convert/string_conversion.dart 241:11       _StringAdapterSink.close\ndart:convert/line_splitter.dart 141:11           _LineSplitterSink.close\ndart:async/stream_transformers.dart 132:24       _SinkTransformerStreamSubscription._handleDone\ndart:async/zone.dart 1391:47                     _rootRun\ndart:async/zone.dart 1301:19                     _CustomZone.run\ndart:async/zone.dart 1209:7                      _CustomZone.runGuarded\ndart:async/stream_impl.dart 392:13               _BufferingStreamSubscription._sendDone.sendDone\ndart:async/stream_impl.dart 402:7                _BufferingStreamSubscription._sendDone\ndart:async/stream_impl.dart 291:7                _BufferingStreamSubscription._close\ndart:async/stream_transformers.dart 87:11        _SinkTransformerStreamSubscription._close\ndart:async/stream_transformers.dart 21:11        _EventSinkWrapper.close\ndart:convert/string_conversion.dart 241:11       _StringAdapterSink.close\ndart:convert/string_conversion.dart 295:20       _Utf8ConversionSink.close\ndart:convert/chunked_conversion.dart 78:18       _ConverterStreamEventSink.close\ndart:async/stream_transformers.dart 132:24       _SinkTransformerStreamSubscription._handleDone\ndart:async/zone.dart 1391:47                     _rootRun\ndart:async/zone.dart 1301:19                     _CustomZone.run\ndart:async/zone.dart 1209:7                      _CustomZone.runGuarded\ndart:async/stream_impl.dart 392:13               _BufferingStreamSubscription._sendDone.sendDone\ndart:async/stream_impl.dart 402:7                _BufferingStreamSubscription._sendDone\ndart:async/stream_impl.dart...

<=stdout=  {"testID":1,"error":"Failed to load \"/tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart\": Compilation failed for testPath=/tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart","stackTrace":"","isFailure":false,"type":"error","time":7518}

<=stdout=  {"testID":1,"result":"error","skipped":false,"hidden":false,"type":"testDone","time":7521}

<=stdout=  {"count":1,"time":7526,"type":"allSuites"}

<=stdout=  {"success":false,"type":"done","time":7529}

259s            Process exited (1)

371s            Expecting test.startedProcess event
[+    95] <=stdout=  {"suite":{"id":0,"platform":"vm","path":"/tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart"},"type":"suite","time":0}
[+    95] <=stdout=  {"test":{"id":1,"name":"loading /tmp/flutter_break_on_framework_exceptions.GUJDAZ/test/test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":0}
[+  7600] <=stdout=  {"testID":1,"error":"Exception: the Dart compiler exited unexpectedly.","stackTrace":"package:flutter_tools/src/base/common.dart 10:3  throwToolExit\npackage:flutter_tools/src/compile.dart 813:13    DefaultResidentCompiler._compile.<fn>\ndart:async/zone.dart 1391:47                     _rootRun\ndart:async/zone.dart 1301:19                     _CustomZone.run\ndart:async/zone.dart 1209:7                      _CustomZone.runGuarded\ndart:async/stream_impl.dart 392:13               _BufferingStreamSubscription._sendDone.sendDone\ndart:async/stream_impl.dart 402:7                _BufferingStreamSubscription._sendDone\ndart:async/stream_impl.dart 291:7                _BufferingStreamSubscription._close\ndart:async/stream_transformers.dart 87:11        _SinkTransformerStreamSubscription._close\ndart:async/stream_transformers.dart 21:11        _EventSinkWrapper.close\ndart:convert/string_conversion.dart 241:11       _StringAdapterSink.close\ndart:convert/line_splitter.dart 141:11           _LineSplitterSink.close\ndart:async/stream_transformers.dart 132:24       _SinkTransformerStreamSubscription._handleDone\ndart:async/zone.dart 1391:47                     _rootRun\ndart:async/zone.dart 1301:19                     _CustomZone.run\ndart:async/zone.dart 1209:7                      _CustomZone.runGuarded\ndart:async/stream_impl.dart 392:13               _BufferingStreamSubscription._sendDone.sendDone\ndart:async/stream_impl.dart 402:7                _BufferingStreamSubscription._sendDone\ndart:async/stream_impl.dart 291:7                _BufferingStreamSubscription._close\ndart:async/stream_transformers.dart 87:11        _SinkTransformerStreamSubscription._close\ndart:async/stream_transformers.dart 21:11        _EventSinkWrapper.close\ndart:convert/string_conversion.dart 241:11       _StringAdapterSink.close\ndart:convert/string_conversion.dart 295:20       _Utf8ConversionSink.close\ndart:convert/chunked_conversion.dart 78:18       _ConverterStreamEventSink.close\ndart:async/stream_transformers.dart 132:24...

Expecting test.startedProcess event is taking longer than usual...


Convert sparse object to sparse tensor before evaluating model.

Closes #7

who only in eval/test and not in train? could also make sense to make it a further option to return sparse tensors in the generator, in principle this could also happen / be useful on non backed data.

Both suggestions sound good! I will implement them as soon as I get some free time. We can merge this after these changes are in the PR.

I have refactored _get_dataset() quite a lot, I will run some tests to ensure everything works as expected.
We now always get a dataset generator from this function. I have also modified evaluate() and evaluate_any() to take this change into account.
Regarding sparse tensors: Combining dataset generators and sparse tensors is not very intuitive, see this issue for more. Currently the function returns dense tensors, but if the performance gain is worth it, maybe we can do something like this.


Does not work with Alpine Linux's sendmail

Steps to reproduce:

Run mailpit container: docker run -it --rm axllent/mailpit
docker exec into the container and run:

apk add php
php -d "sendmail_path=/usr/sbin/sendmail -v -S <IP_ADDRESS>:1025 -t" -r<EMAIL_ADDRESS>"Subject", "Body");'

Expected result: email is queued
Actual result:
sendmail: recv:'220 28c20bcce561 Mailpit ESMTP Service ready'
sendmail: send:'EHLO 28c20bcce561'
sendmail: recv:'250-28c20bcce561 greets 28c20bcce561'
sendmail: recv:'250-SIZE 0'
sendmail: recv:'250 ENHANCEDSTATUSCODES'
sendmail: send:'MAIL FROM:<root@28c20bcce561>'
sendmail: recv:'250 2.1.0 Ok'
sendmail: send:'RCPT<EMAIL_ADDRESS>sendmail: recv:'250 2.1.5 Ok'
sendmail: send:'DATA'
sendmail: recv:'354 Start mail input; end with <CR><LF>.<CR><LF>'
'endmail: send:'To<EMAIL_ADDRESS>'endmail: send:'Subject: Subject
'endmail: send:'
'endmail: send:'Body
sendmail: send:'.'
sendmail: recv:'451 4.3.5 Unable to process mail'
sendmail: . failed

In mailpit logs, I see:  RRO[2023/04/10 10:51:02] error parsing message: malformed MIME header line: To<EMAIL_ADDRESS>My debugging showed that mailpit does not handle <CR>: the lines above with the leading ' actually contain the <CR> character:
'endmail: send:'To<EMAIL_ADDRESS>
is
sendmail: send:'To<EMAIL_ADDRESS>
To confirm my finding, I modified the sendmail_path setting:
php -d "sendmail_path=sh -c 'dos2unix | /usr/sbin/sendmail -v -S <IP_ADDRESS>:1025 -t'" -r<EMAIL_ADDRESS>"Subject", "Body");'

Now it works as expected:
sendmail: recv:'220 28c20bcce561 Mailpit ESMTP Service ready'
sendmail: send:'EHLO 28c20bcce561'
sendmail: recv:'250-28c20bcce561 greets 28c20bcce561'
sendmail: recv:'250-SIZE 0'
sendmail: recv:'250 ENHANCEDSTATUSCODES'
sendmail: send:'MAIL FROM:<root@28c20bcce561>'
sendmail: recv:'250 2.1.0 Ok'
sendmail: send:'RCPT<EMAIL_ADDRESS>sendmail: recv:'250 2.1.5 Ok'
sendmail: send:'DATA'
sendmail: recv:'354 Start mail input; end with <CR><LF>.<CR><LF>'
sendmail: send:'To<EMAIL_ADDRESS>sendmail: send:'Subject: Subject'
sendmail: send:''
sendmail: send:'Body'
sendmail: send:'.'
sendmail: recv:'250 2.0.0 Ok: queued'
sendmail: send:'QUIT'
sendmail: recv:'221 2.0.0 28c20bcce561 Mailpit ESMTP Service closing transmission channel'

However, I think that mailpit should handle the <CR> character in the mail body (MailHog does).
Unfortunately, I don't know Go good enough to submit a PR, sorry :-(

Hmmm… However, it still works with Postfix:
/ # php -d "sendmail_path=/usr/sbin/sendmail -v -S my.postfix.server:25 -t" -r<EMAIL_ADDRESS>"Subject", "Body");'
sendmail: recv:'220 my.postfix.server ESMTP Postfix (Ubuntu)'
sendmail: send:'EHLO 92aa3eeba134'
sendmail: recv:'250-my.postfix.server'
sendmail: recv:'250-PIPELINING'
sendmail: recv:'250-SIZE 10240000'
sendmail: recv:'250-VRFY'
sendmail: recv:'250-ETRN'
sendmail: recv:'250-STARTTLS'
sendmail: recv:'250-ENHANCEDSTATUSCODES'
sendmail: recv:'250-8BITMIME'
sendmail: recv:'250-DSN'
sendmail: recv:'250-SMTPUTF8'
sendmail: recv:'250 CHUNKING'
sendmail: send:'MAIL FROM:<root@92aa3eeba134>'
sendmail: recv:'250 2.1.0 Ok'
sendmail: send:'RCPT<EMAIL_ADDRESS>sendmail: recv:'250 2.1.5 Ok'
sendmail: send:'DATA'
sendmail: recv:'354 End data with <CR><LF>.<CR><LF>'
'endmail: send:'To<EMAIL_ADDRESS>'endmail: send:'Subject: Subject
'endmail: send:'
'endmail: send:'Body
sendmail: send:'.'
sendmail: recv:'250 2.0.0 Ok: queued as 1F0671D81AEE'
sendmail: send:'QUIT'
sendmail: recv:'221 2.0.0 Bye'

which would result in \r\r\n, and which is I believe what is happening here.

Yes, you were right, I was able to confirm that with
nc -l -p 10025 -s <IP_ADDRESS> -e nc -v -o transaction2.txt <IP_ADDRESS>:1025

and
cat data.txt | /usr/sbin/sendmail -v -S <IP_ADDRESS>:10025 -t

(where data.txt was a email with CR LF line endings)

I use msmtp in production

Great, thanks! I was able to send a test email with this:
php -d "sendmail_path=/usr/bin/msmtp --host=<IP_ADDRESS> --port=1025 -t --auto-from" -r<EMAIL_ADDRESS>"Subject", "Body");'

Closing then, as this is not a bug :-) Thank you!

Thanks for the confirmation either way. Interesting that it works with postfix, though I suspect that is a "feature" in postfix to fix this very issue (work-around).  Then again, even if postfix accepts the mail, it doesn't mean it is strictly valid, and there's no assurance other mail servers will accept it.
I'm no C expert, but I found send_r_n() which is referenced several times in sendmail.c. It sends every line with a trailing \r\n. The lines are however split with xmalloc_fgetline()   which looks to me like it splits lines with \n. This means the \r is left at the end of each line, resulting in \r\r\n being sent through to the SMTP server. Again, I'm no C expert, but I think the sendmail implementation in busybox is the definite cause here.  I think that if you wanted a proper fix, that would be the place to start.
Glad you got it working though!


fix debug report

The debug report created by the command onefuzz debug  notification job <job id>  is causing a crash in the regression task
error running task: libfuzzer regression

Caused by:
    0: handling crash reports
    1: unable to parse crash report: fake-crash-sample.json
    2: unable to parse report: task_unique_reports_2/fake-crash-sample.json - "{\"input_url\": null, \"input_blob\": {\"account\": \"fuzz27ee6imdmr5gy\", \"container\": \"oft-crashes-cecbd958a1f257688f9768edaaf6c94d\", \"name\": \"fake-crash-sample\"}, \"executable\": \"fuzz.exe\", \"crash_type\": \"fake crash report\", \"crash_site\": \"fake crash site\", \"call_stack\": [\"#0 fake\", \"#1 call\", \"#2 stack\"], \"call_stack_sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\", \"input_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\", \"asan_log\": \"fake asan log\", \"task_id\": \"b1107de0-c3cb-43ff-ab68-5accc579f4d4\", \"job_id\": \"afa45e3e-9a75-4a47-8d59-ef3154599fc7\", \"scariness_score\": null, \"scariness_description\": null, \"minimized_stack\": null, \"minimized_stack_sha256\": null, \"minimized_stack_function_names\": null, \"minimized_stack_function_names_sha256\": null}"

I think this should be fixed in the agent, not the debug command.
This means we have existing reports that could break the regression task.


[FR] - Flatten output of stake-address-info

Exernal
Describe the feature you'd like
The output of stake-address-info should be flattened in order to make json parsing easier.
Dynamic field names like the stake address hex value require custom parsing in most languages.
Current:
$ cardano-cli shelley query stake-address-info --address $(cat bcsh_owner.staking.addr) --cardano-mode --testnet-magic 42
{
    "e0bd6adc2c7528c379f2af60929e901b1e77d92c754f2e345456063e04": {
        "delegation": "44e0cb4449c0adb0821cb34dc12ec44694d6e7936f6d11f8a146f91b",
        "rewardAccountBalance": 0
    }
}

Recommended:
$ cardano-cli shelley query stake-address-info --address $(cat bcsh_owner.staking.addr) --cardano-mode --testnet-magic 42
{
    "address: "e0bd6adc2c7528c379f2af60929e901b1e77d92c754f2e345456063e04",
    "delegation": "44e0cb4449c0adb0821cb34dc12ec44694d6e7936f6d11f8a146f91b",
    "rewardAccountBalance": 0
}

Describe alternatives you've considered
Considered writing a custom parser, but it would be easier to just have you restructure the json on the node side.

@AndrewWestberg: With the query stake-address-info command, you can filter by multiple addresses and get an output like this:
{
    "stakeAddress0": {
        "delegation": "stakePoolId0",
        "rewardAccountBalance": 0
    },
    "stakeAddress1": {
        "delegation": "stakePoolId1",
        "rewardAccountBalance": 0
    },
    "stakeAddress2": {
        "delegation": "stakePoolId2",
        "rewardAccountBalance": 0
    }
}

I think that it's useful to be able to get the information about a particular stake address by performing a key lookup, e.g. obj['e0bd6adc2c7528c379f2af60929e901b1e77d92c754f2e345456063e04'].
We could go with the route you've suggested, but then we'd need to provide an array of stake address info objects. In that case, one would need to iterate over the array in order to find the info for a particular stake address.
What are your thoughts?

@AndrewWestberg: With the query stake-address-info command, I've been intending to implement it such that users can query multiple stake addresses and get an output like this:
{
    "stakeAddress0": {
        "delegation": "stakePoolId0",
        "rewardAccountBalance": 0
    },
    "stakeAddress1": {
        "delegation": "stakePoolId1",
        "rewardAccountBalance": 0
    },
    "stakeAddress2": {
        "delegation": "stakePoolId2",
        "rewardAccountBalance": 0
    }
}

In that case, I think that it's useful to be able to get the information about a particular stake address by performing a lookup by key, e.g. obj['e0bd6adc2c7528c379f2af60929e901b1e77d92c754f2e345456063e04'].
We could go with the route you've suggested, but then we'd need to return an array of stake address info objects. In that case, one would need to iterate over the array in order to find the info for a particular stake address.
What are your thoughts?

@intricate I would prefer an array of stake addresses. Once we make the address itself a key, we have to do polymorphic parsing on the json side which is what is problematic.
[
  {
    "address: "<address_1>",
    "delegation": "<delegation_1>",
    "rewardAccountBalance": <balance_1>
  },
  {
    "address: "<address_2>",
    "delegation": "<delegation_2>",
    "rewardAccountBalance": <balance_2>
  },
  {
    "address: "<address_3>",
    "delegation": "<delegation_3>",
    "rewardAccountBalance": <balance_3>
  },
]

@intricate After looking at it some more, it's not the end of the world to do it your way. I just have to parse the keys into a map at the top level. Feel free to either implement or just close. Developer's choice. ;)

Actually, after looking at it again myself, I think we should flatten it as suggested. Thanks.

Actually, after looking at it again and asking others for opinions, I think we should flatten it as you've suggested. Thanks.

@AndrewWestberg I think PR #1671  is what you want .


RenderLayers does not affect SceneBundle

Bevy version
Latest bevy git commit at time of writing, 8f721d8d0ac2e14a46051175f6d3394ed87c7214.
Relevant system information
`AdapterInfo { name: "NVIDIA GeForce RTX 2070", vendor: 4318, device: 7938, device_type: DiscreteGpu, backend: Vulkan }`

What you did
I noticed this issue in my current project. I also tried adding the component RenderLayers::layer(1) to the SceneBundle in the split_screen example.
What went wrong
The component has no effect.

RenderLayers only applies to the entity it is on, it does not (currently) apply to child entities.

RenderLayers only applies to the entity it is on, it does not (currently) apply to children of that entity.

I see! It probably should though, right? In that sense I guess this is a feature request.

Related to #838. This is effectively the same feature, but for render layers.

Related to #838. This is effectively the same feature, but for render layers.

Oh yeah!
Though I would expect RenderLayers to be overrideable by a child.

I would like to propose a similar pattern to Visibility. Having a ComputedRenderLayers which is used to propagate the render layer down to children. Adding RenderLayers to a component will override this propagation and start a new propagation.  The question is if this should be added to SpatialBundle and all related bundles or added dynamically by a system to call children of a entity with a RenderLayers component.

Awful brute-force workaround for this issue.  Add a PropagateRenderLayers component, then a few systems to copy the RenderLayers component down to child entities for any entity with PropagateRenderLayers.
#[derive(Component)]
struct PropagateRenderLayers;

fn propagate_render_layers_added(
    mut cmds: Commands,
    parents: Query<(&RenderLayers, &Children), (Added<PropagateRenderLayers>, With<Children>)>,
) {
    for (render_layers, children) in &parents {
        for child in children {
            cmds.entity(*child)
                .insert((PropagateRenderLayers, *render_layers));
        }
    }
}

fn propagate_render_layers_changed(
    mut cmds: Commands,
    parents: Query<
        (&RenderLayers, &Children),
        (
            With<PropagateRenderLayers>,
            With<Children>,
            Changed<RenderLayers>,
        ),
    >,
) {
    for (render_layers, children) in &parents {
        for child in children {
            cmds.entity(*child)
                .insert(*render_layers);
        }
    }
}

fn propagate_render_layers_add_child(
    mut cmds: Commands,
    parents: Query<(&RenderLayers, &Children), (With<PropagateRenderLayers>, Changed<Children>)>,
) {
    for (render_layers, children) in &parents {
        for child in children {
            cmds.entity(*child)
                .insert((PropagateRenderLayers, *render_layers));
        }
    }
}

Or just use https://github.com/nicopap/bevy-scene-hook, which is much better than my workaround above


[Bug]: Honkai Star Rail - Unhandled Error

Affected Version
Collapse 1.72.14
Bug Behavior
Not sure if there is a fix for this but I didn't see any open issues about it or if there was one open then they got a different error message than mine. I should note the game still launches even with this error message popping up so not sure which game settings are effected by it.
`System.Exception: Due to miHoYo/Cognosphere A/B testing, Collapse currently does not support reading thefollowing key: App_Settings_h2319593470
This may also cause the modifications of Game Settings through this page to behave unexpectedly.
We apologize for the inconvenience we may have caused. Please try again later.
`
Expected Behavior
To be able to switch to Honkai Star Rail and not have this error message pop up every time.
Steps to reproduce

Open Collapse Launcher 1.72.14
Select Honkai Star Rail
An error should pop up saying the message I posted above.

Related Issues
No response
Screenshot(s)
No response
Additional Information
No response

Thank you for submitting bug report for Collapse!
Oh, I think we might have put the warning label into the wrong page 😓
We will check on it!
This error was caused by our misplaced warning check put on because of HoYo's A/B testing on their configuration saving mechanism on Star Rail. The new format is not supported due to something weird in the game code.
If you are bothered by the error message, you can wipe the configuration registry under HKEY_CURRENT_USER/Software/Cognosphere/{either Star Rail or 崩坏：星穹铁道 depending on your installed region}, you have to delete the entire subfolder of it (make sure you export it as backup just in case). Do note that this workaround will wipe all your settings including your login info, so you will have to login and set it up again.

CC @Cryotechnic
TODO:
Move A/B checker into the GSP .xaml.cs instead of the Registry Handlers to prevent warning be put on when the region is loaded.

Should be fixed with last update on preview and next update for stable, sorry for taking a bit!


Data setup: WMT preprocessing in data_setup.py

There are currently has to be downloaded manually and there does not exist any documentation with instructions.
Description
The WMT workload requires the wmt17_translate/de-en and wmt14_translate/de-en datasets which have to be downloaded manually with tfds.load. During the download the user may run into issues, for example when downloading wmt14_translate/de-en I ran into ResourceExhausted errors during the generating step. The solution was to manually increase the open file limit on the system as described here.
Steps to Reproduce
VM: tf-agents/in-to-win
In python terminal run `tfds.load('wmt14_translate/de-en')
Source or Possible Fix
We should either:

Document instructions to download the datasets for WMT workload clearly, including workarounds for anticipated issues.
Automate the downloading of the data, perhaps as a prerequisite step.

From email thread with @runame it seems like the recommended instructions for downloading this dataset are in the flax examples repo.

@priyakasimbeg I think this issue was addressed in #235?

Fixed by #444.


Question on reproducing results on SUNRGBD data

I followed the instructions in README to train VoteNet on SUNRGBD data. All settings keep the default, but batch_size changed to 128(8GPUs). After 180 epoches, I got  mAP results like this<EMAIL_ADDRESS><EMAIL_ADDRESS>which is much lower than that in paper(57<EMAIL_ADDRESS>and 32 mAP@0.5).
If I use the pre-trained model, I can reproduce the results as paper noted, SO data is right.
Is batch_size matters so much? If so, how do I change the learning rate along with batch_size?
Any idea is welcome!
thanks!

Have you solved this problem? How about using the default batch size? @StarsMyDestination


upgrade libuv to 1.41.0

This is related to: https://go.arm.com/OZJrBNB

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/219/

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/220/

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/221/

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/222/

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/223/

Pushed commit again for a clean CI run

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/225/

Greasego is removed, no longer need a libuv update


Add Country List select from array and residence select from maps. Limited max addresses to four.

What does this PR do?

This PR removes the country and district and populates that information using data from google maps.
It also changes the Address text box to a select box with location addresses from google maps
Limits the number of addresses and phone numbers a user can enter to four.
Handles the logic of making a phone number or address primary/default input

Description of tasks.

Users can now use the address text box to add an address and the rest of the information will be picked from google place
Users can only enter numbers in the phones input

How to manually test this

When logged in, select your profile and edit or add an address or phone number
Try adding more than four addresses or phone numbers as well
Try making an address or phone number primary and vice versa

Hey @dhotim , tho google API gives us the country and district when we choose a place we can simplify this form and just have only the free text field then extract the rest from google

Hey @dhotim , tho google API gives us the country and district when we choose a place we can simplify this form and just have only the free text field then extract the rest from google

Hey Timothy, I have made the changes as request and included the ones for the phone input as well. The implementation is very similar.


ci(gcb): set TZ=:UTC; log google_time

Per @devbww's comments on
https://github.com/googleapis/google-cloud-cpp/pull/6123, we set
TZ=:UTC for docker and GCB builds so our logs -- and others' logs --
show up in UTC to make them easily comparable. This PR also logs the
time that google.com thinks it is, which would help us diagnose issues
caused by time synchronization issues (which we've seen on Kokoro).

This change is

Example output:
====================
|   Machine Info   |
====================
      utc: 2021-03-28 14:10:52+00:00
   google: 2021-03-28 14:10:52+00:00
   kernel: #41~18.04.1-Ubuntu SMP Fri Feb 26 22:23:13 UTC 2021
       os: PRETTY_NAME="Fedora 33 (Container Image)"
    nproc: 32
      mem: 28.21 GiB
      gcc: gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)
    clang: clang version 11.0.0 (Fedora 11.0.0-2.fc33)
       cc: cc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)
    cmake: cmake version 3.19.7
    bazel: bazel 3.5.0


Difference of squares template has a single hardcoded test

Expected Behavior
The data for the test should be in canonical data. Hard-coding it into the view is a smell.
Possible Solution
I would vote for deleting the test.
Alternatively, several other exercises have a need for a custom section inserted after the generated tests that isn't simply not putting a test into canonical data. Once we decide how to handle those sections, we could leverage that technique to clean up this smell. But I would rather not encourage avoiding canonical data.
Context
Other than this single test, difference of squares uses the default template. I wouldn't want to encourage customizing the template just to add additional tests without adding the data to canonical data.

Link to file being discussed: https://github.com/exercism/xruby/blob/master/exercises/difference-of-squares/example.tt

Yes delete the test.
How would you even write code that caused it to fail?
Tests all* should be in the canonical-data.
* exceptions apply for tricky and Ruby specific tests.

I was wondering why this test was added:
Here is the commit that added the test: https://github.com/exercism/xruby/commit/22127fad27b9ae8e4466f1e68599d80ae81836b0

Since the API calls for a Squares object to be instantiated with a
specific max value, it seems to be implied that the instance methods of
a given instance should have the same result on subsequent calls.
While not common, I have seen more than one submission that didn't have
this property.

It is implementation specific so doesn't belong in canonical-data, maybe we do need it?

maybe we do need it?

I'd argue we'd be better off changing the implementation to something more appropriate.
There's no reason why (and plenty of reasons why not) Squares should be an instantiable object.

Definitely a delete the test vote from me.

Sounds like we have decided to delete the test (yay!)

I'm changing my vote to keep the test.
(but I think I'm outvoted.)
Remove it when the implementation change makes it redundant.

Ok, so what we want is to do two things:

change the implementation in #workload so it doesn't specify an instantiable object
remove the hardcoded test

Remove it when the implementation change makes it redundant.

I'm okay with this too. It's a toss-up for me 😄

I prefer to not specify an instantiation giving way to freedom when it is appropriate.  I would need to investigate this further to be absolutely certain.  Still, if it is currently not causing a problem, it isn't one, and so not changing it provides a benefit in itself.
The call is left to @hilary in my opinion.


Remove references to the now defunct Google+.

Coverage remained the same at 0.0% when pulling 464f3753f7b9bd366f576238c6e04c28cc6ee1e2 on GeoffChurch:remove-google-plus into 309b19dabfb98d7af1e1ec25b530dea40f61b273 on alescdb:master.


Test: try to test at pod level

Signed-off-by: Sam Yuan<EMAIL_ADDRESS>

@rootfs , @marceloamaral may I have a list of pod level metric we want to checking?

https://github.com/sustainable-computing-io/kepler/pull/440#discussion_r1037489684
how long does the validation takes, so we'll have an idea about the scalability problem

@rootfs , for end to end validation so far it nearly don't take too much time, with reasons:

we get data from kepler restapi, and keep it in memory.
we just have kubecore, monitoring and kepler namespaces... hence we don't have to much pods as a heavy workload.

@rootfs , @marceloamaral below metrics are zero with kind.
kepler_exporter_build_info
kepler_node_core_joules_total
kepler_node_dram_joules_total
kepler_node_energy_stat
kepler_node_nodeInfo
kepler_node_other_host_components_joules_total
kepler_node_package_energy_millijoule
kepler_node_package_joules_total
kepler_node_platform_joules_total
kepler_node_uncore_joules_total
kepler_container_gpu_joules_total
kepler_container_other_host_components_joules_total
kepler_container_uncore_joules_total

@SamYuan1990 this looks good, can you do one more go mod tidy? The vendor file list looks quite long

@rootfs here you are.
yuanyi@yuanyideMacBook-Pro kepler % git status
On branch podcheckingine2e
nothing to commit, working tree clean
yuanyi@yuanyideMacBook-Pro kepler % go mod tidy
yuanyi@yuanyideMacBook-Pro kepler % git status
On branch podcheckingine2e
nothing to commit, working tree clean


Simplify and improve trace output

Trace eliding and naming was not working well in Node 6-9, due to what appears to be some changes in how captureStackTrace generates the first line of the trace.  Also, internal file names seem to change between every Node release, so trying to elide them by listing a few names isn't really a sustainable solution.  It looks like the internal filenames are always like just_a_filename.js, with no preceding path (and specifically, no slashes).  So, this switches to a regex that filters out lines that point at just_a_filename.js.

Coverage remained the same at 100.0% when pulling 6acacacec3ba890d42c9052618e9ebfb68e4582b on simplify-trace into 7276de4da85a2774c958be0e93dea984449b2b0f on master.

Coverage remained the same at 100.0% when pulling 6acacacec3ba890d42c9052618e9ebfb68e4582b on simplify-trace into 7276de4da85a2774c958be0e93dea984449b2b0f on master.

Coverage remained the same at 100.0% when pulling 6acacacec3ba890d42c9052618e9ebfb68e4582b on simplify-trace into 7276de4da85a2774c958be0e93dea984449b2b0f on master.


Option --no-warn don't suppress all warnings checking a PDF

Discussed in https://github.com/qpdf/qpdf/discussions/850

Originally posted by vf1962 December 21, 2022
Maybe I'm using parameters in a wrong way but executing this qpdf
QPDF.EXE --no-warn --check "C:\temp\Outlook.Dump\2022.11.23 pulizia - redmine #31190 ESEGUITA.pdf"
The result is
checking C:\temp\Outlook.Dump\2022.11.23 pulizia - redmine #31190 ESEGUITA.pdf
PDF Version: 1.4
File is not encrypted
File is linearized
WARNING: shared object 0 length mismatch: hint table = 65536; computed = 187
WARNING: shared object 1 length mismatch: hint table = 65536; computed = 13879
WARNING: shared object 2 length mismatch: hint table = 65536; computed = 21
[OMISSIS]
WARNING: shared object 239 length mismatch: hint table = 65536; computed = 35
WARNING: shared object 240 length mismatch: hint table = 65536; computed = 33
WARNING: shared object 241 length mismatch: hint table = 65536; computed = 924
WARNING: object count mismatch for page 0: hint table = 0; computed = 242
The PDF file is a Chrome print-out from Redmine web application.
Tank you

Specifically, --no-warn is not suppressing linearization warnings.

@vf962 See here for the issue you previously reported.

@vf1962 See here for the issue you previously reported.

Thank you.
For completeness, I'm using last qpdf version (11.2.0) on Windows 10 & 11


Updates to HCM Sprint

@NagwangGyamtso here are the links:
index.html:
https://oracle.github.io/learning-library/common/ --> https://oracle-livelabs.github.io/common/
bit.ly/golivelabs —> developer.oracle.com/livelabs


Swagger specification for Service Fabric runtime version 6.5

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Can one of the admins verify this patch?

These are not ARM APIs. These are Service Fabric runtime apis for 6.5 release

@amanbha  looks like there are few small typos in the descriptions and model names https://dev.azure.com/azure-sdk/public/_build/results?buildId=49399&view=logs&jobId=eca5a1cb-f12a-57d8-9254-390bd587c201

@amanbha  looks like there are few small typos in the descriptions and model names https://dev.azure.com/azure-sdk/public/_build/results?buildId=49399&view=logs&jobId=eca5a1cb-f12a-57d8-9254-390bd587c201

Thanks, I have pushed changes to fix the typos.

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Automation for azure-sdk-for-python

Automation for azure-sdk-for-js

Automation for azure-sdk-for-go

@jeffj6123 fyi.

@nschonni, @samedder could you please approve this?

@kpajdzik  Thanks for approving it, does it needs be blocked on an approval from @samedder or you can merge it.

@kpajdzik Thanks for approving it, does it needs be blocked on an approval from @samedder or you can merge it.

I can merge it. Do you want to fix two things I pointed first?

@kpajdzik Thanks for approving it, does it needs be blocked on an approval from @samedder or you can merge it.
I can merge it. Do you want to fix two things I pointed first?

@kpajdzik Those apis existed in service fabric 6.4 runtime release, but were not added to swagger specification, we are adding them to swagger spec now. The apis will work with query parameter: api-version=6.4, so please merge the PR without those suggested changes.


NO_PROXY environment variable ignored by node.js when run through VSTS agent

Issue can be reproduced on Windows and Linux platform!
Agent Version and Platform
Windows:2.131.0
Linux: 2.139.1
VSTS Type and Version
VisualStudio.com
If VisualStudio.com, what is your account name?
https://schwarzit.visualstudio.com
What's not working?
We have set up the VSTS agent in our internal network to work with a proxy to be able to connect to the visualstudio.com instance. We also defined a .proxybapass file in the root of the VSTS agent directory to ignore this proxy for certain addresses. The rules in this file are disregarded for the node.js task though apparently. I pasted an excerpt from the VSTS debug logs beneath. As you can see we're still bouncing at the proxy server.
To rule out that node.js is the culprit I used the same call that the SonarQube plugin uses in a small JS program which I ran through a standalone node.js instance and this one worked like a charme. Side note: I had to set the environment variable NO_PROXY for this to work correctly or else I bounced at the proxy too. When running SonarQube plugin in the VSTS Agent context though this environment variable (NO_PROXY) is totally disregarded.
Reasoning on this I think there are two options why that is:

The VSTS Agent is overwriting/overriding some of the node.js proxy mechanisms leading to this error. It might even be because the .proxybypass file has a different format than the one node.js expects.
node.js is disregarding the NO_PROXY environment variable when being called with proxy parameters from the VSTS agent.

Please check if either is the case and help us resolve the issue so we can get our static code analysis to run.
2018-08-31T12:32:12.7388666Z ##[debug]Agent.ProxyUrl=[ProxyURL:Port] 2018-08-31T12:32:12.7389207Z ##[debug]Agent.ProxyUsername=undefined 2018-08-31T12:32:12.7389618Z ##[debug]Agent.ProxyPassword=undefined 2018-08-31T12:32:12.7390019Z ##[debug]Agent.ProxyBypassList=["my.url"] 2018-08-31T12:32:12.7390440Z ##[debug]expose agent proxy configuration. 2018-08-31T12:32:12.7390843Z ##[debug]Agent.CAInfo=undefined 2018-08-31T12:32:12.7391232Z ##[debug]Agent.ClientCert=undefined 2018-08-31T12:32:12.7391640Z ##[debug]Agent.SkipCertValidation=undefined 2018-08-31T12:32:12.7392209Z ##[debug]SonarQube=a874a7fc-6e35-4660-bd3d-c97ca7d9d871 2018-08-31T12:32:12.7392858Z ##[debug]a874a7fc-6e35-4660-bd3d-c97ca7d9d871=https://sonar.kaufland/sonar 2018-08-31T12:32:12.7393307Z ##[debug]a874a7fc-6e35-4660-bd3d-c97ca7d9d871 auth param apitoken = null 2018-08-31T12:32:12.7393956Z ##[debug]a874a7fc-6e35-4660-bd3d-c97ca7d9d871 auth param username = ******** 2018-08-31T12:32:12.7394448Z ##[debug]a874a7fc-6e35-4660-bd3d-c97ca7d9d871 auth param password = null 2018-08-31T12:32:12.7394870Z ##[debug]organization=null 2018-08-31T12:32:12.7395247Z ##[debug]scannerMode=MSBuild 2018-08-31T12:32:12.7395662Z ##[debug]projectKey=Com.Organization.ProjectName 2018-08-31T12:32:12.7396077Z ##[debug]projectName=ProjectName 2018-08-31T12:32:12.7396478Z ##[debug]projectVersion=1.0 2018-08-31T12:32:12.7396988Z ##[debug][SQ] API GET: '/api/server/version' with query "undefined" 2018-08-31T12:32:12.7398359Z ##[debug]Response: 403 Body: "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Agent and Worker's Diagnostic Logs
Too much to blank out. This log file is giving URLs and information about internal projects. Can't do that publicly.

@kaufmd the agent is not using any of those linux proxy variables, the agent use different variable to expose its proxy setting with task, AGENT_PROXYURL/Username/Password/Bypasslist, in the log you shared looks like the task get those info, Agent.ProxyBypassList=["my.url"], make sure you author your bypass file right, entry in that file should be regex, so consider escaping.

Following your hint I came up with the following RegEx - but still to no avail.
RegEx: ^(https?://)sonar.internal/sonar.*$
URL: https://sonar.internal/sonar
Any further ideas?

Following your hint I came up with the following RegEx - but still to no avail.
RegEx: ^(https?://)sonar.internal.*$
URL: https://sonar.internal/sonar
The debug log tells me the following: 2018-09-06T06:53:07.5451518Z ##[debug]Agent.ProxyBypassList=["^(https?:\/\/)sonar\.internal.*$"]
Any further ideas?

@kaufmd that makes me feel the task is not doing the right thing, can you share the task you are using? we may want to contact the task author.

I'm trying to use the task "Prepare analysis on SonarQube" which is part of this project: https://github.com/SonarSource/sonar-scanner-vsts
I digged into their code base and it seems that the culprit might be here: https://github.com/SonarSource/sonar-scanner-vsts/blob/master/common/ts/helpers/request.ts
That is where the actual call is being made. Are you suspecting they're not paying attention to the bypass list? This actually would explain a lot...

@kaufmd the weird thing is their task seems like never check proxy setting, isn't it?

@TingluoHuang I think they're relying on the Node environment variables instead of using the agent's settings. Like I said: if I strip their get function to the absolutely necessary parts and execute it in a stand-alone node.js environment it works. It's not unlikely they never tested their plugin in an environment that requires a proxy.

@kaufmd agree, i would suggest you log an issue with them, since they are authoring a VSTS task which mean they need to follow how the rest of VSTS task handle proxy config. does this make sense to you?

As their JIRA is not allowing to open tickets directly I filed a report in the following post: https://community.sonarsource.com/t/vsts-prepare-analysis-ignores-proxybypass-list/2398

i am going to close this issue for now, since it doesn't seems like an agent issue, please re-open if you need more help on this.


EAGLE-135 Run Eagle on Spark Streaming

Eagle supports Spark Streaming framework now, monitoring Cassandra audit log has been tested.

As we have created branch-0.4 for preparing releasing, could you please recreate the pull request to branch-0.4 instead of dev?

Please close this pull request manually.

This pull request has been closed. I will try to fix some bugs before merging to branch-0.4.