Add Java 11/17/21 matrix for build, test and performance test checks

Description
Add Java 11/17/21 matrix for build, test and performance test checks
Issues Resolved
Part of https://github.com/opensearch-project/OpenSearch/issues/10334
Check List

[ ] New functionality includes testing.
[ ] New functionality has a documentation issue. Please link to it in this PR.

[ ] New functionality has javadoc added

[X] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@reta , Thank you for this contribution! It looks good to me, but we'll need to make sure the builds all pass.
Data Prepper is tracking this independently of OpenSearch. This PR should resolve #3329.

@reta , Thank you for this contribution! It looks good to me, but we'll need to make sure the builds all pass.

Sure, local ones seems to be fine, I will make sure all builds are green, thanks @dlvenable !


GeneratedToken expiration

Hi,
I wanted to ask you a question for logic... Should I save the generated token in the db and set the expiry 99999days.. so we I can use same generated token again and again. Or this is bad consideration and I should generate new token on each new login in symfony?
Right now I have new token generated on each login, but I was thinking to save it in db and just use that rather then keep generating again and again.

I think this is not in scope of this bundle, but I would recommend to not store the token in the database but rather in the respective user's session. If you want to authenticate administrative requests, you could use the firebase secret instead of the token - or regenerate the token with each request/process, this shouldn't be too expensive anyways.

I closed the issue, because it's not an actual issue of this bundle, but feel free to continue the discussion - but in general, I would recommend to use the channels mentioned at https://www.firebase.com/docs/help/ for more thoughts on this or any question.


Fix bug for error in windows

Checklist:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you successfully ran tests with your changes locally?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?

I think the error is caused by the conflict between backslash and frontslash in Linux and Windows. As long as we're running the script from the same directory as the file, this works fine.
Since the Testing for CAC is on, just needed this quick fix to crush the bug. Will send another PR over the weekend to fix this once and for all, along with some other smaller issues and documentation changes.


Fix the process sample so it won't deadlock when the given scale is less than 3

Thx and congrats to your first commit!


Is the code for running private inference also included?

How are the other paper's results provided in the paper evaluated? (e.g latency, accuracy)

We retrieved the latency and accuracy results from other papers or contacted the authors directly. This repository does not include the code to run private inference. Please refer to Section 4 under "Latency estimates for private inference" in our paper.


Document Development Tooling

Dumping this here for future reference, this will need to be expanded with actual explanations of what this all means and probably should become part of DEVELOPMENT.md

we use Mutant. All new or significantly altered code is expected to be 100% explicitly Mutation covered
We use Ataru, all code samples in README.md have to actually run. When adding features it's a good idea to add a code sample that both demonstrates and exercises a feature, kind of like a high level test case
We use bogus instead of rspec-mocks. I switched at one point out of some frustrations with rspec-mocks, and I still haven't fully internalized the Bogus API, so as far as I'm concerned maybe we could switch back at some point, but I don't want both in the same code base. So until further notice if you have to stub/set method expectations, Bogus is the way to go. (@chastell maybe you can tell us why we should stick to Bogus exactly?)
We use (or soon will be using) Rubocop, so code has to be styled correctly before it goes in. This might be a process, I can imagine disabling some rules at some point
We aim for compatibility with 1.9.3 and up, as well as JRuby. Rubinius is nice to have but not high priority

RSpec 3 gives you verified doubles, which are the major ‘selling poing’ behind Bogus. RSpec’s verified doubles work a little bit differently, though: they verify the double iff the doubled class is loaded. This has pros and cons: on one hand it lets you do outside-in implementation without having empty method calls on the lower layers, on the other it does not verify the double if for some reason you forgot to load the doubled class.
That said, there are two Bogus features that RSpec does not have (yet?):

faking roles lets you say things like ‘this fake represents any logger in the system’ and won't let you stub/mock method calls that are not supported by all the loggers;
contract tests let you check ‘now that I have stubbed/mocked these method calls (with these arguments and these return values) all over my tests, would the real calls with these arguments result in these return values?’ – they basically force you to write specs for the doubles that you use so that not only the method names and arity is checked, but actually their return values (given particular arguments).


it not in group in reporting

The problem can be reproduced with the following sample:
object Test : Spek({
    fun test(){
        it("should be in group when it succeeds"){}
        it("should be in group when it fails"){
            throw IllegalArgumentException()
        }
    }
    fun SpecBody.test2(){
        it("is in group when it succeeds"){}
        it("is in group when it fails"){
            throw IllegalArgumentException()
        }
    }
    describe("a group having `it`s which are created in functions"){
        test()
        test2()
    }
})

Executing the Spek in intellij shows the it of test2 under the group whereas the it of test are shown separately (not within the group).

The it under test() refers to the top-most scope (Spek({ ... })), while the it under SpecBody.test2() refers to scope where it's used - in your example: describe("a group havingits which are created in functions").
When test to is created it "captured" the scope (keeps a reference) it was declared. So when using it within it, it will use the said scope.


conflict between php zlib.output_compression and output buffering

Describe the bug
When zlib.output_compression is set to On in php.ini, CI4 cannot display any views and produces headers already sent errors.
CodeIgniter 4 version
CodeIgniter 4.0 RC1
Affected module(s)
/app/Config/Events.php
Removing this code in app/Config/Events.php, or turning off output_compression in php.ini is a temp solution.
while (\ob_get_level() > 0)
	{
		\ob_end_flush();
	}

	\ob_start(function ($buffer) {
		return $buffer;
	});

Context

OS: Centos 7
Web server: Apache/2.4.41
PHP version: 7.2.1

This sounds like a PHP problem, not a CodeIgniter one.
From https://www.php.net/manual/en/zlib.configuration.php:
"... a hard to spot gotcha when implementing zlib.output_compression. if you use flush() anywhere in your script (even right at the end) the compression won't work - you need to let that happen automatically or it ends up being sent uncompressed."
CodeIgniter view rendering and unit testing rely on output buffering, and flush().

Exactly the same issue for us too.
Surely not being able to use compression is a bad thing?

Try this:
`Events::on('pre_system', static function () {
if (ENVIRONMENT !== 'testing') {

   try {
       if (ini_get('zlib.output_compression')) {
        throw FrameworkException::forEnabledZlibOutputCompression();
    }

    while (ob_get_level() > 0) {
        ob_end_flush();
    }

    ob_start([fn($buffer) => $buffer]);
   } catch (Exception $ex) {
       // TODO code here
   }
}`


[5.1] Testing/CrawlerTrait submitForm() method sends wrong multi-dimensional fields.

The method submitForm() from the trait Illuminate\Foundation\Testing\CrawlerTrait.php submits inconsistent multi-dimensional fields.
i.e:  if you use this code in one of your tests
$this->visit('resource.create')->submitForm('send', ['options' => [0 => 1, 1 => 2]]);

your controller will get this input
[
	"options[0]" => 1,
	"options[1]" => 2
]

instead of the expected one
['options' => [
	0 => 1,
	1 => 2
]]

If instead of submitForm() other functions such post() or put() are used the sent input is correct.
How to reproduce
Edit app/Http/Kernel.php and remove 'App\Http\Middleware\VerifyCsrfToken', to disable CSRF middleware.
Add a route for a resource controller into app/Http/routes.php
Route::resource('resource', 'ResourceController');

Create a resource controller
php artisan make:controller ResourceController

Edit the created file app/Http/Controllers/ResourceController.php
	public function create()
	{
		return <<<'HTML'
<!DOCTYPE html>
<html>
	<body>
		<form method="POST" action="/resource">
			<input id="options1" name="options[]" type="checkbox" value="1" /> Option 1
			<input id="options2" name="options[]" type="checkbox" value="2" /> Option 2
			<input type="submit" value="send">
		</form>
	</body>
</html>
HTML;
	}

	public function store()
	{
		dd(\Input::all());
	}

Start server
php artisan server

Visit http://localhost:8000/resource, check both checkboxes and submit form. You'll get
['options' => [
	0 => 1,
	1 => 2
]]

Edit file test/TestCase.php and set
protected $baseUrl = 'http://localhost:8000';

Edit file test/testBasicExample.php and set
public function testBasicExample()
{
	$input = ['options' => [0 => 1, 1 => 2]];

	$this
	->visit('resource.create')
	->submitForm('send', $input);
}

Run PHPUnit
./vendor/bin/phpunit

You'll get
[
	"options[0]" => 1,
	"options[1]" => 2
]

instead of the expected
['options' => [
	0 => 1,
	1 => 2
]

Submitting the same form with the same data should  send consistent data in both testing and non-testing environment

We're open to PRs. :)

Fixed by #9058


Upgrade windows crate

Incompatibilities fixed:

optional params are now Rust Option
inparams now take a reference

Something I overlooked: this implicitly increases MSRV from 1.59 (2022-02-24) to 1.64 (2022-09-22)


data objects should be created by the user, not an admin

the user should be able to create data objects by herself. manager should just check all is fine.

@Swarnalathaa is this just a matter to allow the 'add new data object' for users? now only for managers?

do i understand correctly that the user can add objects for all studies in her organisation?

@sergiocontrino as per my understanding currently we are showing the studies and data-objects based on the user organization but in future if study/data-objects are shown based on the associated users then in that case the question you have raised will be resolved. (this is my understanding)

discussed in dev call: this is fine.
Data objects can now be created by the user.
She has access to all objects in her organisation.
This is the agreed behavior (@Gerd-ECRIN).

done

@Gerd-ECRIN tested


Bailador::Route::StaticFile should return 404 when a file is not found.

Also, the application should log to an error stream along with returning False. I got a bit confused when I saw the application return 302 Found for files that I knew I didn't have.

could you please describe what you did? I think the only 302 gets returned if you call redirect.
when I start the examples/app.pl and GET the index.htm, which is not existing, I am getting a 404.
> curl -v 'http://localhost:3000/index.htm'
*   Trying <IP_ADDRESS>...
* Connected to localhost (<IP_ADDRESS>) port 3000 (#0)
> GET /index.htm HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Content-Type: text/html, charset=utf-8
* no chunk, no close, no size. Assume close to signal end
<
* Closing connection 0
Not found%

It might very well simply be route chaining at work and my sloppy thinking - My file handler fails, and I might have been thinking returning False returns a 404 to the app rather than chaining to the next route that could handle it, so I would be thinking "But I returned False, why am I not getting a 404?" when "But I returned False.. Oh, right, I have to set the error code in order to break the chain."


Updates for new Territory Fences and Geo Location Based Dynamic Policy

Revamped entire policy processing system to handle new policy and fence types. Deprecated all interfaces, classes, and methods related to the old policy types.
Updated the Spring Boot example and cleaned up the README to make the example usable.
Updated the integration tests to not run mobile device based tests unless specified to do so.
Updated dependencies for integration tests and examples to avoid known vulnerabilities.

All of my feedback was addressed. Unless anyone else sees anything else I think this is ready to merge.


build error with workbox-webpack-plugin 6.2.0

Library Affected:workbox-webpack-plugin
Browser & Platform:all browsers
Issue or Feature Request Description:after upgrade my workbox-webpack-plugin to 6.2.0 automatically, I got an error without any configuration modified like this: ERROR in Please check your GenerateSW plugin configuration:
[WebpackGenerateSW.runtimeCaching.1.options.plugins.0.cachedResponseWillBeUsed] 'cachedResponseWillBeUsed' property type must be object.
And my workbox configuration is like:
{cachedResponseWillBeUsed: async({cacheName, request, matchOptions, cachedResponse, event}) => {...}}
I've checked the official document but get nothing useful.
The document relavant to  cachedResponseWillBeUsed didn't update at all.
When reporting bugs, please include relevant JavaScript Console logs and links to public URLs at which the issue could be reproduced.

I've checked the source code and tried to fix this problem, and I find that there are some problems with definition in workbox-build/build/schema/WebpackGenerateSWOptions .
In ajv ,functions is not validate for type:object.
I tried to modify the scheme and succeed to compile.
here is my attempt:
"CachedResponseWillBeUsedCallback": {             "instanceof": "Function",             "additionalProperties": false         },
and in workbox-build/build/lib/validate-options.js:
const CLASSES = { Function: Function}; const ajv = new ajv_1.default({     useDefaults: true, }); ajv.addKeyword('instanceof', {     compile: schema => data => data instanceof CLASSES[schema]   });
hope to be useful.

Thanks for catching this—it's an inadvertent change introduced due to the new validation logic in v6.2.0 that unfortunately wasn't identified in our alpha releases.
We'll push out v6.2.1 to deal with it, and in the meantime, you can stick with v6.1.5.

I'm sorry but the dependency of workbox-build in workbox-webpack-plugin is ^6.1.5 which leads to the same result even if I stick with v6.1.5

This should now be fixed in https://github.com/GoogleChrome/workbox/releases/tag/v6.2.2


Discrepancy in the Data Helper generated values

After the Exercise we gave to the MIBS students (which is to assume time of retrofitting for building components, in order to incorporate these values in the AGE shape file and have -hopefully- more accurate inputs). The following occured:

In the cases when no renovation occurs, some students used "0" as an input value, while others used the "built" year (so if the building was built in 1870, they used 1870 for the non-retrofitted components).
To be more specific, 2 students divided the hospital buildings between them, when they input their results, one of them used "0" for the age of non-retrofitted components, while the other used the "built" year.
When they activated the Data helper, the U-values of the building components were different, although they should be the same. The buildings had the exact same occupancy and built year.

@JIMENOFONSECA would you have an explanation for this? Maybe it's in the calculation of how the Archetypes are made?
Who should I assign this task to?

An interesting bug. Ask them to always use 0 if they have not been renovated. Use only the real built year in the 'built' column.
Assign the issue to me. the bug will be solved until the end of the year. Is that ok?

Yeah, I already fixed all the non-retrofitted values to 0 and sent the new file to the students yesterday.
Yeah sure, end of the year is perfect, they'll continue working with these files from now on :)
Cool, thanks!

Did the reference cases get updated with the new files sent to the students?

@amraladdin any clue?

No, because changing the values to 0 for the age of retrofitting is a quick fix and not a long-term solution for the tool. Someone needs to check the calculations to see why this issue is happening. @JIMENOFONSECA , wasn't this issue assigned to you?

yes it was. I thought it was solved already. Do you have any solution form the user perspective?. I am out of ideas in this topic
On 14 Nov 2016, at 4:46 pm, Amr Elesawy <notifications<EMAIL_ADDRESS>wrote:
No, because changing the values to 0 for the age of retrofitting is a quick fix and not a long-term solution for the tool. Someone needs to check the calculations to see why this issue is happening. @JIMENOFONSECAhttps://github.com/JIMENOFONSECA , wasn't this issue assigned to you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/architecture-building-systems/CEAforArcGIS/issues/372#issuecomment-260278842, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIjrgu9ny3HEcXqTvdNov_oF-2kRAxORks5q-B_lgaJpZM4KZheA.

No I don't, sorry. I guess we would need to see why this issue is happening in the code. Unfortunately, I don't have much time till the end of the year because of teaching.
@martin-mosteiro do you have an idea why this error is happening? Or any idea how to solve it?

The explanation is pretty easy. Check this out:

A building renovated before 1920 has different U-values than one built before 1920. So that's what causes the problem. In order to avoid discrepancies, we could either:

tell people to use 0 for no renovation - this is what's been done so far, but apparently that is not user-friendly enough
add a check to the code that would first verify if the renovation year makes sense before calcualting the U-values. Something like

if (renovation_year - built_year) > 0:
calculate the U-values based on the renovation year
else:
calculate the U-values based on the built year

@daren-thomas i see this as a kind of error handling error. In practice, the users should not be able to input the renovation year  equal to the construction year. could you help me to implement this? we might want to postpone this for the next milestone. I will put you in the loop

Shouldn't be too difficult, no? Maybe if the renovation year is the same as the construction year, the data helper could give a warning and use the construction year as the reference value (instead of the renovation year)?

@martin-mosteiro can you check if this is still the case, and if so implement the quick change you suggested?

@JIMENOFONSECA it is, and I can!

Small update: the only difference appears to be type_leak in the envelope systems database. The thermal properties of a building built in 1992 and one renovated in 1992 appear to be the same.


bug: Wagmi CLI doesn't work with version 6.x of ethers

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
0.1.6
Current Behavior
On version 6 of ethers I get this error.  Downgrading to version 5.x fixes it

When we look in ethers.js we see it's a pretty easy fix of just changing /lib/utils to /utils
https://github.com/ethers-io/ethers.js/blob/main/package.json#L81
Expected Behavior
Should be able to import ethers
Steps To Reproduce
Install ethers v6 as a peer dep to wagmi cli
Link to Minimal Reproducible Example (CodeSandbox, StackBlitz, etc.)
https://github.com/roninjin10/stax/tree/6496188567c976a1729276d5d01c51ea39512600/packages/contracts
Anything else?
No response

This is a pretty annoying error btw because changing fixing this for v6 is a breaking change to wagmi.   Not sure the best way to handle it actually

Perhaps just import from ethers  and take the bundle hit now for compatibility?   Or just close this ticket and list ethers v6 as not compatibile with wagmi to wagmi 1.0?

Yeah, wagmi is only compatible with v5 right now. Would like to wait until v6 is stable enough for us.

Yeah, wagmi is only compatible with v5 right now. Would like to wait until v6 is stable enough for us.

do you have any ETA when this will happen? We are building some products on top of wagmi + ethers and a bit worried by the impact of a later migration

@rafinskipg no timeline. ethers@6 is not considered stable yet.


Feat/multiple delete subscriber profile

Added multiple delete button on both subscriber and profile list pages.

Here's a review from Claude.ai

The PR introduces several key improvements to the free5GC WebConsole frontend, focusing on adding bulk delete functionality for subscribers and profiles. Here are my observations and recommendations:
Key Changes

Added multiple delete support for both Subscribers and Profiles
Introduced new TypeScript interface and formatting utility functions
Enhanced UI with checkbox selection for bulk actions
Updated backend routes and API methods to support multiple deletions

Code Review Highlights

JSON Formatting Utility
The new jsonFormating.ts is an excellent addition:
export function formatMultipleDeleteSubscriberToJson(subscribers: MultipleDeleteSubscriberData[]) {
  return subscribers.map(sub => ({
    ueId: sub.ueId,
    plmnID: sub.plmnID
  }));
}

✅ Good Practice: Separating JSON formatting logic increases maintainability

Selection Handling in Lists
The implementation of selection logic in SubscriberList and ProfileList is robust:
const handleSelectAllClick = (event: React.ChangeEvent<HTMLInputElement>) => {
  if (event.target.checked) {
    const newSelected = filteredData.map(row => ({
      ueId: row.ueId!,
      plmnID: row.plmnID!
    }));
    setSelected(newSelected);
    return;
  }
  setSelected([]);
};

✅ Good Practice: Comprehensive selection management with checkbox interactions

Recommendations

Error Handling
Consider creating a centralized error handling mechanism. Current error handling is repetitive:
.catch((err) => {
  setIsDeleteError(true);
  if (err.response) {
    const msg = "Status: " + err.response.status;
    if (err.response.data.cause) {
      alert(msg + ", cause: " + err.response.data.cause);
    } else {
      alert(msg);
    }
  } else {
    alert(err.message);
  }
  console.log(err);
  return;
});

Suggestion: Create a utility function like handleApiError(err) to standardize error processing.

Confirmation Dialog
Current implementation uses window.confirm(), which is basic:
const confirmMessage = `Are you sure you want to delete...`;
const result = window.confirm(confirmMessage);

Suggestion: Replace with a more user-friendly Material-UI dialog for better UX.

Performance Optimization
For large lists, consider implementing:

Virtualization (react-window/react-virtualized)
Pagination improvements
Memoization of list items

TypeScript Improvements

Add more comprehensive type definitions
Use stricter null checks
Consider using discriminated unions for API responses

Accessibility

Ensure proper keyboard navigation for checkboxes
Add appropriate ARIA attributes
Improve color contrast for selected rows

Security Considerations
✅ Good: Requires authentication token for deletion
✅ Good: Server-side validation of deletion requests
Backend Observations
The backend changes in api_webui.go demonstrate careful implementation of multiple delete operations with appropriate error logging.
Overall Assessment
Strengths:

Clean implementation of bulk delete
Good separation of concerns
TypeScript type safety
Consistent UI pattern

Areas for Potential Improvement:

Error handling standardization
More sophisticated confirmation dialogs
Performance optimization for large datasets

Recommendation
👍 Approve PR with Minor Suggestions
The changes significantly improve user experience by adding bulk management capabilities. Implement the suggested optimizations in future iterations.

For FE error handling, you can check out MUI Snackbar, which provides a more user-friendly UI. We used it in this project as well.

For FE error handling, you can check out MUI Snackbar, which provides a more user-friendly UI. We used it in this project as well.

I have updated the API error for multiple deletes to reuse the Snackbar error display from single delete. I also tried replacing the window.confirm part with a Snackbar (as suggested in the review to use other UI options), but I feel it looks very user-unfriendly. So, for now, I’ve kept the direct use of window.confirm.


Confusion with Immutable store and redux-persist / redux-devtools

There is probably just a documentation issue, which is related to a choice of Immutable object for the entire state. I've been recently trying to add to things to the app and ended up here after realising that it was time to give up :–)
The first issue is with persisting parts of the store using redux-persist and friends. The documentation there covers plain objects and points to redux-persist-transform-immutable, which in turn warns that it does not provide support for top level immutable state. There are a few discussion threads scattered across the community (e.g. this one https://github.com/rt2zz/redux-persist/issues/64), but they don't seem to help much. The more you read, the more confused you become.
Another issue is with redux-devtools and in particular with persisting of a debug session.This is a pretty common thing in the redux community, but again, root Immutable state is viewed there an edge case, which is not widely supported. Reading several threads such as https://github.com/gaearon/redux-devtools/issues/108 does not reveal a solution to restoring debug sessions in this boilerplate.
It would be nice if redux.md or immutablejs.md gave some hints on what to do in these situations. Both use cases must be pretty common, so more or less clear pathways could save tones of time to the boilerplate newcomers. My boilerplate project is the first one when the while state is Immutable. I support this idea, just feel a bit exhausted trying to combine it together with some well-known practices in the redux world.
If anyone else has ever been successful in persisting parts of the Immutable state including redux debug sessions could you please share your findings? This may help @mxstbr supplement the boilerplate docs.

only a shortcut for the next who arrive here
https://github.com/rt2zz/redux-persist-immutable

Redux DevTools Extension got full support for ImmutableJS out of the box, just pass the Immutable library to serialize parameter. See the release notes for more details.

Would appreciate a PR!

So, what is the most convenient way to work with a debug_session?

I have problems as well with persisting immutable state using the devtools, I've created an issue for this on the redux-devtools-extension issue list. Posting here for reference: https://github.com/zalmoxisus/redux-devtools-extension/issues/389

Closing due to inactivity


Support incomplete datetime values for insert

Per team discussions, we have decided to allow incomplete strings to be used for insert statements to reduce the friction for users attempting to explore Riak TS.
For tests to pass, requires https://github.com/basho/jam/pull/11 also.

:+1: ee9adc8

@borshop merge


[BUG] PeoplePicker won't accept Multiple Users with the same name

Bug Description
When we attempted to add multiple users with the same name (Charlotte Coker was out test for this as there are 3 different users set up with her name) it fails to surface any user after the first when you search:

When we search the user (Charlotte) initially all three user accounts display in the search result but after selecting one and starting to search for the second no more return (as screenshotted)
To Reproduce
Steps to reproduce the behaviour:

Go to Azure > Azure Active Directory (AAD) > Users
Add three accounts with the same names and different email addresses, for example:

John Smith<EMAIL_ADDRESS>John Smith<EMAIL_ADDRESS>John Smith<EMAIL_ADDRESS>

Add a four account with the same first name, foe example:

John Not-Smith<EMAIL_ADDRESS>

Open or create a simple webpart hosting a PeoplePicker control with the following properties"
<PeoplePicker
context={this.props.context}
titleText="People Picker"
personSelectionLimit={200}
showtooltip={true}
onChange={this._getPeoplePickerItems}
showHiddenInUI={false}
principalTypes={[PrincipalType.User, PrincipalType.SharePointGroup, PrincipalType.SecurityGroup]}
resolveDelay={1000} />

Expected behavior
I would like to see two or more John Smiths added to the  field and replicate the SharePoint out-of-the-box people picker UX.
Suggested Fix
I understand that displaying three [John Smiths] [John Smiths] [John Smiths] will introduce another issue. Which [John Smiths] am I looking at. I currently see two options:

Include a tooltip for each Person displaying their email address e.g<EMAIL_ADDRESS>Have an option to display Email Address(es) instead of Display Name(s)

Environment (please complete the following information):

OS: Windows 11
Browser: Chrome Version 115.0.5790.110 (Official Build) (64-bit) (and Edge)
Framework: SPFx 1.17.1, react 16.13.1, @pnp/spfx-controls-react 3.9.0, @pnp/spfx-property-controls 3.9.0, Node: >=16.13.0 <17.0.0
Context Microsoft Teams and SharePoint

Hi @sionjlewis
I tried to reproduce the issue with
John Smith<EMAIL_ADDRESS>John Smith<EMAIL_ADDRESS>John Smith<EMAIL_ADDRESS>and i guess i have found the fix.

Will soon create a PR on this.
Thanks,
Nishkalank

Brilliant, thank you @NishkalankBezawada

Closing as fixed in version 3.16.0


My accounts and devices are all compromised

I don't have control of my iPhones and MacBook and printers, even my new Sony dslr with wifi. I know remotes access my devices, steal my data , large photos ( I'm a a photographer). Changes are constantly made and my permissions denied. I'm always locked out and passwords and accounts hijacked. I've had root administrating my mac , and frequent guests signed on. Going on for over 6 years, can't get help, can't do anything on my computer or phone but chase and
trace.  I don't know what to do, can't get help, I'm on my own, learning and reading  books trying to stay afloat, getting, is impossible and worse. Please help me<EMAIL_ADDRESS>cell: 1-416-560-5344.

Please help me?


createServer fails because the function memoizedBinarySearch does not work with an undefined haystack

Describe the bug
I have ts-paths-esm-loader enabled to be able to use the tsconfig paths. I also set up tailwindcss. I cannot work without ts-paths-esm-loader since I use tsconfig.paths all over my code and I also apply it in a custom plugin I wrote for vite. When I import the custom plugin in vite.config.ts I get errors about the path, since path aliases don't work in vite.config.ts. I have read about this on other issues here and I understand it is currently not possible. So as a solution I have tried to create a Vite server in the file dev.ts and import my code using tsconfig.paths there.
But as you can see below, there are some problems with this approach. The createServer function fails.
I run the commands:

pnpm install
node --loader ts-paths-esm-loader  dev.ts
refresh

I get the error
Internal server error: Cannot read properties of undefined (reading 'length')
      at memoizedBinarySearch (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:9993:25)
      at traceSegmentInternal (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:10100:17)
      at originalPositionFor$1 (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:10086:23)
      at formatError (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41451:54)
      at TransformContext.error (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41385:19)
      at Object.transform (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41663:25)
      at async loadAndTransform (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:39466:29)
TypeError: Cannot read properties of undefined (reading 'length')
    at memoizedBinarySearch (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:9993:25)
    at traceSegmentInternal (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:10100:17)
    at originalPositionFor$1 (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:10086:23)
    at formatError (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41451:54)
    at TransformContext.error (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41385:19)
    at Object.transform (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:41663:25)
    at async loadAndTransform (file:///home/..../tailwind/node_modules/.pnpm/vite@4.1.1/node_modules/vite/dist/node/chunks/dep-3007b26d.js:39466:29)
[postcss] Unexpected token 'export'

When looking in the code I can see that the haystack argument of memoizedBinarySearch is undefined. The code does not catch this. How can I make the import of $lib work throught ts-paths-esm-loader?
Reproduction
On the vite branch:
https://github.com/wvhulle/sveltekit-parent-directory-bug/tree/vite
Steps to reproduce

pnpm install
node --loader ts-paths-esm-loader  dev.ts
refresh

System Info
System:
    OS: Linux 5.15 Linux Mint 21.1 (Vera)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
    Memory: 2.78 GB / 15.36 GB
    Container: Yes
    Shell: 3.5.1 - /usr/bin/fish
  Binaries:
    Node: 19.4.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.2.0 - /usr/local/bin/npm
  Browsers:
    Chromium: 109.0.5414.74
    Firefox: 109.0
  npmPackages:
    vite: ^4.0.0 => 4.1.1

### Used Package Manager

npm

### Logs

_No response_

### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitejs.dev/guide).
- [X] Check that there isn't [already an issue](https://github.com/vitejs/vite/issues) that reports the same bug to avoid creating a duplicate.
- [X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to [vuejs/core](https://github.com/vuejs/core) instead.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/vite/discussions) or join our [Discord Chat Server](https://chat.vitejs.dev/).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

By adding try-catch at this part, the "Cannot read properties of undefined (reading 'length')" error disappears.
https://github.com/vitejs/vite/blob/e033e492d491d25790baf475023a828eda6d4d9a/packages/vite/src/node/server/pluginContainer.ts#L432-L442
Although, "[postcss] Unexpected token 'export'" error happens.
It seems ts-paths-esm-loader or something adds export {}; to tailwind.config.cjs.

Closing as the reproduction was deleted.


'captureAWSv3Client' cannot be used as a value because it was exported using 'export type'

Just trying out the new AWS JS SDK v3 compatibility with typescript and we noticed that this line in aws-xray.d.ts appears to only export the type for captureAWSv3Client but not the function alias itself.
The error we get is:
 error TS1362: 'captureAWSv3Client' cannot be used as a value because it was exported using 'export type'
If I am correct, it seems as though
export type { captureAWSClient as captureAWSv3Client } from './patchers/aws3_p';
just needs to be changed to
export { captureAWSClient as captureAWSv3Client } from './patchers/aws3_p';
https://github.com/aws/aws-xray-sdk-node/blob/5ead789162b370c069e7cf5c1e483fbb257a95c6/packages/core/lib/aws-xray.d.ts#L42

Hi @aaroncowie,
This change has not been released to NPM yet, so you cannot use the captureAWSv3Client API (unless you are building the repo from source). I'll close this as a duplicate of #294, it will be available with the next release of this SDK.

@aaroncowie I believe I closed this issue prematurely, and the export type issue still exists as you initially stated. Sorry for the eager close, I'll reopen until this is fixed.

this seems to be fixed with v3.3.3

That's right @jwoehrle, I'll go ahead and close this out.


Add CSS Badge

Reference Icon(s): https://fontawesome.com/icons/css3-alt?style=brands
Preferred Background: Blue
Label Text: CSS

#29 Will add a CSS3 badge, on my fork it's already present


SystemD service is not align with VerneMQ state

Environment

VerneMQ Version: 1.9.2
OS: CentOS 7
VerneMQ configuration (vernemq.conf) or the changes from the default

allow_register_during_netsplit = on
allow_publish_during_netsplit = on
allow_subscribe_during_netsplit = on
allow_unsubscribe_during_netsplit = on
max_client_id_size = 200
max_inflight_messages = 300
max_online_messages = 8000000
max_offline_messages = 8000000
vernemq_shared_subscription_policy = random
erlang.distribution.port_range.minimum = 50000
erlang.distribution.port_range.maximum = 61000

I have two tcp listeners and two http listeners in addition to file-based authorization and authentication.
Cluster size/standalone: 2 nodes

I have only one client pushing data to VerneMQ and two clients fetching data overall
Cluster size/standalone:

Expected behavior
When VerneMQ run out of memory and dies, systemd status report it's down.
Actual behaviour
Because of #1513 , VerneMQ may run out of memory and in this case Systemd status report VerneMQ is up but in fact it is down. Here's an example:
$ systemctl status vernemq
● vernemq.service - VerneMQ Server
   Loaded: loaded (/etc/systemd/system/vernemq.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-05-12 07:00:37 UTC; 1 weeks 0 days ago
  Process: 21475 ExecStop=/usr/lib64/vernemq/bin/vernemq stop (code=exited, status=1/FAILURE)
  Process: 21652 ExecStart=/usr/lib64/vernemq/bin/vernemq start (code=exited, status=0/SUCCESS)
  Process: 21549 ExecStartPre=/usr/lib64/vernemq/bin/vernemq chkconfig (code=exited, status=0/SUCCESS)
 Main PID: 21730
   Memory: 1.2G
   CGroup: /system.slice/vernemq.service
           └─21719 /usr/lib64/vernemq/erts-10.2.3/bin/epmd -daemon

$ ps aux | grep vernemq
root      10778  0.0  0.0 112712   964 pts/0    S+   08:02   0:00 grep --color=auto vernemq
vernemq   21719  0.0  0.0  12524  1316 ?        S    May12   1:33 /usr/lib64/vernemq/erts-10.2.3/bin/epmd -daemon

While for a running node ps returns this:
$  ps aux | grep vernemq
vernemq   73792  0.0  0.0  11884   692 ?        S    Apr28   0:16 /usr/lib64/vernemq/erts-10.2.3/bin/epmd -daemon
vernemq   73801  0.0  0.0  13724   740 ?        S    Apr28   0:00 /usr/lib64/vernemq/erts-10.2.3/bin/run_erl -daemon /tmp/vernemq// /var/log/vernemq exec /usr/lib64/vernemq/bin/vernemq console
vernemq   73803  1.5  2.3 3377452 386852 pts/0  Ssl+ Apr28 468:07 /usr/lib64/vernemq/erts-10.2.3/bin/beam.smp -P 256000 -e 256000 -Q 262144 -A 128 -K true -W w -- -root /usr/lib64/vernemq -progname vernem  -- -home /var/lib/vernemq -- -boot /usr/lib64/vernemq/releases/1.9.2/vernemq -config /var/lib/vernemq/generated.configs/app.2<IP_ADDRESS>.49.09.config -setcookie <secret_cookie> -name VerneMQ@node-2 -smp enable -vm_args /var/lib/vernemq/generated.configs/vm.2<IP_ADDRESS>.49.09.args -pa /usr/lib64/vernemq/lib/erlio-patches -- console
vernemq   74104  0.0  0.0   4356   352 ?        Ss   Apr28   0:00 erl_child_setup 1048576
vernemq   74149  0.0  0.0 113188  1384 ?        Ss   Apr28   0:00 sh -s disksup
vernemq   74150  0.0  0.0   4348   612 ?        Ss   Apr28   0:20 /usr/lib64/vernemq/lib/os_mon-2.4.7/priv/bin/memsup
vernemq   74151  0.0  0.0   4348   584 ?        Ss   Apr28   3:46 /usr/lib64/vernemq/lib/os_mon-2.4.7/priv/bin/cpu_sup
vernemq   74890  0.0  0.0  11592   452 ?        Ss   Apr28   4:44 inet_gethost 4
vernemq   74891  0.0  0.0  17940   792 ?        S    Apr28   8:40 inet_gethost 4
michelin  83422  0.0  0.0 112716   968 pts/1    S+   08:02   0:00 grep --color=auto vernemq

Thanks, it seems I don't understand what you're pointing at. Doesn't this show a running VerneMQ node in both ps and systemctl output?

the ps shows one process running but the node is not responding and not usable. And I don't now much about the inner mechanisms of erlang and VerneMQ but the ps of my dead node reports quite less processes running than that of the running node, there's no run_erl, beam.smp nor memsup or cpu_sup processes.

@ioolkos The same happened again last night:
$ systemctl status vernemq
● vernemq.service - VerneMQ Server
   Loaded: loaded (/etc/systemd/system/vernemq.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-05-19 09:57:38 UTC; 20h ago
  Process: 67064 ExecStop=/usr/lib64/vernemq/bin/vernemq stop (code=exited, status=1/FAILURE)
  Process: 67352 ExecStart=/usr/lib64/vernemq/bin/vernemq start (code=exited, status=0/SUCCESS)
  Process: 67260 ExecStartPre=/usr/lib64/vernemq/bin/vernemq chkconfig (code=exited, status=0/SUCCESS)
 Main PID: 67432
   Memory: 1.2G
   CGroup: /system.slice/vernemq.service
           └─67420 /usr/lib64/vernemq/erts-10.2.3/bin/epmd -daemon

May 19 09:45:31 <Node 1 hostname> systemd[1]: Starting VerneMQ Server...
May 19 09:45:33 <Node 1 hostname> vernemq[67352]: vmq_cluster_node_sup
May 19 09:57:38 <Node 1 hostname> systemd[1]: vernemq.service: Supervising process 67432 which is not our child. We'll most likely not notice when it exits.
May 19 09:57:38 <Node 1 hostname> systemd[1]: Started VerneMQ Server.
May 19 18:10:58 <Node 1 hostname> run_erl[67430]: Erlang closed the connection.
$ ps aux | grep vernemq
vernemq   67420  0.0  0.0  12780  1460 ?        S    May19   0:07 /usr/lib64/vernemq/erts-10.2.3/bin/epmd -daemon
root      95009  0.0  0.0 112712   968 pts/0    S+   06:46   0:00 grep --color=auto vernemq

The proof that something is wrong is that systemctl stop vernemq fail in this state:
$ systemctl stop vernemq
$ systemctl status vernemq
● vernemq.service - VerneMQ Server
   Loaded: loaded (/etc/systemd/system/vernemq.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2020-05-20 06:50:08 UTC; 1s ago
  Process: 96151 ExecStop=/usr/lib64/vernemq/bin/vernemq stop (code=exited, status=1/FAILURE)
  Process: 67352 ExecStart=/usr/lib64/vernemq/bin/vernemq start (code=exited, status=0/SUCCESS)
  Process: 67260 ExecStartPre=/usr/lib64/vernemq/bin/vernemq chkconfig (code=exited, status=0/SUCCESS)
 Main PID: 67432

May 19 09:45:33 <Node 1 hostname> vernemq[67352]: vmq_cluster_node_sup
May 19 09:57:38 <Node 1 hostname> systemd[1]: vernemq.service: Supervising process 67432 which is not our child. We'll most likely not notice when it exits.
May 19 09:57:38 <Node 1 hostname> systemd[1]: Started VerneMQ Server.
May 19 18:10:58 <Node 1 hostname> run_erl[67430]: Erlang closed the connection.
May 20 06:50:07 <Node 1 hostname> systemd[1]: Stopping VerneMQ Server...
May 20 06:50:08 <Node 1 hostname> vernemq[96151]: Node 'VerneMQ@<Node 1 hostname>' not responding to pings.
May 20 06:50:08 <Node 1 hostname> systemd[1]: vernemq.service: control process exited, code=exited status=1
May 20 06:50:08 <Node 1 hostname> systemd[1]: Stopped VerneMQ Server.
May 20 06:50:08 <Node 1 hostname> systemd[1]: Unit vernemq.service entered failed state.
May 20 06:50:08 <Node 1 hostname> systemd[1]: vernemq.service failed.

This must be related:
May 19 09:57:38 <Node 1 hostname> systemd[1]: vernemq.service: Supervising process 67432 which is not our child. We'll most likely not notice when it exits.

This messages is shown systematically, even when everything is fine. I guess there's something wrong with the systemd service file definition of vernemq

How does your service file look? do you want it to restart in any case, or not? (is there a Restart strategy in the service file?)

@ioolkos I'm using the service file embedded in the RPM you provide.
# systemd unit file
[Unit]
Description=VerneMQ Server
After=network.target<EMAIL_ADDRESS>Wants=network.target<EMAIL_ADDRESS>
[Service]
Type=forking
PIDFile=/run/vernemq/vernemq.pid
User=vernemq
Group=vernemq
NotifyAccess=all
LimitNOFILE=infinity
Environment="WAIT_FOR_ERLANG=3600"
TimeoutStartSec=3600
RuntimeDirectory=vernemq
WorkingDirectory=/usr/lib64/vernemq
ExecStartPre=/usr/lib64/vernemq/bin/vernemq chkconfig
ExecStart=/usr/lib64/vernemq/bin/vernemq start
ExecStop=/usr/lib64/vernemq/bin/vernemq stop
ExecStop=/bin/sh -c "while ps -p $MAINPID >/dev/null 2>&1; do sleep 1; done"

[Install]
WantedBy=multi-user.target

Indeed there is no restart section. But this doesn't explain why systemd is not able to see the process is dead.

Problem still persists and the reason for this is, that defined PIDFile contains PID of 'beam.smp' process, which is launched by 'run_erl' process. SystemD can track only child of itself, not grandchild, which happens to be 'beam.smp', thats why message is shown, that this process is not supervised. When VerneMQ broker dies, 'epmd' daemon is still active, main process is not supervised since its grandchild. To go around this case is either try to track 'run_erl' process, or have separate SystemD service for 'epmd' daemon, or launch 'beam.smp' directly, not through 'run_erl' process.

I'm unable to keep VerneMQ running with systemd (CentOS 7).
/bin/systemctl start vernemq.service hangs until it is killed by systemd after 1 hour. Logs:
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.258.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/12"
Aug 20 12:35:41 websrv1 systemd: vernemq.service start operation timed out. Terminating.
Aug 20 12:35:41 websrv1 systemd: Failed to start VerneMQ Server.
Aug 20 12:35:41 websrv1 systemd: Unit vernemq.service entered failed state.
Aug 20 12:35:41 websrv1 systemd: vernemq.service failed.

Package version: vernemq-<IP_ADDRESS>-1.x86_64

@RedShift1 hm...anything logged, in the Verne logs? sudo?

I have vernemq set to log to syslog. Here's the entire log:
Aug 20 11:35:37 websrv1 systemd: Starting VerneMQ Server...
Aug 20 11:35:41 websrv1 vernemq: config is OK
Aug 20 11:35:41 websrv1 vernemq: -config /var/lib/vernemq/generated.configs/app.2<IP_ADDRESS>.35.38.config -args_file /var/lib/vernemq/generated.configs/vm.2<IP_ADDRESS>.35.38.args -vm_args /var/lib/vernemq/generated.configs/vm.2020.08.2
<IP_ADDRESS>.args
Aug 20 11:35:43 websrv1 vernemq: vmq_cluster_node_sup
Aug 20 11:35:51 websrv1 vernemq[12512]: Starting up
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.213.0>@plumtree_peer_service_manager:maybe_load_state_from_disk:131 read state from file {[{[{actor,<<80,169,198,63,229,112,147,96,50,211,200,209,162,225,16,213,16,73,198,208>>}],1},{<<177,19
0,207,166,3,101,22,4,18,230,73,81,4,144,71,78,140,79,144,12>>,1}],{dict,1,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[['VerneMQ@websrv1',{<<177,190,207,166,3,101,22,4,18,230,73,81,4,144,71,78,140,79,144,12>>,1}]
],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},{dict,0,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}}
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.213.0>@plumtree_peer_service_manager:write_state_to_disk:100 writing state {[{[{actor,<<80,169,198,63,229,112,147,96,50,211,200,209,162,225,16,213,16,73,198,208>>}],1},{<<177,190,207,166,3,10
1,22,4,18,230,73,81,4,144,71,78,140,79,144,12>>,1}],{dict,1,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[['VerneMQ@websrv1',{<<177,190,207,166,3,101,22,4,18,230,73,81,4,144,71,78,140,79,144,12>>,1}]],[],[],[],[],
[],[],[],[],[],[],[],[],[],[]}}},{dict,0,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}} to disk <<75,2,131,80,0,0,1,2,120,1,203,96,206,97,96,96,96,202,96,2,81,140,25,
76,41,12,172,137,201,37,249,69,185,64,174,72,192,202,99,246,79,11,38,39,24,93,62,113,113,209,67,129,171,2,158,199,46,100,37,2,85,129,101,55,238,59,191,140,57,85,140,69,232,153,103,32,203,4,119,191,30,255,9,60,137,140,89,25,156,41,12,44,4
1,153,201,37,137,140,137,2,64,200,145,24,144,104,144,33,144,133,6,50,24,129,98,96,75,193,14,72,97,224,15,75,45,202,75,245,13,116,40,79,77,42,46,42,51,196,111,11,186,105,112,75,25,8,90,138,166,21,0,111,152,82,194>>
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.218.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/0 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,47264384}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.220.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/1 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,52305586}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.221.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/2 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,57928506}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.222.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/3 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,59273857}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.223.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/4 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,50966152}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.224.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/5 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,40176737}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.225.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/6 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,54797362}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.226.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/7 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,50042479}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.227.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/8 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,39416318}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.228.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/9 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_
size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{us
e_bloomfilter,true},{write_buffer_size,34767934}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.229.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/10 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block
_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{u
se_bloomfilter,true},{write_buffer_size,41655621}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.230.0>@plumtree_metadata_leveldb_instance:init_state:322 Datadir /var/lib/vernemq/meta/meta/11 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block
_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{u
se_bloomfilter,true},{write_buffer_size,56049868}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.247.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/1"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.248.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/2"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.249.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/3"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.250.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/4"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.251.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/5"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.252.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/6"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.253.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/7"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.254.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/8"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.255.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/9"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.256.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/10"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.257.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/11"
Aug 20 11:35:54 websrv1 vmq[12512]: [info] <0.258.0>@vmq_storage_engine_leveldb:open_db:145 Opening LevelDB database at "/var/lib/vernemq/msgstore/12"
Aug 20 12:35:41 websrv1 systemd: vernemq.service start operation timed out. Terminating.
Aug 20 12:35:41 websrv1 systemd: Failed to start VerneMQ Server.
Aug 20 12:35:41 websrv1 systemd: Unit vernemq.service entered failed state.
Aug 20 12:35:41 websrv1 systemd: vernemq.service failed.

In the unit file PIDFile is set: PIDFile=/run/vernemq/vernemq.pid. But this PID file is never created. That's probably why systemd is waiting.

@RedShift1 I had the same problem, it was because in '<VerneMQ_Directory>/etc/env.sh' RUNNER_USER was empty (built verne myself with make rel). After setting RUNNER_USER=root, Verne still wasn't creating pid file, then in create_pid_dir function, I changed IF, for user checking, to be same user, not different.

The problem seems to be here:
do_start() {
    # Make sure there is not already a node running
    node_down_check
    # Warn the user if ulimit is too low
    check_ulimit
    # Make sure log directory exists
    mkdir -p $RUNNER_LOG_DIR

    HEART_COMMAND="$RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT start"
    export HEART_COMMAND
    mkdir -p $PIPE_DIR
    $ERTS_PATH/run_erl -daemon $PIPE_DIR/ $RUNNER_LOG_DIR \
        "exec $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT console" 2>&1

    if [ ! -z "$WAIT_FOR_PROCESS" ]; then
        logger "WAIT_FOR_PROCESS: $WAIT_FOR_PROCESS"
        # Wait for the node to come up. We can't just ping it because
        # distributed erlang comes up for a second before the node crashes
        # (eg. in the case of an unwriteable disk). Once the node comes
        # up we check for the $WAIT_FOR_PROCESS} process. If that's running
        # then we assume things are good enough. This will at least let
        # the user know when the node is crashing right after startup.
        WAIT=${WAIT_FOR_ERLANG:-15}
        while [ $WAIT -gt 0 ]; do
            WAIT=`expr $WAIT - 1`
                logger "sleep 1"
            sleep 1

            # squash stderr output to not frighten users if the node does not
            # come up right away
            MUTE=`ping_node 2> /dev/null`
            if [ "$?" -ne 0 ]; then
                continue
            fi
            PROCESS=`$NODETOOL rpcterms erlang whereis "'${WAIT_FOR_PROCESS}'."`
            if [ "$PROCESS" != "undefined" ]; then
                # Attempt to create a .pid file for the process
                create_pid_file
                exit 0
            fi
        done
        echo "${SCRIPT} failed to start within ${WAIT_FOR_ERLANG:-15} seconds,"
        echo "see the output of '${SCRIPT} console' for more information."
        echo "If you want to wait longer, set the environment variable"
        echo "WAIT_FOR_ERLANG to the number of seconds to wait."
        logger "exit 1"
        exit 1
    fi

    # Attempt to create .pid file
    create_pid_file
}

In the countdown loop, $WAIT_FOR_PROCESS is set to "vmq_cluster_node_sup". But this process never runs (I think?), so the loops exits with an error state and never creates the pid file.

@RedShift1 but it looks like your broker goes up successfully and it looks like theres no such messages as described in this script if it fails, so I guess the problem is not in this part.

Added `` to /etc/rc.local like a caveman. It outputs the following:
[root@websrv1 vernemq]# /etc/rc.d/rc.local
Last login: Thu Aug 20 14:24:33 CEST 2020 on pts/1
!!!!
!!!! WARNING: ulimit -n is 1024; 65536 is the recommended minimum.
!!!!
vernemq failed to start within 15 seconds,
see the output of 'vernemq console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.
[root@websrv1 vernemq]#

But the processes are running:
root     19346  0.0  0.0 112712   984 pts/1    S+   14:29   0:00      \_ grep --color=auto -i vernemq
vernemq  17201  0.0  0.0  11628   592 ?        S    14:23   0:00 /usr/lib64/vernemq/erts-10.7/bin/epmd -daemon
vernemq  17209  0.0  0.0  13724   748 ?        S    14:23   0:00 /usr/lib64/vernemq/erts-10.7/bin/run_erl -daemon /tmp/vernemq// /var/log/vernemq exec /usr/lib64/vernemq/bin/vernemq console
vernemq  17212  0.9  1.1 2867588 46592 pts/2   Ssl+ 14:23   0:03  \_ /usr/lib64/vernemq/erts-10.7/bin/beam.smp -P 256000 -e 256000 -Q 262144 -A 64 -K true -W w -- -root /usr/lib64/vernemq -progname vernemq -- -home /var/lib/vernemq -- -boot /usr/lib64/vernemq/releases/<IP_ADDRESS>/vernemq -config /var/lib/vernemq/generated.configs/app.2<IP_ADDRESS>.23.45.config -setcookie vmq -name VerneMQ@websrv1 -smp enable -- -vm_args /var/lib/vernemq/generated.configs/vm.2<IP_ADDRESS>.23.45.args -pa /usr/lib64/vernemq/lib/erlio-patches -- console --
vernemq  17451  0.0  0.0   4356   348 ?        Ss   14:23   0:00      \_ erl_child_setup 1024
vernemq  17468  0.0  0.0   9568  1144 ?        Ss   14:23   0:00          \_ sh -s disksup
vernemq  17469  0.0  0.0   4348   612 ?        Ss   14:23   0:00          \_ /usr/lib64/vernemq/lib/os_mon-2.5.1/priv/bin/memsup
vernemq  17471  0.0  0.0   4348   580 ?        Ss   14:23   0:00          \_ /usr/lib64/vernemq/lib/os_mon-2.5.1/priv/bin/cpu_sup
[root@websrv1 vernemq]#

So caveman hammer works good enough I think?

Ok so I narrowed it down to something complete different: nodename in vernemq.conf:
## Name of the Erlang node
##
## Default<EMAIL_ADDRESS>##
## Acceptable values:
##   - text
nodename =<EMAIL_ADDRESS>
I had nodename set to VerneMQ@websrv1 and then I was seeing the behavior where service vernemq start would hang. I changed it back to the default and now VerneMQ starts successfully using systemd. Clearly nodename isn't just a text field and its content has meaning somewhere, but I cannot find any documentation about it.

I'm pondering to integrate https://github.com/hauleth/erlang-systemd
We could switch to 'notify' behaviour, start Verne in foreground, and have a configurable watchdog process supervising it.
Will probably not exploit the logging capabilities of the framework.
Any opinions?
cc/ @Erlandys @RedShift1 @francois-travais

I'm pondering to integrate https://github.com/hauleth/erlang-systemd
We could switch to 'notify' behaviour, start Verne in foreground, and have a configurable watchdog process supervising it.
Will probably not exploit the logging capabilities of the framework.
Any opinions?
cc/ @Erlandys @RedShift1 @francois-travais

I also encountered this issue.
We are running VerneMQ on RaspberryPi 4 with only 1 GB RAM. The beam.smp process is usually the one with highest memory consumption and so is the first to be killed by kernel when OOM killer is triggered. I would expect, that adding Restart=always to vernemq.service would work-around our issue and restart the VerneMQ in such cases. This does not work, because systemd does not detect when beam.smp exits.
I tried to monitor run_erl as suggested by @Erlandys and that seems to work correctly. Killing beam.smp makes the run_erl to finish and this is catched by systemd since run_erl's PPID is 1. Changes are really minimal, but I'm not sure if this is correct "solution".

I'm running run_erl without -daemon to be able to obtain its PID. That is probably fine with systemd, but maybe something like disown is also needed when running directly from terminal?
I'm not sure, if it can get stuck in some intermediate state, where beam.smp is dead, but run_erl is still running.

--- /usr/lib/vernemq/bin/vernemq
+++ /usr/lib/vernemq/bin/vernemq
@@ -169,8 +169,8 @@ do_start() {
     HEART_COMMAND="$RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT start"
     export HEART_COMMAND
     mkdir -p $PIPE_DIR
-    $ERTS_PATH/run_erl -daemon $PIPE_DIR/ $RUNNER_LOG_DIR \
-        "exec $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT console" 2>&1
+    $ERTS_PATH/run_erl $PIPE_DIR/ $RUNNER_LOG_DIR \
+        "exec $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT console" 2>&1 & PID_HACK=$!

     if [ ! -z "$WAIT_FOR_PROCESS" ]; then
         # Wait for the node to come up. We can't just ping it because
--- /usr/lib/vernemq/lib/env.sh
+++ /usr/lib/vernemq/lib/env.sh
@@ -243,7 +243,12 @@ create_pid_file() {
             # Remove pid file if it already exists since we do not
             # plan for multiple identical runners on a single machine
             rm -f $PID_FILE
-            echo $PID > $PID_FILE
+            if [ -z $PID_HACK ]; then
+                echo $PID > $PID_FILE
+            else
+                echo $PID_HACK > $PID_FILE
+            fi
             return 0
         fi
     else


wrong decode and encode for pdufield.UDHList

I found that the decode and encode (Bytes(), Len(), SerializeTo()) method for pdufield.UDHList were wrong.
According to 3GPP TS 23.040 Section <IP_ADDRESS>. https://www.etsi.org/deliver/etsi_ts/123000_123099/123040/16.00.00_60/ts_123040v160000p.pdf Each IEI data inside the UDH should not have tailing zeros (0x00)
So we should change following definition
// UDH is a PDU field used for user data header.
type UDH struct {
	IEI      Fixed
	IELength Fixed
	IEData   Variable
}

To:
 type UDH struct {
	IEI      Fixed
	IELength Fixed
	IEData   Raw
}

And redefine the Raw type

Happy to review a PR


bug: size of qrcode is not fixed when data string is different

Originally posted by @akhileshthite in https://github.com/p2plabsxyz/dscan/pull/46#discussion_r1367903980
QR code display issue with long name files:

Files with long names are generating smaller QR codes. Because it's an URI; https://w3s.link/ipfs/<CID>/<file_name>

QR code display issue with folder:

Folders use URL; https://w3s.link/ipfs/<CID>/, so it's fixed length string.

I tried changing the values here and found that 140 works perfect, but it will mess the file's QR code.
export var QR_CODE_DISPLAY = createQRCodeFor(140);

Expected behavior:
The generated QR code should fit in a fixed size 150 regardless of its link length just like previously.

Can you elaborate more on this issue and provide the files where it is.

Can you elaborate more on this issue and provide the files where it is.

Hey @Learningcomputers777,
Please read this thread https://github.com/p2plabsxyz/dscan/pull/46#discussion_r1367903980_
Files:
./src/scripts/qrcode.js
./src/file.html
./src/folder.html
./src/css/main.css


Validate header props

Props validation ensures that the props passed into a module match what is expected. If validation fails then we render nothing, which is better than rendering something broken.
We already validate props in the epic and banner modules, but not the header.
In the past we've used this for non-backwards compatible changes to the props. Any clients with a cached version of the old module will render nothing, for a short period of time.
This is necessary in the header now because we're going to migrate the cta model to be consistent with epic/banner.
I also deleted HeaderSupportAgain, which is no longer used.

Tested in CODE:


"Auto Capture Transition Type" enum in AnimationPlayer-Playback Option not working correctly

Tested versions
Reproducible in v4.3.rc1.mono.official [e343dbbcc]
System information
Godot v4.3.rc1.mono - Windows 10.0.16299 - Vulkan (Forward+) - dedicated NVIDIA GeForce GT 1030 (NVIDIA; <IP_ADDRESS>96) - Intel(R) Core(TM) i3-10105F CPU @ 3.70GHz (8 Threads)
Issue description
Some of the easing options for Capture track ("Auto Capture Transition Type" in the editor for AnimationPlayer) is not working correctly. For example, "Cubic" option make the animation blend elastically instead of gradually. Some other easing type have issue as well, but "Linear" seems to not be affected.
https://github.com/user-attachments/assets/a2e6c8b1-3e82-480c-843f-2df7f463d9e8
Steps to reproduce

Create a project
Create a 3D scene
Add a MeshInstance3D
Add a BoxMesh to MeshInstance3D (or anything that makes the object visible in runtime)
Add a Camera and move them back 2 unit so that it faces the MeshInstance3D
Add an AnimationPlayer node and create an Animation
Set "Auto Capture Transition Type" to Cubic
Set Animation duration to 1 seconds
Add an Property track, select MeshInstance3D --> Node3D/position
Set property Update Mode to "Capture"
Move/Set MeshInstance3D position to (2, 0, 0)
Add a keyframe of MeshInstance3D at 1 seconds
Move/Set MeshInstance3D position back to (0, 0, 0)
Create a script for the root node to run the animation in AnimationPlayer in ready()
Run current scene (F6)
If success, the cube will more to the right with elastic movement (instead of gradual movement)

Minimal reproduction project (MRP)
auto-capture-reproduce-copy.zip

Does it work in 4.2.2.stable? Mainly trying to assess whether this a regression report or "just" a bug.

4.2.2.stable don't have such feature. I think this is a new implementation, since the old code for this has been removed when implementing AnimationMixer.

I was asked the same question by @Calinou earlier, but CaptureMode is no longer affected by InterpolationType, so you need to use a tween instead.

I was asked the same question by @Calinou earlier, but CaptureMode is no longer affected by InterpolationType, so you need to use a tween instead.

Could you clarify it further? Seem that the CaptureMode is affected by TransitionType, but the curves are just wrongly labelled.
Another thing I've just found is that the bug I mentioned seems to only affect the Auto Capture properties of the AnimationPlayer, and if the Capture is used manually (via play_with_capture()), then the problem no longer exists.

By the way, not only the transition type, but ease type is also messed up: Ease Out actually makes the animation ease in, and vice versa.
This was present in both Auto Capture and manual calling, should I make a seperate issue for this?

Since it interpolates from the Captured frame to the Animation, EaseOut indicates EaseIn to the Animation, so there should be no problem. Also, I don't know what is wrong with the curves, as they are working correctly.
The two most disruptive changes I remember from 4.1 are that it is no longer possible to interpolate at different times for each track, and InterpolationType is no longer affected.


[#102][feature][Tiling] Tiling Task Phase 2 - working tests, full integration

Work the tiling task/CSVReader into all current uses of CSVDataset.
Make sure it passes all existing tests (and fix broken tests)
Only thing untested is the live julia demo, because it seems broken at a more fundamental level.

Closing in favor of #114


[release-2.5] Triggering image rebuild

Related issue: https://github.com/stolostron/backlog/issues/22158
Signed-off-by: dislbenn<EMAIL_ADDRESS>

/test e2e-kind


Add service for issuing a Pause command for washers and driers.

Official support has a pause command that doesn't distinguish between appliance types. For certain appliances a pause command is available, for example for clothes washers and dryers.
I think it would be useful to provide such service also in your integration.

Good idea. Added in version 0.6.3. Note that I can't test it on my appliance but it should work, assuming your appliance allows pausing and resuming through the API. If it doesn't work then press the "Home Connect Debug" button and upload the log file.


ERROR 400: Bad Request

While using wget command to check the connectivity we are getting  error
wget --no-check-certificate --method POST  --timeout=0 --header 'Authorization: Basic ODc4MTM1Zjzg4Mzc4NTQ3MTZkYWI2Nzg6N2FucZHazlMMWhJTlRpMzBGSFFBODVXc0tDMkJ0elhPZmN3RQ' --header 'Content-Type: application/x-www-form-urlencoded' 'https://api.crowdstrike.com/oauth2/token'
--2024-03-11 02:23:15--  https://api.crowdstrike.com/oauth2/token
Resolving api.crowdstrike.com (api.crowdstrike.com)... <IP_ADDRESS>, <IP_ADDRESS>
Connecting to api.crowdstrike.com (api.crowdstrike.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 400 Bad Request
2024-03-11 02:23:15 ERROR 400: Bad Request.

You need to use the following replacing MYCLIENTID and MYCLIENTSECRET with the correct OAUTH values, and in general, should use curl over wget:
wget --no-check-certificate --timeout=0 --header 'Content-Type: application/x-www-form-urlencoded' 'https://api.crowdstrike.com/oauth2/token' --post-data "client_id=MYCLIENTID&client_secret=MYCLIENTSECRET"

Closing this as there has been no further movement. Please re-open if needed.


How to add Medusa decoding to server?

Hi,
So i managed to build with Medusa, but the server example doesn't have the options needed to enable it.

Hi nivibilla, do you mean the server demo server.py under examples/server in v0.8 or fastapi_server.py under examples/apps of current main by saying server example? If so, unfortunately, I am afraid it is just a server demo and may not adding more feature support.

Hi @nivibilla do u still have further issue or question now? If not, we'll close it soon.


[BUG]: Send Email button coming up for SMS, RPAD, EPost in Court Staff Screen

Describe the bug
Send Email button coming up for SMS, RPAD, EPost in Court Staff Screen. Change to just Send
To Reproduce
https://github.com/user-attachments/assets/cace248f-9a27-4780-9e3c-700265b5b641

Hi @devarajd94  This issue has been fixed and is updated in QA env . Screenshot for reference.

Will be reflected in next UAT release .
Thanks.
cc:- @Ramu-kandimalla

Hi @iknoorkaur  can you please check this in QA & UAT env

Hi @Ramu-kandimalla , tested in QA env, there is one minor UI change required in text:
There should be one tab space after "the"
It should be "You are adding your signature to the Summons Document".

cc: @rajeshcherukumalli

@Ramu-kandimalla @rajeshcherukumalli please ensure that the above comment is looked into and this ticket is moved into done tomorrow.

Hi @Ramu-kandimalla, tested in QA env, working as expected:

cc : @rajeshcherukumalli

Tested in UAT env, working as expected:

cc : @Ramu-kandimalla @rajeshcherukumalli


Docker CI fixes

This fixes the following issues with the Docker image generation:

Docker images were published only on commits to master, and not on git release tags. This PR ensures that images are automatically built on any v* git tag, applying the vX.X.X and latest docker tags.
Docker images were built on Java 8. This bumps them to Java 17, and makes the version configurable using a Docker build arg.
The docker CI was using commit-hash dependencies. This changes them to the mainline versions.

It also fixes little inconsistencies and adds some documentation.

Hi Jay - this all looks pretty sound. Just wanted to confirm that you've tested this in your Fork of the Fantom repo?

Oh yeah, good call 😆 . Here are the working actions - see the completed job on a merge to main and on a git tag v0.0.0_test. And here are the results in the package registry, with the merge getting the master tag, and the tag getting that tag's value as well as latest.


Edit

👷 Deploy Preview for adoring-leavitt-e31a11 processing.

Name
Link

🔨 Latest commit
fa37494d6a13eca9177f1ec0565fe0784dc30c46

🔍 Latest deploy log
https://app.netlify.com/sites/adoring-leavitt-e31a11/deploys/62a1c41085c7110008fe0681


k8s support for uprobes

Also includes a fix in DoesProgExist() for kprobes
resolves #369
resolves #564

Thanks for the review @astoycos.  I think I've addressed everything locally, but I want to do some testing -- particularly on multiple targets before I push it up.


Can I add a custom button to the entire query selector component?

I would like to add a custom button next to the lock button for the entire query selector (where the yellow X is).
Is this possible? I see options to customize individual components within each rule, but not the entire component.

There are a couple of ways to go about this. My first suggestion would be to render the default lock group button and your custom button as part of the lockGroupAction control. Something like this:
import { ActionElement, ActionWithRulesAndAddersProps } from 'react-querybuilder';

export const CustomLockGroup = (props: ActionWithRulesAndAddersProps) => {
  return (
    <>
      <ActionElement {...props} />
      <button onClick={() => alert('Hello, World!')}>HW</button>
    </>
  );
};

Which looks like this:

The other option is to custom render the entire RuleGroup component. That's not as complicated as it may sound because all the default logic and even the rendering of sub-components is encapsulated in hooks or easy-to-render wrapper components. The basic idea is to copy the RuleGroup source code (only ~25 lines), modify the JSX as you see fit, and apply that to the ruleGroup property of the controlElements prop. Note that RuleGroupHeaderComponents and RuleGroupBodyComponents return React Fragments, meaning you can do something like this:
export const CustomRuleGroup = (props: RuleGroupProps) => {
  const rg = { ...props, ...useRuleGroup(props) };

  // ...other stuff...

  return (

        <RuleGroupHeaderComponents {...subComponentProps} />
        {/* SEE NEXT LINE: */}
        <button onClick={() => alert('Hello, World!')}>HW</button>

        <RuleGroupBodyComponents {...subComponentProps} />

  );
};

The <button> below the comment will be a sibling element to all the other group header sub-components, just like with the previous method.
Hope that at least gives you some ideas!

Thank you. The first option worked great for what I needed.


Fixed a typo error in subgraph.cc (First Pull Request)

Fixed a typo error. Changed the spelling from "GetDelegateKernalName" to "GetDelegateKernelName"

You will need to also change all callers of this.
Also, in general we don't accept 1-letter PR fixes. The amount of CI that needs to run is a cost that does not justify it

can you please tell me how to change all callers of this? how to locate the files where it has been called.

grep, use IDE, use codesearch tools (github also has a search).

Hi @captainhaddock18 Can you please sign CLA. Thank you!


Add prefix standardization and record lookup

This PR implements prefix standardization and record lookup. Note that the record lookup is O(n) instead of O(1) so this should be improved later

Codecov Report

Merging #39 (69f4904) into main (61d957a) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #39   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          316       327   +11
  Branches        70        58   -12
=========================================
+ Hits           316       327   +11

Impacted Files
Coverage Δ

src/curies/api.py
100.00% <100.00%> (ø)

src/curies/version.py
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


bitsum: try removing positivity constraint on key_size

Thank you @nikswamy for pointing this out. For now I will leave it as is, for the sake of merging your changes into master, CI permitting.
Later I will separately investigate whether I can remove that restriction on key_size, and if not, I will update the comment accordingly.
Originally posted by @tahina-pro in https://github.com/project-everest/everparse/pull/38#discussion_r556969221

I hope this constraint can be lifted thanks to FStarLang/FStar#2205, which should allow me to correctly perform structural recursion on bitsum_t

I hope this constraint can be lifted thanks to FStarLang/FStar#2205, which should allow me to correctly perform structural recursion on bitsum_t


Recovery failed

I've send DFI from the LightWallet to the Metamask. The building of the signature doesn't come to the end after 20 Minutes. So i have tried to recover my DFI with the TX-ID and my ER20 Targetaddress. I get the Message: signatures have invalid length/count: 0
So the DFI hangs anywhere between my LightWallet and my Metamask adress. Can you help me and have a look on it.

Exact same problem for me here.

Please try the recovery again now please! If it doesn't work can you please send me a private message (or post it publicly here) with the TXID and destination address?


chore: Update deps

➤ YN0060: │ root-workspace-0b6124@workspace:. provides luxon (pd6533) with version 3.0.2, which doesn't satisfy what @fullcalendar/luxon2 requests

remains, which @NGPixel probably has a suppression for.

#4293 has been merged.

I updated this; it rolls in some additional updates now.

I couldn't get the warning to be suppressed. We'll have to ignore it until https://github.com/fullcalendar/fullcalendar/issues/6957 is addressed.


Promote guideline for blog related PRs

While the guideline about blog related PRs is known to reviewers and approvers (https://kubernetes.io/docs/contribute/review/for-approvers/#blog-issues), we need to remind contributors that we don't accept fixes to blog entries more than 1 year old.
Proposed Fix:

Add a few lines to https://kubernetes.io/docs/contribute/suggest-improvements/, saying that we don't treat issues in old blog entries as something to fix.
Add some text to https://kubernetes.io/docs/contribute/new-content/new-content/, saying that PRs related to old blog entries will be closed.

/kind feature

That reminder could also be a job for automation, if anyone feels particularly inclined to implement it.


Advanced Demutation

We want to be able to demutate something like the following:
function train_dp(loss::NoData(), ps::NoData(), data, eps, del)
         ps = Params(ps)
         for d in data
            gs = gradient(ps)
            clip!(L2, gs)
            gaussian_mechanism!(1/rows(data), eps, del, gs)
            subtract_gradient!(ps, gs)
         end
         ps
       end

The current problem is that, if we have
function test(a,b)
  b = a + 1
  convert!(b)
  c = b + 2
  convert!(c)
  convert!(a)
end

it is demutated to:
FLet test = Lam ([a, b])
(
  Reorder [2,0]
  (
    SLet b = + [a, 1.0]
    TLet [b] = ConvertM (b)
    SLet c = + [b, 2.0]
    TLet [c] = ConvertM (c)
    TLet [a] = ConvertM (a)
    Tup [b, c, a]
  )
)
test

The problem is here that this function has b marked as mutated (because of the reorder [2,0] => we return b as well),
but that is wrong: the parameter which is being passed to the function is not the one being mutated, the new local variable
is.
This seems to suggest that we need to distinguish between locally mutated variables, and argument mutated variables when elaborating lambda statements.

Note: The goal is to demutate the following:
function pure_gradient(loss::Function, ps::DMParams, d) :: DMGrads
     return gradient(() -> loss(d...), ps.params)
end

function train_dp(loss::NoData, ps::NoData(DMParams), data, eps::NoData, del::NoData, eta) :: Priv
  n = length(data)
  for i in 1:n
     d = row(data, i)
     gs = pure_gradient(loss, ps, d)
     clip!(L2, gs)
     scale_gradient!(1/n, gs)
     gaussian_mechanism!(1/n, eps, del, gs)
     scale_gradient!(eta, gs)
     subtract_gradient!(ps, gs)
  end
  ps
end


Add Tunlookup App

I would suggest changing the description to something like "Translate selected text from your menu bar", or "Translate selected text with a keystroke", or similar depending on how your app works.
If the app interface is not in English, please also add a locales array. See https://github.com/electron/electron-apps/blob/master/contributing.md#locales

Thank for your suggestion, I has changed the description.
And about language my app, only support english, so locales  is unnecessary. pls approve my app.
Thank a lot!

👍


Feature request: Proxy support for Mac OS X stagers

Empire Version
2.0_beta
OS Information (Linux flavor, Python version)
Mac OS Sierra 10.12.1, Python 2.7.10
Expected behavior and description of the error, including any actions taken immediately prior to the error. The more detail the better.
The osx/launcher and other Mac OS stagers do not support proxy awareness. Unlike the Windows stagers which support NTLM authentication to proxies, the Mac OS stagers do not.
Screenshot of error, embedded text output, or Pastebin link to the error
File "<stdin>", line 1, in <module>
  File "<string>", line 7, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1200, in do_open
    r = h.getresponse(buffering=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1132, in getresponse
    response.begin()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 453, in begin
    version, status, reason = self._read_status()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 417, in _read_status
    raise BadStatusLine(line)
httplib.BadStatusLine: ''

Any additional information
Empire is an excellent project! Thanks so much for all the great work.

Added logic to gather the proxies and add them to a proxy handler. Test it out and let me know if it works.

Thanks a lot! We were not able to make it work in our live environment which is, unfortunately, the only place we have the proxies for the Mac. I will continue to look into it.


Use modern API and conventions in README

Thanks @gaearon ! Do you have time to also update the example to the modern API? Not a big deal if not (Then i'll do it as soon as I get the time)


chore: Stop including unnecessary files in published packages (examples/)

Description
Follow up to #15556. Same change, more packages. Includes the changes in #15532, #15542, #15543, #15544, #15547, and #15556, so review can focus on the notes below; the rest of the changes will disappear once that PR is merged.
Instead of using the boilerplate files property I've been using for the functional FF packages, since these are all examples that have private: true in package.json and are never intended to be packed or published, I just gave them an empty files property.
table-document did not have private: true so this PR adds it.
Diffs would be too big to show, but running npm pack on all of them ends up including only the 3-4 files that cannot be excluded (package.json, et al).

table-document is actually used by our partners, so need to continue to be public.
We do want to deprecate them eventually.


Update build-bundle.sh to include .imgpkg dir

Signed-off-by: Dharmjit Singh<EMAIL_ADDRESS>What this PR does / why we need it:
In the bundle tar, we need to include  .imgpkg dir as well as the same is referred by imgpkg in the push command.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Additional information
Special notes for your reviewer

Hint why I was not seeing this: I was using the BUILD_ONLY=0 which pushed the bundle directly from the dir, without creating bundle.tar.


[Choreo] Migrate Project API to choreo

 @xlight05 cloned issue wso2-enterprise/ballerina-registry#2091 on 2023-06-19:

Description:
$Subject
Will have to use BYOC approach for this.
Describe your task(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

 @xlight05 commented on 2023-06-19:

Blocked by https://github.com/wso2-enterprise/choreo/issues/21933


D400 family firmware v<IP_ADDRESS> not supported

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 16

Kernel Version (Linux Only)
4.10.0

Platform
PC

SDK Version
2.18.0

Language
C

Issue Description
v2.18.0 does not support the latest firmware v<IP_ADDRESS> for D400 Family. It gives
terminate called after throwing an instance of 'rs2::invalid_value_error'
  what():  hwmon command 0x7d failed. Error type: Invalid Command (-1).

You probably know that already, but I am submitting it anyway.

Yes, we will release 2.18.1 shortly that will fix backward-compatibility with 5.11.1 and also we are waiting for the new firmware to be released that will be backward-compatible with 2.18.0 as well.

Hi dorodnic
I am getting a error saying
terminate called after throwing an instance of 'rs2::invalid_value_error'
what():  object doesn't support option #15
Aborted (core dumped)
In this #3185 when using the options of RS2_OPTION_MOTION_RANGE
Is it anything related to the firmware versions, to solve this error?

Resolved in v2.18.1


[LexicalPattern] Add Words[n] PatternObject

Add a Words[n] pattern representing n words

What if TextType had an n argument, like:
TextType["Word",3] meaning 3 words.

Implemented


Mirror settings of Apple‘s VS Code extension

We should mirror all settings of the VS Code extension as it reduces barriers and migration issues.
More details:
https://www.vknabel.com/pages/Apples-SourceKit-LSP-and-SDE-Roadmap/

Released with https://github.com/vknabel/vscode-swift-development-environment/releases/tag/2.7.0


New Version: OO-Software.DeskInfo version 1.2.1346

Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run

/azp run

Verify:

This is a tray-based application that also displays info on the desktop.


Validation response in JSON format

Closes https://github.com/Jasig/cas/issues/991
Produces the validation response, as an implementation specific option in JSON, if service requires it. The option is activated via the registry and handled during service validation. By default, Spring does all the work of mapping the model to JSON, but the pull also presents a component that is to be extended by the developer is the output model needs to be reformatted for specific requirements.

The source code is fairly smart. Though, I'm not sure to understand what are the real use cases which would legitimate this extension. Moreover, the current endpoints are fixed in the protocol.

In this pull, we are only providing an implementation option that is specific to the server without touching the endpoints and/or the protocol. This is just a feature of the CAS server; the idea is that parsing JSON is more convenient for a number of client-types where JSON support is directly built into the programming language, and parsing a JSON blob into Maps and Objects is much easier than the native XML. We have to be extra careful with XML processing not to break clients, but JSON does not have that limitation as much. So the goal is to advertise JSON as a feature, and if and when it gains enough adoption, perhaps the protocol moves away from XML and into JSON which is becoming more and more mainstream.

I get the idea and I'm in line to introduce JSON (maybe to eventually replace XML). If you change the current endpoint to return JSON instead of XML, in fact, you don't match any more the defined protocol spec people may read and implement. Wouldn't it be better to propose a new endpoint?

So, there are a number of options. Let's explain:

The current approach keeps the same endpoint, but only produces JSON output for service validation because that service explicitly requires it in the service registry. This makes it a feature of the server. The same endpoint will continue to function as it did before and so it's only useful for clients and services that require a JSON output.

We could introduce a new endpoint, such as jsonValidate or something right now, but that requires protocol changes, community agreements and it then requires every CAS server out there (not just us) to implement and support that. So impact is much bigger (and they may not all in fact need the new endpoint because we don't have broad adoption of this feature).

So I think we should eventually introduce a new endpoint that produces JSON output for validation, but we should only do so once we have had enough number of deployments and experiences with the current "feature", before we proposal protocol modifications. This is similar to the approach we did with /p3 endpoints. For a while, attribute release was more of a feature/hack. It lived in CAS for a while and then once it caught on, it was built into the protocol. Protocol changes right off the start seem extreme to me.

I guess what I am saying is, I would only be in violation of the protocol if we changed the default behavior of the same endpoint :) This is where I sort of draw the distinction between feature vs. spec. A CAS server out there that wants to implement the spec has to have a serviceValidate endpoint, but they don't have to produce JSON because that is not part of a protocol and so it only becomes an extension specific to the impl. Does that makes sense?

That makes sense, you raise good arguments. Adding a new endpoint is a huge work: getting agreement, updating the protocol spec, implementing it in the CAS servers and in the CAS clients... The "experimental" approach is appealing.
But, let's take the problem the other way: what will happen if every CAS server decides to add its own endpoint in JSON or YAML or Thrift (binary protocol)? Or different urls? With different attributes? It becomes a huge mess where the protocol does mean anything.
Adding a new endpoint does not imply that a CAS server adds this endpoint immediately as the protocol has several versions and the CAS server may decide not to support the latest one.
Maybe we should just turn your proposal into something more extensible. In a new protocol CAS v4, the endpoint may return other format or structure based on a provided parameter type (in your case, type=jsonformat). If the type is not supported, a "400 bad request" error is returned and should be properly handled by the CAS client.

Sounds good. I like that approach better. So in your description, there are 2 PRs buried: first to update the protocol version with the new parameter, and 2nd is to add support for that in the server. I'll rework those into separate pull requests.


SW-5795 Use dynamic IDs in tracking tests

Stop using hardwired IDs in the tracking-related tests, and remove the ability to
pass numeric literals to the relevant insert functions.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#2280  👈
#2279
#2278
#2277
#2276
main

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

Join @sgrimm and the rest of your teammates on  Graphite

Merge activity

Aug 14, 12:21 PM EDT: @sgrimm started a stack merge that includes this pull request via Graphite.


Text overwrite when accepting completion from kite

What steps will reproduce the problem?
When giving completed sometimes kite overwrites part of what had been written

This error can be avoided by changing CRLF (windows) to LF (linux) in the "convert end-of-line characters" option in the "source" menu.

Reopening to close it when merging #13


Add Travis and Codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d062295). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #2   +/-   ##
=========================================
  Coverage          ?   34.66%
=========================================
  Files             ?        8
  Lines             ?      150
  Branches          ?        0
=========================================
  Hits              ?       52
  Misses            ?       98
  Partials          ?        0

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 d062295...d4a969f. Read the comment docs.


Fix button presses for Inovelli fan switch VZM35-SN

Proposed change

Update to the VZM35-SN quirk to include button presses.
Additional information

Fixes an issue where the VZM35-SN devices aren't sending button press events.
Checklist

[x] The changes are tested and work correctly
[x] pre-commit checks pass / the code has been formatted using Black
[ ] Tests have been added to verify that the new code works

@codyhackw Should the OUTPUT_CLUSTERS have INOVELLI_VZM35SN_CLUSTER_ID in them, the same way they are for the VZM31-SN?