[Bug] TBMQ cluster stuck when one of the nodes goes down

Describe the bug
I am run two tbmq nodes on same os with different ports. The remaining node seems stuck when one of the node was stopped by manual.
Your Server Environment

Deployment: Running function test on windows 10 64bit
TBMQ version: 1.4.0
OS name and version: Windows 10 64bit
JDK: 18

Your Client Environment
Windows 10  64bit, EMQX
To Reproduce

Start two tbmq nodes with different ports in same os.
Create two MQTT clients to connect to the two nodes respectively.
Test the subscription and publish all work well.
Stop one of the tbmq node.
The remaining node seems stuck and cannot delivery any message, even no accept any connection request.
But it become normal after minutes waiting.

Expected behavior
Expect the remaining nodes no affect by the offline node.

hey @keitsi!
Thank you for providing detailed information. Based on your description, this does not appear to be a bug but rather a result of Kafka's specific behavior in handling ungraceful shutdowns.
It seems that one of the nodes was stopped abruptly (perhaps using kill -9 or a similar forceful method), which caused Kafka to initiate a rebalance without allowing the consumers to stop gracefully. This can lead to a temporary system hang as Kafka waits for the consumers' assigned partitions to time out.
The timeout you're experiencing is likely due to the max.poll.interval.ms configuration in Kafka, which is set to 5 minutes by default. During this time, Kafka waits for a heartbeat from the consumers to determine their status. When the timeout expires, Kafka will consider the consumer dead and reassign its partitions, which may explain why the system returns to normal after several minutes.
To avoid this issue in the future, ensure that nodes are stopped gracefully, allowing the consumers to commit offsets and exit cleanly. If you need further assistance or clarification, feel free to reach out.

hey @keitsi!
Thank you for providing detailed information. Based on your description, this does not appear to be a bug but rather a result of Kafka's specific behavior in handling ungraceful shutdowns.
It seems that one of the nodes was stopped abruptly (perhaps using kill -9 or a similar forceful method), which caused Kafka to initiate a rebalance without allowing the consumers to stop gracefully. This can lead to a temporary system hang as Kafka waits for the consumers' assigned partitions to time out.
The timeout you're experiencing is likely due to the max.poll.interval.ms configuration in Kafka, which is set to 5 minutes by default. During this time, Kafka waits for a heartbeat from the consumers to determine their status. When the timeout expires, Kafka will consider the consumer dead and reassign its partitions, which may explain why the system returns to normal after several minutes.
To avoid this issue in the future, ensure that nodes are stopped gracefully, allowing the consumers to commit offsets and exit cleanly. If you need further assistance or clarification, feel free to reach out.

Got it, thanks for the detailed explanation.
And we also did some tests, and the results showed that the lag was indeed caused by these kafka client parameter max-poll-records and session-timeout-ms.
If I set both max-poll-records and session-timeout-ms to 10000ms, what situations do I need to consider or balance? Thanks a lot.


Module Parse Failed

I am installing Tailwindcss and am getting an error. Could you tell me how to fix this?
./node_modules/mind-ar/dist/controller.03a2d8ae.js 73127:96
Module parse failed: Unexpected token (73127:96)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|           u(f);
|         } else {
>           const d = new Worker(new URL("" + new URL("assets/compiler.worker.a69dc9d5.js", import.meta.url).href, self.location));
|           d.onmessage = p => {
|             p.data.type === "progress" ? e(50 + p.data.percent) : p.data.type === "compileDone" && u(p.data.list);

Was an issue with React-icons and AFrame

hello i know it was closed, but can u tell me ur solution for this problem?


[ci] clang-format hangs

running melos run format hangs in the clang-format part. This also happens locally on my Linux PC.
I am not sure how to disable that, but also the tool we are using (flutter_plugin_tools) is deprecated.

I am not sure how to disable that, but also the tool we are using (flutter_plugin_tools) is deprecated.

FYI we'll be walking this deprecation back slightly, and the package will be updated soon to reflect the new plan. It will continue to be supported as a package since it's used in multiple flutter/* repositories, it just won't be explicitly supported as a general-purpose tool. I wouldn't expect any issues with continuing to use the tool's format command here.

@stuartmorgan thank you for heads-up
@miquelbeltran seems the latest PR has fixed the format issue. could you confirm and then close this issue?

yes, I think it is fine now!


apacheKakfa 3.6.1 and 3.5.0 -> 3.5.2

I don't know how to verify/validate this-- is there an appropriate nix command to try it?

Can you split up adding 3.6 and making it the default? I'd like the patch adding 3.6 to get up streamed.

@bacchanalia hopefully this is close to what you were thinking. Let me know if you need anything else.

Did you still want to update the default kafka version here or are you doing it in end-to-end instead?

Did you still want to update the default kafka version here or are you doing it in end-to-end instead?

Oh, if you don't mind, I'll do it here. I was thinking you might have wanted it in a separate PR.

We should squash merge this one and do that in a seperate PR 👍

Squash merge isn't enabled for this repo, so I think you should just squash them manually, and then the second commit can also be on this PR since the PR isn't getting squashed.

I don't have merge permissions. @bacchanalia do you know who does?

Sorry, I didn't notice the first commit was a cherry pick. This is good.


fix #112

Add error label when no match found

Show/hide label accordingly
Search using 'Enter' on the keyboard
Toggle label on empty input
@llaske @tarunsinghal92 @amanharitsh123
I hope this improves the user experience

@NikhilM98 thanks for the suggestion. I am on it

@NikhilM98  > Can you add the localization for the error message?
can you please review this
https://github.com/llaske/sugarizer-server/pull/116/commits/011c477b15d392f7d741ae84d6746689a88cc8f4

this request is now referenced in #125 so I am closing it here


Hello I'm using maui .net7 and I'm trying to add   a map but it won't  show  I ended up using mapsui but I can not add button and change layers but I would like to use Google maps

Not sure what is meant here. If you're using Mapsui you probably want to check with them for support. Good luck!


GATT exception without Status Code: Where do I go from here?

Short summary: I have received the following error message and it doesn't have a specific code which would help to identify the underlying issue. Is having no status code normal? What do I do to get to the bottom of this?
Error Message:
GATT exception from MAC address FB:85:88:D9:9B:73, with type BleGattOperation{description='CHARACTERISTIC_READ'}

Generated by Code:
    public void onClick(View v) {
        final RxBleDevice rxBleDevice = (RxBleDevice) v.getTag();
        Log.d(TAG, "Connecting to : " + rxBleDevice.getName() + " " + rxBleDevice.getMacAddress());

        Subscription powerSubscription = rxBleDevice.establishConnection(this,false)
                .flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(powerCharacteristicUuid))
                .doOnError(error -> Log.d(TAG,"The error message is: " + error.getMessage()))
                .subscribe( (byte[] powerValue) -> {
                    // Read the value
                    Log.d(TAG, "power Subscription");
                    processPower(powerValue);
                });

... snip ...

Background:
Java-based Android app successfully uses RxAndroidBT library to talk to another BT device. I am adding a second device to obtain different information while retaining communication with the first. onClick() is being called after user selects the additional BT device to add. In other code I can successfully Discover services and BT characteristics on the devices. The BT codes match the ones I am looking for per spec, i.e basic communicates where established on basic scanning. Once scanned, I intended for app to drop the communications and re-establish communications with it assuming the user clicks on the new device.
Thank you for any debugging suggestions you might have.

Hello,
Check the class of the exception. Not only the message.

Thank you for the insight. Looks like the exception is:
com.polidea.rxandroidble.exceptions.BleGattCannotStartException

(Update) I think I've cracked the code on his one. My GATT characteristic required a setupNotification() call rather than a read() call. I'm now able to read data. I still likely doing some things poorly, but it's a breakthrough. I appreciate the advice.
Updated code to:
    final Subscription powerNotification = rxBleDevice.establishConnection(this,false)
            .flatMap(rxBleConnection -> rxBleConnection.setupNotification(powerCharacteristicUuid))
            .flatMap(observable -> observable)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe((byte[] powerValue) -> {
                // Read the value
                Log.d(TAG, "power Subscription");
                processPower(powerValue);
            });

Glad you have found it

@edster321 thanks, same issue i was facing and i follow the same.
readCharacteristic was throwing the same error for me
**"GATT exception from MAC address *****, with type BleGattOperation{description='CHARACTERISTIC_READ'}"
I finally used setupNotification and it's worked fine me
thank you


Support for HTTP/HTTPS proxies

Feature request as per title
Thanks

I add proxies params in client init function

I add proxies params in client init function


What is a tenant? How to configure it?

You may add a description with the The following tenants don't contain accessible subscriptions. Use 'az login --allow-no-subscriptions' to have tenant level access. problem (I guess I'm not the only one who has ever had this).

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

ID: 93174b3a-3e97-8304-83fc-807be75198fe
Version Independent ID: 1155045b-ce8c-2def-7b0e-043283f8be01
Content: Sign in with the Azure CLI
Content Source: docs-ref-conceptual/authenticate-azure-cli.md
Service: azure-cli
GitHub Login: @dbradish-microsoft
Microsoft Alias: dbradish

@olivierpons The official answer to those questions ("What is a tenant? How do I configure it?") is in our Active Directory documenation:
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant
Tenants and subscriptions can be a confusing topic for people who are just starting out with Azure.  I'll update this with a better description but the short answer is that a tenant can contain multiple subscriptions, but a subscription can only be in one tenant.

@olivierpons I would encourage you to look over the links above as they should give you a better understanding of tenants in Azure.  We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Testing with rhel-9.5 nightly

This pull request includes:

[ ] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as

[ ] submit a PR for the READMEs listed here
[ ] submit a PR for the osbuild.org website repository if this PR changed any behavior not covered by the automatically updated READMEs

Let's drop 8.10 nightlies?

Also is edge testing ready to be switched?

That IDK, see https://redhat-internal.slack.com/archives/C0235DZB0DT/p1717663941739349

LGTM but I agree with Jakub's comments for skipping the run entirely.

Oh, I just realised the nightly rule was already dropped for those tests.


⚠ Melody has degraded performance

In b6823fa, Melody (https://melody.triza.dev) experienced degraded performance:

HTTP code: 404
Response time: 5876 ms

Resolved: Melody performance has improved in c397df2.


Contextual example to highlight a problem any new App Mining governance should solve

As we have seen, the period we've allowed for App Miners to adjust to new rules (i.e. not making changes in a scoring period) has also opened the door for folks to exploit the lag in decision-making and stay ahead of any changes. It's also handcuffed App Reviewers from quickly bettering the end scoring result.
A clear example is in Awario where we see a new site or two rise up each month that clearly have a wonky Reach score and/or obviously isn't a News/Blog site, but is counted as such. Unfortunately, what has happened is that since we can't adapt to these as they come up (there is an unclear decision-making process that takes at least 1 month or more), people game these holes for Reach. I'm not talking fringe cases or grey areas, I'm talking obvious stuff here.
An example this month is Upwork, @wilsonbright was kind and noble enough to report it himself and say I could remove it. However, the current rules would preclude me from making this change without a month decision period because we can't make in period changes (and the last time I tried to push one through quickly, enough people benefiting fell back on this rule and we had to wait, letting the scores suffer in the meantime.)
In summary, I think the decision-making process should be faster, of course. Specifically, I think you could accomplish this by better empowering App Reviewers or whatever plays a similar function, to enforce the spirit of their review vs. being held to super-specific policies. This wouldn't only push out bad actors easier, but would reward good ones more as well. This month, I had to tell poor @joberding that her mentions didn't count because she added a hashtag to the front of them. Now, are those clearly mentions of her apps? Yes. Can I make that change to her benefit in the scoring period? Sadly no. I've also had to disallow Black Hole vs BlackHole for @walterion01. These things seem silly, but under the current rules, there is no way to make good faith exceptions (and I can see how it could turn into a slippery slope too).
So it works both ways and I think a stronger score is generally more important than giving notice about changes, even if it gives the occasional bit of whiplash in a scoring period. By moving more quickly on changes to the scores, you can get toward an overall better ranking more quickly too, which I think benefits everyone more in the long-run.

Related issues:
#221 Remove more self-posting sites with wacky Reach numbers from Awario scores
#194 Better structured proposal process


Listen for transitionend events

In Safari, I've observed situations along the lines of:

Changing the DOM class of an element initiates a height transition
When the attribute change is observed, Safari still reports the body
height as its pre-transition value
Once transitionend fires, the reported height is correct

I do not observe this behavior on Chrome or Firefox, but the change
herein should not hurt in those browsers either.

Hi,
That's a new event on me and I agree it's one we should be catching. I think rather than repeat the call to addEventListerner it would be better to do something like this.
if(Array.prototype.map){
	['transitionend','webkitTransitionEnd','oTransitionEnd',,'otransitionend'].map(function(e){
		addEventListener(window,e,onTransitionEnd);
	});
}

Also any chance you can add a test case for this?
Thanks,
Dave.

Or thinking about it a bit more it could be reduced down to.
if(Array.prototype.map){
	['transitionend','webkitTransitionEnd','oTransitionEnd','otransitionend'].map(function(transitioned){
		addEventListener(window,transitioned,function(e){
			if (e.propertyName in {height:1,width:1}) {
				sendSize('transitionend','Transition end');
			}
		});
	});
}


generate css with pygments 2.2.0, add makefile, update readme

@cs01 could you split this into two commits, one which adds the Makefile and another which rebuilds the CSS? Having that separation will make this pull much easier to grok and review.
Also, I noticed the CSS generated is missing the wrapper class, which may be changing (but as part of https://github.com/richleland/pygments-css/pull/6)

Removal of the .codehilite class makes it difficult to see some class names have been removed. That said, it calls to attention code generated with later versions of Pygments may not play as nice with the @richleland classics.

Thanks I'll add the class back in.  I doubt the pr will ever be merged though since #6 has been open for two years now, but it's worth a shot.

Hey, either way it'll help :) Seeing your diffs helped me make this already: https://github.com/comfusion/atom-one-pygments

commit 146834e addresses https://github.com/richleland/pygments-css/pull/6

@richleland would you do the honors? Many many websites are turning to JS for highlighting as a result of #6

They can also just use my fork :) https://github.com/cs01/pygments-css. I'm an active github user and respond quickly to updates.
But I agree with @jhabdas, @richleland, this repo is widely used but out of date. If you no longer want to maintain it, pass the torch on to someone who will.

To add a little more color, Rich, the beautiful static Web is about to come back in a big way thanks to Hugo. Check out the Smashing Magazine article from Netifly for more background.

Thanks for submitting @cs01. To be honest I wasn't aware it was used widely - I haven't done anything with pygments in years or worked on anything using it. Issues (4 in 8 years) and PRs (the last coming in Oct 2015) have been rare for the repo, so I don't keep as close an eye on it, but happy to keep closer watch moving forward.
Thanks again for the PR and nudging!


use range-for

range for is much easy to read

Codecov Report

Merging #42 into master will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #42      +/-   ##
==========================================
- Coverage   73.34%   73.33%   -0.01%
==========================================
  Files         519      519
  Lines       11763    11762       -1
==========================================
- Hits         8627     8626       -1
  Misses       2875     2875
  Partials      261      261

Impacted Files
Coverage Δ

leetcode/0001.Two-Sum/1. Two Sum.go
85.71% <100.00%> (-1.79%)
:arrow_down:

Continue to review full report at Codecov.

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

cool~


Sunsky hotfix

This is a super quick fix to CesiumSunSky for https://github.com/CesiumGS/cesium-unreal/issues/466. Created a branch instead of the select node and that seemed to resolve the problem.

Thanks for the pull request @argallegos!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

Thanks @argallegos !


New release ?

First of all, thanks a lot for this plugin !! It saved me a lot of time on a project that have an almost impossible to meet deadline.
Just one thing : I firstly installed the plugin via NPM and noticed some bugs using the latest VideoJS version (5.6.0), after fixing some I was ready for a pull request but realized that all of them were already fixed in the repo but not released yet... So it would be nice if you could release a new version soon, because things has evolved a lot since the last release, thank you :)

Sure thing - I just need to get the license added to the package file (#166) and I'll be good to go.


getEventResult filter onlyConfirmed/onlyUnconfirmed not working

The problem seems to be that when constructing the query string tronWeb is using snake-case parameter names, where the event query service expects camel-case names.
Query string construction here:
https://github.com/tronprotocol/tronweb/blob/v5.2.0/src/lib/event.js#L112
The /event/contract/{contractAddress} API endpoint in event query service:
https://github.com/tronprotocol/tron-eventquery/blob/master/src/main/java/org/tron/trongeventquery/contractevents/ContractEventController.java#L343
If I issue a raw HTTP request using camel-case names, it does work.
PS: This was tested with a local lite fullnode and local event query service, not public API providers.
Related issue https://github.com/tronprotocol/tronweb/issues/156

It looks like a typo error. Please use tronWeb.eventServer.request to send a raw request as a temporary solution. In V6, we are going to change this api.

Fixed in TronWeb v6.0.0-beta.0. Welcome to try.


refactor launch_screen and user login

Currently our launch screen is an independent go program (https://github.com/west2-online/fzuhelper-launch-screen). We hope to integrate it into the current unified architecture. We need 1 volunteer to help complete it.
Skills you may need

Basic golang skills and entry-level distributed knowledge
Familiar with our unified distributed architecture, or willing to learn this architecture
Have some time - or be willing to be pushed

assign @FantasyRL


[Sunstone] Security Groups

Description
Implement Security Groups tab. Related to #5422.
Tasks

[x] Security Group recover operation should only be activated if the are VMs in error state after an update

Progress Status

[x] Code committed
[x] Testing - QA
[x] Documentation (Release notes - resolved issues, compatibility, known issues)

@tinova PR to approve:
Dev
One-6.4
master

need to implement the VM update info

Recover switch 95342c3fa50c083d7c2ba1fa7025df71e22c8858


When we try to change the routing profile, the operation never completes

The SDK appears to never be calling the callback of Publisher.changeRoutingProfile(profile:, completion:). For example, when using the "Change routing profile" button in the publisher example app.
https://user-images.githubusercontent.com/53756884/196193637-0b71dea9-5230-45f0-924b-258c5c2ecac8.mov
┆Issue is synchronized with this Jira Uncategorised by Unito

This bug seems to be caused partly by us partly by Mapbox that enforces a destination when providing route options. See
https://github.com/ably/ably-asset-tracking-swift/blob/2a41b54585d5eb84dcf53d2326d82fbe9f4d6fc2/Sources/AblyAssetTrackingPublisher/Services/RouteProvider.swift#L59
Our code just ignores result handler when destination is set to null - so I provided a temporary fix that will at least invoke result handler. But in Android destination seems to be optional  (@KacperKluka to confirm)
So we will either need to provide some arbitrary destination value or have to ask Mapbox for this

The routing profile is tightly coupled with the destination. The only place where we specify a routing profile in Mapbox is while setting routes. In order to set a route we need a destination. So we need to have both destination and routing profile to properly set a route.
However, it's not required to provide a destination for a trackable as you've noticed here. So when there is no destination we simply don't set a route. I'm not exactly sure what's the issue here but it's probably an AAT problem 😉

Sounds sensible to me. However it looks like iOS deals with 'change routing profile' thinking that a trip with destination already exists and in fly. I will change this to channel the request to mapbox only if a destination is provided and change the setting when there is none.

I'm going to pause this work until we have an answer to whether UI should be invoking publisher interface or simply change a setting

Does this answer your question @ikbalkaya? https://github.com/ably/ably-asset-tracking-swift/pull/458#discussion_r1025051639


Nginx module Logrotate

The Nginx module manages its own logrotate config, it doesn't use the logrotate module present in the repo. This should be changed for consistency. You can see the current config in modules/nginx/files/etc/logrotate.d/nginx

@alexmuller has done the puppet work for this so closing the issue.


Options param not working

Im using sass and compass for my production,
here's my code in grunt.
  purifycss: {
      options: {
        minify: true
      },
      target: {
        src: ['dist/**/*.html', 'dist/js/*.js'], // Observed files
        css: ['dev/css/*.css'], // Take all css files into consideration
        dest: 'dist/css/style.css' // Write to this path
      }
    }

CSS can't be minify while i'm running this tasks

I'm experiencing the same issue.

It looks like a hardcoded options object was being passed to purify instead of the user-defined options

How have you fixed this @tpgmartin ? have no experience building grunt / nodejs tooling :/

Hey @michahell I'm not sure I understand. The options parameter relates to the properties defined here https://github.com/purifycss/purifycss#options-optional, none of which explicitly state how much or little CSS should be removed.
This specific fix allows you to pass in the options as desired from your gruntfile.

For me, setting ptions as { minify: true } doesn't minify the CSS. I think that was the original point of the issue.

@tpgmartin setting the info parameter to true does not give me a list of CSS that has been removed... this is handy if you know that some CSS rule that you DO need, is getting removed. you can then either:

add it to a bogus hidden div, so purify css thinks it is getting used somewhere and does not delete it.
add it to an 'ignore list', so purifyCSS ignores removing that CSS rule (this does not exist).

thanks @tpgmartin for the fix, I guess I'll use your version for now

This is fixed now. Will be publishing as soon as I get permissions on the grunt-purifycss npm package


3.3.1 regression in type inference

TypeScript Version:  3.3.1 & 3.4.0-dev.20190202

Search Terms:
Code
class Foo {
    foo: number = 0;
}

class FooBar extends Foo {
    bar: number = 10;
}

async function foo(f: Foo | number) {
    if (f instanceof FooBar) {
        try {
            f = await (async (): Promise<Foo | number> => {
                throw new Error();
            })();
        }
        catch (ex) {
            console.log(f.bar); // 3.3.1 has an error on this line -- "Property 'bar' does not exist on type 'number | Foo'. Property 'bar' does not exist on type 'number'"
        }
    }
}

foo(new FooBar());

Expected behavior:
No error as was in TypeScript 3.2.4
Actual behavior:
Error Property 'bar' does not exist on type 'number | Foo'. Property 'bar' does not exist on type 'number'
Playground Link:
http://www.typescriptlang.org/play/index.html#src=class Foo {
    foo%3A number %3D 0%3B
}

class FooBar extends Foo {
    bar%3A number %3D 10%3B
}

async function foo(f%3A Foo | number) {
    if (f instanceof FooBar) {
        try {
            f %3D await (async ()%3A Promise<Foo | number> %3D> {
                throw new Error()%3B
            })()%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20catch%20(ex)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20console.log(f.bar)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Afoo(new%20FooBar())%3B
Related Issues:

Here is another case
Code
function foo(o: { item?: { message?: string } }) {
    if (o.item === undefined || o.item.message === undefined) {
        o.item = (() => ({ message: 'hello' }))();
    }

    console.log(o.item.message.length);
}

Expected behavior:
No error as was in TypeScript 3.2
Actual behavior:
Error Object is possibly 'undefined'
Playground Link:
http://www.typescriptlang.org/play/index.html#src=function foo(o%3A { item%3F%3A { message%3F%3A string } }) {
    if (o.item %3D%3D%3D undefined || o.item.message %3D%3D%3D undefined) {
        o.item %3D (() %3D> ({ message%3A 'hello' }))()%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20console.log(o.item.message.length)%3B%0D%0A%7D

See #29513 for instanceof issues

@RyanCavanaugh that issue says it affects 3.2+, but I only see the issue with 3.3+, prior to 3.3 those cases worked fine for me.

This is not related to #29513. I believe it is caused by #29466.

Any movement on this? I came across this today and it bit me in production. Had tests around the affected code but test suite was running via ts-node, so it didn't catch this.

To add some detail on my particular issue (happy to open a separate issue if unrelated), this issue seems related to importing certain kinds of interfaces, possibly related to #13965. At least in my case, classes are fine. Specifically, the interface doesn't get brought into the imported javascript, but the class does.
I put together a little repo that illustrates the bug: https://github.com/ajsharp/typescript-interface-bug.
Below is the relevant part of the code. Document is an exported interface from mongoose, and Query is an exported class. Here's the type definition for Document.
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e51e5044b8cf1bb317f5ca052cba4531d051a234/types/mongoose/index.d.ts#L3301
import { model, Document, Model, Schema, Query } from "mongoose";

export interface PersonDocument extends Document {
  name: string;
}

export interface PersonModel extends Model<PersonDocument> {}

const personSchema = new Schema({
  name: String
})

personSchema.methods.test = function() {
  // will throw a 'ReferenceError: Document is not defined' error
  if (this instanceof Document) {
    return `I'm a document!`;
  } else if (this instanceof Query) {
    return `I'm a query!`
  } else {
    return `I'm neither`
  }
}

export const Person: PersonModel = model<PersonDocument, PersonModel>('Person', personSchema);

Which generates the following javascript, which does not properly import the Document interface.
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = require("mongoose");
const personSchema = new mongoose_1.Schema({
    name: String
});
personSchema.methods.test = function () {
    // will cause a Document undefined error
    if (this instanceof Document) {
        return `I'm a document!`;
    }
    else if (this instanceof mongoose_1.Query) {
        return `I'm a query!`;
    }
    else {
        return `I'm neither`;
    }
};
exports.Person = mongoose_1.model('Person', personSchema);
//# sourceMappingURL=Person.js.map

ping @RyanCavanaugh @ahejlsberg

Following up here after some conversation in the typescript gitter. I was reminded that interfaces do not show up in compiled code. However, the compiler should be raising a 'Document' only refers to a type, but is being used as a value here error due to how I'm trying to use it, but it is not.
This behavior seems limited to imported modules, not local code. If I define an interface in my project and try to use it on the right side of an instanceof statement, the typescript compiler raises the proper error. But when importing an interface from an external module, it does not.


feature/filter-extra-deps-from-plugin-requirements

This is the """simple""" / naive solution for #127.
If there is more I should do just let me know. Or if this isn't the implementation strategy you would like to take no worries :slightly_smiling_face:
Congrats on the imminent launch!

awesome @JacksonMaxfield! agreed that we shouldn't show the "extraneous" (though I also wonder if we should strip out version info from the list of requirements, too 🤔 )
I'll defer to @liaprins-czi & @codemonkey800 on design & implementation

This looks great to me! I wonder if we would ever want to do any special rendering for dev, setup, and test extra dependencies, but I am fine with excluding for now if we ever want to do something with it. My hunch though is most people will only care about the non-extra dependencies.

I would also love to hear what @liaprins-czi thinks about this before approving

Yea. I think a longer term solution would be to make an acordian view that hides away the extra deps? But when clicked expand to show the different catagories? But also should probably go through design / even "is that valuable" like you said.

the primary goal here is to surface dependencies that end users might want to be aware of.... for a dev who wants to know the details, they are 2 clicks away (source code, then requirements.txt) so I don't think it makes sense to expand-on-click or anything. this is also why I wonder if the version info should even be listed here.

The "dev" "test" makes sense that users would care about it, but aicsimageio itself actually splits deps up like this for image reading. The napari-aicsimageio installs aicsimageio[all] but what that means on the aicsimageio side is that it is installing aicsimageio[czi, lif, base-imageio]. (See "extra format installation") This is just to say that there are use cases where showing "extra" deps could be useful. Though it is rare.

It would be cleaner looking without it, so from my POV that sounds nicer... and I do feel like it is nuanced anough that we don't need it here, but still have it accessed on the GH readme (or wherever on the plugin's GH repo it lives). Seems like user would know if they have the program/tool or not that is listed as a dependency, and then can look into what version they need if they don't have it updated. At least that is my hunch, but I am not coming from the user's POV myself...

That is all very fair. I think if the user needs to know about some extra installation setup then the plugin author should probably add stuff to the README haha.


Issue-9977: [Functions] Enabled server side routing for state store

Fixes #9977
Motivation
Stateful functions would not run on a Pulsar standalone cluster running inside a Docker container
Modifications
Changed the client type used by the BKStateStoreProvider from a Thick client to the thgin
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): No
The public API: No
The schema: No
The default values of configurations: No
The wire protocol: No
The rest endpoints: No
The admin cli options: No
Anything that affects deployment: No

Documentation

Does this pull request introduce a new feature? No
If yes, how is the feature documented? not applicable
If a feature is not applicable for documentation, explain why? It is just a fix to some low-level implementation that the user is unaware of

LGTM.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Project Tabs on Windows

The most important reason I keep circling back to Mac OS is that VsCode still does not allow tabbed opening of multiple projects on Windows...

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

hi

Is there any update on this? It's been quite a few months


⚠ Bofrost.at has degraded performance

In 2761173, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1576 ms

Resolved: Bofrost.at performance has improved in ada79c0.


Update Index.css - Group Options display

This will the width and stop the truncating of lines. All options will now display on a single line.

Shouldn't this go into admin.css?

It could; the #admin_form_wrapper part could force it into admin.css.  Might be more of a toss up though. I placed these where the original '.settings' were being called. I have no problems if that is where he wants it; he can close this commit and I will resubmit with it in admin.css. I am good with that. :smiley:

I figured the idea was to trim down the monstrous size of the global css file >_>

Yeah. I think it makes sense in admin.css but congrats on getting your first PR done

:)  No problem. I will close this and resubmit the changes in admin.css.  thanks


Unable to resolve module react-native-web from /Users/zz/Documents/xxx/node_modules/react-native-svg/lib/resolve.js

Bug
in your code,import react-native-web
import { StyleSheet } from 'react-native-web';
but in your package.json you have no 'react-native-web' lib in the dependencies
so i got an error after use 'react-native-svg' in my project
bundling failed: Error: Unable to resolve module `react-native-web` from `/Users/zz/Documents/xxx/node_modules/react-native-svg/lib/resolve.js`: Module `react-native-web` does not exist in the Haste module map

Environment info

React Native Environment Info:
    System:
      OS: macOS 10.14.5
      CPU: (12) x64 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
      Memory: 29.40 MB / 16.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
      Yarn: 1.15.2 - /usr/local/bin/yarn
      npm: 6.4.1 - ~/.nvm/versions/node/v10.15.3/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
      Android SDK:
        API Levels: 21, 22, 23, 24, 25, 26, 27, 28

IDEs:
      Android Studio: 3.4 AI-183.54<IP_ADDRESS>52501
      Xcode: 11.2.1/11B500 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.6.3 => 16.6.3
      react-native: 0.57.8 => 0.57.8
    npmGlobalPackages:
      react-native-cli: 2.0.1

hope any idea to handle this problem ?

You can alias react-native-web to react, it should handle the non-existence of Stylesheet correctly: https://codesandbox.io/s/mjj41y558j

Related: https://github.com/react-native-community/react-native-svg/pull/950#issuecomment-471231299


Using with Ros2: Ros2webbridge crashes after a period of time

[x] I am at the right place and my issue is directly related to ROS#. General technical questions I would post e.g. at ROS Answers or Stack Overflow. For library-specific questions I would look for help in the corresponding library forums.
[x] I have thoroughly read the Contributing Guideline and writing this issue is the right thing to do in my case.

I have a question!

[x] I searched the Wiki, open and closed issues for an answer. I tried my best to find the answer by myself without success. I believe that the discussion we will have in this issue, and the solutions we might find, will help me, and likely other community members who have a similar problem.

Here is my question:

OS: Windows 10
Ros: Ros2 Eloquent
Unity: 2019.4.14f1
Node.js: 14.15.4

I'm trying to use Ros# with Ros2 using Ros2webbridge.
I get the messages in unity but after a length of time (< 1 minute) after subscribing, Ros2webbridge crashes with the error:
#
# Fatal error in , line 0
# Check failed: result.second.
#
#
#
#FailureMessage Object: 000000CFCB4FD850
 1: 00007FF7314F058F napi_wrap+109311
 2: 00007FF731424D8F std::basic_ostream<char,std::char_traits<char> >::operator<<+57151
 3: 00007FF73205E412 V8_Fatal+162
 4: 00007FF731B022AD v8::internal::BackingStore::Reallocate+653
 5: 00007FF731D480E9 v8::ArrayBuffer::GetBackingStore+137
 6: 00007FF7314D2469 napi_get_typedarray_info+393
 7: 00007FF9FA289B41
 8: 00007FF9FA28F28D
 9: 00007FF9FA287EC3
10: 00007FF9FA28EAE3
11: 00007FF7314CCD86 node::Stop+35046
12: 00007FF731D0E72F v8::internal::Builtins::builtin_handle+321471
13: 00007FF731D0DCC4 v8::internal::Builtins::builtin_handle+318804
14: 00007FF731D0DFB7 v8::internal::Builtins::builtin_handle+319559
15: 00007FF731D0DE03 v8::internal::Builtins::builtin_handle+319123
16: 00007FF731DE9F9D v8::internal::SetupIsolateDelegate::SetupHeap+464173
17: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
18: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
19: 00000267A1710CFC

or sometimes:
#
# Fatal error in , line 0
# Check failed: result.second.
#
#
#
#FailureMessage Object: 000000ADA7CFDE50
 1: 00007FF7314F058F napi_wrap+109311
 2: 00007FF731424D8F std::basic_ostream<char,std::char_traits<char> >::operator<<+57151
 3: 00007FF73205E412 V8_Fatal+162
 4: 00007FF731B022AD v8::internal::BackingStore::Reallocate+653
 5: 00007FF731D480E9 v8::ArrayBuffer::GetBackingStore+137
 6: 00007FF7314D2469 napi_get_typedarray_info+393
 7: 00007FF9FDD89B41
 8: 00007FF9FDD8F28D
 9: 00007FF9FDD87EC3
10: 00007FF9FDD8EAE3
11: 00007FF7314CCD86 node::Stop+35046
12: 00007FF731D0E72F v8::internal::Builtins::builtin_handle+321471
13: 00007FF731D0DCC4 v8::internal::Builtins::builtin_handle+318804
14: 00007FF731D0DFB7 v8::internal::Builtins::builtin_handle+319559
15: 00007FF731D0DE03 v8::internal::Builtins::builtin_handle+319123
16: 00007FF731DE9F9D v8::internal::SetupIsolateDelegate::SetupHeap+464173
17: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
18: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
19: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
20: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
21: 00007FF731DBB475 v8::internal::SetupIsolateDelegate::SetupHeap+272901
22: 00007FF731E5FEFE v8::internal::SetupIsolateDelegate::SetupHeap+947342
23: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
24: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
25: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
26: 00007FF731D7E661 v8::internal::SetupIsolateDelegate::SetupHeap+23537
27: 00007FF731E68343 v8::internal::SetupIsolateDelegate::SetupHeap+981203
28: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
29: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
30: 00007FF731D7E661 v8::internal::SetupIsolateDelegate::SetupHeap+23537
31: 00007FF731E68343 v8::internal::SetupIsolateDelegate::SetupHeap+981203
32: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
33: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
34: 00007FF731DFC0BE v8::internal::SetupIsolateDelegate::SetupHeap+538190
35: 00007FF731D828A2 v8::internal::SetupIsolateDelegate::SetupHeap+40498
36: 00007FF731D8055E v8::internal::SetupIsolateDelegate::SetupHeap+31470
37: 00007FF731D8014C v8::internal::SetupIsolateDelegate::SetupHeap+30428
38: 00007FF731C50631 v8::internal::Execution::CallWasm+1649
39: 00007FF731C4FE9F v8::internal::Execution::Call+191
40: 00007FF731D3B7E7 v8::Function::Call+615
41: 00007FF7315145FB node::CallbackScope::~CallbackScope+1659
42: 00007FF731514A61 node::MakeCallback+209
43: 00007FF731514BF8 node::MakeCallback+312
44: 00007FF73151496B node::MakeCallback+139
45: 00007FF9ECA47FDD rclnodejs::ShadowNode::Execute+557 [P:\ros2webbridge\ros2-web-bridge\node_modules\rclnodejs\src\shadow_node.cpp]:L123
46: 00007FF9ECA1D59E rclnodejs::Executor::ExecuteReadyHandles+158 [P:\ros2webbridge\ros2-web-bridge\node_modules\rclnodejs\src\executor.cpp]:L258
47: 00007FF73154484B uv_async_send+331
48: 00007FF731543FDC uv_loop_init+1292
49: 00007FF73154417A uv_run+202
50: 00007FF7314502B5 v8::internal::OrderedHashTable<v8::internal::OrderedHashSet,1>::NumberOfBucketsOffset+9365
51: 00007FF7314C3A17 node::Start+311
52: 00007FF73132686C RC4_options+339820
53: 00007FF7322C604C v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor+153532
54: 00007FFA5C1E7C24 BaseThreadInitThunk+20
55: 00007FFA5CF8D4D1 RtlUserThreadStart+33

My unity code is looks like this:
public class ExampleAction : MonoBehaviour
{
    private RosConnector rosConnector;

    private void Start()
    {
        rosConnector = GetComponent<RosConnector>();

        new Thread(Subscribe).Start();
        new Thread(Subscribe2).Start();

        Debug.Log("Start called");
    }

    private void Subscribe()
    {
        if (!rosConnector.IsConnected.WaitOne(10 * 1000))
            Debug.LogWarning("Failed to subscribe: RosConnector not connected");

        rosConnector.RosSocket.Subscribe<RosSharp.RosBridgeClient.MessageTypes.Std.String>("/topic", SubscriptionHandler, 0); // the rate(in ms in between messages) at which to throttle the topics
    }

    private void Subscribe2()
    {
        if (!rosConnector.IsConnected.WaitOne(10 * 1000))
            Debug.LogWarning("Failed to subscribe: RosConnector not connected");

        rosConnector.RosSocket.Subscribe<RosSharp.RosBridgeClient.MessageTypes.Std.String>("/topic2", SubscriptionHandler, 0); // the rate(in ms in between messages) at which to throttle the topics
    }

    private static void SubscriptionHandler(std_msgs.String message)
    {
        Debug.Log((message).data);
    }
}

The topics are being published at 100Hz by a simple python script using rclpy, though I was originally trying to replay a bag file sending topics at a similar rate with the same results.
I've tried downgrading Node.js to version 12.9.0.  It lasts much longer using this version (5-10 minutes) but eventually closes with no error.
I'm very new to Ros/Ros2 so I'm not sure how to test the Ros2webbridge independent of Ros# though the issue only ever happens after the application has subscribed to the topics.
The more topics I subscribe to the faster it seems to crash as well.

Hi @slogan-oxts ,
did you check issue https://github.com/siemens/ros-sharp/issues/315  and apply the ROS2-related fixes mentioned there?
Maybe the contributors of that issue can help you further?

Hi @slogan-oxts ,
did you check issue https://github.com/siemens/ros-sharp/issues/315  and apply the ROS2-related fixes mentioned there?
Maybe the contributors of that issue can help you further?

Hi @MartinBischoff
Yes I did try the resolution in that ticket but it seemed to make no difference.
I've managed to get a test using only ros2webbridge working and it seems to fail with the same issue so it looks like the issue is probably in there.  I'll close this one for now and make a ticket on that repository.

Hi @MartinBischoff
Yes I did try the resolution in that ticket but it seemed to make no difference.
I've managed to get a test using only ros2webbridge working and it seems to fail with the same issue so it looks like the issue is probably in there.  I'll close this one for now and make a ticket on that repository.

Thanks @slogan-oxts , please feel free to reopen if you see that the problem is related to ROS#.
Can you share the link to the other issue here?

Thanks @slogan-oxts , please feel free to reopen if you see that the problem is related to ROS#.
Can you share the link to the other issue here?

The solution to this issue was to use a different version of node.js.  The latest erbium release (12.20.1 at the time of writing).
After installing this is seems to be working perfectly both inside and outside of ROS#.
More information in the ros2webbridge ticket:
github.com/RobotWebTools/ros2-web-bridge/issues/173

The solution to this issue was to use a different version of node.js.  The latest erbium release (12.20.1 at the time of writing).
After installing this is seems to be working perfectly both inside and outside of ROS#.
More information in the ros2webbridge ticket:
github.com/RobotWebTools/ros2-web-bridge/issues/173


Updated PHP version in documentation

As composer.json and contributing guidelines state, the minimum version is 7.2.5.

I think the minimum version of cURL is probably outdated too.


Not possible to set default style of FormulaControl in app?

I'm trying to set a default style for FormulaControl in my entire app. At the moment it doesn't work, and I believe it might be related to this SO answer:
https://stackoverflow.com/a/39364416/4351604
If i'm correct, this should be added to FormulaControl.cs
static MyControl()
{
    DefaultStyleKeyProperty.OverrideMetadata(
        typeof(FormulaControl),
        new FrameworkPropertyMetadata(typeof(FormulaControl)));
}

Very late reply, but recently I've stumbled upon the same issue. What I'm trying to do is apply default styles to my FormulaControl's using a keyless Style-tag like the following:
<Style TargetType="{x:Type wpfMath:FormulaControl}">
    ...
</Style>

However, that does not seem to work, and I suspect that the issue has to do with DefaultStyleKey not being overridden. I will try to see if I can figure out how it should be solved.

Could you please elaborate a bit more? What particular aspect of stiling are you trying to change?
(and it's nice to see you after these years, hope you are okay 😅)

Sure! I have lots of FormulaControls in the same app and I want them all to use the same values for SystemTextFontName, TextOptions.TextRenderingMode, TextOptions.TextHintingMode, etc.


[python] add default formatter

Why would you want to use this instead of the Ruff extension?

This broke ruff installation that I had to remove this feature altogether, can this be added behind a feature gate disabled by default? Given that there are quite a few well known alternative, I don't think autopep8 should be enabled by default.

@pickfire I added “-ms-python.autopep8“ to the extensions sections of my dev container config (mind the minus sign, which will remove the extension). And I added a formatted entry to use ruff.
I have to agree that this PR made life harder. Not a fan.

Okay, revert makes sense in this case. Thanks for bringing this us, feel free to send out a revert PR.


Smart buy doesn't work for technicians

Hi,
I noticed that smart buy doesn't work at least for technicians.
I've looked up at the code and it seems that https://github.com/scorzy/IdleSpace/blob/07d88e515a932378475e27dcf7946c10c4190be1/src/app/model/automators/robotEndingAutomator.ts#L24 is the line causing the issue.
I've changed it locally to this.robot.operativity === 100 and technicians were smartly bought.
Could you take a look at this?
Thanks

Yes, fixed from the next version.


[Help] Enchantment troubles

Hello! I am trying to enchant custom weapons that I make with this plugin however once enchanted the enchantments that I try to use don't affect the damage of the weapons.
I made a rpgitem with a base damage of 10 and put 2 in my inventory. One with no enchantments and one with sharpness 2. The screenshots are below and as you can see the damage doesn't change.
Is there a fix for this?

RPGItem's damage (in "fixed" damage mode) won't be affect by enchants. It's a feature now.
However, if you use newest version , you can use "additional" damage mode by /rpgitem item damageMode twice (until it says "damage mode set to additional damage (vanilla minecraft damage plus RPGItem damage)"), the damage it made will be the damage you set plus a damage done by a enchanted wooden sword,14(without enchant) vs 15.5(with Sharpness II)  in your case.


mutool -v fails on Darwin

Describe the bug
$ mutool -v
dyld[36604]: Library not loaded: build/shared-release/libmupdf.dylib
  Referenced from: <A9E5344D-4608-38EF-8FCF-9F3FFD530711> /nix/store/b8qsxwrqsysmg62b42g4l0q2q1sybj9h-mupdf-1.23.6-bin/bin/mutool
  Reason: tried: 'build/shared-release/libmupdf.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSbuild/shared-release/libmupdf.dylib' (no such file), 'build/shared-release/libmupdf.dylib' (no such file), '/usr/local/lib/libmupdf.dylib' (no such file), '/usr/lib/libmupdf.dylib' (no such file, not in dyld cache)

Steps To Reproduce
Run git checkout b576bc2 && nix-build -A mupdf && ./result-bin/bin/mutool -v.
Notify maintainers
@vrthra @fpletz @lilyinstarlight

Metadata
 - system: `"aarch64-darwin"`
 - host os: `Darwin 22.6.0, macOS 13.6.1`
 - multi-user?: `yes`
 - sandbox: `relaxed`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `/nix/store/2blpc1wdp6y5pncfmi3iqyz8d235jn45-plh9qjk66d6f8pibcybj33cppyvz48in-source`

Add a :+1: reaction to issues you find important.

duplicate of https://github.com/NixOS/nixpkgs/issues/272789


rename post-deploy tasks to post-rollout tasks

post-deploy -> post-rollout

Merged into develop branch: https://github.com/amazeeio/lagoon/pull/94


Import Hydrus Collections

So that users can deposit into collections that they have access to in Hydrus.

@amyehodge @andrewjbtw can we close this ticket?

Fine with me. We will, of course, still need to migrate the rest of the content, but we don't need to figure out how to do it.

Sorry, that message was supposed to be on another ticket.... something odd happened with zenhub.


I don't think .NET's regex engine is based on NFAs

In general, a Nondeterministic Finite Automaton (NFA) engine like .NET regular expression engine places the responsibility for crafting efficient, fast regular expressions on the developer.

I think that's wrong.
An NFA implementation would be linear in both the regular expression length and the input length as argued here: The NFA's number of states is linear in the length of the regex.
It's the implementations that are written as a recursive-descent-parser that are vulnerable to catastrophic backtracking - and since .NET's is, it's presumably one of those.
The whole notion of "backtracking" is a recursive-descent thing, not an automaton thing.

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

ID: 3ce579cf-f3af-6050-895b-d00ae083c26b
Version Independent ID: 89943c6e-1d5e-737d-cac8-ef87e8d42cf6
Content: Backtracking in .NET Regular Expressions
Content Source: docs/standard/base-types/backtracking-in-regular-expressions.md
Product: dotnet
Technology: dotnet-standard
GitHub Login: @Thraka
Microsoft Alias: adegeo

@jtheisen Hello. Does the intro at https://docs.microsoft.com/en-us/dotnet/standard/base-types/details-of-regular-expression-behavior describe it better?

The .NET Framework regular expression engine is a backtracking regular expression matcher that incorporates a traditional Nondeterministic Finite Automaton (NFA) engine such as that used by Perl, Python, Emacs, and Tcl.

I feel like this description should be adapted to this article.

I think it's incorrect, and it contradicts the article I linked.
It also contradicts everything I know from university about finite automatons. Neither DFAs nor NFAs do backtracking, the latter can merely be in multiple states at ones.
I'm pretty sure that the author didn't know what an automaton is.
If I'm wrong I bow my head in shame, but I don't think I am.

I'm unsure really. I don't have enough knowledge either way. I just noticed that the difference between the two descriptions of the engine are pretty substantial in the wording. The link I linked to describes it as this first:

The .NET Framework regular expression engine is a backtracking regular expression matcher

Then it goes on to say that it also does this:

incorporates a traditional Nondeterministic Finite Automaton (NFA) engine

While the article you filed this issue on seems to describe the .NET Regex system as an NFA first and foremost, which seems to be the description problem.
@ViktorHofer can you shed some light?

You could argue it's a description problem. NDAs cannot be executed literally after all, though I would argue that if you simulate them naively, you get the linear algorithm and there's still no backtracking involved.

@maryamariyan can you help here?

I believe the wording could be updated from

In general, a Nondeterministic Finite Automaton (NFA) engine like .NET regular expression engine places the responsibility for crafting efficient, fast regular expressions on the developer.

To

In general, a backtracking Nondeterministic Finite Automaton (NFA) engine like .NET regular expression engine places the responsibility for crafting efficient, fast regular expressions on the developer.

to better describe the engine. The article linked above (https://swtch.com/~rsc/regexp/regexp1.html), describes an approach using NFAs in a non-backtracking way: by tracking all the possible states at the same time. So yes, it is possible to use NFAs, but not use backtracking. Just because an engine is using NFAs doesn't necessarily mean it can have exponential runtime.
cc @pgovind @stephentoub

Right, it's a question of how you handle the ability to be in multiple states at the same time.  You can try one thing and if it fails backtrack to try the next, or you can keep track of all of the possible states you're in at each step.  The latter is often referred to as a "Thompson NFA".

@stephentoub Well, the second implementation still is an automaton, ie. a program of finite state (for each given regex). That includes all state, including all stack and heap required for the implementation that isn't directly representing the NFA states. The first implementation may be "based" on an automaton, but it's not actually an automaton as it requires the additional bookkeeping required for backtracking, which can be linear in the input size.
So the "Thompson NFA" is itself a proper automaton, the "NFA-based backtracker" isn't.
The fact that the latter can catastrophically backtrack is a reflection of that, as that can't happen with proper automatons. (That's what makes my point here not merely an academic one.)
Perhaps a sentence like "the backtracking NFA implementation is not an automaton in the strict theoretical sense" somewhere in or along the paragraph quoted by @eerhardt could help those poor souls that are confused by what they've thought they learned about automatons in compsci classes 20 years ago.

I think this is splitting hairs.  The terminology as it applies to regular expressions is well-accepted.  If we're going to go by strict theoretical terminology, these aren't regular expressions, either, in that they can be used to describe things that aren't possible in regular languages.

You have a link to another source calling backtrackers "NFA implementations"?
I don't doubt you, I'm just curious.
While you may be right in that it's generally accepted terminology by regex-pros, we're talking about documentation targeting a much more general audience. With your argument you could probably drop a lot more. What I generally like about much of the MS docs is that they often give the necessary overview that is usually neglected.

Sure, e.g. Jeffrey E. F. Friedl's Mastering Regular Expressions, considered by many to be the regex bible.

He indeed even calls backtracking "the essence of an NFA engine".
I'm closing now and be on my way, thanks for listening.


Fancy Zones - Use hotkey + scroll wheel to cycle through windows in zone under mouse cursor

Description of the new feature / enhancement
With regard to Fancy Zones, I would like to be able to place multiple windows in the same zone, and then use a hotkey + my mouse scroll wheel to cycle through windows that are in that zone.
Scenario when this would be used?
I'd like to map windows to locations by their purpose.  For instance, I could have a smaller zone that I use for music players and podcast apps.  I can then put the mouse cursor over this zone, hit my hotkey and then scroll through all of the audio players without thinking through all of the other windows on the desktop.
Supporting information
No response

/dup https://github.com/microsoft/PowerToys/issues/1342


Benchmarking async functions?

Hello again! 😁
We're looking for something to benchmark Cats Effect on JS, and of course you have the perfect project for this :) The trickyness for our use-case however is that we need to be able to benchmark an async function, e.g. something that returns a Future or a js.Promise or asynchronously invokes a callback. I took a walk through your source, which is really excellent btw, but it seems like to accommodate this would require quite a bit of changes to the Benchmark, Engine, and Clock interfaces/implementations at least. Is this something you'd be open to, or is there a problem with benchmarking an asynchronous function that I'm not realizing?
Thanks in advance!

Who hello!

I took a walk through your source, which is really excellent btw

Haha really? Thanks! From memory the code here is a little..... "organic" in some of it's design :laughing:

Is this something you'd be open to, or is there a problem with benchmarking an asynchronous function that I'm not realizing?

The only potential problem I can think of is that we're going to lose accuracy in the results because of so many async hops but 1) I can't think of any way to avoid that, 2) all async benchmarks will suffer the same penalty so if you're running a bunch of related async benchmarks, the total time might be a bit less precise but the relative times of each BM as they compare to each other should still be valuable. So yeah totally open to it! In fact I might have a quick play with it now and see if I can just smash it out in under an hour. A lot of the internals are already async from memory, just need to plumb through a bit more async support from the external interfaces.

Yay! Thanks for being open to this!! 😁

all async benchmarks will suffer the same penalty so if you're running a bunch of related async benchmarks, the total time might be a bit less precise but the relative times of each BM as they compare to each other should still be valuable

Yup, that's exactly our situation!

just need to plumb through a bit more async support from the external interfaces.

Yeah, exactly what I thought too!

In fact I might have a quick play with it now and see if I can just smash it out in under an hour.

That would be awesome, thank you! Actually, I had a go at this myself the other day in my fork, and I came out with something usable for our needs. Although be warned, I significantly reworked the insides to use Cats Effect data types I was more familiar with 😬 (e.g., your Setup is my Resource Kleisli, and all that awesome cancellation logic in your Engine is directly built into Fiber.

Wow!  (Does that slang make sense over there in the US?)
I'm a bit hesitant though about using CE everywhere. Lemme think out loud aobut why...

AsyncCallback is super lightweight, CE is much heavier

Larger JS output (meh I guess, it's just a BM)
CE would be slower I presume but is it really enough to worry about? Part of me feels yes because these are very hot loops

SJReact is already a dependency which is why I'm fine to use AsyncCallback, adding CE...

Would introduce a new mandatory dependency - the less the better
I don't want to be held back by, or run into compatibility problems in the future. I was working on a little side project experiment a little yesterday and was halted by incompatibilities between CE2 and CE3 on libraries I was using. I'd hate to run into those problems in projects like this

There's a bit of subtlety that's extremely important for having the UI be responsive while BMs are running. It's not at all obvious and was annoying to get working. We'd need to make sure your changes didn't accidentally clobber that, which would be really easy to do.

Wow!

Hehe, just a proof of concept 😅 Also really needed to benchmark some stuff.

I'm a bit hesitant though about using CE everywhere.

Well, the biggest problem for us is that now we have a circular dependency between the benchmarks in CE and the benchmark lib 🙃

CE is much heavier

Is it really? You already have a Cats dependency, CE doesn't add too much I thought. To be fair I haven't really explored your AsyncCallback lib. Also BTW CE patches an important bug with the default Scala.js execution context, see https://github.com/scala-js/scala-js/issues/4129

CE would be slower I presume

You may be right about this, but it also prioritizes fairness between multiple interleaved processes.
Plus, Fibers in CE3 are really awesome and I think could solve a lot of problems you hand-coded solutions for :)
But ...

SJReact is already a dependency

Actually I tossed this stuff out 😬 sorry! I think it was getting in the way of cross-building for 2.12, and also it wasn't really necessary for the command-line style interface we were looking for. My immediate goals diverged, and of course I did a terrible hack job, I'm sure with more careful planning this wouldn't be necessary.

incompatibilities between CE2 and CE3 on libraries

Yup, sorry about this pain, CE3 is still very new but it's a big step forward on several fronts and definitely going to stick around for a while.

There's a bit of subtlety that's extremely important for having the UI be responsive while BMs are running.

I wonder if that execution context bug I mentioned is related at all to this? Obviously this is important to get right.
So putting aside my hack job (apologies again!!) what I think would be a great way forward would be something like this:

maybe split scalajs-benchmark into a couple more modules? A core with just benchmarking stuff that can run in all environments, then a separate module that builds on that to offer the browser interface?
I really think CE3 is worth considering as a dependency. At the very least, I wonder if this stuff could be implemented requiring only the Async typeclass from CE3 and then users can use either IO or AsyncCallback? I mean, not critical, since this still creates a circular dependency problem for CE, but a lot of the critical code in your engine could really be simplified I think :)

Anyway thanks for considering this at all, and sharing all your thoughts! I see you've put up a PR, gonna check that out now :)

CE patches an important bug with the default Scala.js execution context
I wonder if that execution context bug I mentioned is related at all to this? Obviously this is important to get right.

I never use execution contexts :grinning: The issue I had is that there's only one JS thread so when background tasks are chugging away without yielding, the UI becomes unresponsive. Also I want BMs to be as fast as possible so I do sync BMs in little batches before yielding to the UI, it's faster than spanning a task per sync BM instance.

maybe split scalajs-benchmark into a couple more modules? A core with just benchmarking stuff that can run in all environments, then a separate module that builds on that to offer the browser interface?

Yeah we could do that! The code is already separated into core and ui but it all just lives in the same module atm.

I really think CE3 is worth considering as a dependency

For what benefit though? The library already works as is without it. It would be a different discussion if we were starting the library again from scratch but seeing as it all works as is I don't see value in taking on a new major dependency without a good reason. From an external point of view is there some benefit this would bring that I'm not understanding?  If so I'd prefer to add a tiny typeclass to the core lib, and add an integration module.

Anyway thanks for considering this at all, and sharing all your thoughts!

np! So seeing as the PR provides async BM support I'm gonna merge and close this. If you'd like to continue our discussion about CE integration and more modularisation would you mind raising new issues for them?

I never use execution contexts

Fair enough! But you are certainly using the task queues that back the Execution Contexts.

fyi - V8 has separates queues for tasks, microtask queue (used e.g. for promise.then) and macrotask queue (used e.g. for setTimeout):

IIUC the microtask queue is much more performant, but not fair to the macrotask queue. So CE3 uses the macrotask queue via a polyfill for everything which I think accounts for the performance difference.

The issue I had is that there's only one JS thread so when background tasks are chugging away without yielding, the UI becomes unresponsive.

Yup, CE3 solves this problem with auto-yielding :)

The library already works as is without it.

👍 Agree, this library is truly great as is!!

np! So seeing as the PR provides async BM support I'm gonna merge and close this.

Please close, you earned it!! 😁 Oops you already did :)

you are certainly using the task queues that back the Execution Contexts

hmmm that's a very good point! Man, I'm gonna have to actually pay attention to that aren't I?

Yup, CE3 solves this problem with auto-yielding :)

Really? Have you confirmed that in practice by manually testing in some browsers? If so, that's super, super awesome!

Please close, you earned it!! grin Oops you already did :)

Ah whoops, sorry lol. I merged the PR and Github closed this automatically. I'm working fast! v0.10.0-RC2 already on the way to Maven Central.

Really? Have you confirmed that in practice by manually testing in some browsers?

Well, I haven't tested it persay with a browser UI. But, there are tests for this in CE3 itself.

The issue I had is that there's only one JS thread so when background tasks are chugging away without yielding

In CE3, every background task is modeled by a Fiber (which btw has cancellation semantics built-in). Each Fiber "runs" an IO and automatically inserts a yield aka IO.cede every N steps, where N is completely configurable (i.e., N = 1 for maximum fairness).

Btw, to ensure this yielding is fair to tasks queued via e.g. setTimeout is exactly why CE3 polyfills the Execution Context and avoids the default one used by Promise:

It appears that if any outstanding work is available on the promises queue, it will dominate over the timeouts queue.


Tuning up the docs

Ok, I spent almost 3 days on this but I feel it was worth it. The recent TypeScript additions made a lot of links in the docs unusable, so this started as an attempt to fix the links, but...
Navigation
I remade the left navigation bar, it's now collapsible, has subsections and includes every single documented thing. No more getting lost in a section that only shows two items and nothing else.

I also showed some love to the right navigation bar by removing the return values, which makes it cleaner and more readable. Public properties now also show up there (this is needed for the various ...Options types.

Search
The search had one bad bug and one annoyance I knew of. Both are fixed now.
First, (sorry @jancurn) I renamed Reference to API Reference. This makes it show before Examples in search, so when you type Pupp.. into the search bar and press enter, you'll be taken to the right place and not examples.
Second, search did not work at all in tables. Which sucked, because ALL our params and properties were in tables. So I replaced the tables with lists (very similar to Puppeteer docs). This may need another pass, but it's readable and the search will finally work.
I also replaced ENV VAR table with a markdown document, so they are linkable and searchable now.
Links
The main reason for this PR. All* links should be fixed now and I also implemented some goodies.
I wrote a custom link parser, so we can do {@link Request} or even {@link PuppeteerCrawler#run} and it will autogenerate the correct link. So no more guessing how to link to another class/method. Use # for methods and . for properties.
So this:

Now becomes this:

I also added a markdown plugin which automatically adds target="_blank" to any link going out of sdk.apify.com so there's no need to use HTML links in the docs anymore. All links can now be written in markdown.
Finally, I reworked how anchor links are added. It's still not great, but better. The Docusaurus generated anchors are still a bit ugly, but if you really need a pretty link, you can just use the following format: lowercase(Parent)#lowercase(Property). This would take you directly to the Apify.openRequestList() function, but it won't because it obviously links to production version of docs, duh.
NOTE: Parents are - dash-cased RequestQueue -> request-queue, whereas properties are just squashed handlePageFunction -> handlepagefunction.
https://sdk.apify.com/docs/api/apify#openrequestlist
https://sdk.apify.com/docs/typedefs/puppeteer-crawler-options#handlepagefunction

Other
Besides the above, I also changed the formatting of the individual API docs to make them more readable. We no longer use => ReturnValue in the headings, because it was creating ugly right sidebar and useless anchor links. Methods and params are now clearly separated with a line.
The PR is 'quite big', so I don't expect a thorough review. More if you could check the build scripts or if you notice any obvious fails.

awesome job, I'll take a look later as well

Very nice!

Images are broken in updated README.md - https://github.com/apifytech/apify-js/tree/fix/tune-up-docs


Orbstack stuck after using macos migration utility to copy data from another mac

Describe the bug
After using migration utility in MacOS to migrate the data, the orbstack stuck on startup.
I tried removing ~/orbstack but it still stuck.
To Reproduce
No response
Expected behavior
No response
Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.1.0
Commit: bfae870a3b9d4fba5c1c26711ac5a5b9183bdb74 (v1.1.0)
System info:
macOS: 14.1.2 (23B92)
CPU: arm64, 12 cores
CPU model: Apple M2 Pro
Model: Mac14,12
Memory: 16 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2023-12-07T22-28-59.779797Z.zip

Screenshots and additional context (optional)

It seems that it's stuc=k waiting for Rosetta to be installed

Should be fixed in v1.3.0.

Thank you!


BUG: Ollama models not selectable - query server for modellist

hi, just found your sw and it seems it is, what I was looking for.
unfortuantley I can not try it:
Problem
trying to select a local installed ollama model, i.e. like:

phi3:3.8b-mini-128k-instruct-q6_K
granite-code:8b-instruct-q6_K

fails due to hardcoded (and complete out of date list)
Remedy
Query modelist from server - it's changing every day!
BTW
IMHO, the CLI is very unconfortable b/c of "unusual" parameter order.
pls. make a OLLAMA_MODEL Variable, so we can put it into the environment/config.

Hi. Version 5.0.0 should address all of these concerns. Thank you for your feedback. Please refer to the README.md file for updated usage information.


[Feature Request] Expose 'comment' field in POI editing window

The title is self-explanatory. I would like to request the addition of the 'comment' field in the POI editing window.

There is a single field called "Description" in the POI edition dialog, but its value is set to both the <desc> and <cmt> fields of the POI.
The idea being that most software or devices use only one of the two, but we rarely need to put something different in those two fields.

I wasn't aware of that. Unfortunately our software uses both fields, but I think we can adapt. And if generally only one of those is used, it's probably better to only use one of them anyway.
Thanks.


Clamp OSX latency up and down to work around getting weird number on mozilla test slaves

r? @achronop

r+


Revert #1532 set default 204 for deletes

This MR: https://github.com/ruby-grape/grape/pull/1532 is plain wrong.
204 is only when there is NO CONTENT meaning I explicitly as a developer set body false. I now have to go through all my delete calls and explicitly set status 200, which makes no sense.
For example returning the deleted object is quite common, now we don't follow the spec because by default (even when there is body!) we return 204.
mind blown

@LeFnord @namusyaka ^^^ thoughts?

Also @urkle

Or at least we should evaluate if a body is returned and then return 200 else 204.
Less magic, more explicitness, happy devs 👍

@JanStevens you could help by PRing your suggestion on empty body, I would support that

This just bit me too. We're using Grape with grape-roar something like this:
delete do
  model.destroy!
  present model, with: ModelPresenter
end

After updating Grape, our API DELETE endpoints started returning #<Model:0x00000000> instead of the expected { "model": "json" } because the new 204 status code is causing the formatter to be skipped.
This behaviour is a bit surprising, as I didn't immediately connect the new 204 No Content header to Grape skipping the formatter but still returning content.
@JanStevens if you don't have time to put a PR together in the next few days, I might be able to do it.

@jthornec That would be awesome pretty swamped with elixir atm

The formatter being skipped is a bigger deal than I thought, thanks for bringing it up @jthornec :(

sorry for the trouble :( … but @JanStevens, this change isn't wrong, it is only a modern interpretation of possibilities, means responding the deleted entity of a resource makes not much sense IMHO, cause the API consumer always has it … and we should reduce traffic 😉
I'm totally support your suggestion

Or at least we should evaluate if a body is returned and then return 200 else 204.
Less magic, more explicitness, happy devs 👍

and think this would be the best solution for all
btw, we should think about a re-ordering of the specs, and smaller, better specs, so such failures as the formatting stuff could be found much earlier :(

@LeFnord I still don't get why this change was needed, a body false at the end would result in exactly the same and the behaviour would be more explicit on your end. Everyone else wouldn't suddenly be surprised by the fact nothing is returned on delete (or even worse nothing is formatted).

this change isn't wrong, it is only a modern interpretation of possibilities, means responding the deleted entity of a resource makes not much sense IMHO, cause the API consumer always has it … and we should reduce traffic

Well on that point, if you have HATEOAS API endpoint then you will always return something. A 204 response is problematic because there are no links to follow. When hypermedia acts as the engine of application state, when there are no links, there's no state. In other words, a 204 response throws away all application state. Finally a good REST API would make it easy for the client to integrate, there are lot of valid reasons to have "modern" clients that still expect something back after a delete and use it to continue.
Anyways the specs should have catched the formatting issue, or at least the case of a delete + content returned should have been tested.
As for my suggestion, this is basically already implement, revert your changes and create a helper for return_no_content:
def return_no_content
  status 204
  body false
end

I really would shy away from the magic when nil is returns we return 204, might end in unsurprising results.

Would it make more sense to choose the default status based on whether or not there's content, rather than the request type?
I don't think delete is special in this case, it's also possible to write a post endpoint that returns nothing. For example, the the HTTP/1.1 specification paragraph 9.5 says:

The action performed by the POST method might not result in a resource that can be identified by a URI. In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on whether or not the response includes an entity that describes the result.

@jthornec I was already commenting about that on your MR!

Yeah... I was thinking about that right after I submitted it.
I think this is confusing because the HTTP codes themselves aren't super consistent: 200 vs 204 indicates content vs no content, but 200 vs 201 indicates existing entity vs new entity, which are (IMO) separate concerns. So we might choose 201 based on the request type (since a POST implies that we're creating something new), but I don't think we can use that logic for 204.
Maybe it should read something like:
if request.request_method == Grape::Http::Headers::POST
  201
elsif @body.empty?
  204
else
  200
end

But then, what order should those first two conditionals go in?  It is really client and implementation specific, a post that returns nothing could as well be 204. Yet again I can think of reasons to keep it 201 (just for the sake of consistency).

Hmm, yeah.
Googling around, it seems that using 204 for delete specifically is becoming a 'best practice', which (I suspect) is why it's implemented the way it is in #1532 and why it isn't applied to empty posts as well.
@dblock @LeFnord can you take a look at this? I have a PR above but I'm not sure how we should proceed.

Lets bring this conversation into #1550.


YARN-11391 Add yarn RM DNS support

Description of PR
Add DNS discovery support for YARN RM services. It would accept DNS multi-A record as input from yarn-site.xml. Upon configurations, it would resolve the DNS and do reverse lookup. Both server (RM, NM, app container) and client could utilize the same DNS functionality. Besides, it is backward compatible with plain DNS A record.
How was this patch tested?
local mvn test
For code changes:

[ ] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@lnbest0707 Thank you very much for your contribution, I think it would be better to make this part an optional configuration.
Why the code submission is 2 different users?

Hi @slfan1989 thanks for your reply.

I think it would be better to make this part an optional configuration.
None DNS resolving logics would be triggered if "yarn.resourcemanager.ha.resolve-needed" set as false (which is its default value).

Why the code submission is 2 different users?
May I know where there are two people in code commits? The other name is the key name for my github access token.

@lnbest0707 From my personal point of view, the quality of the code is good. We should add some instructions to tell users how to use these configurations.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 57s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+0 :ok:
xmllint
0m  1s

xmllint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
15m 22s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
25m 36s

trunk passed

+1 :green_heart:
compile
24m 35s

trunk passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
compile
23m 12s

trunk passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
3m 52s

trunk passed

+1 :green_heart:
mvnsite
3m 43s

trunk passed

+1 :green_heart:
javadoc
3m  9s

trunk passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
2m 35s

trunk passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
6m 39s

trunk passed

+1 :green_heart:
shadedclient
21m 28s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 28s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 16s

the patch passed

+1 :green_heart:
compile
22m 17s

the patch passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javac
22m 17s

the patch passed

+1 :green_heart:
compile
20m 22s

the patch passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
20m 22s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
3m 35s
/results-checkstyle-root.txt
root: The patch generated 2 new + 184 unchanged - 0 fixed = 186 total (was 184)

+1 :green_heart:
mvnsite
3m 40s

the patch passed

+1 :green_heart:
javadoc
2m 49s

the patch passed with JDK Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
2m 34s

the patch passed with JDK Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

-1 :x:
spotbugs
2m 11s
/new-spotbugs-hadoop-yarn-project_hadoop-yarn_hadoop-yarn-common.html
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)

+1 :green_heart:
shadedclient
21m 44s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
18m 19s

hadoop-common in the patch passed.

+1 :green_heart:
unit
1m 17s

hadoop-yarn-api in the patch passed.

+1 :green_heart:
unit
5m 44s

hadoop-yarn-common in the patch passed.

+1 :green_heart:
asflicense
1m  2s

The patch does not generate ASF License warnings.

247m  3s

Reason
Tests

SpotBugs
module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common

Inconsistent synchronization of org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider.rmServiceIds; locked 90% of time  Unsynchronized access at RequestHedgingRMFailoverProxyProvider.java:90% of time  Unsynchronized access at RequestHedgingRMFailoverProxyProvider.java:[line 147]

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5196/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/5196

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint

uname
Linux 692ce489485a 4.15.0-200-generic #211-Ubuntu SMP Thu Nov 24 18:16:04 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / e2140c7cd996792e5f178ff05e1f737b6eca0157

Default Java
Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.16+8-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_342-8u342-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5196/2/testReport/

Max. process+thread count
3159 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common U: .

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5196/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Besides, I feel the issue reported by Jenkins a false alert. The "Unsynchronized access" reported by it is a READ call from a log function. I don't think we should add any locks on logging call. Please share any suggestions to bypass it. Thanks.

I agree with you.
LGTM.
We better fix checkstyle.

Duplicate to #5213
@slfan1989 somehow my amending commit went to a new PR as above. Please check that one and I will close this. Sorry for inconvenience.


Initial webservices fraction

This works a bit better, can get an app deployed, but no soap endpoints generated yet :-(

This almost works, I can see the webservices bootstrap when launching the server.  However, I get this error
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
	at org.jboss.as.webservices.deployers.deployment.DeploymentModelBuilderJAXWS_EJB.build(DeploymentModelBuilderJAXWS_EJB.java:62)
	at org.jboss.as.webservices.deployers.deployment.AbstractDeploymentModelBuilder.newDeploymentModel(AbstractDeploymentModelBuilder.java:95)
	at org.jboss.as.webservices.deployers.deployment.WSDeploymentBuilder.build(WSDeploymentBuilder.java:65)
	at org.jboss.as.webservices.deployers.WSModelDeploymentProcessor.internalDeploy(WSModelDeploymentProcessor.java:44)
	at org.jboss.as.webservices.deployers.TCCLDeploymentProcessor.deploy(TCCLDeploymentProcessor.java:43)
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
	... 5 more

I'm wondering if @asoldano might have any ideas, otherwise I'm going to keep poking at it.

@kenfinnigan just wondering if you have any tips for debugging swarm fractions? this NPE is mind bottling.

@johnament sometimes it's necessary to have WildFly source in an IDE connect to a debug instance so you can step through those kind of issues.
Messy but useful

@kenfinnigan i'll try to catch you guys on IRC at some point.  i tried setting up a main method that does the execution, but that doesn't seem to run

At a guess I'd say you're missing some config for the WS subsystem configuration in your WebServicesConfiguration class. Specifically the 'endpoint-config' part.

Let us add WS to the config api and it'll be easier to get the setup going.
--
Sent from my iPhone
On Nov 6, 2015, at 8:54 AM, James Netherton<EMAIL_ADDRESS>wrote:
At a guess I'd say you're missing some config for the WS subsystem
configuration in your WebServicesConfiguration class. Specifically the
'endpoint-config' part.
—
Reply to this email directly or view it on GitHub
https://github.com/wildfly-swarm/wildfly-swarm/pull/150#issuecomment-154415208
.

It's merged but we need to update swarm itself to include the new config-api version: https://github.com/wildfly-swarm/wildfly-config-api/pull/10

Right, right now I'm pointing to a snapshot version of the config api w/ WS enabled.   Once you cut a release w/ the new one should be good, but I was running into some jgroups dependency issues.

Ok, that was it.  I forgot in my original code I had a default setup for this, found that EJB did something similar and followed that pattern.
Now...
2015-11-06 20:02:04,464 INFO  [org.jboss.ws.cxf.metadata] (MSC service thread 1-3) JBWS024061: Adding service endpoint metadata: id=SOAPServer
 address=http://localhost:8080/SOAPServer
 implementor=soap.SOAPServer
 serviceName={http://soap/}SOAPServerService
 portName={http://soap/}SOAPServerPort
 annotationWsdlLocation=null
 wsdlLocationOverride=null
 mtomEnabled=false

Swarm is cleaner with SOAP :-X
(Horrible joke)

I'll push a release of config-api on Monday.

Sounds good.  Let me know if you want me to squash this together after you cut the release.  Also, I'm not sure if there's a better way to test the container right now.  It required manual inspection.

I was on PTO. I assume you're fine/done here, but if you need anything more from me, just ask.

Just to say thank you for this and #153 , I'm trying out Swarm with webservices :+1: