HDDS-1788. Add kerberos support to Ozone Recon

Recon fails to come up in a secure cluster with the following error:
Failed startup of context o.e.j.w.WebAppContext@2009f9b0{/,file:///tmp/jetty-<IP_ADDRESS>-9888-recon-_-any-2565178148822292652.dir/webapp/,UNAVAILABLE}{/recon} javax.servlet.ServletException: javax.servlet.ServletException: Principal not defined in configuration at org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler.init(KerberosAuthenticationHandler.java:188) at

This patch addresses this issue and enables Recon to come up in clusters secured by kerberos. I have manually tested the patch by creating the recon jar and replacing an old jar in a live secure CM deployed cluster and verified that Recon starts successfully and is able to login successfully with the kerberos ticket. Also updated ozonesecure docker-compose file to add recon and verified that recon is able to come up successfully. This patch also fixes various typos found in other parts of the source code not related to the title of this JIRA.

/label ozone

@swagle @avijayanhwx @anuengineer Please review when you find time. Thanks!

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
98
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

0
shelldocs
0
Shelldocs was not available.

0
yamllint
0
yamllint was not available.

+1
@author
0
The patch does not contain any @author tags.

-1
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

0
mvndep
73
Maven dependency ordering for branch

+1
mvninstall
659
trunk passed

+1
compile
431
trunk passed

+1
checkstyle
81
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
968
branch has no errors when building and testing our client artifacts.

+1
javadoc
208
trunk passed

0
spotbugs
454
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
691
trunk passed

_ Patch Compile Tests _

0
mvndep
53
Maven dependency ordering for patch

+1
mvninstall
600
the patch passed

+1
compile
409
the patch passed

+1
javac
409
the patch passed

+1
checkstyle
94
the patch passed

+1
hadolint
3
There were no new hadolint issues.

+1
mvnsite
0
the patch passed

+1
shellcheck
0
There were no new shellcheck issues.

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
2
The patch has no ill-formed XML file.

+1
shadedclient
745
patch has no errors when building and testing our client artifacts.

+1
javadoc
186
the patch passed

+1
findbugs
702
the patch passed

_ Other Tests _

-1
unit
357
hadoop-hdds in the patch failed.

-1
unit
1968
hadoop-ozone in the patch failed.

+1
asflicense
49
The patch does not generate ASF License warnings.

8657

Reason
Tests

Failed junit tests
hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis

hadoop.ozone.client.rpc.Test2WayCommitInRatis

hadoop.hdds.scm.pipeline.TestRatisPipelineCreateAndDestory

hadoop.ozone.client.rpc.TestBlockOutputStreamWithFailures

hadoop.ozone.client.rpc.TestMultiBlockWritesWithDnFailures

hadoop.ozone.TestContainerStateMachineIdempotency

hadoop.ozone.om.TestScmSafeMode

hadoop.ozone.client.rpc.TestSecureOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneAtRestEncryption

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/1/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient xml hadolint shellcheck shelldocs yamllint findbugs checkstyle

uname
Linux ccaf957e3cb3 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / b008072

Default Java
1.8.0_222

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/1/artifact/out/patch-unit-hadoop-hdds.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/1/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/1/testReport/

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

modules
C: hadoop-hdds/common hadoop-ozone/dist hadoop-ozone/ozone-recon U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/1/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1 hadolint=1.11.1-0-g0e692dd

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

I am not sure I understand the patch well enough. @xiaoyuyao @arp7  can you guys please take a look ?

Hi @bharatviswa504,
OzoneConfigurationProvider is changed to ConfigurationProvider in this patch to have the correct Configuration object passed to the constructor of BaseHttpServer here - https://github.com/apache/hadoop/blob/trunk/hadoop-ozone/ozone-recon/src/main/java/org/apache/hadoop/ozone/recon/ReconHttpServer.java#L35
I understand that its not very clear because this class is not part of this PR. The issue was that injection was not working in ReconHttpServer - https://github.com/apache/hadoop/blob/trunk/hadoop-ozone/ozone-recon/src/main/java/org/apache/hadoop/ozone/recon/ReconHttpServer.java#L34 because of the use of Configuration object. Now, with refactoring OzoneConfigurationProvider to ConfigurationProvider and changing this line for bind - https://github.com/apache/hadoop/pull/1201/files#diff-4a219a4368f56aa118b6ba4afb981244R57 fixes the injection in ReconHttpServer and thus Recon web server is able to get access to the correct principal name and authenticate with kerberos ticket.
Please let me know if you have any more questions.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
41
Docker mode activated.

_ Prechecks _

+1
dupname
1
No case conflicting files found.

0
shelldocs
0
Shelldocs was not available.

0
yamllint
0
yamllint was not available.

+1
@author
0
The patch does not contain any @author tags.

-1
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

0
mvndep
80
Maven dependency ordering for branch

+1
mvninstall
613
trunk passed

+1
compile
399
trunk passed

+1
checkstyle
78
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
849
branch has no errors when building and testing our client artifacts.

+1
javadoc
172
trunk passed

0
spotbugs
467
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
676
trunk passed

_ Patch Compile Tests _

0
mvndep
40
Maven dependency ordering for patch

+1
mvninstall
567
the patch passed

+1
compile
394
the patch passed

+1
javac
394
the patch passed

+1
checkstyle
87
the patch passed

+1
hadolint
4
There were no new hadolint issues.

+1
mvnsite
0
the patch passed

+1
shellcheck
0
There were no new shellcheck issues.

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
1
The patch has no ill-formed XML file.

+1
shadedclient
742
patch has no errors when building and testing our client artifacts.

+1
javadoc
176
the patch passed

+1
findbugs
687
the patch passed

_ Other Tests _

+1
unit
340
hadoop-hdds in the patch passed.

-1
unit
212
hadoop-ozone in the patch failed.

+1
asflicense
45
The patch does not generate ASF License warnings.

6456

Reason
Tests

Failed junit tests
hadoop.ozone.om.ratis.TestOzoneManagerDoubleBufferWithDummyResponse

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/2/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient xml hadolint shellcheck shelldocs yamllint findbugs checkstyle

uname
Linux 2b59c8fcad27 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / f86de6f

Default Java
1.8.0_212

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/2/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/2/testReport/

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

modules
C: hadoop-hdds/common hadoop-ozone/dist hadoop-ozone/ozone-recon U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/2/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1 hadolint=1.11.1-0-g0e692dd

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

The unit test, integration test and checkstyle failures are not related to this patch.

Thank You @vivekratnavel for the fix and the explanation.
+1 LGTM.
I think, we need to fix the title for this jira, as this is not adding Kerberos support to Ozone. It is fixing ConfigurationProvider, so that injection works. And fixing this will fix ReconServer start. As this will fix passing correct configuration to ReconHttpServer. So, this means it fix Kerberos/Non-Kerberos.
Can you change the title accordingly, and update the Jira. It will be helpful for future reference.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
139
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

0
shelldocs
1
Shelldocs was not available.

0
yamllint
1
yamllint was not available.

+1
@author
0
The patch does not contain any @author tags.

-1
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

0
mvndep
40
Maven dependency ordering for branch

+1
mvninstall
762
trunk passed

+1
compile
458
trunk passed

+1
checkstyle
101
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
894
branch has no errors when building and testing our client artifacts.

+1
javadoc
175
trunk passed

0
spotbugs
446
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
651
trunk passed

_ Patch Compile Tests _

0
mvndep
39
Maven dependency ordering for patch

+1
mvninstall
565
the patch passed

+1
compile
392
the patch passed

+1
javac
392
the patch passed

+1
checkstyle
87
the patch passed

+1
hadolint
3
There were no new hadolint issues.

+1
mvnsite
0
the patch passed

+1
shellcheck
0
There were no new shellcheck issues.

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
1
The patch has no ill-formed XML file.

+1
shadedclient
748
patch has no errors when building and testing our client artifacts.

+1
javadoc
174
the patch passed

+1
findbugs
657
the patch passed

_ Other Tests _

+1
unit
339
hadoop-hdds in the patch passed.

-1
unit
2183
hadoop-ozone in the patch failed.

+1
asflicense
51
The patch does not generate ASF License warnings.

8740

Reason
Tests

Failed junit tests
hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis

hadoop.hdds.scm.pipeline.TestPipelineClose

hadoop.hdds.scm.pipeline.TestRatisPipelineCreateAndDestory

hadoop.ozone.client.rpc.TestBlockOutputStreamWithFailures

hadoop.ozone.client.rpc.TestMultiBlockWritesWithDnFailures

hadoop.ozone.om.TestScmSafeMode

hadoop.ozone.client.rpc.TestSecureOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneRpcClient

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/3/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient xml hadolint shellcheck shelldocs yamllint findbugs checkstyle

uname
Linux 3f8e6986510a 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / b01efe5

Default Java
1.8.0_222

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/3/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/3/testReport/

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

modules
C: hadoop-hdds/common hadoop-ozone/dist hadoop-ozone/ozone-recon U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1201/3/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1 hadolint=1.11.1-0-g0e692dd

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Thank You @vivekratnavel for the contribution.
I have committed this to the trunk.


[Azure Storage] Update to November Release

Update vcpkg ports for Azure SDK release. This release may contain multiple ports.

Adding azure-storage-common to release
cc: @microzchang

Adding azure-storage-blobs to release
cc: @microzchang

Adding azure-storage-files-datalake to release
cc: @microzchang

Adding azure-storage-files-shares to release
cc: @microzchang

Adding azure-storage-queues to release
cc: @microzchang


Update codecov action

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

Project coverage is 89.42%. Comparing base (573f22d) to head (54fbbd7).

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #977      +/-   ##
============================================
+ Coverage     87.97%   89.42%   +1.45%
============================================
  Files           227      104     -123
  Lines         24021    17907    -6114
  Branches        760      301     -459
============================================
- Hits          21132    16013    -5119
+ Misses         2587     1890     -697
+ Partials        302        4     -298

Flag
Coverage Δ

uitests
?

uitests-android
?

uitests-ios
?

unittests
89.42% <ø> (+0.12%)
:arrow_up:

unittests-ios
?

unittests-react
87.99% <ø> (ø)

unittests-rust
89.64% <ø> (ø)

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

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


Is waf and custom waf rules now supported?

Thank you for your efforts for the new version, cloud you add support for waf and other features on this basis?

Hi @eyanchao
Waf integration is already supported : https://github.com/oracle/oci-native-ingress-controller/blob/main/GettingStarted.md#web-firewall-integration
You can add waf rules to your policies and attach as mentioned in the doc.

OK, thanks


Feature request: Working directory setting for shell

Hi guys!
I am using Extraterm 0.41.4 in macOS Mojave in my MacBook Pro and on Chrome OS 73 in my PixelBook. They are working great most of the time, but I've realized on the macOS version that the shell opens using the initial working directory from the root path "/". In the PixelBook starts in $HOME, and that is ok.
I think it would be great to have an option in "Settings" to be able to select the working directory you want to open from the beginning, as you can for example in iTerm in Mac.
Great job BTW!
Thank you!
Best regards,
David.

Released in 0.42.0.


Remove rest.api.util jar from web-apps lib directory

This PR removes the org.wso2.carbon.apimgt.rest.api.util jar from each web-app's lib directory and adds the same jar into /lib/runtimes/cxf3/ directory, so that it will be picked in the runtime.
Relevant PRs - https://github.com/wso2/carbon-apimgt/pull/6793

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[BUG] Create Backup from a snapshot does not have option to add labels

Describe the bug
Create Backup from a snapshot does not have option to add labels
To Reproduce

Create a volume, PV/PVC/ attach to a workload. Write some data into the volume
Go to volume details page
Take a snapshot
Click on the snapshot
User is presented with Options - Revert/Backup/Delete
Click on Backup
User is not presented with an option to add labels. Backup gets created with NO labels

Expected behavior
User should be presented with an option to add labels on the backup
Log
If applicable, add the Longhorn managers' log when the issue happens.
Environment:

Longhorn version: master - 04/16/2020
Kubernetes version: 1.17.4
Node OS type and version: rke do Linux

Validation: PASSED
Longhorn UI: wangsiye/longhorn-ui:9211206
Steps to test:

Create a volume, PV/PVC/ attach to a workload. Write some data into the volume
Go to volume details page
Take a snapshot
Click on the snapshot
User is presented with Options - Revert/Backup/Delete
Click on Backup
User should be asked to add backup labels
Create a backup with few labels
Verify backup created with specified labels.


readme

readme update with root.render method and div element included in steps

@seantiz i think this actually needs to be opened on the vanilla copilot repo : https://github.com/pieces-app/pieces-copilot-vanilla-typescript-example

@jordan-pieces are you sure? the Vanilla TS example would be already pre-built. I thought we meant for these steps to be included in a readme where someone is building from scratch.

@seantiz i was just a bit confused because this PR has 10k changes, you can see that here in this screenshot:

@seantiz i was just a bit confused because this PR has 10k changes, you can see that here in this screenshot:

Woah, sorry, yeah. That comes down to my inexperience with PRs. This is the first PR I've made on GH ever. If you want to close this i can do it again properly in a new one.


nixosTests.misc: port to python

Motivation for this change
~Currently fails because of https://github.com/NixOS/nixpkgs/issues/79063, but if you comment out that test case you can test it.~
Things done

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

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

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

I pushed some kind of replacement for that broken part – into this PR due to conflicts.  Perhaps /cc @edolstra as the author of this replaced sub-test.

@GrahamcOfBorg test misc

I pushed some kind of replacement for that broken part – into this PR due to conflicts. Perhaps /cc @edolstra as the author of this replaced sub-test.
EDIT: well, I assume this PR will get merged very soon. Otherwise I'd unblock the channels first by porting that commit of mine. I haven't reviewed the other changes, at least so far.

Thanks, even yet the conflict wouldn't be a problem if that's needed. And this port was pretty 1:1 aside from the json bit and string stripping.


Ability to specify non-editing element

Currenty the non-editing element is a span. It would be nice if we could specify the element to use. For example, use a p or a div for the non-editing element.

Thanks, that is now implemented in v1.0.4


Multiple planes of points at different angles

Hi,
The reconstruction has multiple planes of points. I have tried with different sets of images, sometimes it's very drastic - two almost perpendicular planes, as if the point cloud data was randomly split into parts and then rotated. To clarify attaching a screenshot.
One thing that comes to my mind is that it might be because the images are shot at different angles. Some at 90 degrees and some all the way to 45 degrees. Unfortunately, I cannot share the images, but maybe you have some clues for me.

Regards
Pavel

Hi @dicobrazz ,
How many reconstructions does your output contain? It can happen that there are two or more because some images couldn't be matched. Also, if there's only little overlap, then it's very cheap for the bundle adjustment to move the reconstructions around this position.
In the screenshot you seem to have 2 densely connected areas that look alright but they are not very well aligned with each other.
I'd recommend to make sure that you have enough overlapping images in the "problematic" area.
Best,
Fabian

Hi @fabianschenk,
There is only one reconstruction. There is a very small overlap between images. Also, the photos have been taken at different angles. There are about 5 passes, each at different angle, between nadir and all the way up to about 45 degrees. Each pass has an overlap about 10% for all photos within and there is more overlap between photos from different passes.
Overall, it is a complicating dataset and I am trying to figure out how tune in for best possible result.
Regards
Pavel


add fh-muenster

www.fh-muenster.de
FH Münster, Hüfferstraße 27, 48149 Münster, Germany
B.Sc. Computer Science: https://www.fh-muenster.de/en/studiengaenge/informatik-bachelor
Mail: https://confluence.fh-muenster.de/spaces/howto/pages/5178825/Einrichtung+von+Roundcube (see the screenshots, top right)

@LarsKemper I am sorry, the domain fh-muenster.de is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Pipe whenever possible over buffering in memory

https://github.com/zeit/serve/blob/master/lib/server.js#L126

https://github.com/zeit/serve/releases/tag/3.1.0


Bump openapi-cli and node base image versions

thanks for the PR! 👍
I'll merge this in and then increment the action version to 3.

Thanks for the quick response!
I needed the version bump to allow the mentioned PR to work (using an implicit .redocly.yaml config) instead of hard-coding a path to a spec.


Improve the default script

At least, the default script should use Ebiten.

For example: https://ebiten-playground.github.io/#/e7127aee5949c3e9a78e95f64660dfad533bbc8a147524a59348927c695002ec

ping @j7b
If you don't have a strong opinion, I'll replace the default script with that (of course, this is not a final decision and we'll keep to improve the default script)

How bout
https://ebiten-playground.github.io/#/d0742051029382bc81669c7cc4e3c20d5b5a590af58b37796e39ea0945b839f9

Thanks.
I was wondering why the console says (image.Rectangle).Dx when playing it at the first time.

https://ebiten-playground.github.io/#/993d267289f4ee9c8ccb5cb6d88af5f44fc837ddebcb980033daf7bc37d7b767
I prefer keeping states with int variables to avoid errors due to float values.
The console seems a bug of GopherJS anyway...

The stacktrace of the error
Uncaught Error: (image.Rectangle).Dx
    at $callDeferred (jsplayground.js:4)
    at $panic (jsplayground.js:4)
    at Object.$b [as IsBlocking] (jsplayground.js:64)
    at $b (jsplayground.js:48)
    at Object.$packages.github.com/gopherjs/gopherjs/compiler/analysis.O.ptr.Visit (info.go:185)
    at EJ (walk.go:59)
    at EJ (walk.go:200)
    at EJ (walk.go:200)
    at EJ (walk.go:151)
    at EJ (walk.go:200)
    at EJ (walk.go:270)
    at EH (walk.go:59)
    at EJ (walk.go:279)
    at EH (walk.go:59)
    at EJ (walk.go:266)
    at EJ (walk.go:289)
    at EH (walk.go:59)
    at EJ (walk.go:266)
    at EJ (jsplayground.js:38)
    at EI (walk.go:59)
    at Object.EJ [as Walk] (jsplayground.js:38)
    at Object.P [as AnalyzePkg] (info.go:71)
    at Object.AS [as Compile] (package.go:226)
    at Object.$b [as $blk] (jsplayground.go:124)
    at fun (jsplayground.js:4)
    at $goroutine (jsplayground.js:4)
    at $runScheduled (jsplayground.js:4)
    at $schedule (jsplayground.js:4)
    at queueEntry (jsplayground.js:4)
    at $close (jsplayground.js:4)
    at time.go:52
    at jsplayground.js:4

Panic happens in Go.compile.

Let's continue discussion about the compile error at https://github.com/ebiten-playground/ebiten-playground.github.io/issues/22

@j7b OK so what do you think about https://ebiten-playground.github.io/#/993d267289f4ee9c8ccb5cb6d88af5f44fc837ddebcb980033daf7bc37d7b767 ?


Refactor to python shell job and remove NAT gateway

Issue #, if available:
Description of changes:

Refactored to use Glue python shell job
Removed NAT gateway and used the python shell analytics library for pg connection lib

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This PR looks good to me.


Applies To:  Refers to PC Version Instead Of Server Versions

Issue Details
Fix "Applies To:" in http://technet.microsoft.com/en-us/library/dd744581(v=ws.10).aspx
Applies To:  Refers to PC Version Instead Of Server Versions.

@BGaudreault-EDR Thanks for your feedback. This page is for old version. We stop updating the old version.


Activating Sage theme with WP CLI

Submit a feature request or bug report

[x ] I've read the guidelines for Contributing to Roots Projects
[ ] This is a feature request
[x ] This is a bug report
[ x] This request isn't a duplicate of an existing issue
[ x] I've read the docs and NPM Debugging Guidelines post and followed them (if applicable)
[ x] This is not a personal support request that should be posted on the Roots Discourse forums

What is the current behavior?
Activating the theme with WP CLI using wp activate sage command gives the error Error: Stylesheet is missing. Probably because the style.css file is in the resources folder.
What is the expected or desired behavior?
Activitating the theme with WP CLI should be possible.

What happens if you try wp activate sage/resources?
x-ref: https://github.com/roots/sage/issues/1938

@QWp6t Great! That works. I did not think about that option! Thats for the quick support.

Awesome. Glad to hear that worked. We'll add that to docs.


ao on macos brings itself to front multiple times on startup

Everything is in the title.
macos 10.14 and latest of ao.

This is because of Microsoft not Ao. Was like this from the past 😋

Lol makes no sense. Why would it be because of microsoft ? the app handles the bring to front not microsoft lol

It is same on web version. Try it. Maybe @klaussinani can work around fix it. But dont make fun of people, u violate code of conduct https://github.com/klaussinani/ao/blob/master/code-of-conduct.md
Also mayde considerered contributting with PR

Well actually no it isn't. The website makes a lot of API callbacks but it's the app that cases bring app to front not the website. I am no blaming Microsoft or @klaussinani, I am just saying that it is a bug.
And I am not making fun of you, I am saying that what you said makes no sense.
I also considered sending a PR but I do not know anything about Electron and Javascript in general, it isn't my field of programming.

I get this too running KDE on Arch Linux.

This happens for me to on Ubuntu 18.04, here's the About:
Version: 6.9.0
Electron: 4.2.2
Chrome: 69.0.3497.128
Node: 10.11.0
V8: 6.9.427.31-electron.0
OS: Linux x64 4.15.0-55-generic
Note I tried using the To-Do web app and it does not bring the browser into focus multiple times, just to clear up any confusion in the above comments.

Same here using KDE on KDE neon. Even if I minimise the window, it keeps on bringing itself to the front which is incredibly unnerving.


Support Scan Op

A low-effort implementation of basic scan op functionality. Code is largely copied and modified from Loop op. Significant refactoring and more extensive testing are desirable in the future to reduce code duplication and support more complicated use cases.

Jenkins Linux s390x Build #636 [push] Support Scan Op (#593)  ... started at 20:55

Jenkins Linux amd64 Build #638 [push] Support Scan Op (#593)  ... started at 19:54

Jenkins Linux s390x Build #636 [push] Support Scan Op (#593)  ... passed after 49 min

Jenkins Linux amd64 Build #638 [push] Support Scan Op (#593)  ... passed after 52 min


Read Only Quick Filter

We can have a default value of quick filter by init method.
how can we fix that this value remains fixed and user is not allowed to change.
one way is to have this filter as read only and another can be to make it visible = false.
how can we achieve a constant filter which is fixed for a grid.

Use SetEqualityFilter of grid and don't add a quick filter at all. Or set readonly using EditorUtils.setReadOnly etc.

thanks it worked.

Hello @volkanceylan ,
Could u give one example of SetEqualityFilter ?


Tracy semicolon

Added semicolon inside the Tracy defines.
Tracy defines are called using semicolon and without semicolon, so I had a compilation error. I decided to go with no semicolon approach for calling and fixed redefinition errors by using { }.

Ah, I did this before, but some of them were lost in conflict resolution for #2629.
Is the ___tracy_scoped_zone compiler-specific?  If it's not going to work on Xcode, it would be nicer to just have the macros evaluate to nothing there.  But since it's a redefinition, they just need to be in a new scope block.
The cases with two MLN_TRACE_FUNC are an error, any secondary traces within a method should be MLN_TRACE_ZONE.

@TimSylvester Works fine on macOS too.

Ah, I did this before, but some of them were lost in conflict resolution for #2629.
Is the ___tracy_scoped_zone compiler-specific? If it's not going to work on Xcode, it would be nicer to just have the macros evaluate to nothing there. But since it's a redefinition, they just need to be in a new scope block.
The cases with two MLN_TRACE_FUNC are an error, any secondary traces within a method should be MLN_TRACE_ZONE.

Not compiler specific. Tracy creates the same variable name for ZoneScoped ZoneScopedN We need a Tracy-side change to use the label in the variable name generator

Not compiler specific. Tracy creates the same variable name for ZoneScoped ZoneScopedN We need a Tracy-side change to use the label in the variable name generator

Why does it work in Android, though?


v5.2.0 - Parser, Minor fixes, structures , new functions

Type

[x] Bug Fix
[x] Functions: $archiveThread
[] Callbacks: <Callback Name>
[x] Handlers: <Handler Type>
[x] Others: ______

Dependencies (Third Party Modules) needed: https://github.com/usersatoshi/structures
Description
linked shards  functions to interpreter
switched cacheHandler to Structures
some minor fixes
added $archiveThread
updated automated usage parser , now works for all functions

This entire Pull Request, will completely break once I submit my commits,
I will not accept this til further notice.

This entire Pull Request, will completely break once I submit my commits, I will not accept this til further notice.

yes ik
so when u submit the commits i will git pull the changes and fix the merge changes

This pull request will not be accepted due to many changes that keeps occurring.
It's inconsistent of what's being added/removed.
This pull request should be spilt up to help differ changes.


Allow 2-Legged OAuth to work as an OAuth provider

The _oauthstrategies.js is a bit too strict.
requestToken method expects oauth_callback to be set and fails if it is not.
accessToken method expects oauth_verifier to be set and fails if it is not.
2-Legged OAuth and 3-Legged OAuth work if this requirement is removed.

Maybe I'm not understanding 2-legged oauth, but I thought you didn't need anything to do with request tokens to implement it.  I have used ramv's changes as inspiration for a second attempt at allowing 2-legged oauth in the oauth provider.
Hopefully this code is cleaner and easier to read and accept ;)
https://github.com/ciaranj/connect-auth/pull/76

Merged.

Thank Ciaran!
On Wed, Feb 29, 2012 at 2:31 PM, Ciaran Jessup <
<EMAIL_ADDRESS>
wrote:

Merged.

Reply to this email directly or view it on GitHub:
https://github.com/ciaranj/connect-auth/issues/21#issuecomment-4248277

--
Best Regards,
Ram Viswanadha


Break up Contribution leaderboard

Might make sense to color the bars on a per pipeline basis after > 200 Commits.

Or have an option to show just pipelines / tools, and when viewing just one of these break up all bars by repo...


TE-10424 Adjusted arch sniffer to check return type for Bridge methods

Developer(s): @geega

Ticket: https://spryker.atlassian.net/browse/TE-10424

Docs PR: ACADEMY_URL_HERE

Release Group: https://release.spryker.com/release-groups/view/3927

merge: merge

Release Table

Module
Release Type
Constraint Updates

ArchitectureSniffer
minor

Module ArchitectureSniffer
Change log
Improvements

Introduced BridgeMethodsInterfaceRule so it the check return type for bridge methods
Adjusted BridgeMethodsRule  moved logic for compare brdge methods interface  to new BridgeMethodsInterfaceRule

Template (and changelog) is invalid in multiple places and needs fixing
This needs some tests as there are changes egde cases will fail under the current code, e.g. ...|array<type> etc

Template (and changelog) is invalid in multiple places and needs fixing This needs some tests as there are changes egde cases will fail under the current code, e.g. ...|array<type> etc

You about unit tests for different cases?

Always run validation in RG - and it will tell you why the template and release type is invalid for us.

@gechetspr
Prio 1

FacadeReturnValueRule: 32
LayerAccessRule: 15
FactoryNoLoopsRule: 11
FactoryCreateContainOneNewRule: 10
FactoryOnlyGetAndCreateRule: 15
FactoryGetContainNoNewRule: 2
FacadeRule: 9
FacadeNoLogicRule: 7
AllMethodsPublicInFacadeRule: 3
ClientInterfaceRule: 1
Prio 2
BridgeMethodsInterfaceRule: 2212
BridgeMethodsRule: 18

I wonder if we can fix some of those issues soonish.


Characters should not change visually when dragged

Expected Behavior
Characters being dragged should not change to another character in the scene.
Actual Behavior
After adding several characters including the tulip and apple, when dragging the tulip to the edge of the stage it changes to show the apple, then changes back to tulip when dragged into the middle of the stage.
https://user-images.githubusercontent.com/399209/111789195-42f93680-8897-11eb-80fc-29b4fe52eb7e.mp4
Steps to Reproduce
Need more information, I have not been able to reproduce this on the devices I have available.
Device and Operating System
Samsung, Galaxy Tab E 9.6, Android 7.1.1, Wi-Fi

I am able to reproduce this:

Android System WebView version 85.0.4183.101
android v 5.0.2
unsure my ScratchJr version, but it is regular ScratchJr, not PBS version

repro steps:

force quit ScratchJr if running
start ScratchJr, click on Home
create new project
tap sprite + and select Tac sprite (purple blob character); select check mark
drag Tac around; appearance does not change
drag Scratch cat around; appears to become Tac
drag Tac around; appears to become Scratch Cat
drag Scratch cat... etc.

Also note that the top 1/3 of the screen becomes partially covered with a white rectangle, obscuring the stage and background but not icons or buttons

Hi @benjiwheeler ,
I was unable to re produce this issue although I install WebView of version 85.0.4183.101 on my android 6.0 tablet, but I guess what might cause the problem is Stage.whoIsIt.
I created a PR that uses Document.elementFromPoint to the current sprite when touch start and use the original detector after the grid is on, also I show the debugging area on the left bottom of screen for us to see what's going on on the workingCanvas. So could you please give it a try?
I look forward to your reply.
Thanks

From https://caniuse.com/?search=elementFromPoint, we can use this elementFromPoint feature if needed.

Another possible reason is memory leaks in WebView. The memory are not cleaned up after page changed. I tried to use a new WebView instance for each page, and release the old one, again no good luck.
I will try to obtain a device that can run and choose WebView version first. All of my devices at hand have no option of WebView in the Developer Options page, and I can't enable it in WebView DevTools after run adb shell am start -a "com.android.webview.SHOW_DEV_UI".

Right now we're not seeing these issues in the latest version. Closing and will reopen if we get new reports.


Security Fix for Prototype Pollution - huntr.dev

https://huntr.dev/users/hethvik has fixed the Prototype Pollution vulnerability 🔨. Think you could fix a vulnerability like this?
Get involved at https://huntr.dev/
Q | A
Version Affected | ALL
Bug Fix | YES
Original Pull Request | https://github.com/418sec/easydot/pull/1
Vulnerability README | https://github.com/418sec/huntr/blob/master/bounties/npm/easydot/1/README.md
User Comments:
📊 Metadata *
easydot is vulnerable to Prototype Pollution.
This package allowing for modification of prototype behavior, which may result in Information Disclosure/DoS/RCE.
Bounty URL: https://www.huntr.dev/bounties/1-npm-easydot
⚙ Description *
Prototype Pollution refers to the ability to inject properties into existing JavaScript language construct prototypes, such as objects.
JavaScript allows all Object attributes to be altered, including their magical attributes such as proto, constructor and prototype.
An attacker manipulates these attributes to overwrite, or pollute, a JavaScript application object prototype of the base object by injecting other values.
Properties on the Object.prototype are then inherited by all the JavaScript objects through the prototype chain.
💻 Technical Description *
Fixed by avoiding setting magical attributes.
🐛 Proof of Concept (PoC) *

Create the following PoC file:

// poc.js
var easydot = require("easydot")
var obj = {}
const easy = easydot(obj);
console.log("Before : " + {}.polluted);
easy['__proto__.polluted']= 'Yes! Its Polluted';
console.log("After : " + {}.polluted)

Execute the following commands in another terminal:

npm i easydot # Install affected module
node poc.js #  Run the PoC

Check the Output:

Before : undefined
After : Yes! Its Polluted

🔥 Proof of Fix (PoF) *
After fix execution will block prototype pollution and polluted will be [undefined.]
👍 User Acceptance Testing (UAT)
After fix functionality is unaffected.
:link: Relates to Issue
Fixes # (https://github.com/418sec/huntr/pull/1424)

Hi @JamieSlome, I just noticed at the line number 47 of this PR update a continue statement is issued which is not the appropriate syntax in JavaScript as far as my understanding. I'm not sure how we missed this. It'd be really appreciated if anyone could take a good look into this.
I have created a PR fixing this issue.
Requesting the reviewers to kindly recheck the merged PR and the reopened one, for further clarification.

Hi @JamieSlome, I just noticed at the line number 47 of this PR update a continue statement is issued which is not the appropriate syntax in JavaScript as far as my understanding. I'm not sure how we missed this. It'd be really appreciated if anyone could take a good look into this.
I have created a PR fixing this issue.
Requesting the reviewers to kindly recheck the merged PR and the reopened one, for further clarification.


Nested whiles doesn't work as expected

Operating system or device - Godot version:
Windows 10 Pro 64 bit - Godot 2.0.3.
Issue description (what happened, and what was expected):
Nested whiles seems to be running only the deepest loop.
This code:
	var i = 0
	var j = 0

	while i < 5:
		while j < 5:
			print (str(i) + " " + str(j))
			j += 1
		i += 1

is printing:
0 0
0 1
0 2
0 3
0 4

Steps to reproduce:
Use the code above.
Link to minimal example project (optional but very welcome):

Hehe, what about:
    var i = 0
    while i < 5:
        var j = 0
        while j < 5:
            print (str(i) + " " + str(j))
            j += 1
        i += 1

? ;)

@akien-mga I was breaking my head trying to understand why I couldn't reproduce it. I can't believe I missed that line :smile:

Oh, man...  my bad. Thanks so much!

I'll admit I had to try it in a test project to find the mistake ;) I just debugged as usual by adding a print(i) at the end of the first loop, and saw that it got incremented five times... so something had to wrong somewhere :)


InputObject and enums: the trait bound is not satisfied

I have this code:
use async_graphql::InputObject;

#[derive(InputObject)]
pub struct PlayerListInput {
    pub condition: Option<PlayerCondition>,
    pub order_by: Option<Vec<PlayerOrderBy>>,
}

#[derive(InputObject)]
pub struct PlayerCondition {
    pub enabled: Option<bool>,
}

pub enum PlayerOrderBy {
    CreatedAtAsc,
    CreatedAtDesc,
    EmailAsc,
    EmailDesc,
}

but it errors with:
error[E0277]: the trait bound `PlayerOrderBy: InputType` is not satisfied
  |
8 | #[derive(InputObject)]
  |          ^^^^^^^^^^^ the trait `InputType` is not implemented for `PlayerOrderBy`
  |
  = help: the following other types implement trait `InputType`:
            Arc<T>
            Arc<[T]>
            Arc<str>
            BTreeMap<K, V>
            BTreeSet<T>
            HashMap<K, V, S>
            HashSet<T>
            ID
          and 46 others
  = note: required because of the requirements on the impl of `InputType` for `Vec<PlayerOrderBy>`
  = note: 1 redundant requirement hidden
  = note: required because of the requirements on the impl of `InputType` for `Option<Vec<PlayerOrderBy>>`
  = note: this error originates in the derive macro `InputObject` (in Nightly builds, run with -Z macro-backtrace for more info)

and if I use:
#[derive(InputObject)] // added this line
pub enum PlayerOrderBy {
  //...
}

the error is:
error: InputObject can only be applied to an struct.
   |
21 | pub enum PlayerOrderBy {
   |          ^^^^^^^^^^^^^^^

error[E0277]: the trait bound `PlayerOrderBy: InputType` is not satisfied
  |
8 | #[derive(InputObject)]
  |          ^^^^^^^^^^^ the trait `InputType` is not implemented for `PlayerOrderBy`
  |
  = help: the following other types implement trait `InputType`:
            Arc<T>
            Arc<[T]>
            Arc<str>
            BTreeMap<K, V>
            BTreeSet<T>
            HashMap<K, V, S>
            HashSet<T>
            ID
          and 46 others
  = note: required because of the requirements on the impl of `InputType` for `Vec<PlayerOrderBy>`
  = note: 1 redundant requirement hidden
  = note: required because of the requirements on the impl of `InputType` for `Option<Vec<PlayerOrderBy>>`
  = note: this error originates in the derive macro `InputObject` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `PlayerOrderBy: InputType` is not satisfied
    |
8   | #[derive(InputObject)]
    |          ^^^^^^^^^^^ the trait `InputType` is not implemented for `PlayerOrderBy`
    |
    = help: the following other types implement trait `InputType`:
              Arc<T>
              Arc<[T]>
              Arc<str>
              BTreeMap<K, V>
              BTreeSet<T>
              HashMap<K, V, S>
              HashSet<T>
              ID
            and 46 others
    = note: required because of the requirements on the impl of `InputType` for `Vec<PlayerOrderBy>`
    = note: 1 redundant requirement hidden
    = note: required because of the requirements on the impl of `InputType` for `Option<Vec<PlayerOrderBy>>`
note: required by a bound in `InputValueError<T>`
   --> C:\Users\Fred\.cargo\registry\src\github.com-1ecc6299db9ec823\async-graphql-4.0.15\src\error.rs:185:9
    |
185 | impl<T: InputType> InputValueError<T> {
    |         ^^^^^^^^^ required by this bound in `InputValueError<T>`
    = note: this error originates in the derive macro `InputObject` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0277`.

How can I fix this?

#[derive(async_graphql::Enum)]
pub enum PlayerOrderBy {
    CreatedAtAsc,
    CreatedAtDesc,
    EmailAsc,
    EmailDesc,
}


DELETE Address not working

There seems to be an issue with the "DELETE customer address" from the profile section. I noticed this in the B2B starter. When using the SDK the route returns this:
error:   Requested fields [id, company, customer_id, first_name, last_name, address_1, address_2, city, province, postal_code, country_code, phone, metadata, created_at, updated_at] are not valid
MedusaError: Requested fields [id, company, customer_id, first_name, last_name, address_1, address_2, city, province, postal_code, country_code, phone, metadata, created_at, updated_at] are not valid
    at prepareListQuery (/path/to/node_modules/@medusajs/framework/src/http/utils/get-query-config.ts:179:11)
    at prepareRetrieveQuery (/path/to/node_modules/@medusajs/framework/src/http/utils/get-query-config.ts:245:45)
    at validateQuery (/path/to/node_modules/@medusajs/framework/src/http/utils/validate-query.ts:85:31)
    at processTicksAndRejections (node:internal/process/task_queues:95:5) {
  __isMedusaError: true,
  type: 'invalid_data',
  code: undefined,
  date: 2024-12-10T08:49:14.067Z
}

This is the request from the storefront:
export const deleteCustomerAddress = async (
  addressId: string
): Promise<void> => {
  await sdk.store.customer
    .deleteAddress(addressId, getAuthHeaders())
    .then(() => {
      revalidateTag("customer")
      return { success: true, error: null }
    })
    .catch((err) => {
      return { success: false, error: err.toString() }
    })
}

So some of the validator is probably not correct. Could it be that some of the customer_address fields are not part of or wrongly part of the default selects?

Thanks for the report! I've created an internal ticket as this seems to be an issue with the customer address API, not this Starter. I'll keep you posted.


Fix KissAnime search,download and exception handling.

#154 When I changed the protocol to https it worked fine.
I can see that in rewrite you have already used it as https so this problem shouldn't be there (but I haven't checked.).
#128 Added as file comments.
Do change error name as per your liking.

The KissAnime issue still persists. Can you add tests to avoid the coverage fail @29ayush?

Is this still required @29ayush ?

I think this has been superseded by the rewrite. Therefore, closing.


copy-to fails to update CSS paths

I published to XHTML using the samples attached in https://github.com/dita-ot/dita-ot/issues/2486
The generated HTML file "copyup.html" has the wrong path to the CSS, the HTML is generated in the base output folder but the path to the CSS is one level up "../commonltr.css"

The path2project-uri PI has a wrong path ../ when it should be `` (or ./)


Remove Requirement for MetadataAPI access

Is your feature request related to a problem? Please describe.
We would like to use scratch org pooling using a user with "Salesforce Limited Access - Free" that is provided to ISVs for DX development.
Using the scratch org pooling feature currently does a check to make sure DevHub is configured correctly that requires the MetadataAPI (outlined in issue 531 https://github.com/Accenture/sfpowerkit/issues/531 ) . This requires that A) the user has permission to modify metadata even though there is no need for them to and b) must be a full enterprise license.
Describe the solution you'd like
Make the check optional or even better, remove it completly. Checking for a field existence is wasteful to be done every time as it is one time setup and attempts to use the field will also throw a pretty clear error of the same issue.
Requiring MetadataAPI access for the CI user needlessly opens a security hole as that is a very powerful permission granted to a user that is inherently not traceable to individuals and is shared (even if by only a few CI admins). Best practice is always to grant the least permissions possible, even in automated users as automated users can still be tricked or hijacked. Current system forces a violation of this principal.
Describe alternatives you've considered
Do the check in a way that doesn't require MetadatAPI access such as a simple soql query which would also check for lack of FLS (something that I assume is ALSO necessary for the pooling to work).

Thanks @yippie , Will be addressing this

@manisfdcsfdx  Can you look into this?


not working now...

Cannot read property 'channel' of null

Yahoo's API was down for awhile and not returning data. Their service seems to be back up and should be working now.


Ketcher part: Save to mol for micro and macro structures connected through attachment points works wrong

Original issue was created in Indigo - https://github.com/epam/Indigo/issues/1993
@even1024 told that he did his part and now it require Ketcher side change to be done.
Summary
Save to mol for micro and macro structures connected through attachment points works wrong
Steps to Reproduce

Open Ketcher.
Draw a benzene ring
Add an attachment point to the benzene ring via right click menu
Switch to Macro mode and connect attachment point to a macro structure
Switch to Micro mode
Save structure in MOL V2000 format
Open saved file in micro mode

If it is not possible to draw the structure, then you can open the prepared file (you just need to open it in macro mode and then switch to micro mode):
ketcher (53).zip
Actual behavior
Resulted file is incorrect:

Expected behavior

Desktop (please complete the following information):

OS: Windows 11
Browser Chrome
Version 124.0.6367.79 (Official Build) (64-bit)

Ketcher version
[Version 2.22.0-rc.2]
Indigo version
[Version 1.21.0-rc.1]
Refers to feature: https://github.com/epam/ketcher/issues/4530
Issue on Indigo side: https://github.com/epam/Indigo/issues/1991
Attached saved files:
ketcherCDXML (1).zip

Verified (title AND Enantiomer is verified too)

Versions:
Ketcher Version 2.22.0-rc.9 https://lifescience.opensource.epam.com/ketcher/index.html Build at 2024-07-04; 15:58:14
Indigo Version 1.21.0-rc.3.0-g1570d3f9f-wasm32-wasm-clang-19.0.0
MacOs Sonoma version 14.5
Chrome Version 126.0.6478.127 (Официальная сборка), (arm64)


Marks installed packages

Contains
Adds a checkmark (:heavy_check_mark:) beside all installed packages, and hides it again if the package is removed. Works with the help of custom VersionListCell class to render the icon. It also improves PackageDatabase for compatibility purposes.

Fixes #474.
How to test

Start the launcher normally.
Select any package and install/remove it.
The green checkmarks should be shown accordingly.

Hooray Jenkins reported success with all tests good!


Auth fails on re-REGISTER

Following scenario:
Baresip is registered at a server with user authentification.
When a registration times out and baresip as UAC sends a re-REGISTER to the server and the server response is "401 Unauthorized" to request a authentification from baresip this is ignored/not answered by baresip and the session times out.
After a while baresips tries a complete new REGISTER which is correctly answered.

premultiply writes:

Baresip is registered at a server with user authentification.
When a registration times out and baresip as UAC sends a re-REGISTER to the server and the server response is "401 Unauthorized" to request a authentification from baresip this is ignored/not answered by baresip and the session times out.
After a while baresips tries a complete new REGISTER which is
correctly answered.

There must be something wrong in your 401 response, since 401 has worked
in my setup for ages.  See below for an example.
########
T 2019/05/14 12:16:43.185420 <IP_ADDRESS>:40378 -> <IP_ADDRESS>:5060 [AP]
REGISTER sip:test.tutpro.com SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:5066;branch=z9hG4bKbfc19974881b559e;rport.
Contact: <sip:test-0x560892cfc3d0@<IP_ADDRESS>:5066;transport=tcp>;expires=600;+sip.instance="<urn:uuid:9b21c1a8-dc58-a3d6-83d5-7be67cbe70ce>";q=0.5;reg-id=1.
Max-Forwards: 70.
Route: <sip:<IP_ADDRESS>:5060;transport=tcp;lr>.
To<EMAIL_ADDRESS>From: <sip:test@test.tutpro.com>;tag=79d68424945bc309.
Call-ID: 9ba8cec01ef060e1.
CSeq: 58654 REGISTER.
User-Agent: baresip v0.6.2 (x86_64/linux).
Supported: gruu, outbound, path.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

##
T 2019/05/14 12:16:43.186724 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:40378 [AP]
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/TCP <IP_ADDRESS>:5066;branch=z9hG4bKbfc19974881b559e;rport=40378;received=<IP_ADDRESS>.
To: <sip:test@test.tutpro.com>;tag=aa60f6b996674059d978000d8a9e745f.d143.
From: <sip:test@test.tutpro.com>;tag=79d68424945bc309.
Call-ID: 9ba8cec01ef060e1.
CSeq: 58654 REGISTER.
WWW-Authenticate: Digest realm="test.tutpro.com", nonce="XNqIp1zah3sOFhp3IP09z1QLCkuWZKnwZrp6HtWA1eLFyQ/PBFKQlnUlsCKA", qop="auth".
Server: OpenSIPg SIP Proxy (5.3.0-0a02 (x86_64/linux)).
Content-Length: 0.
.

##
T 2019/05/14 12:16:43.187215 <IP_ADDRESS>:40378 -> <IP_ADDRESS>:5060 [AP]
REGISTER sip:test.tutpro.com SIP/2.0.
Via: SIP/2.0/TCP <IP_ADDRESS>:5066;branch=z9hG4bK42b73aab87b3f4a5;rport.
Contact: <sip:test-0x560892cfc3d0@<IP_ADDRESS>:5066;transport=tcp>;expires=600;+sip.instance="<urn:uuid:9b21c1a8-dc58-a3d6-83d5-7be67cbe70ce>";q=0.5;reg-id=1.
Max-Forwards: 70.
Authorization: Digest username="test", realm="test.tutpro.com", nonce="XNqIp1zah3sOFhp3IP09z1QLCkuWZKnwZrp6HtWA1eLFyQ/PBFKQlnUlsCKA", uri="sip:test.tutpro.com", response="8c1c498af38f8d125f01c59a80a1750f", cnonce="4e4b723a96037357", qop=auth, nc=00000001.
Route: <sip:<IP_ADDRESS>:5060;transport=tcp;lr>.
To<EMAIL_ADDRESS>From: <sip:test@test.tutpro.com>;tag=79d68424945bc309.
Call-ID: 9ba8cec01ef060e1.
CSeq: 58655 REGISTER.
User-Agent: baresip v0.6.2 (x86_64/linux).
Supported: gruu, outbound, path.
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
T 2019/05/14 12:16:43.195449 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:40378 [AP]
SIP/2.0 200 OK.
Via: SIP/2.0/TCP <IP_ADDRESS>:5066;branch=z9hG4bK42b73aab87b3f4a5;rport=40378;received=<IP_ADDRESS>.
To: <sip:test@test.tutpro.com>;tag=aa60f6b996674059d978000d8a9e745f.afd5.
From: <sip:test@test.tutpro.com>;tag=79d68424945bc309.
Call-ID: 9ba8cec01ef060e1.
CSeq: 58655 REGISTER.
Contact: <sip:test-0x560892cfc3d0@<IP_ADDRESS>:5066;transport=tcp>;q=0.5;expires=600;received="sip:<IP_ADDRESS>:40378;transport=tcp";pub-gruu="sip:test@test.tutpro.com;gr=urn:uuid:9b21c1a8-dc58-a3d6-83d5-7be67cbe70ce";temp-gruu="sip:uloc-5cd7b02c-369f-141-d00c1e4e@test.tutpro.com;gr";+sip.instance="<urn:uuid:9b21c1a8-dc58-a3d6-83d5-7be67cbe70ce>";reg-id=1.
Supported: outbound.
Require: outbound.
Server: OpenSIPg SIP Proxy (5.3.0-0a02 (x86_64/linux)).
Content-Length: 0.
.

I have the same problem.
Sip-Server is a Fritz-Box

Walter Zengel writes:

I have the same problem.
Sip-Server is a Fritz-Box

Try with some public SIP server.  Perhaps it is Fritz-Box that causes
the issue.

In my case it is a Kamailio SIP Server.
First REGISTER is fine, it is just a problem with re-REGISTER.
It looks like baresip does not expect the "401 Unauthorized" in this case.
Other UACs than baresip are fine.

premultiply writes:

In my case it is a Kamailio SIP Server.
First REGISTER is fine, it is just a problem with re-REGISTER.
It looks like baresip does not expect the "401 Unauthorized" in this case.
Other UACs than baresip are fine.

I too have Kamailio based SIP server and as I told, I have used it years
with baresip without any issues with re-REGISTER,  Take a pcap and try
to find out what goes wrong.

The server requests reauthorisation after 5 minutes. Normal expiration time is 30 sec.

premultiply writes:

That is not pcap.  It is not possible to say anything about this without
a full pcap.

I know but that was the only solution for the moment to show the bug from the public system.
Maybe I can connect it to a FritzBox test device to capture the packets with dummy data. Behavior should be the same as with our public Kamailio server.

premultiply writes:

I know but that was the only solution for the moment to show the bug
from the public system.
Maybe I can connect it to a FritzBox test device to capture the
packets with dummy data. Behavior should be the same as with our
public Kamailio server.

You can also try with a public sip server, such as sip2sip.info.  I just
tried myself and re-REGISTER worked without any issues.  So with very
high probability there is something wrong with your server.
I suggest you close this issue and re-open if you have a pcap prove
showing that there is an issue with baresip.

pi@baresip-test:~ $ sudo ngrep -t -p -W byline port 5060
interface: eth0 (<IP_ADDRESS>/<IP_ADDRESS>)
filter: (ip or ip6) and ( port 5060 )
#
U 2019/05/15 09:02:04.629378 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK9b1e68154d1d0b8d;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31663 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:02:04.634761 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK9b1e68154d1d0b8d;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=06F223B6E36A8E0F.
Call-ID: 1d2e0455c3d08391.
CSeq: 31663 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="B7BDCD2C98ECB3F3".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

#
U 2019/05/15 09:02:04.639496 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK3b58c3e61a2e4963;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="B7BDCD2C98ECB3F3", uri="sip:<IP_ADDRESS>", response="a00b54ad2846c7dd32a8a8fe866ad9cb".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31664 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:02:04.647255 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 200 OK.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK3b58c3e61a2e4963;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=FB66C5E1E17D437A.
Call-ID: 1d2e0455c3d08391.
CSeq: 31664 REGISTER.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
User-Agent: AVM FRITZ!Box 3490 140.07.01 (Aug 29 2018).
Supported: 100rel,replaces,timer.
Allow-Events: telephone-event,refer,reg.
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,PRACK,INFO,SUBSCRIBE,NOTIFY,REFER,MESSAGE,PUBLISH.
Accept: application/sdp, multipart/mixed.
Accept-Encoding: identity.
Content-Length: 0.
.

#
U 2019/05/15 09:06:34.677909 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKbe7756cfa46a701b;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="B7BDCD2C98ECB3F3", uri="sip:<IP_ADDRESS>", response="a00b54ad2846c7dd32a8a8fe866ad9cb".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31665 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:06:34.684682 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKbe7756cfa46a701b;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=CB80DB82743A2BEA.
Call-ID: 1d2e0455c3d08391.
CSeq: 31665 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="00A24F3DE3202F6C".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

#
U 2019/05/15 09:07:13.634199 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK9f3991817e0ae9f2;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31666 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:07:13.639647 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK9f3991817e0ae9f2;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=FC1108018101EC18.
Call-ID: 1d2e0455c3d08391.
CSeq: 31666 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="879A545AFB623082".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

#
U 2019/05/15 09:07:13.640264 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKc05698133d256209;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="879A545AFB623082", uri="sip:<IP_ADDRESS>", response="c54081456bc34618a0918ac70d5608d7".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31667 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:07:13.647644 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 200 OK.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKc05698133d256209;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=B42D3C7D6AA2BE2B.
Call-ID: 1d2e0455c3d08391.
CSeq: 31667 REGISTER.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
User-Agent: AVM FRITZ!Box 3490 140.07.01 (Aug 29 2018).
Supported: 100rel,replaces,timer.
Allow-Events: telephone-event,refer,reg.
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,PRACK,INFO,SUBSCRIBE,NOTIFY,REFER,MESSAGE,PUBLISH.
Accept: application/sdp, multipart/mixed.
Accept-Encoding: identity.
Content-Length: 0.
.

#
U 2019/05/15 09:11:43.686408 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK63e48d95478bb6e6;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="879A545AFB623082", uri="sip:<IP_ADDRESS>", response="c54081456bc34618a0918ac70d5608d7".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31668 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:11:43.693243 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK63e48d95478bb6e6;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=41CD6F1CEF4D2177.
Call-ID: 1d2e0455c3d08391.
CSeq: 31668 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="E2E1BB27DD090D79".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

#
U 2019/05/15 09:12:41.209570 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK725fbdb40ccfa1cd;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31669 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:12:41.215995 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bK725fbdb40ccfa1cd;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=C33CB8E5B1C2E790.
Call-ID: 1d2e0455c3d08391.
CSeq: 31669 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="2DC5AE537E381C2E".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

#
U 2019/05/15 09:12:41.216615 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKb3d6f42bfe732887;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="2DC5AE537E381C2E", uri="sip:<IP_ADDRESS>", response="b83d3846a806668e8f898432affca5c1".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31670 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:12:41.222829 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 200 OK.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKb3d6f42bfe732887;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=EBCFE01E8FED9DBD.
Call-ID: 1d2e0455c3d08391.
CSeq: 31670 REGISTER.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
User-Agent: AVM FRITZ!Box 3490 140.07.01 (Aug 29 2018).
Supported: 100rel,replaces,timer.
Allow-Events: telephone-event,refer,reg.
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,PRACK,INFO,SUBSCRIBE,NOTIFY,REFER,MESSAGE,PUBLISH.
Accept: application/sdp, multipart/mixed.
Accept-Encoding: identity.
Content-Length: 0.
.

#
U 2019/05/15 09:17:11.230293 <IP_ADDRESS>:50441 -> <IP_ADDRESS>:5060
REGISTER sip:<IP_ADDRESS> SIP/2.0.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKaa6ea0f728b27ad5;rport.
Contact: <sip:baresip1-0xf04990@<IP_ADDRESS>:50441>;expires=300;+sip.instance="<urn:uuid:ff826bee-3e9a-8902-ba51-0a70d519ffcb>".
Max-Forwards: 70.
Authorization: Digest username="baresip1", realm="fritz.box", nonce="2DC5AE537E381C2E", uri="sip:<IP_ADDRESS>", response="b83d3846a806668e8f898432affca5c1".
To<EMAIL_ADDRESS>From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
Call-ID: 1d2e0455c3d08391.
CSeq: 31671 REGISTER.
User-Agent: baresip v0.6.2 (arm6/linux).
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,NOTIFY,SUBSCRIBE,INFO,MESSAGE,REFER.
Content-Length: 0.
.

#
U 2019/05/15 09:17:11.237146 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKaa6ea0f728b27ad5;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=C60A1B9DB1DB2C2A.
Call-ID: 1d2e0455c3d08391.
CSeq: 31671 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="A036C6A15EF3E936".
User-Agent: FRITZ!OS.
Content-Length: 0.
.

And so on...
Same behavior with Fritzbox and Kamailio. I can't see any error from server side.
Baresip just does not respond to 401.

Kamailio does what it has been told by the config file to do.  What happens is that WWW-Authenticate header of this response:
U 2019/05/15 09:06:34.684682 <IP_ADDRESS>:5060 -> <IP_ADDRESS>:50441
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP <IP_ADDRESS>:50441;branch=z9hG4bKbe7756cfa46a701b;rport=50441.
From: <sip:baresip1@<IP_ADDRESS>>;tag=2a8c151551282ae2.
To: <sip:baresip1@<IP_ADDRESS>>;tag=CB80DB82743A2BEA.
Call-ID: 1d2e0455c3d08391.
CSeq: 31665 REGISTER.
WWW-Authenticate: Digest realm="fritz.box", nonce="00A24F3DE3202F6C".
User-Agent: FRITZ!OS.
Content-Length: 0.

is lacking stale=true parameter:
stale is set to (case-insensitive) true the server indicates that a previous attempt to authenticate failed because the nonce used by the client was to old. If stale is of any other value or missing, a previous authentication attempt failed for other reasons.

Fix your Kamailio configuration file.  This is not a baresip issue.

You are right, it is missing in server response.
As it may be fixed on our Kamailio configuration it may not be possible to fix it on other SIP servers like the FritzBox above.
So maybe it would be a good idea to improve baresips behavior in this case:
If the nonce-value returned from server is changed handle it as if stale=true is set.

Just for documentation:
This is from https://www.ietf.org/rfc/rfc2617.txt
   stale
     A flag, indicating that the previous request from the client was
     rejected because the nonce value was stale. If stale is TRUE
     (case-insensitive), the client may wish to simply retry the request
     with a new encrypted response, without reprompting the user for a
     new username and password. The server should only set stale to TRUE
     if it receives a request for which the nonce is invalid but with a
     valid digest for that nonce (indicating that the client knows the
     correct username/password). If stale is FALSE, or anything other
     than TRUE, or the stale directive is not present, the username
     and/or password are invalid, and new values must be obtained.

premultiply writes:

As it may be fixed on our Kamailio configuration it may not be
possible to fix it on other SIP servers like the FritzBox above.

There is tons of broken commercial SIP implementations and it is
impossible to try to cope with all of them.

So maybe it would be a good idea to improve baresips behavior in this case:
If the nonce-value returned from server is changed handle it as if
stale=true is set.

Or may be an account configuration option telling never to try with
previous nonce.
You can always add a feature request to the wiki.

premultiply writes:
>      If stale is FALSE, or anything other
>      than TRUE, or the stale directive is not present, the username
>      and/or password are invalid, and new values must be obtained.
> ```

Which is not what baresip should obtain, because the value are valid.

You can also check what RFC3261 tells about stale parameter.

premultiply writes: If stale is FALSE, or anything other than TRUE, or the stale directive is not present, the username and/or password are invalid, and new values must be obtained.
Which is not what baresip should obtain, because the value are valid. You can also check what RFC3261 tells about stale parameter.

So response from our server admin (skipping the long explanation):
This is exactly the reason why Kamailio (and others) do NOT set stale=false and why this is still a bug in baresip. The 401 response itself implicit says if stale not set: Nonce is expired and a REGISTER (with new nonce) should be done. The stale flag is OPTIONAL.
So please reopen this issue.

premultiply writes:

If stale is FALSE, or anything other than TRUE, or the stale
directive is not present, the username and/or password are invalid,
and new values must be obtained.
Which is not what baresip should obtain, because the value are
valid. You can also check what RFC3261 tells about stale parameter.

So response from our server admin (skipping the long explanation):
This is exactly the reason why Kamailio (and others) do NOT set
stale=false and why this is still a bug in baresip. The 401 response
itself implicit says if stale not set: Nonce is expired and a REGISTER
(with new nonce) should be done. The stale flag is OPTIONAL.

"If stale  is FALSE, or anything other than TRUE, or the stale
directive is not present, the username and/or password are invalid
and new values must be obtained."
Are you really suggesting that baresip should ask a new auth username and
password from the used when it gets 401 without stale param?

Oh nooo. I am sitting between the chairs... :-(

Can you please give me a hint where I can find the logic for this behavior in baresip, libre or librem to suggest a workaround?

re/src/sipreg

hi,
this issue has been reported a number of times before:
https://github.com/creytiv/re/pull/148
in most cases it was a misconfigured Kamailio.
perhaps we can ask on the Kamailio mailing list, why they dont include the stale=true parameter ?

If I summarize this now, there is the problem with Kamailio, Asterisk and Fritzbox.

Alfred E. Heggestad writes:

perhaps we can ask on the Kamailio mailing list, why they dont include
the stale=true parameter ?

It can be easily done in Kamalio, for example, like this:
    $var(result) = www_authorize("$td", "subscriber");
    switch ($var(result)) {
    ....
        case -4:
            INFO(REGISTER <$tu> by <$au@$ar> from <$var(src_ip)> has stale nonce);
            www_challenge("$td", "17");
            exit;

This is not part of the example config.  If someone does not know how to
properly configure Kamailio, he/she can ask Kamailio mailing list or pay
someone to do it.
baresip has nothing to do with it.

Sipgate (a german provider) is also affected. Just FYI.

If I summarize this now, there is the problem with Kamailio, Asterisk and Fritzbox.

To summarize this more: Kamailio, Asterisk, AVM Fritzbox, Sipgate, ...
What else? Or should we better ask what server or service behaves as baresip/libre would expect?

premultiply writes:

To summarize this more: Kamailio, Asterisk, AVM Fritzbox, Sipgate, ...
What else? Or should we better ask what server or service behaves as
baresip/libre would expect?

You cannot list Kamailio here, because it does exactly what it has been
configure to do.

Shure I can. As it is the default behaviour without any user scripting.

I don't think we need to convince anyone that there is an issue. The current statement is that this library does not want to try to fix any "broken" or non compliant servers. In my opinion that is a very good reason.
I would just like to know if this patch is a proper way to work around the issue: https://patch-diff.githubusercontent.com/raw/creytiv/re/pull/148.patch
I think everyone would be happy to have a semi-official patch as a workaround for the meantime.

I have tested the patch and he works with the Fritzbox, there are no more errors, thanks.

Walter Zengel writes:

I have tested the patch and he works with the Fritzbox, there are no
more errors, thanks.

So you got 401 without stale=true?  If so, the specs require that UA
asks the user to give new username/password.  Did that happen?

The Fritzbox worked before the patch synonymous, it was only always the Auth error. With the patch, the error is no longer.
Whether with or without Auth error must not be re-registered with the Fritzbox.

Michael Maroszek writes:

I would just like to know if this patch is a proper way to work around the issue: https://patch-diff.githubusercontent.com/raw/creytiv/re/pull/148.patch
I think everyone would be happy to have a semi-official patch as a
workaround for the meantime.

A better way to solve this issue might be an account param telling if
baresip ever tries to reuse the nonce, e.g., reuse_nonce=no, the default
being yes.  That way baresip would not need to ask the user to re-enter
username/password like it needs to do when it tries to reuse nonce and
gets back 401 without stale=true.
Implementation of that kind of param might require changes in re sipreg.

I would just like to know if this patch is a proper way to work around the issue: https://patch-diff.githubusercontent.com/raw/creytiv/re/pull/148.patch

WIth that patch if account's auth user/pass is not correct, baresip keeps on trying to register at high frequency.

Indeed, this patch is not ideal.
I have encounter 2 large media organisations where the SIP server is configured that way (one very large is using kamailio 4.4.4, the other I don't know), where the authentication fails with no stale flag. No need to say I can't tell them their config is wrong and that they know nothing about SIP ;-)
I unfortunately do not have sufficient experience with SIP and libre to propose a better patch/solution. But if someone tells me exactly how this should be solved, I am willing to implement it or help with the tests.
To my understanding, this situation should not be fully handled by libre itself but the behaviour, whether to ask new credentials or not, depends on the application/context. Therefore despite my lack of experience, I would suggest to have a supplementary callback or simply call the same auth_handler with some parameters/error, leaving the decision to the application. In my case I would have a counter to retry the same credentials a small number of times and then give up with a clear indication to the user if it ends up failing.

Renaud Schoonbroodt writes:

I unfortunately do not have sufficient experience with SIP and libre
to propose a better patch/solution. But if someone tells me exactly
how this should be solved, I am willing to implement it or help with
the tests.

Give this a try:
https://github.com/creytiv/re/issues/223#issuecomment-522294732
It has worked fine in my tests.

juha-h writes:

Give this a try:
https://github.com/creytiv/re/issues/223#issuecomment-522294732
It has worked fine in my tests.

Forgot to mention that this patch is now included in baresip-studio
Android app.

#786

juha-h writes:

Give this a try: creytiv/re#223 (comment) It has worked fine in my tests.

Many thanks for pointing me in the right direction.
I have applied your patch and did basic tests which seem to work.
I will keep an eye and this and keep you posted.

https://github.com/creytiv/re/pull/226


Jesse: Watch Reinhard[\W_]*+Maverick

Jesse requests the watch of the watch_keyword Reinhard[\W_]*+Maverick. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Reinhard[\W_]*+Maverick has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Facing problem in implemention (especially template-related)

I have gone through your documentation and tried setting-up settings, urls, template and app-specific-autocomplete-registry file which are as follows:

settings.py
INSTALLED_APPS = (
    'autocomplete_light',  # the very first line
    ...
)

urls.py
from django import VERSION as django_version
if django_version < (1, 7):
    # import autocomplete_light
    import autocomplete_light.shortcuts as acl  # after referring test_project
    acl.autodiscover()

# Also kept these lines above all views' import statements

urlpatterns = patterns('',
    url(r'^$', home),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^autocomplete/', include('autocomplete_light.urls')),
    ...

autocomplete_light_registry.py
from autocomplete_light import shortcuts as acl_shortcuts

acl_shortcuts.register(ClassA)

forms.py
from autocomplete_light import shortcuts as acl_shortcuts

class ClassA(acl_shortcuts.ModelForm):
   ...

base_template.html
    ...

    {% include 'autocomplete_light/static.html' %}
    ...

But then I stuck with template related changes which are mentioned over here. I don't know how to go ahead.
template.html - I'm rendering field on template in the following manner:

                       {{ cf.field-name.label }}

                          {{form-name.field-name|addcss:"form-control"}}
                          {{form-name.field-name.errors}}

Your help is greatly appreciated, also it would be nice if you can give a small demo because your demos were not working when I given a try (facing problem in database setup required for test project to run after running command: ./manage.py cities_light).

You can't use any more recent version can you ?

But then I stuck with template related changes which are mentioned over here. I don't know how to go ahead.

Open static.html, you see that it's just trying to load some JS. If the JS is loaded in your page that it should work. Else, there might be some JS error in some browser version, in that case, paste browser version and JS error.

demos were not working when I given a try (facing problem in database setup required for test project to run after running command: ./manage.py cities_light).

Define not working, post commands, outputs, tracebacks, versions please.

Please specify which jquery version should I prefer.

Is there any issue with importing shortcuts or should I use autocomplete_light directly? For e.g.,

from autocomplete_light import shortcuts as acl_shortcuts
class ClassA(acl_shortcuts.ModelForm)
   ...
==============

import autocomplete_light
class ClassA(autocomplete_light.ModelForm):
   ...

Do I have to write any specific lines of code in template for given foreign-key field? Here, I am especially asking for Foreign-key fields which I was defining in models.py as:

xyz = models.ForeignKey(XYZ)
abc = models.ForeignKey(ABC, null=True, blank=True)

Tests are run against jquery-2.1.4.js
For Django 1.9 support, you should use autocomplete_light.shortcuts. Is there anywhere left in the docs or example code that led you to think otherwise ?
There is no extra template code to add for the autocomplete to work, but if you want it to be fancy then you may.


[dependency] Fix, Bump FAB to 2.3.1

CATEGORY
Choose one

[X] Bug Fix
[ ] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY
FAB 2.3.1 Changelog:
[dependencies] Fix, marshmallow 3 breaks compat (https://github.com/dpgaspar/Flask-AppBuilder/pull/1333)
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS

Codecov Report

Merging #9413 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9413   +/-   ##
=======================================
  Coverage   59.01%   59.01%
=======================================
  Files         378      378
  Lines       12162    12162
  Branches     3004     3004
=======================================
  Hits         7177     7177
  Misses       4805     4805
  Partials      180      180

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 e63cb52...0513590. Read the comment docs.

Good point, updated


New task list locales

Changes
Add a summary of the changes in this pull request
Checklist

[ ] Attach this pull request to the appropriate card in Trello.
[ ] Update the CHANGELOG.md if needed.

 Figure out a way to store the section title and task title in a translations file per task list


Update totalfinder to version 1.10.2

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

@OranShuster I've fixed the merge conflict.


Use render text:, not render inline:

Render inline compiles a template and uses more memory.
It also takes slightly more time.
See: https://github.com/thoughtbot/ember-cli-rails/issues/451

A few rough benchmarks. I ran 1k requests against a webrick served app:
before this change, 1k requests took 2m5.936s, and the RSS was 104384.
after this change,  1k requests took 2m1.679s, and the RSS was 97120

Thanks for investigating #451!
Will rendering as text still be interpreted as HTML by the consuming browser?

I believe :text is supposed to inherit whatever the parent does. However, in this case it seems :html would be more appropriate. I will change and force push.
Those test failures appear to be present on master as well.

@egh sorry that this PR has sat for so long.
I think master is green once again, would you mind rebasing and pushing to get CI passing?

Merged in https://github.com/thoughtbot/ember-cli-rails/commit/a4bddef2a3c51dd603b1715adf7bfba8e8e89625.
Thanks!

Thank you!


fix: Report fields - List values field does not show the content in alphabetical order.

Details

Fixed Issues
$ https://github.com/Expensify/App/issues/47039
PROPOSAL:
Tests

Go to workspace settings > Report fields
Click Add field
Select List from Type
Click List values
Click Add value
Add a few list values randomly
Click back button
Verify list values field is show in alphabetical order
Add initial value > Save the new field
Open the new field settings
Verify list values field is show in alphabetical order

[x] Verify that no errors appear in the JS console

Offline tests

Go to workspace settings > Report fields
Click Add field
Select List from Type
Click List values
Click Add value
Add a few list values randomly
Click back button
Verify list values field is show in alphabetical order
Add initial value > Save the new field
Open the new field settings
Verify list values field is show in alphabetical order

QA Steps

Go to workspace settings > Report fields
Click Add field
Select List from Type
Click List values
Click Add value
Add a few list values randomly
Click back button
Verify list values field is show in alphabetical order
Add initial value > Save the new field
Open the new field settings
Verify list values field is show in alphabetical order

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/c469e1f1-0b7b-4ce8-8023-db6376923983

Android: mWeb Chrome
https://github.com/user-attachments/assets/3564a91c-6817-4f87-b5b9-f45753fac59e

iOS: Native
https://github.com/user-attachments/assets/70296b32-d3a0-4a67-8748-e3a3e8b4777b

iOS: mWeb Safari
https://github.com/user-attachments/assets/b91f127b-b445-45b4-a54d-7aa96c094bc9

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/00276943-2f65-476e-a9f8-f1752a0f86ad

MacOS: Desktop
https://github.com/user-attachments/assets/3488186e-625b-47c5-aa4f-c3d787e60342

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

FYI I believe this was deployed to prod yesterday, from this checklist - https://github.com/Expensify/App/issues/47219


Does this script support latest stash app version database?

Invoke-SqliteQuery: /home/alex/opt/OFMetadataToStash-0.4/OFMetadataToStash.ps1:264
Line |
 264 |  … eryResult = Invoke-SqliteQuery -Query $Query -DataSource $PathToStash …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "Fill" with "1" argument(s): "SQL logic error no such column: scenes.path"
Invoke-SqliteQuery: /home/alex/opt/OFMetadataToStash-0.4/OFMetadataToStash.ps1:275
Line |
 275 |  … eryResult = Invoke-SqliteQuery -Query $Query -DataSource $PathToStash …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "Fill" with "1" argument(s): "SQL logic error no such column: path"

INFO
There's a file in this OnlyFans metadata database that we couldn't find in your Stash database but the file IS on your filesystem.
It could be a duplicate that Stash decided not to import, but try running a Scan Task in Stash then re-running this script.
I verified the file exists in stash. But still can't make it work.

Sorry for the hassle, just now realizing I messed up the release a bit-- while the file in the body of the release was accurate, the "source code" zip was not. Should be fixed now!
https://github.com/ALonelyJuicebox/OFMetadataToStash/releases/tag/v0.4a

Thanks a lot. v0.4a is working for me. But I had to symlink utilities folder to make it work.
error:
Error: Could not find 'utilities/stash_example_db.sqlite'. Please redownload this script from Github.
fix:
ln -s Utilities utilities
Hope you will fix this in next release. Thanks again.

Thanks for the feedback. For clarity, what operating system are you running?

I am running Void Linux.


Support concurrency in qemu/ch platforms

Changed locks and port forwarding variables to static so that there is consistency when concurrency is used or with multiple lisa runners.
Using lock to to perform certain host_node. atomically

@anirudhrb @cwize1 Please review


#149 [FEATURE] Create button in variables create events as nested scriptable objects (initial implementation).

This PR adds the option to Fuse and Diffuse Atom Events to Atom variables, valueLists, instancers etc. The current implementation is shown in the video's below. NOTE: In the current design its up to the user to configure their project files the way they want. This can lead to possibly unwanted or weird situations, but thats up to the user right now.
Features:

Fuse/Diffuse referenced events in the Drawer
Create new standard nested Events
Nest ScriptableObjects (and other type of project assets) manually by pressing ALT and dragging the asset onto another asset
in the project view.

Video 1: https://www.youtube.com/watch?v=6KaW-NeFDTg
Video 2: https://user-images.githubusercontent.com/68739517/143941070-8175ed01-6bb7-48f7-a66d-3b5faf18fc7c.mp4

I think if a reference is removed ... the old value should be checked, if it is fused and automatically defuse.

I think if a reference is removed ... the old value should be checked, if it is fused and automatically defuse.

Is what you mean the feature that is shown in the first video around 00:35  seconds?

Is what you mean the feature that is shown in the first video around 00:35 seconds?

ahhh. yes indeed. i had not payed enough attention to it the first time and thought you had clicked defuse.
then i saw in the second video the reference staying in there. at about 00:12

Is what you mean the feature that is shown in the first video around 00:35 seconds?

ahhh. yes indeed (does it also work when overriden?). i had not payed enough attention to it the first time and thought you had clicked defuse. then i saw in the second video the reference staying in there. at about 00:12 when overridden

About your overriden question, I added an option when the user has an Atom fused and drags a new event into the field. The old fused Atom will get diffused and the new reference gets immediately fused. Is this what you mean? An example is shown here: https://youtu.be/wlq2dr1-na0

I would like to suggest to target this PR to the V4.4.x release as I've just sent a PR for this feature targeted at V5. V5 required some additional changes to the AtomDrawer file overall.

I would like to suggest to target this PR to the V4.4.x release ....

Some time ago it was decided that 4.x won't receive new features but only bug fixes, hence those features target V5


Shorthand for double/triple/quadruple prime symbols

It would be nice if multiple primes could be written in a formula as '', ''', and '''', like in LaTeX, instead of needing to write out prime.double, prime.triple, and prime.quad, so that higher-order ODEs can be written compactly without needing to resort to something like this:
#let pp = sym.prime.double
...
$ y pp(t) + a y'(t) + b y(t) = 0 $

With proper kerning (#359), two prime symbols should be indistinguishable from a double-prime symbol anyway.
Although it may makes more sense to use the Unicode prime.double etc. characters if they're available...


Enhance jdk_custom to also support hotspot and langtools tests

1.jdk_custom can also be used for hotspot and langtools tests
2.Simplify native test scenario. If needed use can simply export
TESTIMAGE_PATH. No need to specify different native path.
3.Replace JTREG_TEST_DIR with JTREG_JDK_TEST_DIR, which is more clear as
jdk, hotspot and langtools tests are at same level.
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

Tested with 8, 11 with impl=openj9, hotspot and test=jdk,langtools and hotspot.
https://ci.adoptopenjdk.net/view/Test_grinder
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/2043/
...
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/2038/

Documents about running jdk_custom and jdk/hotspot native tests will need updates.

@llxia could you please update https://github.com/eclipse/openj9/wiki/Reproducing-Test-Failures-Locally with Note: if tests need native libraries, please export test image path. For example,
export TESTIMAGE_PATH = yourestImageLocation/jdk/jtreg/native

Wiki is updated