Cannot make HTTPS request with 8u232-b09-jdk-hotspot on armhf

Platform & architecture:
Debian stable (Buster) inside Docker version 18.06.3-ce, build d7080c1 on Linux arm 4.0.3-armv7-x2 AdoptOpenJDK/openjdk-build#1 SMP Thu May 14 14:30:32 CST 2015 armv7l GNU/Linux.
Having set up adoptopenjdk image with following Dockerfile:
FROM debian:stable
RUN apt update && apt install -y wget curl unzip zip apt-transport-https ca-certificates gnupg2 software-properties-common
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - \
    && mkdir -p /usr/share/man/man1 \
    && add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ \
    && apt update && apt install -y adoptopenjdk-8-hotspot

I have created simple example of HTTPS request:
import java.net.URL;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;

public class Test
{
    public static void main(String[] args) throws Exception {
        String httpsURL = "https://www.google.com/";
	URL myUrl = new URL(httpsURL);
        HttpsURLConnection conn = (HttpsURLConnection)myUrl.openConnection();
        InputStream is = conn.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        String inputLine;

        while ((inputLine = br.readLine()) != null) {
            System.out.println(inputLine);
        }

        br.close();
    }
}

Which compiles fine, but fails with following error:
root@5f7479f5e708:/app# javac Test.java
root@5f7479f5e708:/app# java Test
Exception in thread "main" javax.net.ssl.SSLKeyException: Invalid signature on ECDH server key exchange message
	at sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>(HandshakeMessage.java:1121)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:300)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
	at Test.main(Test.java:13)
root@5f7479f5e708:/app#

This exact same Test.java file works fine with default-jdk (openjdk version "11.0.5" 2019-10-15) installation from debian repository. What is more interesting above example works just fine on amd64 machine.
Cacert file looks fine for me:
root@5f7479f5e708:/app# keytool -list -keystore /usr/lib/jvm/adoptopenjdk-8-hotspot-armhf/jre/lib/security/cacerts
Enter keystore password:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                   It took me a while to dust of my Raspberry Pi.
The problem isn't with the cacerts file, but rather with our build. Works flawlessly with Azul Zulu, both 8 and 11.
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (Zulu <IP_ADDRESS>-CA-linux_aarch32hf) (build 1.8.0_252-b225)
OpenJDK Client VM (Zulu <IP_ADDRESS>-CA-linux_aarch32hf) (build 25.252-b225, mixed mode, Evaluation)
$ java -version
openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment Zulu11.39+61-CA (build 11.0.7+10-LTS)
OpenJDK Client VM Zulu11.39+61-CA (build 11.0.7+10-LTS, mixed mode)

Somehow, they even managed to get 8 to build with a client VM.
Does not work with both AdoptOpenJDK 8 and 11. I tested with our binary builds directly, not with the Debian packages.
$ uname -a
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l GNU/Linux
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
OpenJDK Zero VM (AdoptOpenJDK)(build 25.252-b09, interpreted mode)
$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10)
OpenJDK Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode)

@sxa Any idea what we're doing wrong?

Interesting ... Particularly for 11 there should be no differences between arm32 and all the other platforms. Will aim to take a look during the week ...

i have the same problem, with the jdk 14, when gradle is downloading the wrapper.

I built OpenJDK 14.0.1 myself on my Raspberry Pi 4 with a 32 bit Raspbian and the problem is gone.
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

I ran https://github.com/aahlenst/cacert-test which should produce 1 passing and 1 failing test with the current set of CA certificates bundled with OpenJDK:
$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7-202006291331)
OpenJDK Server VM AdoptOpenJDK (build 14.0.1+7-202006291331, mixed mode, sharing)
./gradlew check
Downloading https://services.gradle.org/distributions/gradle-6.4-all.zip
.............10%..............20%..............30%..............40%..............50%..............60%..............70%..
............80%..............90%.............100%

Welcome to Gradle 6.4!

Here are the highlights of this release:
 - Support for building, testing and running Java Modules
 - Precompiled script plugins for Groovy DSL
 - Single dependency lock file per project

For more details see https://docs.gradle.org/6.4/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses

> Task :test

SampleClientTest > callSiteWithKnownCa() PASSED

SampleClientTest > callSiteWithUnknownCa() FAILED
    javax.net.ssl.SSLHandshakeException at SampleClientTest.java:16
        Caused by: javax.net.ssl.SSLHandshakeException at Alert.java:131
            Caused by: sun.security.validator.ValidatorException at PKIXValidator.java:439
                Caused by: sun.security.provider.certpath.SunCertPathBuilderException at SunCertPathBuilder.java:141

2 tests completed, 1 failed

> Task :test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///mnt/samsung/cacert-test/build/reports/tests/test/index.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 8s
3 actionable tasks: 3 executed
$ ./gradlew -version

------------------------------------------------------------
Gradle 6.4
------------------------------------------------------------

Build time:   2020-05-05 19:18:55 UTC
Revision:     42f7c3d0c3066b7b38bd0726760d4881e86fd19f

Kotlin:       1.3.71
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          14.0.1 (AdoptOpenJDK 14.0.1+7-202006291331)
OS:           Linux 4.19.118-v7l+ arm

So, the problem is clearly with our build setup.
OpenSSL bundled with my Raspbian: 1.1.1d-0+deb10u3+rpt1

This appears to be fixed in the nightly builds. It's possibly that this was a result of getting an updated gcc on the machine a couple of weeks ago (https://github.com/AdoptOpenJDK/openjdk-infrastructure/issues/487#issuecomment-647004138)

I am able to verify that the problem on arm32 is resolved for the nightly builds of jdk 11 and jdk 14 but still exists with the latest 8u262 nightly.  I tested the following binaries:

OpenJDK14U-jdk_arm_linux_hotspot_2020-07-12-08-34.tar.gz:  PASS
OpenJDK11U-jdk_arm_linux_hotspot_2020-07-12-10-27.tar.gz:  PASS
OpenJDK8U-jdk_arm_linux_hotspot_2020-07-12-03-41.tar.gz:  FAIL (unexpected)
OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz:  FAIL (expected)

Whereas the jdk11u and jdk14u arm32 builds show 7.5.0, the jdk8u nightly build configure.txt shows it still configuring and using gcc 5.4.0:
configure: Using gcc C compiler version 5.4.0 [gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609]
configure: Using gcc C++ compiler version 5.4.0 [g++ (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609]
...
* C Compiler:     Version 5.4.0 (at /usr/bin/gcc)
* C++ Compiler:   Version 5.4.0 (at /usr/bin/g++)

I'm still trying to figure out how everything fits together, but maybe just a dirty workspace for the jdk8u nightly or something else related to the application of https://github.com/AdoptOpenJDK/openjdk-infrastructure/pull/1406?  I didn't see anything else that differed regarding the configuration of the builds.

Thanks @tmancill - I've got a fix in and we're going to aim to build the new quarterly release this week with the later gcc on JDK8 as well - initial test run is happening at https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-linux-arm-hotspot/324/ - thanks for doing the analysis

This has been fixed.


Implement Additional Email Handling

Rather than having Cheeto email users after account creation, it would be nice for us to be able to POST back an email subject and body on event completion for HiPPO to send so that emails all come from the same place.

Closed by #488


build: compilation considerably slower compared to 1.4

Compilation times even for trivial programs have regressed quite noticeably since 1.4
Example:
$ go version
go version devel +2d9a50b Fri May 8 19:10:10 2015 +0000 darwin/amd64

$ ~/.go1.4/bin/go version
go version go1.4.1 darwin/amd64

$ time go build -v -x
WORK=/var/folders/vg/njvw3b2118z775q_7hp6c_1h0000gn/T/go-build986103443
github.com/alytvynov/notify
mkdir -p $WORK/github.com/alytvynov/notify/_obj/
mkdir -p $WORK/github.com/alytvynov/notify/_obj/exe/
cd /Users/cronos/go/src/github.com/alytvynov/notify
/Users/cronos/.go/pkg/tool/darwin_amd64/6g -o $WORK/github.com/alytvynov/notify.a -trimpath $WORK -p main -complete -D _/Users/cronos/go/src/github.com/alytvynov/notify -I $WORK -pack ./notify.go
cd .
/Users/cronos/.go/pkg/tool/darwin_amd64/6l -o $WORK/github.com/alytvynov/notify/_obj/exe/a.out -L $WORK -extld=clang -buildmode=exe $WORK/github.com/alytvynov/notify.a
mv $WORK/github.com/alytvynov/notify/_obj/exe/a.out notify

real	0m0.703s
user	0m0.587s
sys	0m0.103s

$ time GOROOT=~/.go1.4 ~/.go1.4/bin/go build -v -x
WORK=/var/folders/vg/njvw3b2118z775q_7hp6c_1h0000gn/T/go-build023012609
github.com/alytvynov/notify
mkdir -p $WORK/github.com/alytvynov/notify/_obj/
mkdir -p $WORK/github.com/alytvynov/notify/_obj/exe/
cd /Users/cronos/go/src/github.com/alytvynov/notify
/Users/cronos/.go1.4/pkg/tool/darwin_amd64/6g -o $WORK/github.com/alytvynov/notify.a -trimpath $WORK -p github.com/alytvynov/notify -complete -D _/Users/cronos/go/src/github.com/alytvynov/notify -I $WORK -pack ./notify.go
cd .
/Users/cronos/.go1.4/pkg/tool/darwin_amd64/6l -o $WORK/github.com/alytvynov/notify/_obj/exe/a.out -L $WORK -extld=clang $WORK/github.com/alytvynov/notify.a
mv $WORK/github.com/alytvynov/notify/_obj/exe/a.out notify

real	0m0.230s
user	0m0.173s
sys	0m0.043s

This is 0.7s on tip vs 0.23s on 1.4.
For other larger project (which is unfortunately not open-source) i get 2.57s vs 0.9s
This might be related to compiler translation to Go.

Yes, it's known issue, and indeed related to the Go translation.

This is really #10571. Closing. Let's not have multiple bugs tracking the work.

I think #10571 is only a symptom of this.


ipptool enhancements

Add the following enhancements and bug fixes to ipptool (collected from the ippsample project):

[ ] Add directives to monitor "printer-state-reasons" or "job-state-reasons" in the background during a test - ippsample #221
[ ] Add WITH-DISTINCT-VALUES predicate - ippsample #209
[ ] Add -R (repeat) option for server-error-busy - ippsample #195
[ ] Support type(LIMIT) syntax, as used in IANA IPP registry - ippsample #194
[ ] Add predicate for testing the number of occurrences of an attribute - ippsample #191
[ ] Fix ipptool using the same random request-id for all requests - ippsample #188
[ ] DEFINE-MATCH and WITH-VALUE need to better support rangeOfInteger - ippsample #147
[ ] Add support for running sub-tests using xxx-supported values - ippsample #140

Doing development in the "ipptool" branch...

OK, so will only be doing the printer-state-reasons monitoring for this issue...

Dropped several of the less important feature requests for this round of ipptool improvements/bug fixes... We'll do those at a later time...


About test dataset

Hi, i'm training this model with Nuscenes dataset.
when I train cross-view transformer network using this code, model's best IoU for road reach 71%
but in the "Cross-view Transformers for real-time Map-view Semantic Segmentation" paper road's best IoU is 74.3%
Is the reason why my experimental results are different is that the dataset for scoring in this paper is not a validation dataset? Or is it simply because the hyperparameters to get the highest score are different?

Can you share your eval code please?

Same here. Thank you for the great work.
I simply ran trainer.validate(model_module, datamodule=data_module, ckpt_path=ckpt_path) with the checkpoint you provided (cvt_nuscenes_vehicles_50k.ckpt) but I don't see the 36.0 or 37.5<EMAIL_ADDRESS>in the paper. All I could see was 34.8.
Is there a separate test set other than the validation set? Or is there a checkpoint that was learned additionally?

Hi, i'm training this model with Nuscenes dataset.
when I train cross-view transformer network using this code, model's best IoU for road reach 71%
but in the "Cross-view Transformers for real-time Map-view Semantic Segmentation" paper road's best IoU is 74.3%
Is the reason why my experimental results are different is that the dataset for scoring in this paper is not a validation dataset? Or is it simply because the hyperparameters to get the highest score are different?

SOrry to disturb you .
I just run the command  like " python3 train.py +experiment=cvt_nuscenes_vehicle data.dataset_dir=datasets/nuscenes data.labels_dir=datasets/cvt_labels_nuscenes"
But it go with error like below:
Global seed set to 2022
Error executing job with overrides: ['+experiment=cvt_nuscenes_vehicle', 'data.dataset_dir=datasets/nuscenes', 'data.labels_dir=datasets/cvt_labels_nuscenes']
Error locating target '../cross_view_transformer.model.encoder.Encoder', see chained exception above.
full_key: model.encoder
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
How can solve that?
Thanks

Hi @curie3170,
I got the validation results similar to yours, do you figure out why?
Thanks.

Hello, do you have this problem？？
Error executing job with overrides: ['+experiment=cvt_nuscenes_vehicle'
git.exc.InvalidGitRepositoryError: /home/leezy/disk10t/lzx/cross_view_transformers

Hi, i'm training this model with Nuscenes dataset.
when I train cross-view transformer network using this code, model's best IoU for road reach 71%
but in the "Cross-view Transformers for real-time Map-view Semantic Segmentation" paper road's best IoU is 74.3%
Is the reason why my experimental results are different is that the dataset for scoring in this paper is not a validation dataset? Or is it simply because the hyperparameters to get the highest score are different?

SOrry to disturb you . I just run the command like " python3 train.py +experiment=cvt_nuscenes_vehicle data.dataset_dir=datasets/nuscenes data.labels_dir=datasets/cvt_labels_nuscenes" But it go with error like below: Global seed set to 2022 Error executing job with overrides: ['+experiment=cvt_nuscenes_vehicle', 'data.dataset_dir=datasets/nuscenes', 'data.labels_dir=datasets/cvt_labels_nuscenes'] Error locating target '../cross_view_transformer.model.encoder.Encoder', see chained exception above. full_key: model.encoder
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
How can solve that? Thanks

did you solve this ??

Have you had this problem before, and how did you solve it, thank you!
Error executing job with overrides: ['+experiment=cvt_nuscenes_vehicle'
git.exc.InvalidGitRepositoryError: /home/leezy/disk10t/lzx/cross_view_transformers

Hi @curie3170,
I got the validation results similar to yours, do you figure out why?
Thanks.

hi, i have solved this problem ,you just need to enter :git init

Hi, i'm training this model with Nuscenes dataset.
when I train cross-view transformer network using this code, model's best IoU for road reach 71%
but in the "Cross-view Transformers for real-time Map-view Semantic Segmentation" paper road's best IoU is 74.3%
Is the reason why my experimental results are different is that the dataset for scoring in this paper is not a validation dataset? Or is it simply because the hyperparameters to get the highest score are different?

SOrry to disturb you . I just run the command like " python3 train.py +experiment=cvt_nuscenes_vehicle data.dataset_dir=datasets/nuscenes data.labels_dir=datasets/cvt_labels_nuscenes" But it go with error like below: Global seed set to 2022 Error executing job with overrides: ['+experiment=cvt_nuscenes_vehicle', 'data.dataset_dir=datasets/nuscenes', 'data.labels_dir=datasets/cvt_labels_nuscenes'] Error locating target '../cross_view_transformer.model.encoder.Encoder', see chained exception above. full_key: model.encoder
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
How can solve that? Thanks

hi, i have solved this problem ,you just need to enter :git init


Only bill usage that happens prior to bill time

In case the billing fails for some reason this prevents usage from the next cycle being billed in previous cycle. Any records that are not used to calculate the current bill remain in the cache.

Comments and changes will be incorporated in a new branch/pr


Work around Bug 898224

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
The CLFN error parameter in NI-SLSC Switch is marked as const, which is incorrect and causing dataflow issues. This works around that issue.
Why should this Pull Request be merged?
The UI currently will keep showing errors when changing topologies once one error occurs. This fixes that behavior.
What testing has been done?
Hand testing of the UI.

SLSC Switch Close.vi

[ ] Replace the icon with some text. I had to do a triple take to ensure that you weren't using the original SLSC Switch API VI. We can avoid potential confusion by using a unique icon.


Polling call failure crashes the miner

A better way to do this is perhaps reusing the last recorded values?
Indefinitely isn't ideal, but for a certain number of retries it much better for the miner than simply returning 0 or crashing.
Trying to find the middle path between miner writing pointless entries for hours or writing none simply because of momentary network issues.
Is a subset of the errors in mentioned in: https://github.com/pegnet/pegnet/issues/125

A better way to do this is perhaps reusing the last recorded values?

relevant discussion: https://github.com/pegnet/pegnet/issues/11


NoCredentialsError when accessing public S3 bucket for train data

Hey everyone,
First of all, thank you for the excellent work on this project!
I am currently doing some tests and attempting to retrain the model from scratch to compare it with other datasets and benchmarks.
Unfortunately, I encountered an issue while trying to download the 350GB dataset from your public S3 bucket. Despite the bucket supposedly being public, I am faced with a NoCredentialsError (full Error Code at the bottom).
I am curious if there have been recent changes to the data's location or the public access settings on the bucket. Any assistance or updates you could provide would be greatly appreciated.
Thank you for your help!
Best regards,
Stefan Hangler
Cell In[7], line 12
      8 print(bucket.objects.all())
     10 bucket_dir = "datasets/coati/"
---> 12 nfiles = len(list(bucket.objects.filter(Prefix=bucket_dir)))
     14 print(nfiles)
     16 download_from_s3("s3://terray-public/datasets/coati_data/")

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/boto3/resources/collection.py:81, in ResourceCollection.__iter__(self)
     78 limit = self._params.get('limit', None)
     80 count = 0
---> 81 for page in self.pages():
     82     for item in page:
     83         yield item

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/boto3/resources/collection.py:171, in ResourceCollection.pages(self)
    168 # Now that we have a page iterator or single page of results
    169 # we start processing and yielding individual items.
    170 count = 0
--> 171 for page in pages:
    172     page_items = []
    173     for item in self._handler(self._parent, params, page):

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/paginate.py:269, in PageIterator.__iter__(self)
    267 self._inject_starting_params(current_kwargs)
    268 while True:
--> 269     response = self._make_request(current_kwargs)
    270     parsed = self._extract_parsed_response(response)
    271     if first_request:
    272         # The first request is handled differently.  We could
    273         # possibly have a resume/starting token that tells us where
    274         # to index into the retrieved page.

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/paginate.py:357, in PageIterator._make_request(self, current_kwargs)
    356 def _make_request(self, current_kwargs):
--> 357     return self._method(**current_kwargs)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/client.py:565, in ClientCreator._create_api_method.<locals>._api_call(self, *args, **kwargs)
    561     raise TypeError(
    562         f"{py_operation_name}() only accepts keyword arguments."
    563     )
    564 # The "self" in this scope is referring to the BaseClient.
--> 565 return self._make_api_call(operation_name, kwargs)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/client.py:1001, in BaseClient._make_api_call(self, operation_name, api_params)
    997     maybe_compress_request(
    998         self.meta.config, request_dict, operation_model
    999     )
   1000     apply_request_checksum(request_dict)
-> 1001     http, parsed_response = self._make_request(
   1002         operation_model, request_dict, request_context
   1003     )
   1005 self.meta.events.emit(
   1006     'after-call.{service_id}.{operation_name}'.format(
   1007         service_id=service_id, operation_name=operation_name
   (...)
   1012     context=request_context,
   1013 )
   1015 if http.status_code >= 300:

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/client.py:1027, in BaseClient._make_request(self, operation_model, request_dict, request_context)
   1025 def _make_request(self, operation_model, request_dict, request_context):
   1026     try:
-> 1027         return self._endpoint.make_request(operation_model, request_dict)
   1028     except Exception as e:
   1029         self.meta.events.emit(
   1030             'after-call-error.{service_id}.{operation_name}'.format(
   1031                 service_id=self._service_model.service_id.hyphenize(),
   (...)
   1035             context=request_context,
   1036         )

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/endpoint.py:119, in Endpoint.make_request(self, operation_model, request_dict)
    113 def make_request(self, operation_model, request_dict):
    114     logger.debug(
    115         "Making request for %s with params: %s",
    116         operation_model,
    117         request_dict,
    118     )
--> 119     return self._send_request(request_dict, operation_model)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/endpoint.py:198, in Endpoint._send_request(self, request_dict, operation_model)
    196 context = request_dict['context']
    197 self._update_retries_context(context, attempts)
--> 198 request = self.create_request(request_dict, operation_model)
    199 success_response, exception = self._get_response(
    200     request, operation_model, context
    201 )
    202 while self._needs_retry(
    203     attempts,
    204     operation_model,
   (...)
    207     exception,
    208 ):

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/endpoint.py:134, in Endpoint.create_request(self, params, operation_model)
    130     service_id = operation_model.service_model.service_id.hyphenize()
    131     event_name = 'request-created.{service_id}.{op_name}'.format(
    132         service_id=service_id, op_name=operation_model.name
    133     )
--> 134     self._event_emitter.emit(
    135         event_name,
    136         request=request,
    137         operation_name=operation_model.name,
    138     )
    139 prepared_request = self.prepare_request(request)
    140 return prepared_request

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/hooks.py:412, in EventAliaser.emit(self, event_name, **kwargs)
    410 def emit(self, event_name, **kwargs):
    411     aliased_event_name = self._alias_event_name(event_name)
--> 412     return self._emitter.emit(aliased_event_name, **kwargs)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/hooks.py:256, in HierarchicalEmitter.emit(self, event_name, **kwargs)
    245 def emit(self, event_name, **kwargs):
    246     """
    247     Emit an event by name with arguments passed as keyword args.
    248
   (...)
    254              handlers.
    255     """
--> 256     return self._emit(event_name, kwargs)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/hooks.py:239, in HierarchicalEmitter._emit(self, event_name, kwargs, stop_on_response)
    237 for handler in handlers_to_call:
    238     logger.debug('Event %s: calling handler %s', event_name, handler)
--> 239     response = handler(**kwargs)
    240     responses.append((handler, response))
    241     if stop_on_response and response is not None:

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/signers.py:105, in RequestSigner.handler(self, operation_name, request, **kwargs)
    100 def handler(self, operation_name=None, request=None, **kwargs):
    101     # This is typically hooked up to the "request-created" event
    102     # from a client's event emitter.  When a new request is created
    103     # this method is invoked to sign the request.
    104     # Don't call this method directly.
--> 105     return self.sign(operation_name, request)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/signers.py:199, in RequestSigner.sign(self, operation_name, request, region_name, signing_type, expires_in, signing_name)
    196     else:
    197         raise e
--> 199 auth.add_auth(request)

File ~/opt/anaconda3/envs/coatiEnv/lib/python3.9/site-packages/botocore/auth.py:418, in SigV4Auth.add_auth(self, request)
    416 def add_auth(self, request):
    417     if self.credentials is None:
--> 418         raise NoCredentialsError()
    419     datetime_now = datetime.datetime.utcnow()
    420     request.context['timestamp'] = datetime_now.strftime(SIGV4_TIMESTAMP)

NoCredentialsError: Unable to locate credentials

Hey Stefan, thanks for the kind words and giving this a shot! I think I see what's up on the COATI dataset access here.
So I can confirm that the dataset is still configured to be public in our S3, but it looks like CLI (and presumably boto3 access) still require credentials to sign all S3 requests programatically regardless of the permissions on the bucket/objects. Here's what I tested.
# Confirm this server does not have any AWS credentials
$ aws sts get-caller-identity
Unable to locate credentials. You can configure credentials by running "aws configure".

# And it appears to be unhappy without any credentials present
$ aws s3 cp s3://terray-public/datasets/coati_data/0.pkl .
fatal error: Unable to locate credentials

# Let's verify the bucket contents are indeed public over HTTP
$ wget https://terray-public.s3.us-west-2.amazonaws.com/datasets/coati_data/0.pkl
--2024-06-17 09:40:03--  https://terray-public.s3.us-west-2.amazonaws.com/datasets/coati_data/0.pkl
Resolving terray-public.s3.us-west-2.amazonaws.com (terray-public.s3.us-west-2.amazonaws.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to terray-public.s3.us-west-2.amazonaws.com (terray-public.s3.us-west-2.amazonaws.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 74265858 (71M) [binary/octet-stream]
Saving to: ‘0.pkl’

0.pkl                   100%[=============================>]  70.83M  8.27MB/s    in 8.7s

2024-06-17 09:40:12 (8.17 MB/s) - ‘0.pkl’ saved [74265858/74265858]
# ...and it seems to be the case.
# I can verify the HTTP URL also works on an incognito browser window

Here are a couple options your getting your access

Run aws configure with any valid credentials you may have on an AWS tenant. The permissions of that user should be irrelevant for the public dataset, but will at least provide valid data to sign your requests with
Disable the boto3 signing step, which seems to vary depending on your version. Check out this StackOverflow answer that has a few different suggestions (that may also vary depending if you use boto3.client vs boto3.resource): https://stackoverflow.com/questions/34865927/can-i-use-boto3-anonymously/34866092#34866092

Thanks for the quick and detailed response! That was very helpful.
I managed to work around the credential issue with a boto3 setup to bypass the signing step. Here’s the code snippet that ended up working for me with boto3 version 1.9.251:
import boto3

def download_public_file(bucket_name, object_key, download_path):
    s3_client = boto3.client('s3', aws_access_key_id='', aws_secret_access_key='', region_name='us-west-2')
    s3_client._request_signer.sign = (lambda *args, **kwargs: None)

    try:
        s3_client.download_file(bucket_name, object_key, download_path)
        print(f"Downloaded {object_key} to {download_path}")
    except Exception as e:
        print(f"Failed to download {object_key}: {e}")

# Usage
bucket_name = 'terray-public'
object_key = 'datasets/coati_data/0.pkl'
download_path = 'path/to/store/file/0.pkl'
download_public_file(bucket_name, object_key, download_path)

I also noticed that the file 0.pkl is around 75MB, which seems much smaller than expected. The dataset.py mentions that the dataset should be around 340GB. Could you confirm if 0.pkl is part of a larger set of files or if there's another location where the full dataset is stored?
Thanks again for your assistance!
Best,
Stefan

Hello,
I have properly setup my aws credentials on my computer. However, I got Failed to download files: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied. Is it possible that the ListObjectsV2 operation have been disabled on your S3?
Best,
Guangfeng


Update CLI

Updates git2, allows windows binaries to be downloaded on linux, and doesn't force the .git directory to be deleted.

What a great pr name

The CLI updates

Amazing PR name

!accept


Refactor current apps in the umbrella project

The goal is to rename and probably extract new apps from the existing ones. Names should at least indicate the purpose of the app.

module and the app Rex, could be renamed to Database or similar as it is only an interface to the PostgreSQL,
from the Rex module, there could be extracted one app which will maintain the state of the whole network,
RexWeb could be renamed to Web as it is only an interface for the nodes to interact with (through HTTP or Channels).

Only module Rex was renamed. I took the decision to not extract the state manager to separate app as this process is clearly an another way to reach out for the data (and this module is providing the data, no matter the source).

I'll also try to refactor some methods to have a single responsibility and add some testing.


How to use CameraFragment without CameraActivity?

Hi!
In docs there is only an option to start camera activity for result. But I have an Activity with bottom tabs, similar to Facebook Messenger.
I tried to show CameraFragment inside holder ... it worked, but I only see never ending loader. I guess that it needs some event handling. Is it possible to implement that?
Thanks!

Quoting the documentation:

The only supported API at the moment is through CameraActivity and its IntentBuilder for still pictures and VideoRecorderActivity and its IntentBuilder for videos.

While there are other public classes and methods in the library, ones that may be exposed as part of a public API in the future, they are not supported at present.

So, at the present time, please use the Android camera APIs directly.

Ok, thanks. Is there any plan for that?

@zokipirlo I will be astonished if it ever happens. I tried to provide a more flexible library with the original CWAC-Camera, and that flexibility contributed to a lot of problems that I had with the library. My response to that is to focus on reliability and stability first, and worry about flexibility somewhere down the road.
That being said, please understand that I am not stopping you from using the classes like CameraFragment. This is an open source project, after all. I'm just not supporting their use in that way, in terms of documentation, answers to questions, design changes, etc. You are certainly welcome to file issues here (bugs, feature requests, etc.) that you run into when using those classes, so long as those issues also affect the library's official API and the functionality exposed by that API.
BTW, for questions, please use Stack Overflow, as is mentioned in the documentation, so we can reserve the issue tracker for issues. Thanks!

Thanks again, I missed that.

Hi again :)
I have implemented this. I had to do some refactoring (ids in xml for skinning, replaced fab with imagebutton (in code only, because fab extends imagebutton), added expanded button, some small refactoring in code, added support library for nested fragments).
I would be very grateful if we could merge that somehow, if you're interested in this of course. It doesn't break your code.
Here are some screenshots.
Before capture:

Preview with option for retake:

Expanded (full screen):

I would be very grateful if we could merge that somehow

I have no idea what "that" is, sorry.

I was referencing with "that" on an original question. It adds an option to use FullCameraFragment inside any view. Like it's visible in screenshots above (it's hard to see, but I didn't find an option to make them smaller :( ).
I have also added an example in demo-playground project. It's implemented in FragmentDemo activity (Cam2 Fragment Demo in launcher) .
It's pushed now in my fork (https://github.com/zokipirlo/cwac-cam2).

I have no plans to offer an API other than the activity-based one. If you would like, I can steer people looking for a fragment-based API to your fork.
If there are trivial changes that I can make to the library that will help you in maintaining your fork, akin to issue #94, feel free to file issues for them.
Or, if you are invested in writing an open source library for simplifying taking pictures within an Android app, we can invert the relationship and make your fork the "real one" that people use, with me perhaps contributing bits and pieces along the way. I need such a library to exist, but it's not essential to me that I be the one to write the library. I am writing this library, and wrote its predecessor, to scratch a particular itch, but that itch can be just as easily scratched via somebody else's library.

Ok, great, thanks. Will start a fork from scratch and create few small compatibility issues with pull requests.
I'm planning to use this library in a commercial application, so I will regularly update my fork. Would be glad if you continue to support this fork. Thanks.

I also want to customize my camera view similar to Instagram  .I used to CWAC-Camera,but the flash light doesn't work.Should I rewrite the CameraFragment according to cam2 libs?

@gepriniusce Use the camera APIs directly. Do not use this library.


An error occurs when creating a storage account

OS: Win10
Build Version: 20220324.11
Regression: Previous Release
Repro Steps:

F1 -> Click "Create Storage Account..." -> Enter a name.
Check whether no error occurs.

Expect:
No error occurs.
Actual:
An error occurs.

More Info:
This issue also reproduces when creating an advanced storage account.

This has been fixed.


Retry rpm download with --no-dns-cache

Retry in get_rpm() without dns cache.
Unlike other distros, CentOS download site uses something like round-robin DNS. The mirror.centos.org domain maps to one of many IPs. Sometimes an IP can be too slow or unreachable for some reason. In my case, <IP_ADDRESS> is unreachable from my location (South Korea).
wget automatically retries on such network failure, but with DNS cached. The solution to this problem is either

Restart wget process, as in get_from_filelistgz(). wget's DNS cache is only in memory.
Use --no-dns-cache option that tells wget to use different IP every retry.

This patch applies (2) to get_rpm().
A quick test show that the retry makes the download more robust.
#10 16.06 Getting centos-glibc
#10 16.06   -> Location: http://mirror.centos.org/centos//./7.9.2009/updates/x86_64/Packages/glibc-2.17-323.el7_9.i686.rpm
#10 16.07   -> ID: glibc-2.17-323.el7_9.i686
#10 16.07   -> Downloading package
#10 16.07 --2021-08-15 02:33:04--  http://mirror.centos.org/centos//7.9.2009/updates/x86_64/Packages/glibc-2.17-323.el7_9.i686.rpm
#10 16.07 Resolving mirror.centos.org (mirror.centos.org)... <IP_ADDRESS>, 2604:1380:3000:2800::1
#10 16.58 Connecting to mirror.centos.org (mirror.centos.org)|<IP_ADDRESS>|:80... failed: Connection timed out.
#10 46.58 Connecting to mirror.centos.org (mirror.centos.org)|2604:1380:3000:2800::1|:80... failed: Cannot assign requested address.
#10 46.58 Retrying.
#10 46.58
#10 47.58 --2021-08-15 02:33:35--  (try: 2)  http://mirror.centos.org/centos//7.9.2009/updates/x86_64/Packages/glibc-2.17-323.el7_9.i686.rpm
#10 47.58 Resolving mirror.centos.org (mirror.centos.org)... <IP_ADDRESS>, 2406:da1a:fcb:2f01:b6e2:c6:795:b503
#10 48.00 Connecting to mirror.centos.org (mirror.centos.org)|<IP_ADDRESS>|:80... connected.
#10 48.30 HTTP request sent, awaiting response... 200 OK
#10 48.61 Length: 4465468 (4.3M) [application/x-rpm]
#10 48.61 Saving to: ‘/tmp/tmp.hTApue5xnM/pkg.rpm’
#10 48.61
#10 48.61      0K .......... .......... .......... .......... ..........  1% 1.64M 3s
#10 48.64     50K .......... .......... .......... .......... ..........  2% 10.8M 1s

This feature may be applied to other download functions like get_debian(), but this problem seems unlikely in other download sites.

This seems to be a very specific issue, but the fix looks reasonable.


EAS build fails on iOS with multiple schemas

Build/Submit details page URL
No response
Summary
After upgrading to the latest eas-cli:

★<EMAIL_ADDRESS>is now available, please upgrade.

The process failed to execute the schema with error:
Error: EISDIR: illegal operation on a directory, read
Code: EISDIR

Managed or bare?
Bare workflow
Environment
System:
      OS: macOS 12.3.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 16.15.0 - /usr/local/bin/node
      Yarn: 1.22.18 - /usr/local/bin/yarn
      npm: 8.5.5 - /usr/local/bin/npm
      Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 21.4, iOS 15.4, macOS 12.3, tvOS 15.4, watchOS 8.5
      Android SDK:
        API Levels: 28, 29, 30, 31
        Build Tools: 29.0.2, 30.0.2, 30.0.3, 31.0.0
        System Images: android-28 | Polestar 2, android-29 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom, android-29 | Polestar 2
    IDEs:
      Android Studio: 2020.3 AI-203.7717.56.2031.7784292
      Xcode: 13.3.1/13E500a - /usr/bin/xcodebuild
    npmPackages:
      @expo/webpack-config: ~0.16.2 => 0.16.16
      babel-preset-expo: 9.0.2 => 9.0.2
      expo: ^44.0.0 => 44.0.5
      react: 17.0.1 => 17.0.1
      react-dom: 17.0.1 => 17.0.1
      react-native: 0.64.3 => 0.64.3
      react-native-web: 0.17.1 => 0.17.1
    npmGlobalPackages:
      eas-cli: 0.52.0
      expo-cli: 5.4.3
    Expo Workflow: bare

Error output
Error: EISDIR: illegal operation on a directory, read
Code: EISDIR

Reproducible demo or steps to reproduce from a blank project

Upgrade eas-cli to the latest version (0.52.0):

npm install -g eas-cli

Run:

eas build --platform ios

Select schema to use.
The project that I work on uses multiple schemas (Widget App, Watch App). After removing all schemas expect the main one (for the app). The cli works fine. However when having multiple schemas then the bug accrues.

The latest stable version for me is 0.49.0

Can you provide a repo with a reproducible example? Mostly I'm interested in pbxproj file and xcscheme files, but having full repo would make it much easier.
Try running a build with  env DEBUG=*
Did you specify the scheme in eas.json?

Closing because of the inactivity.


[Evaluation]Evaluation with Otter pre-trained model on COCO dataset return 0 CIDER score

Hi,
I used the evaluate.py file in the pipeline to evaluate my models. To make sure this evaluation can run on my single GPU node, I made some minor changes on the code for initialization of multi-gpu environments and remained other thing the same. The modified shell script is like the following:
`
#!/bin/bash
export CUDA_VISIBLE_DEVICES="0"
export MASTER_ADDR="localhost"
export MASTER_PORT="29501"
export WORLD_SIZE=4
export RANK=0
cd /path/to/Otter
realpath .
python -m pipeline.eval.evaluate
--model=otter
--results_file="OTTER_mpt1b_origin.json"
--model_path="luodian/OTTER-MPT1B-RPJama-Init" \
--precision="bf16" \
--batch_size=1 \
--eval_coco \
--device="cuda" \
--coco_train_image_dir_path "/path/to/images/train2014" \
--coco_val_image_dir_path "/path/to/coco/images/val2014" \
--coco_karpathy_json_path "/path/to/dataset_coco.json" \
--coco_annotations_json_path "/path/to/captions_val2014.json" \

`
Above shell script is used for running evaluation on COCO dataset with the pre-trained Otter 1b model. However, this evaluation result returns a 0 CIDEr store for all few-shots tests.
Magically, after I include the below argument in the run script, the evaluation returns a normal number for all tests.
`--checkpoint_path="path/to/checkpoint/OTTER-MPT1B-RPJama-Init/final_weights.pt'
Where the pt file here is a model fine-tuned by myself.
It seems like the model didn't properly loaded the pre-trained weights? That's why when my personalized ckpt file was loaded, it can return  the results.
Could you help loacte the problem, which part of the code could possibly be blamed of this bug? Thank you!

hi the MPT1B-init is only for init to train Otter-MPT-1B model. It’s not being trained and directly migrated from OpenFlamingo-1B, but with added special tokens. So evaluating this weight may not be suitable. could you try MPT7B version?
Best Regards,
Bo
On 1 Nov 2023 at 11:32 +0800, Thedatababbler @.***>, wrote:

Hi,
I used the evaluate.py file in the pipeline to evaluate my models. To make sure this evaluation can run on my single GPU node, I made some minor changes on the code for initialization of multi-gpu environments and remained other thing the same. The modified shell script is like the following:
#!/bin/bash export CUDA_VISIBLE_DEVICES="0" export MASTER_ADDR="localhost" export MASTER_PORT="29501" export WORLD_SIZE=4 export RANK=0 cd /path/to/Otter realpath . python -m pipeline.eval.evaluate --model=otter --results_file="OTTER_mpt1b_origin.json" --model_path="luodian/OTTER-MPT1B-RPJama-Init" \ --precision="bf16" \ --batch_size=1 \ --eval_coco \ --device="cuda" \ --coco_train_image_dir_path "/path/to/images/train2014" \ --coco_val_image_dir_path "/path/to/coco/images/val2014" \ --coco_karpathy_json_path "/path/to/dataset_coco.json" \ --coco_annotations_json_path "/path/to/captions_val2014.json" \
Above shell script is used for running evaluation on COCO dataset with the pre-trained Otter 1b model. However, this evaluation result returns a 0 CIDEr store for all few-shots tests.
Magically, after I include the below argument in the run script, the evaluation returns a normal number for all tests.
`--checkpoint_path="path/to/checkpoint/OTTER-MPT1B-RPJama-Init/final_weights.pt'
Where the pt file here is a model fine-tuned by myself.
It seems like the model didn't properly loaded the pre-trained weights? That's why when my personalized ckpt file was loaded, it can return the results.
Could you help loacte the problem, which part of the code could possibly be blamed of this bug? Thank you!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

I tried to use "luodian/OTTER-Image-MPT7B" to replace the "luodian/OTTER_MPT1B_RPJama-Init" for the --model_path argument and the evaluation again. The CIDEr score is still 0.0 for all shots. It's really weird. What did I do wrong?

@pufanyi Could Fanyi take a look at this issue, I thought we did the OTTER-MPT7B evaluation and report good numbers on COCO.


Stop file duplication

The tests should clone the github repo (via https or something)
See if there's a way to delete the .git (ie. make it so it's just a bare repo maybe --bare.
Then add mve to PYTHONPATH for all pytests.

.vscode can also be fixed to refer to just the one download location for mve

Closed see #20


INTPYTHON-309 & INTPYTHON-417 Use new cluster and schedule on interval

Also resolves INTPYTHON-313 by adding support for docarray on local Atlas.

Before merging, we need to update the Evergreen project config to only run the local variants on pull requests.


Add a new tab to search builtins/lib/nixpkgs.lib

Hi,
There's a discussion going on in #nixos-chat about documentation, and specifically function documentation.
I also have found myself feeling a bit lost on the manual pages, despite spending plenty of time there.
It would be great if there was a tab where we could also search/filter through library functions for builtins, nix lib, nixpkgs lib.
cc: @samueldr

Noting that I thought it would be nice, with something like this - https://sm.alliedmods.net/api/ :)

I agree this would be nice and will eventually be sorted out, just not in next few weeks.
As flakes will become a more common thing we will also have to adjust how we search for things. Idea is that flakes will export documentation which we will indexed and then search over. builtins and nixpkgs.lib need to be then documented as any other part of nix ecosystem. Some work towards documenting this already started in markdown branch in nix.
I'll be closing this issues since we plan solve this, but only once things are documented first and exposed via flakes.

I just came to the same idea, did an issue search and found this issue.
I'm new to nix and had this issue: https://discourse.nixos.org/t/how-to-add-optional-listitem/14701
I knew there would be something, I just didn't know where to find it.
After google/ddg/reddit/..
After looking trough many peoples configs, I decides to look for where the functions were described.
It turned out to be: nixpkgs/lib.
I hope my newbie insights help.
I hope I won't have these insights for much longer...
Thanks for nixos-search, it's really useful.


fix: fixed visibility of LazyInit methods

The visibility of the two methods in AbstractLazyInitializer were simply wrong:

initialize(): Should be protected as it is only intended for sub classes to override if needed.
get(): Should be public as it is intended for consumers to use to get an instance of the heavy-weight object.

Closing in favor of #486


Add support for ntp server configuration from dhcp

BurmillaOS Version: (ros os version)
v1.9.6
If you are using dhcp, it is quite common to also send a ntp_servers option (42) with the dhcp response.
But currently the dhcpcd don't even request the ntp_servers option (it is commented out):
$ sudo system-docker exec network grep ntp /etc/dhcpcd.conf
#option ntp_servers

It would be great if configuring ntp servers from dhcp could be implemented.

We use https://github.com/NetworkConfiguration/dhcpcd inside of network system container this feature would need to be implemented in there.

Actually it is there, but you have to provide a hook, see: https://github.com/NetworkConfiguration/dhcpcd/blob/master/hooks/50-ntp.conf

Ah, but that is not enough because ntp client is running on different container. If you want to use custom NTP you need to configure those with cloud-init like this https://burmillaos.org/docs/configuration/advanced/write-files/#writing-files-in-specific-system-services

Using cloud-init would make our deployment over complicated, because we have isolated networks, which all have their own ntp server. So I would need to create a cloud-init for each network and let our deployment pick the right cloud-init for the new host.
Maybe for the future it makes sense to put the ntp client inside the network container, as this is also a network service, and would make it possible to distribute the ntp server by dhcp.

Using cloud-init would make our deployment over complicated, because we have isolated networks, which all have their own ntp server. So I would need to create a cloud-init for each network and let our deployment pick the right cloud-init for the new host.

What is purpose to use so overly complicated ntp server setup?

Maybe for the future it makes sense to put the ntp client inside the network container, as this is also a network service, and would make it possible to distribute the ntp server by dhcp.

In general best practice is have just one process per containers so this would need process which can handle both dhcp client and ntp client.
Anyway, if this is critical for you then perhaps you can try what happens when you enable option ntp_servers in /etc/dhcpcd.conf? (which you can also do by utilizing write_files in cloud-init.
Where dhcpcd will write that information about ntp servers and it ntp client able read it then?
Both network and ntp system containers can see same file system so in theory it might work with that one.
If you can proof that it works then perhaps we can fix it to v2.0.0 release version. Now when I'm looking there looks to be bug somewhere on build process anyway because on template config that option is actually already enabled:
https://github.com/burmilla/os/blob/615b3d4f7c4710580ba689e515082baa132548ea/images/01-base/etc/dhcpcd.conf.tpl#L29-L30

I have enabled option ntp_servers in /etc/dhcpcd.conf of the network container, restarted the container and run:
$ sudo system-docker exec network dhcpcd -MA4 -U eth0 | grep ntp
ntp_servers=x.x.x.x

So yes there is the dhcp provided ntp server.

Now when I'm looking there looks to be bug somewhere on build process anyway because on template config that option is actually already enabled

The dhcpcd template is only used when there are WifiNetworks configured:
https://github.com/burmilla/os/blob/615b3d4f7c4710580ba689e515082baa132548ea/cmd/network/network.go#L68-L71
So dhcpcd configuration changes must go in the template and must be inline changed in the Dockerfile:
https://github.com/burmilla/os/blob/615b3d4f7c4710580ba689e515082baa132548ea/images/01-base/Dockerfile#L36-L37
And the inline change to remove the # from option ntp_servers is currently missing.
Maybe it is better to always use the template, regardless if WifiNetworks are configured or not, to manage the configuration only in one place.

Included to v2.0.0

@olljanat actually this is not working in v2 because you just implemented requesting ntp_servers from dhcp, but not the hook mentioned in https://github.com/burmilla/os/issues/158#issuecomment-1618858605 to update the /etc/ntp.conf.

I don't fully follow what is actually needed. Please, create pull request with valid logic.

dhcpcd don't automatically modifies /etc/ntp.conf by default.
You need to place hook https://github.com/NetworkConfiguration/dhcpcd/blob/master/hooks/50-ntp.conf in the network container in /lib/dhcpcd/dhcpcd-hooks to let dhcpcd update /etc/ntp.conf.

Sadyl I'm not familiar with the build process, so I don't know what to to to get the new hook file in the network container.

Those are part of base image defined in these files. Can be tested with normal Docker build + run https://github.com/burmilla/os/tree/master/images/01-base

OK so this should works in way that dhcpcd would need to generate ntp.conf.
Challenge however is that it run in network container and but config is needed to ntp container.
So this would need bigger refactoring where ntp.conf is moved our from there and that is potentially breaking change for those who are using this method: https://burmillaos.org/docs/configuration/advanced/write-files/#writing-files-in-specific-system-services
So will close this one now...


[codesandbox] bug template not working

Describe the bug
We are aware of some recent issues with the codesandbox we use for bug reports. It fails to fetch dependencies. I reported the issue to codesandbox, https://github.com/codesandbox/codesandbox-client/issues/3748.
I've opened this issue to track the progress of the resolution of the problem. I'm not sure if there will be any actionable items beyond reporting the issue to codesandbox.
Internal issue #344
To Reproduce
Steps to reproduce the behavior:

Go to this test sandbox and/or the sandbox we include in our bug issue template: https://codesandbox.io/s/codesandbox-yxbkg
Deps fail to fetch

Expected behavior
Codesandbox loads without issue. I confirmed with a similar addons library that the issue is somehow isolated to our package: The ibm-security sandbox works fine.
Additional context
Worth mentioning that I previously saw a different error regarding the size of dependencies being too big for codesandbox, though a create-iot-react-app boilerplate including node_modules is ~350MB and codesandbox has a limit of 1GB per sandbox.
@davidicus I wonder if this could be related to #1011 🤔 I'll test with the version published from #1036 once it is merged.

The CORS issue was a problem on codesandbox's side and should be resolved.
In versions of our library before 2.60.0 we were depending on @carbon/charts, which listed carbon-components as a hard dep, which lists carbon-icons as a hard dep.
Through this chain we were effectively bringing in carbon-components twice. This was fixed when we updated the @carbon/charts version from ^0.29.0 to ^0.30.5 in https://github.com/IBM/carbon-addons-iot-react/pull/1049 (thanks @sstone2423!)
The issue on codesandbox is open at this time as they still see an out-of-disk-space error and intend to further harden the installation of deps in cases like this. In the meantime, codesandbox is working with versions >=2.60.0
To close this issue:

Add an example app to to repo to be used in codesandbox (so we can more reliably control the source of our codesandbox templates)
Update the bug issue template to use this new codesandbox pointing to latest of carbon-addons-iot-react

:tada: This issue has been resolved in version 2.64.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


using local fonts instead of google fonts

Hi, thanks a lot for your contributions for es development.
I found ESDoc trying to load fonts from Google Fonts at startup. This making it's very slow when we access the docs in the isolated local network without Internet connections.
Is there a configuration can tell ESDoc to load fonts in the local environment?

I think you can do this with the style plugin: https://github.com/esdoc/esdoc-plugins/tree/master/esdoc-inject-style-plugin - as you can change the html css to use a different font, so when the browser loads up it can skip the google font load (if browser supports it, it might still try to load it and then throw it away)
One idea I have is to add a feature to drop-in replace the css with your own, similar to how jsdoc does.


Netplay command line arg support

Hey, would be nice to have support for Netplay using command line arguments.
something like:
--host <IP_ADDRESS>:23513
--join <IP_ADDRESS>:23513
(Also level selection argument, if it doesn't exist yet).
Disclaimer:
I'm the author of NukemNet, and I wish to add support for your source port.

also would need --profile  to set your name correctly

This has been added, though not for the names and such yet.
Hosting would look something like
--port 27100 --maxclients 8 --host
and joining would look something like
--connect <IP_ADDRESS>:27015
By default this will skip the file select screen at the start of the game and select the first file there, but you can override that with --profile N.

perhaps a separate netplay ini(which will be used by a future headless dedicated server) that has all these settings in it as well, overridden by the command line

Implemented a server query protocol as well, might be of interest to anyone developing any sort of server browser tool.


Non-matching vc_paths included in the matches array returned by selectFrom for pick requirements

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

Summary

When credentials are selected with PEX.selectFrom, with a presentationDefinition with one pick submission requirement where each input_descriptor in the from group is satisfied by a different credential, selectFrom returns an object with a matches array containing only 1 element with the name of the last input_descriptor, and the vc_path of every credential that matches each input_descriptor (not just the last one), so the name of srm ends up not corresponding to every credential under each vc_path in the srm.
This issue means that, if the first "matching" verifiableCredential is used to submit a presentation, the credential used for submission does not match the requirements of the input_descriptor, so a Could not get evaluation results from presentationResult error is thrown after PEX.evaluatePresentation fails to produce an object with a value property.

Other information

I'd expect the matches array returned by selectFrom to contain 1 element per input_descriptor with a match, with each element having the name of the input_descriptor it's describing a match for, and only the vc_path of the credential(s) that match that input_descriptor.
Here's a more thorough explanation of the issue from our perspective:

A presentation request is made to our digital wallet (which is essentially a Credo holder agent, holding exclusively SD-JWT VCs, where presentation is performed using OID4VP). The presentation definition for this request is as follows:

{
  id: `OverAgeCheck`,
  purpose: 'Age check',
  submission_requirements: [
    {
      name: 'Proof of age and photo',
      rule: 'pick',
      count: 1,
      from: 'validAgeCheckInputDescriptor'
    }
  ],
  input_descriptors: [
    {
      name: 'ID date of birth and photo',
      id: 'IDDoB',
      group: ['validAgeCheckInputDescriptor'],
      constraints: {
        limit_disclosure: 'required',
        fields: [
          {
            path: ['$.vc.type.*', '$.vct', '$.type'],
            filter: {
              type: 'string',
              const: 'ID'
            }
          },
          {
            path: ['$.Photo']
          },
          {
            path: ['$.BirthDate']
          }
        ]
      }
    },
    {
      name: 'Driving licence date of birth and photo',
      id: 'DrivingLicenceDoB',
      group: ['validAgeCheckInputDescriptor'],
      constraints: {
        limit_disclosure: 'required',
        fields: [
          {
            path: ['$.vc.type.*', '$.vct', '$.type'],
            filter: {
              type: 'string',
              const: 'DRIVING_LICENCE'
            }
          },
          {
            path: ['$.Driver_Photo']
          },
          {
            path: ['$.Driver_Dob']
          }
        ]
      }
    }
  ]
}

Basically, we're trying to verify the age of the wallet holder, and we'll accept relevant data from either an ID credential or a Driving Licence

The wallet holds an ID, so it can meet the requirements of the IDDoB input_descriptor, and it also holds a Driving Licence, so it can also meet the requirements of the DrivingLicenceDoB input_descriptor
However, when the presentation request is resolved, we see that resolvedPresentationRequest.presentationExchange.credentialsForRequest.requirements[0].submissionEntry array contains one object, with an inputDescriptorId of DrivingLicenceDoB, but a verifiableCredentials array that contains both the ID credential as well as the Driving Licence, which doesn't align with the more specific inputDescriptorID.
The wallet automatically selects the first entry in the verifiableCredentials array to use for the submission. If the first entry is the ID credential, and we attempt to call the Credo holder agent's acceptSiopAuthorizationRequest method with it, we get the Could not get evaluation results from presentationResult error from PEX, so the request cannot be accepted, because an ID can't be used to satisfy a DrivingLicenceDoB input.

In the above scenario, submissionEntry.verifiableCredentials is built by:

Finding the correct match from the matches array returned by PEX.selectFrom for a given input_descriptor based on said input_descriptor's name, or id if it had no name.
Finding each matching verifiableCredential in the verifiableCredential array returned by PEX.selectFrom based on the vc_paths in the match for this input_descriptor

Possibly relevant links to code:

Credo -> PEX.selectFrom during presentation request resolution
mapMatchingDescriptors, which appears to be where we go from multiple input_descriptors with a matching credential for each to one srm with the name of 1 input_descriptor but including the vc_paths of all matching credentials for all input_descriptors, so I think this is where a fix could be applied (but I'm not familiar enough with the codebase to know with any certainty)
Credo's getSubmissionForInputDescriptor, where submissionEntry.verifiableCredentials is generated using the results of PEX.selectFrom

Happy to try and provide more info/apply any changes.
For now, we have a workaround where the wallet always selects the last element in submissionEntry.verifiableCredentials for use in a submission, instead of the first, but this isn't a true solution given the presence of the underlying problem.
@TimoGlastra tagging you after our chat about this this morning

Quick update - the simple workaround turned out to be flawed. I've now patched the package, updating EvaluationClientWrapper.mapMatchingDescriptors like so:
/*
   * Rough fix for #161
   * - If the submission requirement requires credentials to be picked from one/many input descriptors
   * - Build an array of srms, one per input descriptor with a matching marked credential.
   * - If multiple marked credentials match the same input descriptor, each of their vc_paths are added to the srm.
   * - Return the first srm in the array - this works for my use case (pick 1 input descriptor in a group), but seems like a patchy/hacky fix, and likely won't work in more complex scenarios.
   */
  private mapMatchingDescriptors(
    pd: IInternalPresentationDefinition,
    sr: SubmissionRequirement,
    marked: HandlerCheckResult[],
  ): SubmissionRequirementMatch {
    const srm: Partial<SubmissionRequirementMatch> = { rule: sr.rule, vc_path: [] };
    if (sr?.from) {
      // Set up an array of srms for all matches - 1 srm per input descriptor with matching credentials
      const srms: Partial<SubmissionRequirementMatch>[] = [];

      for (const m of marked) {
        // Get the full input descriptor that this marked cred is a valid input for
        const inDesc: InputDescriptorV2 = jp.query(pd, m.input_descriptor_path)[0];

        // Check that this input descriptor's group matches the group that the submission requirement requires
        if (inDesc.group && inDesc.group.indexOf(sr.from) === -1) {
          continue;
        }

        // If we already have an SRM for this inputDesc, add this match to it
        const srmNames = srms.map((srm) => srm.name);
        if (srmNames.indexOf(inDesc.name) === -1 && srmNames.indexOf(inDesc.id) === -1) {
          srms.push({ from: sr.from, name: inDesc.name || inDesc.id, rule: sr.rule, vc_path: [] });
        }

        const matchingSrm = srms.find((srm) => srm.name === inDesc.name || srm.name === inDesc.id);
        if (!matchingSrm) {
          continue;
        }

        if (m.payload.group.includes(sr.from)) {
          if (matchingSrm.vc_path?.indexOf(m.verifiable_credential_path) === -1) {
            matchingSrm.vc_path!.push(m.verifiable_credential_path);
          }
        }
      }
      return srms[0] as SubmissionRequirementMatch;
    }
    return srm as SubmissionRequirementMatch;
  }

As mentioned in the comment, this seems to work for me (and all unit tests still pass if I apply these changes in the actual lib), but the end user would lose the ability to pick the submission themselves as only one match is returned. It also likely wouldn't work for submissions that require a user to pick more than one entry for a group.
Keen to get thoughts on those with more familiarity with this codebase.

I can spend time on a fix for it, but my understanding of these lower level components is a bit limited. Maybe if @nklomp can chime in on the findings to confirm whether it is correct that all matches will have the same input descriptor, and what the desired outcome should be?

I've done some more research into this, and I think PEX actually returns the correct results here. There are two problems however:

Credo uses the name property to match the select result to the input descriptor. However in the case of submission requirement, we should look at the from property and extract the group name of the submission requirement. So it does return both credentials, but that means because it is returning a match for the submission requirement (which is pick one credential from this group ,and both input descriptors match this group).

PEX returns a name of one of the input_descriptors. But in the case of a match for a submission requirement, i think it should return the name of the submission_requirement instead. In addition, and this is something we should fix in PEX, the match only returns the name property. But I think it should also return a type (SubmissionRequirement or InputDescriptor) and an id (the input descriptor id, or the submission requirement index). This way it will be possible to deterministicly match the results back to the presentation definition. I have opened an issue for this a while ago #116)

So we can solve this on the Credo layer, but to properly fix it in Credo, we need to address #116 first. I'll take a look at that now, as if we already have the name it should be quite straightforwrad to also add the id.


Cannot access 'K' before initialization

when I am using the Carousel component it throws error:

facing this problem

same


Fix JSONata in file nodes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes
Generating a file path using the JSONata in the file node doesn't work in the Node-RED 3.1.0-beta.3.
I have tried to fix it in this pull request.
Checklist

[x] I have read the contribution guidelines
[ ] For non-bugfix PRs, I have discussed this change on the forum/slack team.
[x] I have run grunt to verify the unit tests pass
[x] I have added suitable unit tests to cover the new/changed functionality

@Steve-Mcl @knolleary Thank you. I will use the Node-RED v3.1.0-beta.4. :)


Include/Exclude Apps List

Some apps don't work while Yggdrasil is enabled. Including/Excluding apps from Yggdrasil is a good solution, right?

I see that it's unusual for apps to not have internet connectivity, so I decided to close this.

Some apps don't work while Yggdrasil is enabled. Including/Excluding apps from Yggdrasil is a good solution, right?

@styromaniac What do you mean by including/excluding apps? It doesn't intersects with the regular Internet IP range, and you can browse the Internet while running Yggdrasil daemon. Can you give some example when it interfere with specific apps?

Yes. MeWe is affected. Post content doesn't load with Yggdrasil enabled.

Every app seems to work if IPv6 is supported by the ISP. An IPv4-only ISP may reveal the issue to you.

Apparently I didn't have an IPv6 address by the ISP for a moment and I couldn't speed test with Yggdrasil enabled.

Yggdrasil doesn't require IPv6 support by ISP.

Yggdrasil doesn't require IPv6 support by ISP.

I know that should be, but I'm seeing these apps and then some only performing on Verizon and not on MIcom whine Yggdrasil is enabled.

Yggdrasil doesn't require IPv6 support by ISP.

I know that should be, but I'm seeing these apps and then some only performing on Verizon and not on MIcom while Yggdrasil is enabled.
I hadn't thought to test with an AT&T hotspot yet, but they have IPv6 support, so I'm expecting all applications to work.

I have ISP which doesn't support IPv6, and all apps work correctly.

Yggdrasil doesn't require IPv6 support by ISP.

I know that should be, but I'm seeing these apps and then some only performing on Verizon and not on MIcom while Yggdrasil is enabled.
I hadn't thought to test with an AT&T hotspot yet, but they have IPv6 support, so I'm expecting all applications to work.

I have ISP which doesn't support IPv6, and all apps work correctly.

The apps I had issues with?

You're right. It has to be something else. Charter is Ipv4-only and it's working with Yggdrasil.

We can implement that feature by VPNService.Builder.addDisallowedApplication method.

https://github.com/yggdrasil-network/yggdrasil-android/issues/34

https://github.com/yggdrasil-network/yggdrasil-android/issues/34


Accept key value array as Select Options

I would like to have the possibility to pass an key value array as options params on select like this
[
   1 => "name1" ,
   2 => "name2" ,
]

So without
option-label="name"
option-value="id"

Maybe option-key-label option-key-value as boolean prop
What do you think about this?

I think is better if the default (without passing option-label and option-value) work with an key value arrya.
If you specify option-label and option-value work like now.

You talk about defaulting to key as value?
$array = [
   1 => "name1" ,
   2 => "name2" ,
];

the value is 1 and 2, the label is name1 and name2

Yes

It will break if pass an array of values, like $array = ['Active', 'Pending', 'Stuck', 'Done'], the value will be 0,1,2... and not Active, Pending...

I believe a prop to define this would be good

You are the magician :)
what did you think about option-key-label option-key-value as boolean prop?

I believe it can be a way, I am open to suggestions. I'm still thinking about it

@trippo it is now released
You can use option-key-label or option-key-value

Work like a charme


BOT-1471 Auto-Load Extensions from ZIP-File

I would prefer to do it the other way round - only accepting files with .js extension and directories - all others are ignored.

Fixed


Support For Providing Namespace at Run Time

Can we have support for providing the namespace at runtime, instead of hardcoding it on our beans, [I also don't want to provide it in env variables or system properties], I have some multitenancy use cases, where on run time, I will be deciding based on some parameters, which namespace to use .
Maybe an interface called NamespaceResolver, which has the default impl as the current one, and we can easily override the interface and provide the name space accordingly.?
So we will also need the ability to set it, maybe we can do that in while creating AeroMapper ?
Ans set it in ClassCacheEntry as well.
and change the getNamespace methods implementation to use NamespaceResover?

Hi @Agrawalmahin, we see interest in being able to provide a dynamic namespace for beans. We will look into supporting this in future releases.

Hey any updates on this?
by when this would be supported or is this in progress?

@Agrawalmahin, no estimations at the moment.

This has been implemented using external configuration. Any namespace specified in the external configuration or the code version of the external configuration file (AeroMapper.Builder.withClassConfigurations for example) will override any annotation provided, including the namespace.


Error with Environment Secrets.

This worked before, but now I get always an error. I try several setups.
The error:
Error: Unexpected error when running action. Error Message: No Authentication Context found for environment (XPR365-QA). You must create an environment secret called AUTHCONTEXT or a repository secret called XPR365-QA_AUTHCONTEXT., StackTrace: at , D:\a_actions\microsoft\AL-Go-Actions\v4.0\Deploy\Deploy.ps1: line 53 <- at , D:\a_temp\3df304d4-83df-40d9-b678-0be7ec4ca62c.ps1: line 4 <- at , : line 1
But if we try to create a reposotory secret with the name XPR365-QA_AUTHCONTEXT, we get the next error from GitHub:
Failed to add secret. Secret names can only contain alphanumeric characters ([a-z], [A-Z], [0-9]) or underscores (). Spaces are not allowed. Must start with a letter ([a-z], [A-Z]) or underscores ().

If you are using GitHub environments, you can create the authcontext secret under the environment as an environment secret called AUTHCONTEXT (without the prefix).
If you are setting up environments in settings, you should create the environment as XPR365QA and then use
"DeployToXPR365QA": {
    "EnvironmentName": "XPR365-QA"
}

And then create the secret called XPR365QA_AUTHCONTEXT

What is supposed to go into the secret exactly?  I'm running into this as well and I don't understand what is supposed to be the value of that secret.

An accesstoken has a validity period of ~60 minutes. Adding that as a secret would require you to modify that with every deployment.
You can find the format of the authcontext secret used for deployment here:
https://github.com/microsoft/AL-Go/blob/main/Workshop/ContinuousDeployment.md
or
https://github.com/microsoft/AL-Go/blob/main/Scenarios/RegisterSandboxEnvironment.md

Thank you so much, that helps immensely.  This is my first time trying to set all this up for an OnPrem project and it's a lot to absorb in a short period.


install: don't delete the 'aws-node' DaemonSet

Instead of deleting the aws-node DaemonSet, which is permanent, we can be gentler and just evict its pods by setting a node selector that won't ever be matched (unless someone wants it to by explicitly setting the required label on a node).
This allows cilium uninstall to gracefully revert the aws-node DaemonSet to its previous state, as it might contain customizations that would otherwise be lost.

Hi @bmcustodio. Could you please rebase the PR branch against latest master? This should hopefully get rid of most of the test flakes.
Also there's a review remark from @pchaigno which you might want to address, if feasible?

@tklauser @pchaigno sorry for totally missing this review 🤦🏼 I've added said check and rebased!

For some reason the GitHub actions weren't triggered when you pushed a new version. I'll close and re-open the PR hoping that this will trigger the tests.

AKS failure is only due to the PR being opened from outside the cilium-cli repo. The code changes themselves only touch the EKS-specific jobs and codepaths so there should be no regression in the AKS job. Should be good to merge.


Emit freshnessLag metric from broker for queries hitting consuming segments

This is the next (mostly last) phase of the implementation phase for freshness metric discussed in #4007.
This change ties in the previous changes #4025, #3979 to emit a metric from the broker. See issue and corresponding design doc for more details.
A change from #3979 is to use -1 as the invalid value instead of long MIN/MAX values to keep logging simpler.
Testing done:

Instrumented internal kafka stream implementation to include ingestion time in RowMetadata.
Verified the logging for cases where there was no delay; also manually induced delay in consumption across segments and verified that the logging and metric reported the right values.

Codecov Report

Merging #4229 into master will decrease coverage by 0.09%.
The diff coverage is 94.44%.

@@             Coverage Diff             @@
##             master    #4229     +/-   ##
===========================================
- Coverage     67.46%   67.37%   -0.1%
  Complexity       20       20
===========================================
  Files          1041     1041
  Lines         51482    51474      -8
  Branches       7207     7210      +3
===========================================
- Hits          34734    34680     -54
- Misses        14370    14435     +65
+ Partials       2378     2359     -19

Impacted Files
Coverage Δ
Complexity Δ

...t/common/response/broker/BrokerResponseNative.java
91.3% <ø> (ø)
0 <0> (ø)
:arrow_down:

...a/org/apache/pinot/common/metrics/BrokerTimer.java
90% <100%> (+1.11%)
0 <0> (ø)
:arrow_down:

...che/pinot/core/query/scheduler/QueryScheduler.java
78.78% <100%> (+1.12%)
0 <0> (ø)
:arrow_down:

...core/query/executor/ServerQueryExecutorV1Impl.java
81.37% <100%> (-0.69%)
0 <0> (ø)

...roker/requesthandler/BaseBrokerRequestHandler.java
77.21% <100%> (+0.09%)
0 <0> (ø)
:arrow_down:

...e/pinot/core/query/reduce/BrokerReduceService.java
80.15% <83.33%> (+0.45%)
0 <0> (ø)
:arrow_down:

...a/manager/realtime/RealtimeSegmentDataManager.java
50% <0%> (-50%)
0% <0%> (ø)

...ller/validation/OfflineSegmentIntervalChecker.java
29.87% <0%> (-41.56%)
0% <0%> (ø)

...apache/pinot/common/metrics/ValidationMetrics.java
43.47% <0%> (-36.24%)
0% <0%> (ø)

...er/validation/BrokerResourceValidationManager.java
25% <0%> (-25%)
0% <0%> (ø)

... and 34 more

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 866289c...704b346. Read the comment docs.


Disable unneeded Node exporter collectors

Disable Node exporter collectors which we don't need. The collectors, which stayed enabled are the ones, which have something to do with storage, memory, cpu or networking.
This sheet shows an example of metrics being collected before this PR, after this PR and it lists the collectors, which are still enabled: https://docs.google.com/spreadsheets/d/1URZdgTARLxoijSlV6RpEKhF8ANHTIx9kr06XWSSw2wM/edit#gid=0

/approve

/lgtm


Elasticsearch User Based Recommendation changes

Please review:
@mannyrivera2010
@skhtet
@J-Fid
@rkenyon1969
@blynch11p
The changes are for implementation for the Elasticsearch User Based Recommendation changes.  The changes also include changes from ozpcenter/api/storefront/model_access.py which are being reviewed by another PR #301.  If needed can remove the changes before merging, but needed to see changes in listings.
Note: The bookmarked listings do not get returned after running the make recommend command for Elasticsearch.  A similar feature can be added to all results if this is desired.
To test recommendations:
Download code
(optional) Clear ozpcenter_recommendentry database contents table using approved SQLite browser
Run: ES_ENABLED=True make recommend
(Command will run all recommendation engines.  If only elasticsearch is required, need to modify /ozp_backend/ozpcenter/scripts/recommend.py by removing the baseline and graph_cf engines when ES_ENABLED is True)
The result should show a difference in Recommendation listings.  To compare one can run without Elasticsearch by running:
make recommend
(Without the ES_ENABLED)

:+1:

@seenusuvarna - Fix Syntax after merging master into this branch

:+1:

Wondered if we could pull out the changes here:
ozpcenter/scripts/recommend.py
Then the code would only modify the database if the make recommend_es is run instead of make recommend command.  This will allow us to close out the issue and have the code available in the mainline and further development without falling further back from the mainline.
This way we could potentially test how differently the elasticsearch recommendation system is compared to the python based system.
Please comment on this approach?

:+1:

:+1:

Changed query to give more accurate results.  Confirmed with @mannyrivera2010  and @blynch11p  that the change was okay and will merge as soon as quality code check is completed.

:-1:    It seem like the merge from master was done incorrectly

Replacing PR with #314


Add Project Name & Role Tags to Volunteer Pop-up

Before:

After (just the content, don't follow the mock-up design):

[ ] Add project name that volunteer is volunteering for
[ ] Add 'skill-needed' tags

Please assign this to me.


🐛Bug: Selected tag stays selected after bluring input

Describe the bug
When I select a tag with arrow keys and then navigate away of it, via either keyboard or mouse, e.g. focus another element, the tag stays selected.
To Reproduce
Steps to reproduce the behavior:

Go to https://www.melt-ui.com/docs/builders/tags-input
Click on Tag Input
Select some tag with arrow keys
Use tab to focus next element
See the tag still being selected

Expected behavior
I'd expect the tag to be unselected after Tags Input loses focus, that's also the behavior that I observed in e.g. Zag.js
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: macOS 14.0 Beta
Browser: Safari
Version 17.0

Additional context
It seems to be unrelated to the specific system configuration, I've tested it with other devices and browsers and the issue persists

PR #124 is in the works. It fixes and many other issues as well as adds some features

PR #124 is in the works. It fixes and many other issues as well as adds some features
the newer version works more like the zag implementation :)

Ah, I've read the "documentation" part in PR title and skipped the rest, sorry 😄 I'm closing the issue then, thanks a lot! Awesome work 👏🏽


Can you release the library?

Hi,
I read your article:
https://medium.com/@pablo127/sending-emails-from-java-app-with-gmail-api-eac23ca0eb5
and I would like to know if you are going to release the library.
Is it possible if you follow SEMVER?
https://semver.org/
currently is:
version '1.0-SNAPSHOT'
but it should be: 1.0.0-SNAPSHOT.
https://jitpack.io/#pablo127/gmail-api-sample
Many thanks in advance.
Juan Antonio

Hello Juan,
It is really nice to hear that you've read my article.
It was not in my plans to release this project because it is a sample. I expect that you just copy paste the code and adjust it to your requirements.
The project follows SEMVER, I just assume that when there is no PATCH it is 0 as default. Probably you are right that it is not completely good approach so I change it. Spring core used to be like that but they changed and there is always PATCH part (http://mvnrepository.com/artifact/org.springframework/spring-core) right now.
Thank you for the issue. I hope I helped. If not, do not hesitate to write again.


Encryption problems

Hello. Thanks for teamcity reporter.
Have some encryption problems. Did you have any ideas, how to fix it?

Looks like a bug related to escaping unicode characters for Teamcity. It's weird that Teamcity is interpreting the escape character as a normal character. Could you try downgrading to version 0.1.6?


Additional property on context: User Yammer profile url

If tenant has Yammer enabled for this user can we have a flag and the url to their Yammer profile page.

This property winds up adding a measurable cost to every page, and will be used only slightly.  To get this property, you are better off making a profile call to fetch the needed properties.


Kickstart interstellar and legacy deployment changes

As requested by devOps:

[x] remove dockerhub manual webhook trigger
[x] replace tag name in deployment scripts from interstellar to staging

Done #513


Plugin stops working until you delete its data

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] support request

General infomration
The plugin stops working when it is not used and I need to remove its addon_data (I backup settings.xml and restore it afterwards), so it works again.
I can select the user, then I can (sometimes) select "my list", but when I then select a series, I get a "netflix error" message
Prerequisites

[x] Are you running the latest version?

Latest Version from the netflix repo
Description
[Description of the bug or feature]
Steps to Reproduce

Start the addon, select a user, select a series (probably select a list that is not cached
netflix error
delete addon data, reboot
It works (most the time) once, before you need to remove the data gain

Expected behavior: It should work
Actual behavior: It does not work
Context (Environment)
Libreelec on a Raspberry Pi 3
Installation

[ ] I installed the plugin via zip from the Releases page
[x] I´m using the Netflix Repo
[ ] I´m using a different source (Please tell which)

Operating System

[ ] Linux (x86/x64)
[ ] OSX (x86/x64)
[ ] Windows (x86/x64)
[x] Linux (ARM)
[ ] Android

Debug log
https://paste42.de/14509/
Other information
The addon does the log in again using settings.xml (and setds a "new login" mail). I am not 199% sure if the stored cookie may be stale, but I do not know why it should be no longer valid.

Here is your issue
                                          File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 1053, in call_netflix_service
                                            data = urllib2.urlopen(full_url).read()

modify "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py" line 1053
data = urllib2.urlopen(full_url, timeout = 60).read()
You have too many items on your list, or you have high latency or high response time on your Internet Connection, increasing the timeout or reducing the paging will solve the issue.
If you are not familiar with python or linux, try 0.14 beta from CastagnaIT fork

I will try, but I already increased the timeout some time ago, because I read something like this in another issue.
I am not sure if it was exactly this one, as I did a clean reinstall in the meantime.
I will report back when I tried it and it works or I got a new stacktrace.
Would it be the same error,when the cookie is invalid?
It could be that deleting the cookie file works as well (it is hard to tell what worked in the end, when testing involves deleting stuff and rebooting afterwards).

sometimes the cookie expired and you will get that behavior.

My problem is, that it seems to expire after a day.
The same account is used on a always connected fire stick, that uses another Netflix user of that account, with a plan that allows for two concurrent users.
Is there still something, that can cause the kodi cookie to be invalidated by the active fire stick?
Alex

just 1 tv account, but as I said, it is a timeout,  addding the timeout will solve it

I now got to use the kodi installation again, here is the log with the timeout parameter (failure after 1-2 seconds, almost instantly when selecting the correct netflix user)
2019-07-27 21:55:59.291 T:1276388208   ERROR: Traceback (most recent call last):
2019-07-27 21:55:59.291 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixHttpRequestHandler.py", line 50, in do_GET
2019-07-27 21:55:59.303 T:1276388208   ERROR:     result = getattr(self.server.res_handler, method)(params)
2019-07-27 21:55:59.303 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixHttpSubRessourceHandler.py", line 158, in fetch_video_list_ids
2019-07-27 21:55:59.316 T:1276388208   ERROR:     video_list_ids_raw = self.netflix_session.fetch_video_list_ids()
2019-07-27 21:55:59.317 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1404, in fetch_video_list_ids
2019-07-27 21:55:59.346 T:1276388208   ERROR:     response = self._path_request(paths=paths)
2019-07-27 21:55:59.346 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1698, in _path_request
2019-07-27 21:55:59.346 T:1276388208   ERROR:     data=data)
2019-07-27 21:55:59.346 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 2000, in _session_post
2019-07-27 21:55:59.347 T:1276388208   ERROR:     url = self._get_api_url_for(component=component)
2019-07-27 21:55:59.347 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1738, in _get_api_url_for
2019-07-27 21:55:59.347 T:1276388208   ERROR:     has_base_url = api_root.find(base_url) > -1
2019-07-27 21:55:59.347 T:1276388208   ERROR: TypeError: coercing to Unicode: need string or buffer, NoneType found
2019-07-27 21:55:59.412 T:1223930736   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'httplib.BadStatusLine'>
                                            Error Contents: ''
                                            Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.netflix/addon.py", line 33, in <module>
                                                NAVIGATION.router(paramstring=REQUEST_PARAMS)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 60, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 158, in router
                                                return self.show_video_lists(widget_display=widget_display)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 544, in show_video_lists
                                                'cache': True}))
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 1053, in call_netflix_service
                                                data = urllib2.urlopen(full_url, timeout=60).read()
                                              File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
                                              File "/usr/lib/python2.7/urllib2.py", line 429, in open
                                              File "/usr/lib/python2.7/urllib2.py", line 447, in _open
                                              File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
                                              File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
                                              File "/usr/lib/python2.7/urllib2.py", line 1201, in do_open
                                              File "/usr/lib/python2.7/httplib.py", line 1121, in getresponse
                                              File "/usr/lib/python2.7/httplib.py", line 438, in begin
                                              File "/usr/lib/python2.7/httplib.py", line 402, in _read_status
                                            BadStatusLine: ''
                                            -->End of Python script error report<--
2019-07-27 21:55:59.635 T:1223930736 WARNING: CPythonInvoker(7, /storage/.kodi/addons/plugin.video.netflix/addon.py): the python script "/storage/.kodi/addons/plugin.video.netflix/addon.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon9xbmcaddon5AddonE
2019-07-27 21:55:59.638 T:1799328624   ERROR: GetDirectory - Error getting plugin://plugin.video.netflix/?action=video_lists&profile_id=XXX
2019-07-27 21:55:59.669 T:1937051168   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/?action=video_lists&profile_id=XXX) failed


chore Don't print stack when invoking the storage manager

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Support new integer data type for line protocol

As influxdb now supports data type specification for integers, in order
to separate those values from float64, we have to handle this behavior.
This proposal is a very simple solution.
Related to issue #48.

A new inspection was created.

Do not merge, missing integration tests and validations

The inspection completed: 2 updated code elements

A new inspection was created.

The inspection completed: 2 updated code elements

A new inspection was created.

A new inspection was created.

A new inspection was created.

The inspection completed: 2 updated code elements

The inspection completed: 2 updated code elements

The inspection completed: 2 updated code elements

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

A new inspection was created.

The inspection completed: 2 new issues, 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements

A new inspection was created.

The inspection completed: 1 new issues, 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements

A new inspection was created.

The inspection completed: 4 updated code elements