Sample app crashes when Contact List Example clicked on Xperia X Performance

How to reproduce on Xperia X Performance:

Install the latest repo code.
Click "Contact List Example"
App crashes with the error below.

04-25 23:35:30.861 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@a748111
04-25 23:35:30.926 10895-10895/com.pchmn.sample.materialchipsinput I/Timeline: Timeline: Activity_launch_request id:com.pchmn.sample.materialchipsinput time:29040260
04-25 23:35:31.000 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@fe9ec7c
04-25 23:35:31.001 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@8fa905
04-25 23:35:31.051 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@a944526
04-25 23:35:31.051 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@f973567
04-25 23:35:31.055 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@82ef3bd
04-25 23:35:31.055 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@b6f8db2
04-25 23:35:31.079 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@557c103
04-25 23:35:31.079 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@e7e4880
04-25 23:35:31.317 10895-10895/com.pchmn.sample.materialchipsinput I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@f78e4e4 time:29040651
04-25 23:35:31.506 10895-10956/com.pchmn.sample.materialchipsinput D/OpenGLRenderer: endAllActiveAnimators on 0x7f88aaf000 (RippleDrawable) with handle 0x7f88ab1400
04-25 23:35:34.783 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@bdbe4d3
04-25 23:35:34.784 10895-10895/com.pchmn.sample.materialchipsinput V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@a8ae810
04-25 23:35:34.806 10895-10895/com.pchmn.sample.materialchipsinput W/System.err: io.reactivex.exceptions.OnErrorNotImplementedException
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:64)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmitScalar(ObservableFlatMap.java:234)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:146)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableBuffer$BufferExactObserver.onNext(ObservableBuffer.java:113)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)
04-25 23:35:34.807 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:112)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onNext(ObservableConcatMap.java:249)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:265)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:184)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:64)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:49)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.Activity.dispatchRequestPermissionsResultToFragment(Activity.java:7120)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.Activity.dispatchActivityResult(Activity.java:6966)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.ActivityThread.deliverResults(ActivityThread.java:4162)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.ActivityThread.handleSendResult(ActivityThread.java:4209)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.ActivityThread.-wrap20(ActivityThread.java)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1571)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.os.Looper.loop(Looper.java:241)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6223)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
04-25 23:35:34.808 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err: Caused by: java.lang.NullPointerException
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.text.RuleBasedCollator.compare(RuleBasedCollator.java:356)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.materialchips.adapter.FilterableAdapter$1.compare(FilterableAdapter.java:66)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.materialchips.adapter.FilterableAdapter$1.compare(FilterableAdapter.java:61)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.util.TimSort.sort(TimSort.java:230)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.util.Arrays.sort(Arrays.java:1523)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at java.util.Collections.sort(Collections.java:238)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.materialchips.adapter.FilterableAdapter.<init>(FilterableAdapter.java:61)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.materialchips.views.FilterableListView.build(FilterableListView.java:66)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.materialchips.ChipsInput.setFilterableList(ChipsInput.java:342)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.sample.materialchipsinput.ContactListActivity.getContactList(ContactListActivity.java:124)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.sample.materialchipsinput.ContactListActivity.lambda$onCreate$12(ContactListActivity.java:47)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.sample.materialchipsinput.ContactListActivity$$Lambda$1.accept(Unknown Source)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err:     at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:60)
04-25 23:35:34.809 10895-10895/com.pchmn.sample.materialchipsinput W/System.err: 	... 24 more
04-25 23:35:34.811 10895-10895/com.pchmn.sample.materialchipsinput E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.pchmn.sample.materialchipsinput, PID: 10895
                                                                                io.reactivex.exceptions.OnErrorNotImplementedException
                                                                                at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
                                                                                at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
                                                                                at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
                                                                                at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:64)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmitScalar(ObservableFlatMap.java:234)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:146)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)
                                                                                at io.reactivex.internal.operators.observable.ObservableBuffer$BufferExactObserver.onNext(ObservableBuffer.java:113)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)
                                                                                at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:112)
                                                                                at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onNext(ObservableConcatMap.java:249)
                                                                                at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:265)
                                                                                at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:184)
                                                                                at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:64)
                                                                                at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:49)
                                                                                at android.app.Activity.dispatchRequestPermissionsResultToFragment(Activity.java:7120)
                                                                                at android.app.Activity.dispatchActivityResult(Activity.java:6966)
                                                                                at android.app.ActivityThread.deliverResults(ActivityThread.java:4162)
                                                                                at android.app.ActivityThread.handleSendResult(ActivityThread.java:4209)
                                                                                at android.app.ActivityThread.-wrap20(ActivityThread.java)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1571)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                at android.os.Looper.loop(Looper.java:241)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:6223)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                                                                                Caused by: java.lang.NullPointerException
                                                                                at java.text.RuleBasedCollator.compare(RuleBasedCollator.java:356)
                                                                                at com.pchmn.materialchips.adapter.FilterableAdapter$1.compare(FilterableAdapter.java:66)
                                                                                at com.pchmn.materialchips.adapter.FilterableAdapter$1.compare(FilterableAdapter.java:61)
                                                                                at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
                                                                                at java.util.TimSort.sort(TimSort.java:230)
                                                                                at java.util.Arrays.sort(Arrays.java:1523)
                                                                                at java.util.Collections.sort(Collections.java:238)
                                                                                at com.pchmn.materialchips.adapter.FilterableAdapter.<init>(FilterableAdapter.java:61)
                                                                                at com.pchmn.materialchips.views.FilterableListView.build(FilterableListView.java:66)
                                                                                at com.pchmn.materialchips.ChipsInput.setFilterableList(ChipsInput.java:342)
                                                                                at com.pchmn.sample.materialchipsinput.ContactListActivity.getContactList(ContactListActivity.java:124)
                                                                                at com.pchmn.sample.materialchipsinput.ContactListActivity.lambda$onCreate$12(ContactListActivity.java:47)
                                                                                at com.pchmn.sample.materialchipsinput.ContactListActivity$$Lambda$1.accept(Unknown Source)
                                                                                at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:60)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmitScalar(ObservableFlatMap.java:234)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:146)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)
                                                                                at io.reactivex.internal.operators.observable.ObservableBuffer$BufferExactObserver.onNext(ObservableBuffer.java:113)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)
                                                                                at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)
                                                                                at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:112)
                                                                                at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onNext(ObservableConcatMap.java:249)
                                                                                at io.reactivex.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:265)
                                                                                at io.reactivex.subjects.PublishSubject.onNext(PublishSubject.java:184)
                                                                                at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:64)
                                                                                at com.tbruyelle.rxpermissions2.RxPermissionsFragment.onRequestPermissionsResult(RxPermissionsFragment.java:49)
                                                                                at android.app.Activity.dispatchRequestPermissionsResultToFragment(Activity.java:7120)
                                                                                at android.app.Activity.dispatchActivityResult(Activity.java:6966)
                                                                                at android.app.ActivityThread.deliverResults(ActivityThread.java:4162)
                                                                                at android.app.ActivityThread.handleSendResult(ActivityThread.java:4209)
                                                                                at android.app.ActivityThread.-wrap20(ActivityThread.java)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1571)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                at android.os.Looper.loop(Looper.java:241)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:6223)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Could React Java be causing a problem here? I am testing on a Sony Xperia X Performance with Android Nougat. The library seems to work fine in the emulators. What could the problem be on my Android device?

The earliest error occurs at Line 45 in ContactListActivity.java.
Error:

04-25 23:44:55.373 14712-14712/com.pchmn.sample.materialchipsinput W/System.err:     at com.pchmn.sample.materialchipsinput.ContactListActivity.onCreate(ContactListActivity.java:45)

Code:
        // get contact list
        new RxPermissions(this)
                .request(Manifest.permission.READ_CONTACTS)
                .subscribe(granted -> {
                    if(granted && mContactList.size() == 0)
                        getContactList();
                });

I didn't specify an onError handler, and I think that's why the exception occurred.
Please test this new sample apk with the fix, and tell me if it works :
https://github.com/pchmn/MaterialChipsInput/raw/master/docs/material-chips-input-sample-v1.0.4_2.apk

The problem still persists with the same error log. What is RXPermissions? I have never seen it before and I don't know what it does.

RxPermissions is a RxJava library for Android M runtime permissions. Here it is used to get read coacts permission.
So I looked at the logs you put, and the error is apparently caused by the fact that the contact list is null, but it seems weird.
It's difficult to debug without your phone haha. Test this apk and tell me if you saw a toast message :
https://github.com/pchmn/MaterialChipsInput/raw/dev/docs/material-chips-input-sample-v1.0.4_3.apk

Sorry, there is no toast message before the app crashes. This is really weird, why would the app crash after requesting permissions? Only after permissions are granted does the app fail. If permissions are not granted, the app fails only after the "Enter a name" box loses focus. If permissions are granted, clicking on
"Contact List Example" fails immediately.
Don't worry about it too much. Please only make it an issue if someelse reports this behavior too! Thanks for trying to debug this issue.

Yes it's weird, maybe it is because of RxPermissions library. I will try to use the "normal way" of asking permission to see if it works better.
You don't have any issues on other apps with your Xperia ?

Not so far. My old development device bootlooped and this new phone isn't even a week old. All my apps are working correctly so far. I am not sure that requesting permissions than normally would solve the thought of it cuz the permission request dialogue appears correctly. Low priority issue until someone can confirm it's not specific to me. Very weird!

Ok we'll see if anyone else will have the same issue.

I have the same issue and Im on an Xperia Z3, same permissions issue being the problem

Ok so maybe the problem has to do with RxPermissions. I will make a sample app without this library and post the apk on this conversation. We'll see if it is better

I've traced it back to the FilterableAdapter constructor and the following code
Collections.sort(chipList, new Comparator<ChipInterface>() {
            @Override
            public int compare(ChipInterface o1, ChipInterface o2) {
                Collator collator = Collator.getInstance(Locale.getDefault()); // <-- here
                collator.setStrength(Collator.PRIMARY);
                return collator.compare(o1.getLabel(), o2.getLabel());
            }
        });

its iterates through many of my 300+ contacts then crashes on the line indicated by "here", hope this helps

Yeah ok thanks, maybe this is the sorting which is the responsible, and not RxPermissions haha. I don't know why I put the Collator inside the compare() function, it is recreated on each iteration, not very good.
This evening I will post an apk with the changes, hoping it will resolve the issue.

Not a problem ;)

Good to see that I'm not crazy :D

You're not crazy haha.
I made the changes, here is the apk.
Tell me if it works.

The app wouldn't install on my phone for some reason, did you just change the sorting code?

Yeah I think it's because I built the apk on a different computer, so the signed key of the apk is different. Please just uninstall the app from your phone, then install the apk I posted.

I did uninstall the original but it still failed

Well that's weird. And you can install previous apks without failing ? This is just the last apk that fails ?
Because yes I just changed the sorting code

I only ever built the app in android studio to my phone, never previously used the apk's

Yes but now I make my changes on a different branch before merge it to the master. And I suppose that you forked or cloned the master branch, so the changes are not effective.
Did you try to install directly the last apk I posted on this conversation ?

I haven't forked it, I will look for your changes and test that in a few moments, Yeah I tried your apk for the first time from this conversation.

Ok so it works with the full contact list to load the ContactActivity fast, but the moment I type a letter in it crashes due to null pointer
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
                                                                                at java.util.ArrayList.addAll(ArrayList.java:188)
                                                                                at com.pchmn.materialchips.adapter.FilterableAdapter$ChipFilter.publishResults(FilterableAdapter.java:242)

Ok I have 365 contacts in the list, when it gets to your sorting its crashing because its finding nulls in o1.getLabel(), o2.getLabel()
 mComparator = new Comparator<ChipInterface>() {
            @Override
            public int compare(ChipInterface o1, ChipInterface o2) {
                return mCollator.compare(o1.getLabel(), o2.getLabel());
            }
        };

So I ran the following code to eliminate the nulls just before the compare
List<ChipInterface> deleteCandidates = new ArrayList<>();

// Pass 1 - collect delete candidates
 for (ChipInterface chip : chipList) {
     if (chip.getLabel() == null) {
         deleteCandidates.add(chip);
     }
 }

 // Pass 2 - delete
 for (ChipInterface deleteCandidate : deleteCandidates) {
     chipList.remove(deleteCandidate);
 }

and it works as fully expected, turns out, when I go into my contact list on the phone, at the very bottom of the list there are several entries flagged as "unknown" which I cant delete for some reason but seems to be added by outlook app. Might be good to filter these out of the list anyway for others who have rogue apps messing with their contact lists lol

Ah great, that's why the app crashes, good job. I didn't know that's it possible to have a contact without a name !
I made the changes you suggest, and test it and it seems to work. If you could test this apk.
If it works we will be able to close this issue, finally !

its crashing with your loop, presumably missing one via index changes
int count = 0;
for(ChipInterface chipInterface: chipList) {
    if(chipInterface.getLabel() == null)
        chipList.remove(count);
    count++;
}

but works with this one
List<ChipInterface> deleteCandidates = new ArrayList<>();
for (ChipInterface chip : chipList) {
    if (chip.getLabel() == null) {
        deleteCandidates.add(chip);
    }
}
chipList.removeAll(deleteCandidates);

I saw the nulls are random in the list and in groups at places, so whether your loop is skipping over one somewhere when the indexes of them change when the first is removed I'm not sure.

Unfortunately, the last apk still crashes with the same error. I am not that familiar with RxJava so I'm sorry for not being able to do much :man_shrugging:

@searchy2 check your phones contact list to see if there are entries at the end of the list listed as "unknown", this is the reason for the error on mine

Hmm, there are some unknowns! I think this is an Xperia specific quirk as my previous phone had no unknowns.

When you click on an unknown I find it to have my email from outlook in there, strange issue, and doesn't delete...

My unknown contacts have nothing in them. No emails, no nothing! I am able to delete them however so there's that. Let me delete all my known contacts and then load up Material Chips to see if it fixes the crashing.

I just tried deleting the unknowns and then using Material Chips. Still crashes :( Guess the unknowns are not the issue here.

Ok sorry for the delay.
Yeah you're right @dreamcatcha, an iterator must be used when removing item from a list while iterating over it. My loop wasn't correct. I made the changes.
Hope this one will work, here the apk

No more crashes :D Great work @pchmn and @dreamcatcha
@dreamcatcha if you can confirm that there are no crashes with Unknown contacts, this issue can finally be closed :laughing:

Yep that works fine now, thanks mate

Nice! Great library with great support; so happy to see this problem fixed!


network: add logging statement on socket failure assertion

Description: Adds a logging statement to help debug issues with creating sockets. This was helpful to me when debugging IPv6 environment issues.
Risk Level: Low
Testing: Used this when testing another change, generated a log statement like:  [2019-02-05 20:23:26.312][507][critical][assert] [../source/common/network/address_impl.cc:161] assert failure: io_handle->fd() != -1. Details: socket(2) failed, got error: Address family not supported by protocol
Docs Changes: N/A
Release Notes: N/A

/retest

@fcfort can you take a look at the CI failures? They look legit, e.g.
[ RUN      ] AddrFamilyAwareSocketOptionImplTest.SetOptionSuccess
unknown file: Failure
Uninteresting mock function call - returning default value.
    Function call: socket(2, 2049, 0)
          Returns: 8-byte object <00-00 00-00 00-00 00-00>
external/envoy/test/common/network/socket_option_test.h:47: Failure

Yep, sorry, I will. I spent a few hours trying to figure how socket_option_test.h works but without success. I will take another look today.

I took a quick look at some of the failures; they are happening because replacing socket() with Api::OsSysCalls::socket() requires tests deriving from SocketOptionTest (and potentially other tests using Api::MockOsSysCalls) to return an actual socket when the mocked function is called (e.g.,, via ON_CALL).

I took a quick look at some of the failures; they are happening because replacing socket() with Api::OsSysCalls::socket() requires tests deriving from SocketOptionTest (and potentially other tests using Api::MockOsSysCalls) to return an actual socket when the mocked function is called (e.g.,, via ON_CALL).

Done.


[QHC-700] Expand transpiler

PROBLEMS TO SOLVE:

[x] Adding direct gate cancellations before pulse scheduling
[x] Separate drag bunching from Victor?
[ ]  Add Total cancellations of 2pi pulses??

OTHER TODOs:

[x] Manually testing the function
[x] Solve/move previous unit test, to the new folders
[x] Add unit test for it

Expands on: https://github.com/qilimanjaro-tech/qililab/pull/821

@fedonman also just added a short changelog, here as well 🔥


[identity] Add warning verbiage to signin dialog

Until identity and cloud sync are stable, we should have language on the signin dialog warning users they might lose all their data.

Fixed


feature req: img.LoadSizedSVG

Go version: go1.22.2 linux/amd64
Go-SDL2 version: v0.4.38
SDL2 version: 2.30.2-1
OS: endeavouros (arch variant)
Architecture: amd64
using the current bindings I can load SVG files using img.Load(), but there's no control over what resolution they get rendered to inside of SDL, and it seems to default to something pretty low res. it looks like upstream has a function in SDL_img to handle this since version 2.6.0, so it'd be great if we could get this one function wrapped to make dealing with SVG rendering a lot more manageable:
https://wiki.libsdl.org/SDL2_image/IMG_LoadSizedSVG_RW

Hi @nergdron, I have implemented the binding in the master branch. Would you care to test it out?

ahhh perfect, that's exactly what I needed! thanks so much for the fast turnaround on this, makes working with SVG files in SDL so much nicer, now everything is crisp and clean like it should be!


Boarding submitted modal when submitting a boarding

[-] Added alert after submitting boarding.
Fixes #191

Alert is shown on the PatrolBoatView, according design.


fix a bug that may cause zombie processes

Recently, I used pyftpdlib to develop a ftp server program, which helps me to greatly reduce the development cycle. However, at the same time, I also found a bug that it would cause the zombie process after login and exit every time.  Here, I use the MultiprocessFTPServer to instantiate a server object.
My source code is as follows:
...
    if masquerade_address is not None:
        handler.masquerade_address = masquerade_address

    handler.passive_ports = passive_ports

    server = MultiprocessFTPServer(("<IP_ADDRESS>", port), handler)

    try:
        server.serve_forever()
    finally:
        server.close_all()
...

I found that the pyftpdlib always create a new process to handle a new connection each time and it does not wait for these processes whenever the connection is broken. Only when the server process exits, does it wait for all the sub processes in a unified way.
The following is some screenshots on the bug:
login operation
use 'ps' command
I think using a thread to periodically wait for all the tasks might be a good solution.
Submitted code has been carefully tested and can prove to be effective.
In addition, I also found that the maximum number of connections seems to have no effect on MultiprocessFTPServer.

@giampaolo ping

Not sure but it looks like this pull problem was also fixed by 37236bfdaf51cd9d0c5759560a391771765a2ee8 ?


Not using audience field for delivery targeting and visibility.

I notice that onepage.pub doesn't use the audience field for targeting or visibility (unless I missed something). As I'm sure you know, the AP specification says:

Targets for delivery are determined by checking the ActivityStreams audience targeting; namely, the to, bto, cc, bcc, and audience fields of the activity.

I sometimes use audience to specify as:Public (for visibility, not targeting). However, onepage.pub doesn't treat these objects as publicly visible objects.

Audience is not for addressing; it's for defining the people it might be interesting to.
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-audience
I won't implement this in onepage.pub. The fact that it's called out in AP is a bug.

The fact that it's called out in AP is a bug.

Is that in an AP errata somewhere?
The place I've found audience useful is for specifying as:Public, which seems consistent with your definition.


Ignore directories when sending assets

This is a patch for #57 in which we were trying to upload directories that were picked up in the dir globbing.
for review @tylerball @jduff

Hey Guys,
I'm somehow still seeing this issue as soon as it hits the /templates/customers directory:
/Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/lib/shopify_theme/cli.rb:225:in read': Is a directory - templates/customers (Errno::EISDIR) 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/lib/shopify_theme/cli.rb:225:in send_asset'
from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/lib/shopify_theme/cli.rb:106:in block in upload' 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/lib/shopify_theme/cli.rb:105:in each'
from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/lib/shopify_theme/cli.rb:105:in upload' 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/thor-0.18.1/lib/thor/command.rb:27:in run'
from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/thor-0.18.1/lib/thor/invocation.rb:120:in invoke_command' 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/thor-0.18.1/lib/thor.rb:363:in dispatch'
from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/thor-0.18.1/lib/thor/base.rb:439:in start' 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/shopify_theme-0.0.22/bin/theme:25:in <top (required)>'
from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/bin/theme:23:in load' 	from /Users/nicolaerusan/.rvm/rubies/ruby-2.0.0-p247/bin/theme:23:in '
Any thoughts?


unset exception only when exists

exception is set when handleException() being called.
It will cause a Fatal error if no exception thrown from app.
ERROR   zm_deactivate_swoole (ERROR 503): Fatal error: Uncaught ErrorException: Undefined index: exception in /Users/nishurong/PhpstormProjects/php-workspace/xueron/fastD/src/Application.php:225
Stack trace:

I neglected this。Thanks。


Suggestion: repeated transform

Dear Zach,
How about adding a "repeated transform"? (See below, not sure if this is the best form, maybe some perfect forwarding is needed).
Note that it requires the Comparable concept on Expr.
best,
Niek
template <typename Expr, typename TF>
constexpr auto repeated_transform(Expr &&expr, TF&& xform) {
  // apply the transform repeatedly until the result no longer changes

  return hana::while_(
      [&](auto &&x) { return hana::not_equal(x, yap::transform(x, xform)); },
      expr, [&](auto &&ex) { return yap::transform(ex, xform); });
}

That's not an unreasonable thing to want, but why isn't your implementation here enough?  That is, how does it help to have it as part of the library, rather than as a user-provided addition as you've done?


Precompile Error

This error is baffling me, and wondering if it is even related to CUDArt, but I get the following error on Julia 0.6 (compiled myself):
julia> using CUDArt
INFO: Precompiling module CUDArt.
WARNING: `@windows` is deprecated, use `@static is_windows()` instead
Stacktrace:
 [1] depwarn(::String, ::Symbol) at ./deprecated.jl:64
 [2] @windows(::ANY, ::ANY) at ./deprecated.jl:446
 [3] include_from_node1(::String) at ./loading.jl:539
 [4] include(::String) at ./sysimg.jl:14
 [5] include_from_node1(::String) at ./loading.jl:539
 [6] include(::String) at ./sysimg.jl:14
 [7] anonymous at ./<missing>:2
 [8] eval(::Module, ::Any) at ./boot.jl:236
 [9] process_options(::Base.JLOptions) at ./client.jl:279
 [10] _start() at ./client.jl:368
while loading /home/ju17693/.julia/v0.6/CUDArt/src/libcudart-6.5.jl, in expression starting on line 23
WARNING: Base.WORD_SIZE is deprecated.
  likely near /home/ju17693/.julia/v0.6/CUDArt/src/libcudart-6.5.jl:36
ERROR: LoadError: LoadError: LoadError: UndefVarError: textureReference not defined
Stacktrace:
 [1] include_from_node1(::String) at ./loading.jl:539
 [2] include(::String) at ./sysimg.jl:14
 [3] include_from_node1(::String) at ./loading.jl:539
 [4] include(::String) at ./sysimg.jl:14
 [5] include_from_node1(::String) at ./loading.jl:539
 [6] include(::String) at ./sysimg.jl:14
 [7] anonymous at ./<missing>:2
while loading /home/ju17693/.julia/v0.6/CUDArt/src/../gen-6.5/gen_libcudart.jl, in expression starting on line 515
while loading /home/ju17693/.julia/v0.6/CUDArt/src/libcudart-6.5.jl, in expression starting on line 44
while loading /home/ju17693/.julia/v0.6/CUDArt/src/CUDArt.jl, in expression starting on line 27
ERROR: Failed to precompile CUDArt to /home/ju17693/.julia/lib/v0.6/CUDArt.ji.
Stacktrace:
 [1] compilecache(::String) at ./loading.jl:673
 [2] require(::Symbol) at ./loading.jl:460

Here is my Julia versioninfo:
julia> versioninfo()
Julia Version 0.6.0-dev.2360
Commit 8c2d9db* (2017-01-25 20:04 UTC)
Platform Info:
  OS: Linux (x86_64-redhat-linux)
  CPU: Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, haswell)

CUDArt currently doesn't support Julia v0.6. There is some support on master since today, but it is not fully complete yet.


There is unexpected "Show Tab Bar" menu item on macOS 10.12

I confirm (by marking "x" in the [ ] below):

[x] This is not a feature idea. Feature ideas go here: http://www.mattermost.org/feature-ideas/
[x] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/
[x] This is a product defect issue that can be reproduced using the steps listed below.
[x] I have read CONTRIBUTING.md.

Summary
The Show Tab Bar menu item is inconsistent with team tabs.
Steps to reproduce
Environment

OS X 10.12
Mattermost Desktop App version: 3.4.1
Mattermost Server version: v3.3.0

On OS X there is a menu item called Show Tab Bar. This menu item show/hides what appears to be an Electron provided tab bar that is different to the team tabs. See screenshot: http://imgur.com/a/DBMXC
Expected behavior
The Show Tab Bar menu item should show/hide the Team tabs.
Observed behavior
The Show Tab Bar menu item shows a different additional tab bar.
Possible fixes
Option1: Hide the Show Tab Bar menu item.
Option2: Make the Show Tab Bar menu item show/hide the team tabs.
Option3: Adopt the provided tab functionality instead of the existing team tabs. This allows the tabs to be consistent with other applications and allows for behaviour like dragging tabs to a new window, combining tabs from windows etc.

I can't see the menu on my macOS 10.12.

But probably it's a issue which was fixed at electron v1.4.2. electron/electron#7415

@hamishgraham This should be solved by using electron v1.4.2 (#307). Would you try the latest build?
https://circleci.com/gh/mattermost/desktop/734#artifacts

Sure no problem - I can confirm that the above build does not show the extra "Show Tab Bar" menu item.

Thanks for your confirmation!

I'm having this issue suddenly in MacOS 10.14.3 with electron 3.1.6. Any ideas? I've got a view menu with the only option being role: "togglefullscreen", and that works, but those two items appear above it.


fix(Unable to edit submissions): RHMAP-20490: Hidden fields

JIRA:
https://issues.jboss.org/browse/RHMAP-20490
WHAT:

Unable to update submission in RHMAP studio when has hidden fields
Submissions are not being displayed in the correct column when the form has hidden fields. Following an image with an example, where the number is the third field into the form and it is showing in the second column instead of the third one.

WHY:
The hidden fields were not been saved which result in don't allow updated them as don't show values in the correct position in the Drag & Drop Apps >> Forms Submissions
HOW:
Save the hidden fields with empty values.
STEPS TO TEST
FH-FORMS:
The tests are covering the changes made in the fh-forms as shows the following image. In this way, check if the CI to merge the PR was finalized with success.

RHMAP studio:
To check it in RHMAP is required to ensure that this source/PR will be used by RHMAP when the submission is generated.  The components/projects affected are: appforms-project-client, Appforms-Template-v3, fh-js-sdk, fh-mbaas and fhcap.
RMAP dev setup ( IN PROGRESS )

Update /fhcap/roles/dev.json to get the source code as follows.

      "fh-mbaas":{
         "install_method":"source"
      },

Go to the project fh-mbaas and install fh-forms from the PR or Branch of the PR.

$ rm -rf node_modules/
$ npm install
$ npm shrinkwrap
$ npm install --save git+https://github.com/camilamacedo86/fh-forms#FIX

Important: Ensure that the npm-shrinkwrap.json is point for the PR/BRANCH

{...}

Provision a new vagrant instance.

$ cd ~/fhcap
$ ./repos/fhcap/setup.sh
$ vagrant up
$ vagrant provision

Check inside of the VM if the fh-supercore and fh-mbaas are using the new version of fh-forms.

Steps to check it in the studio.

Go to the RHMAP domain
Create a form with; 1 text field + 1 checkbox + 1 number field
Don't make the text field and the checkbox mandatory
Add a role for this form for the checkbox appears just if the text field has some value
Save and Deploy form
Link the form with a form project
Go to the cloud application of this form and ensure that you are using this version of the fh-forms via the fh-mbaas-api. Save and deploy it.
Go to the Preview/editor and create a new submission without value for the checkbox
Go to Drag & Drop Apps >> Forms Submissions and check if the number will appears correctly in the third field and try to update a submission by adding the value for the checkbox. Following an image as an example.

@camilamacedo86 pinged @witmicko @jhellar who may help here.


⚠ Nextcloud has degraded performance

In f998edd, Nextcloud ($URL_NEXTCLOUD) experienced degraded performance:

HTTP code: 200
Response time: 4662 ms

Resolved: Nextcloud performance has improved in bef4e78 after 7 minutes.


[WIP] Bump alerts for latest elasticsearch exporter.

The elasticsearch exporter refactored and renamed alerts recently. This patch updates alerts for release https://github.com/justwatchcom/elasticsearch_exporter/releases/tag/v1.0.1. We'll also need to update the elasticsearch dashboard and package the new release. I'll take a look at the dashboard later this week; @frodenas, could you add the new release when you get a chance?

@jmcarp the elasticsearch exporter has been bumped to 1.0.1 at https://github.com/cloudfoundry-community/prometheus-boshrelease/commit/cf00c9db5873456c02ef5f1512ce76389c6d4bb5.

@jmcarp please let me know when this is done so I can merge it.

Updated the elastic dashboard.


Link no longer exists: edge://sign-in/

Step 8 refers to this link: edge://sign-in/
I think it should be this now: edge://signin-internals/

@sethwisdom Hi!  Can you share a link to the document that should be updated?  Thanks!

https://docs.microsoft.com/en-us/deployedge/microsoft-edge-troubleshoot-enterprise-sync#basic-troubleshooting-steps

@sethwisdom Thanks for the feedback!  The documentation has been updated.


[BUG/FR] Alias Not Suggested If Filename's Prefix  Like The Alias

Hi,
First, I would like to thank you for implementing this awesome feature!
Now, I think that I found a bug regarding this feature (not sure if its really a bug though). I'll try to explain with an example.
Current Behavior
If we have a file with the name John Gear, and that file has an alias John, then when starting to type John it suggests [[John Gear]], but doesn't suggest [[John Gear|John]] at all.
Desired Behavior
When starting to type John the plugin will suggest both [[John Gear|John]] and [[John Gear]].
Personally, I prefer that the alias [[John Gear|John]] would be suggested as the first choice (higher priority) because we can always keep typing johng until it suggests [[John Gear]].
Does it make sense to you as it does to me?
Thanks in advance :)

Hi, @almogtzabari. Thank you for your report :)
I could reproduce it, and it is a bit of a difficult problem to resolve. However, I agree with you perfectly, although I don't use aliases as the inserted text.
It may take some time, but I'll try to resolve this issue. Kind regards.

Ok, thank you very much :)

@almogtzabari
I have updated beta version to obsidian-various-complements-plugin-beta v5.1.0-beta1 🚀
If you use BRAT, please confirm whether it works as you expected.
If you don't use it, please verify the below GIF.

@almogtzabari I have updated beta version to obsidian-various-complements-plugin-beta v5.1.0-beta1 🚀
If you use BRAT, please confirm whether it works as you expected.
If you don't use it, please verify the below GIF.

I don't use BRAT, but the behavior shown in your GIF is exactly what I wished for!
You are awesome! Thank you very much!!!

Thank you for your quick confirmation :)
I will release v5.1.0 officially in a few days because I updated a few code bases that might make any bugs 👍

@tadashi-aikawa
I wasn't aware of BRAT, but I downloaded it now.
I followed BRAT's instructions about how to add a new plugin (I added the plugin's Github address to BRAT, hit refresh on the plugins list) but It doesn't install the beta version, only the 5.0.1 .
Is there another link I should use? (I used https://github.com/tadashi-aikawa/obsidian-various-complements-plugin)

@almogtzabari
Please use https://github.com/tadashi-aikawa/obsidian-various-complements-plugin-beta. It is only used for a beta test.
- https://github.com/tadashi-aikawa/obsidian-various-complements-plugin
+ https://github.com/tadashi-aikawa/obsidian-various-complements-plugin-beta

@almogtzabari Please use https://github.com/tadashi-aikawa/obsidian-various-complements-plugin-beta. It is only used for a beta test.
- https://github.com/tadashi-aikawa/obsidian-various-complements-plugin
+ https://github.com/tadashi-aikawa/obsidian-various-complements-plugin-beta

Right :)
I installed the beta version, and your changes work like a charm! Amazing work!
BTW, I like the small icons near each suggestion!

That's good! And glad to hear that you like the small icons :)

Released at v5.1.0 🚀
https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/5.1.0


Cannot use this Pugin because of an not defined global name

Every time I select a line (e.g. GET http://www.telize.com/geoip/<IP_ADDRESS>) and select Rester from the Ctrl+Shift+P menu, I get the message "Unable to make request". Then I look at the consle an see this:
[Request]
GET /geoip/<IP_ADDRESS> HTTP/1.1
Host: www.telize.com
Cache-control: no-cache
Exception in thread Thread-14:
Traceback (most recent call last):
File ".\threading.py", line 532, in __bootstrap_inner
File ".\rester\http.py", line 172, in run
NameError: global name 'ConnectionRefusedError' is not defined
How can I make RESTer work?

Sublime Text 2 uses Python 2 and ConnectionRefusedError is not defined there; instead the same condition causes an OSError with the errno attribute equal to errno.ECONNREFUSED.
https://github.com/pjdietz/rester-sublime-http-client/blob/7135e8cb9654d2629aa57d02f198a5ee53ae8eb7/rester/http.py#L191
Should be something like:
        except OSError as e:
            if e.errno != errno.ECONNREFUSED:
                raise
            self.message = "Connection refused."
            self.success = False
            conn.close()
            return


Uploading fails

Hmm, when uploading the picture, the script returns a 415: File type not allowed. The file type as determined by
$finfo = new finfo(FILEINFO_MIME_TYPE);
$file_type = $finfo->buffer($photo);

is application\/x-empty.
The upload has amongst others the following headers:
Content-Transfer-Encoding -> binary
Content-Type -> image/jpeg
and in the test, a file from /storage/emulated/0/Android/data/de.westnordost.streetcomplete.debug/files/Pictures/photo1001169951.jpg was uploaded with this code:
try (OutputStream outputStream = httpConnection.getOutputStream())
{
	byte[] buffer = new byte[16384];
	int bytesRead;
	try (FileInputStream inputStream = new FileInputStream(file))
	{
		while ((bytesRead = inputStream.read(buffer)) != -1)
		{
			outputStream.write(buffer, 0, bytesRead);
		}
		outputStream.flush();
	}
}

(Reads a file and writes it as-is to the output stream)

Is the Content-Length header set?

No

The header is necessary since I implemented the max upload file size check. While the header is not ultimately trusted, it is used to reject uploads as early as possible (i.e. before the request body arrives) when the header honestly reports that the file is too large. That's the reason the header must be set.
https://github.com/exploide/sc-photo-service/blob/master/upload.php#L17
There, only as many bytes as stated in the header are read from the request body.

Ok I will try, thanks!

No problem. If you want the service to accept also requests with this header, I can try to circumvent this.
However, according to W3C

Applications SHOULD use this field to indicate the transfer-length of the message-body

I leave the ticket open for you. Close it when you think it's done.

Hm actually, I preferred if the script would not require a previously set content length, because that means that the app needs to load the entire picture file into memory first instead of only the buffer size. Theoretically the pictures can be very large.
Couldn't the script not simply read the first bytes necessary to determine the mime type first and if it is the correct mime type, continue?

Okay, did not realize that the size of a file can be determined without opening it (it's a system call).
But even though I do set the Content-Length in Java code, $_SERVER['HTTP_CONTENT_LENGTH'] is "" on PHP-side. Hmm.

Ok, SHOULD is not MUST so it would be nice if the service could handle this gracefully. I'm implementing a fix making this optional. Will be ready in few minutes.
That your header does not arrive correctly is strange, anyways. Mh..

Pushed a fix. You can test if it works now.

I sniffed the URL request - the content length is definitely set now.

Anyway, now I get a 500 Cannot save file. The directory for TMP is /httpdocs/westnordost/p/tmp, both the p-directory and tmp-directory have chmod 777. Probably not necessary, just trying to find the problem.

Okay, used a relative path, works that way. I guess the PHP / filesystem path root is different from what I see in the SFTP client.

Ah, this can be the case. Glad to see it works now :)

But regarding the content length, do you have an idea?

I pushed a further commit, because the previous one contained an if that can never be true.
While it should work now for requests without the Content-Length header, maybe the following can happen: If a too large image is uploaded without the header, it probably will be truncated. If the mime type checking still thinks it's a jpeg or whatever, you most likely end up with a corrupted file. Just an assumption haven't checked yet.
I have no idea why your header does not arrive successfully. I don't think it is case-sensitive. Don't know if content-transfer-encoding is relevant and affects something there. Maybe the reverse proxy is filtering some headers, but that would be odd, too...


Debug rendering of world clusters (clustered lighting)

new WorldClustersDebug class, available in the debug build of the engine, responsible for rendering cluster cells
fix to bounding box evaluation of the spot light. It was incorrectly using scale of its worldMatrix to scale the bounds, making lights less likely to be culled, and also occupying large area in clusters.

New API (private for now)

app.scene.lighting.debugLayer - allows to enable debug rendering of clusters on a layer, or disable it by setting to undefined

Updated public API

BoundingBox.setFromTransformedAabb - added optional parameter allowing the scale to be ignored when aabb is transformed by a matrix

Fancy adding a unit test for your update to BoundingBox? 😄

Fancy adding a unit test for your update to BoundingBox? 😄

Probably not as part of this PR considering we don't yet have any tests for any shapes.

Can we consider only including all this code in a DEBUG build?

Can we consider only including all this code in a DEBUG build?

Yep, that is done by stripping the static function (and the whole static class) from non debug builds, the same way as Debug.log and all those are stripped.


Upgrade CI-CD Workflow

Should help me catch errors better and prevent all these issues with different features from making it into releases.

Clippy and fmt find errors, I'll resolve those and then merge.

Because Clippy complains about docs, might as well add some short descriptions to the disabled-by-default features

Clippy says this is all good, now just have to configure rustfmt and format.


THREADS HANGING AROUND

Describe what happened:
What was your system configuration?
Product and Version [VS/VSCode]:
OS Version[macOS/Windows]:
Live Share Extension Version:
Target Platform or Language [e.g. Node.js]:
Steps to Reproduce / Scenario:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Please attach logs to this issue:
You can access them via the Live Share: Export Logs command from the command palette (ctrl + shift + p) and attach them to this issue
Screenshots
If applicable, add screenshots to help explain your problem.

As is, this issue doesn’t have enough information to be investigated. Please comment if the issue persists with any additional details. Thank you.

thanks for all guys 💘


[WIP] Fix for #383 "Python tests does not count over make cover"

 Comment by alanjds
Wednesday Dec 13, 2017 at 19:48 GMT

build/bin/gentest:99: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)

Are we using 2-spaces indent on Python code?

 Comment by alanjds
Wednesday Jan 10, 2018 at 18:45 GMT

Hi, @BTaskaya.
Can you please take a look on https://github.com/google/grumpy/issues/383#issuecomment-353650201 if having some time? I am a bit tied for the next weeks...
Thanks for the review.

 Comment by ghost
Wednesday Jan 10, 2018 at 20:04 GMT

Sure.


ReorderableListView.builder rebuilds item widgets unnecessarily when reordering

The behavior of the builder constructor differs from the default constructor.
Steps to Reproduce

Build and run the following main.dart code.
Try to reorder some item.
Watch the messages printed on the console.

main.dart
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'ReorderableListView.builder MIE',
      home: Scaffold(body: const MyHomePage()),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ReorderableListView.builder(
      itemBuilder: (context, index) => Dummy(key: Key(index.toString()),),
      itemCount: 5,
      onReorder: (oldIndex, newIndex) {},
    );
    // return ReorderableListView(
    //   children: List.generate(5, (index) => Dummy(key: Key(index.toString()))),
    //   onReorder: (oldIndex, newIndex) {},
    // );
  }
}

class Dummy extends StatelessWidget {
  const Dummy({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    print('rebuild');
    return ListTile(
      title: Text('dummy'),
    );
  }
}

Expected results:

The message should only be printed once per child (5 in the example)

Actual results:

The message gets printed every time the "ghost" moves on the screen

If you change the constructor that is called, you'll see that the expected behavior occurs.

Logs

[  +75 ms] executing: uname -m
[  +37 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +8 ms] executing: [/home/araruna/.flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] d79295af24c3ed621c33713ecda14ad196fd9c31
[        ] executing: [/home/araruna/.flutter/] git tag --points-at d79295af24c3ed621c33713ecda14ad196fd9c31
[  +24 ms] Exit code 0 from: git tag --points-at d79295af24c3ed621c33713ecda14ad196fd9c31
[        ] 2.2.2
[   +8 ms] executing: [/home/araruna/.flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/home/araruna/.flutter/] git ls-remote --get-url origin
[   +5 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +89 ms] executing: [/home/araruna/.flutter/] git rev-parse --abbrev-ref HEAD
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[   +4 ms] Failed to initialize analytics reporting: FileSystemException: Cannot create file, path = '/home/araruna/.flutter' (OS Error: Is a directory, errno = 21)
[  +60 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +52 ms] executing: /home/araruna/Android/Sdk/platform-tools/adb devices -l
[  +46 ms] List of devices attached
[   +5 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +71 ms] Multiple devices found:
[  +89 ms] Linux (desktop) • linux  • linux-x64      • Linux
[   +2 ms] Chrome (web)    • chrome • web-javascript • Chromium 91.0.4472.114 Arch Linux
[   +3 ms] [1]: Linux (linux)
[        ] [2]: Chrome (chrome)
[   +4 ms] Please choose one (To quit, press "q/Q")
[        ] :
[+3437 ms] 1
[  +26 ms] Skipping pub get: version match.
[ +145 ms] Generating /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +72 ms] Initializing file store
[   +9 ms] Skipping target: gen_localizations
[   +7 ms] complete
[   +4 ms] Launching lib/main.dart on Linux in debug mode...
[   +5 ms] /home/araruna/.flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/araruna/.flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/home/araruna/.flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names --experimental-emit-debug-metadata
-DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.BSMOJF/flutter_tool.RSMRIX/app.dill --packages
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-scheme
org-dartlang-root --initialize-from-dill build/3c113a45063dc6628e68a4111abcacad.cache.dill.track.dill --enable-experiment=alternative-invalidation-strategy
[  +24 ms] Building Linux application...
[  +11 ms] <- compile package:mwe_rlv_rebuild/main.dart
[   +3 ms] executing: [build/linux/x64/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64 /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux
[  +45 ms] -- Configuring done
[   +4 ms] -- Generating done
[  +14 ms] -- Build files have been written to: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug
[   +3 ms] executing: ninja -C build/linux/x64/debug install
[   +6 ms] ninja: Entering directory `build/linux/x64/debug'
[+14226 ms] [1/5] Generating /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/libflutter_linux_gtk.so,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_engine.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_method_call.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_method_response.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_value.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/fl_view.h,
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
[   +3 ms] [  +73 ms] executing: uname -m
[        ] [  +43 ms] Exit code 0 from: uname -m
[        ] [        ] x86_64
[        ] [   +6 ms] executing: [/home/araruna/.flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [   +7 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] d79295af24c3ed621c33713ecda14ad196fd9c31
[        ] [        ] executing: [/home/araruna/.flutter/] git tag --points-at d79295af24c3ed621c33713ecda14ad196fd9c31
[        ] [  +13 ms] Exit code 0 from: git tag --points-at d79295af24c3ed621c33713ecda14ad196fd9c31
[        ] [        ] 2.2.2
[        ] [   +6 ms] executing: [/home/araruna/.flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/stable
[        ] [        ] executing: [/home/araruna/.flutter/] git ls-remote --get-url origin
[        ] [   +6 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +67 ms] executing: [/home/araruna/.flutter/] git rev-parse --abbrev-ref HEAD
[        ] [   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] stable
[        ] [   +3 ms] Failed to initialize analytics reporting: FileSystemException: Cannot create file, path = '/home/araruna/.flutter' (OS Error: Is a directory, errno = 21)
[   +1 ms] [  +53 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [ +108 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [   +1 ms] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [   +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [  +24 ms] Initializing file store
[        ] [   +6 ms] Done initializing file store
[        ] [  +36 ms] Skipping target: gen_localizations
[        ] [+1376 ms] Skipping target: unpack_linux
[        ] [ +350 ms] kernel_snapshot: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/lib/main.dart}
[   +1 ms] [   +9 ms] /home/araruna/.flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/araruna/.flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot
--sdk-root /home/araruna/.flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true
-Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --packages /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/.dart_tool/package_config.json
--output-dill /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/.dart_tool/flutter_build/fd08d435676e534db4882cc976860ba9/app.dill --depfile
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/.dart_tool/flutter_build/fd08d435676e534db4882cc976860ba9/kernel_snapshot.d package:mwe_rlv_rebuild/main.dart
[        ] [+10136 ms] kernel_snapshot: Complete
[        ] [ +491 ms] debug_bundle_linux-x64_assets: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/.dart_tool/flutter_build/fd08d435676e534db4882cc976860ba9/app.dill}
[        ] [ +422 ms] debug_bundle_linux-x64_assets: Complete
[        ] [ +226 ms] Persisting file store
[        ] [   +6 ms] Done persisting file store
[        ] [   +5 ms] build succeeded.
[        ] [  +10 ms] "flutter assemble" took 13.234ms.
[        ] [   +3 ms] ensureAnalyticsSent: 0ms
[        ] [        ] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[ +527 ms] [2/5] Building CXX object CMakeFiles/mwe_rlv_rebuild.dir/flutter/generated_plugin_registrant.cc.o
[  +47 ms] [3/5] Building CXX object CMakeFiles/mwe_rlv_rebuild.dir/my_application.cc.o
[ +154 ms] [4/5] Linking CXX executable intermediates_do_not_run/mwe_rlv_rebuild
[        ] [4/5] Install the project...
[  +19 ms] -- Install configuration: "Debug"
[  +29 ms] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/mwe_rlv_rebuild
[        ] -- Set runtime path of "/home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/mwe_rlv_rebuild" to "$ORIGIN/lib"
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/icudtl.dat
[   +1 ms] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so
[ +156 ms] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/packages
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/version.json
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
[  +50 ms] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES
[   +1 ms] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/fonts
[        ] -- Installing: /home/araruna/workspace/flutter/mwe/mwe_rlv_rebuild/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[  +34 ms] Building Linux application... (completed in 15,3s)
[ +282 ms] Observatory URL on device: http://<IP_ADDRESS>:33311/wMuMDeUS8v0=/
[  +14 ms] Caching compiled dill
[ +204 ms] Connecting to service protocol: http://<IP_ADDRESS>:33311/wMuMDeUS8v0=/
[ +278 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at http://<IP_ADDRESS>:33311/wMuMDeUS8v0=/.
[  +82 ms] DDS is listening at http://<IP_ADDRESS>:45111/C1knJWBEoek=/.
[  +57 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:33311/wMuMDeUS8v0=/
[  +19 ms] DevFS: Creating new filesystem on the device (null)
[  +33 ms] DevFS: Created new filesystem on the device (file:///tmp/mwe_rlv_rebuildNYYVAJ/mwe_rlv_rebuild/)
[   +2 ms] Updating assets
[  +77 ms] Syncing files to device Linux...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +2 ms] <- recompile package:mwe_rlv_rebuild/main.dart fc0d4ba9-81fc-4a8c-9ab7-8e1a8ed42a9c
[        ] <- fc0d4ba9-81fc-4a8c-9ab7-8e1a8ed42a9c
[  +79 ms] flutter: rebuild
[  +18 ms] Updating files.
[        ] DevFS: Sync finished
[   +3 ms] Syncing files to device Linux... (completed in 104ms)
[   +1 ms] Synced 0.0MB.
[   +2 ms] <- accept
[  +11 ms] Connected to _flutterView/0x558ea08a2ac0.
[   +5 ms] Flutter run key commands.
[   +3 ms] r Hot reload. 🔥🔥🔥
[   +2 ms] R Hot restart.
[   +1 ms] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] 💪 Running with sound null safety 💪
[        ] An Observatory debugger and profiler on Linux is available at: http://<IP_ADDRESS>:45111/C1knJWBEoek=/
[  +79 ms] flutter: rebuild
[   +5 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +7 ms] flutter: rebuild
[ +439 ms] Activating Dart DevTools...
[+2655 ms] Activating Dart DevTools... (completed in 2.654ms)
[ +754 ms] The Flutter DevTools debugger and profiler on Linux is available at: http://<IP_ADDRESS>:9101?uri=http%3A%2F%2F<IP_ADDRESS>%3A45111%2FC1knJWBEoek%3D%2F
[+6094 ms] flutter: rebuild
[  +29 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +2 ms] flutter: rebuild
[   +2 ms] flutter: rebuild
[ +162 ms] flutter: rebuild
[   +2 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +2 ms] flutter: rebuild
[ +153 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[ +121 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[ +122 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +21 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +72 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +72 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +88 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +72 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +55 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[ +124 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +70 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +71 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +39 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[  +38 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +38 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +39 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +39 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +55 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[  +72 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +4 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[ +205 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +2 ms] flutter: rebuild
[ +264 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +5 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[   +3 ms] flutter: rebuild
[+6778 ms] Service protocol connection closed.
[        ] Lost connection to device.
[   +2 ms] DevFS: Deleting filesystem on the device (file:///tmp/mwe_rlv_rebuildNYYVAJ/mwe_rlv_rebuild/)
[ +252 ms] Ignored error while cleaning up DevFS: TimeoutException after 0:00:00.250000: Future not completed
[   +2 ms] "flutter run" took 39.952ms.
[   +3 ms] ensureAnalyticsSent: 1ms
[   +2 ms] Running shutdown hooks
[        ] Shutdown hooks complete
[   +1 ms] exiting with code 0

Analyzing mwe_rlv_rebuild...
No issues found! (ran in 9.3s)

[✓] Flutter (Channel stable, 2.2.2, on Linux, locale pt_BR.UTF-8)
    • Flutter version 2.2.2 at /home/araruna/.flutter
    • Framework revision d79295af24 (3 weeks ago), 2021-06-11 08:56:01 -0700
    • Engine revision 91c9fc8fe0
    • Dart version 2.13.3

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/araruna/Android/Sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /usr/bin/chromium

[✓] Linux toolchain - develop for Linux desktop
    • clang version 12.0.0
    • cmake version 3.20.3
    • ninja version 1.10.2
    • pkg-config version 1.7.3

[✓] Android Studio (version 4.2)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 56.0.2
    • Dart plugin version 202.8488
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Chromium 91.0.4472.114 Arch Linux

• No issues found!

Verified on latest stable and see the same behavior. Widget rebuilds upon trying to reorder.
Launching lib/main.dart on iPhone 12 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           21.1s
Debug service listening on ws://<IP_ADDRESS>:55518/1N3GP9Wyie8=/ws
Syncing files to device iPhone 12 Pro Max...
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild
flutter: rebuild

 flutter doctor -v
[✓] Flutter (Channel stable, 2.2.2, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.2.2 at /Users/dhs/documents/fluttersdk/flutter
    • Framework revision d79295af24 (11 days ago), 2021-06-11 08:56:01 -0700
    • Engine revision 91c9fc8fe0
    • Dart version 2.13.3

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.56.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • SM G975F (mobile) • RZ8M802WY0X • android-arm64 • Android 10 (API 29)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 91.0.4472.106

• No issues found!

CC @darrenaustin


Map rag model to device in eval rag script

Hi,
According to our discussion on issue #73 , here I have added device mapping in eval_rag.py.
I have tested and no device mismatch error raising now.
Please have a look and merge if everything is okay.
Thanks and regards

Hey @sagorbrur , thank you for the PR
I think while the code in general looks good, it may be more optimal to place the code here:  https://github.com/arcee-ai/DALM/blob/a8476405dbc92a6acb0784094c73f70044843354/dalm/models/rag_e2e_base_model.py#L113
once that's in, should be good to merge in

HI @shamanez ,

@sagorbrur Maybe let's add this code snippet here:
Also let's add a comment above this line rag_model.attach_pre_trained_peft_layers(retriever_peft_model_path, generator_peft_model_path, device)
Something like - "we only wrap this with PEFT layers if there are any ... :
Thanks a lot :)
https://github.com/arcee-ai/DALM/blob/a8476405dbc92a6acb0784094c73f70044843354/dalm/models/rag_e2e_base_model.py#L135

The line you refer I am a little bit confused about where to put it.
It would be great if you clarify a bit.
regards

Hey @sagorbrur is the comment part unclear or is the request to move the code to the specified location unclear?

Hey @sagorbrur is the comment part unclear or is the request to move the code to the specified location unclear?

Hi @metric-space ,
I am unclear about moving the part to the specified location.
I am requesting maintainers to apply that.
Please if possible add the modification in desired location.
Kind regards


LEAPs hub pod got re-scheduled - investigate why and protect it from happening

https://2i2c.freshdesk.com/a/tickets/1086 is an incident where 200 dask nodes started ate up most of the quota, and for some reason the hub pod was found in a pending state - did it get evicted from a node under memory pressure or similar? It couldn't re-schedule on a new node because there were no capacity available.
The idea about this issue is to focus on understanding why the hub pod could get evicted. The logs around 21:20 1 Nov UTC time could help us figure it out.

Apparently the cluster autoscaler evicted all pods of an entire node. This could be related to the LEAP specific changes made to the autoscaler by enabling "auto node-provisioning", or it may not be, linking back to #3287 though.

Next step, why did cluster-autoscaler opt to evict all pods of a node?

The cluster autoscaler drained a core node - 30 seconds later (grace period) it was empty and deleted - but why did cluster-autoscaler decide to drain the node pool?

Searching the web for "Scale-down: node" "removed with drain" I got 3 hits, and it seems that node auto-provisioning is involved in the first hit associated with a GKE cluster.
It seems node auto-provisioning based cluster-autoscaler doesn't respect the "safe to evict" until k8s 1.27, so I think that was related. I'm not confident about this, but it seems others thinks so at least.
I consider this investigated for now with no followup action points.

Okay so my idea was that use of node auto-provisioning replaces the default cluster-autoscaler provided by GKE, and the node auto-provisioning version of cluster-autoscaler in GKE <1.27 fails to respect "safe to evict" and ended up draining a core node pool in LEAP with such pods.
Looking at the pods evicted from the core node, there was daemonset pods and the hub and proxy pod. They aren't explicitly labelled with safe-to-evict, so maybe a normal cluster-autoscaler would have done this as well. I've never seen a need for "safe to evict" before though... Why did cluster-autoscaler want to drain that node?

The hub proxy pods did not run out of memory as verified via grafana metrics both showing lower memory use than the requests.

Closing in favor of #3461


add To/FromValue trait to VariantType

This PR enables wrapping a VariantTy(pe) in Value

cc @sdroege @EPashkin

How come a VariantType can't be null? This test seems to tell otherwise? https://gitlab.gnome.org/GNOME/glib/blob/master/gio/tests/actions.c

How come a VariantType can't be null? This test seems to tell otherwise? https://gitlab.gnome.org/GNOME/glib/blob/master/gio/tests/actions.c

Inside GValue it is using g_variant_type_copy(), which will assert if NULL is passed:
https://gitlab.gnome.org/GNOME/glib/blob/b9aed426d198ccf27078263d982bb247c82ccaee/glib/gvarianttype.c#L330 and https://gitlab.gnome.org/GNOME/glib/blob/b9aed426d198ccf27078263d982bb247c82ccaee/glib/gvarianttype.c#L184-188
That might be a bug on the GLib side though. Do you need it to be NULL for anything?

That might be a bug on the GLib side though. Do you need it to be NULL for anything?

Not necessarily. Only for aping SimpleAction

That might be a bug on the GLib side though. Do you need it to be NULL for anything?

Not necessarily. Only for aping SimpleAction

How does it work in SimpleAction (why does it not run into these assertions?), what are the NULL types used for exactly?

The docs of SimpleAction state:

The type of the parameter that must be given when activating the action.

I've never used GAction before, so I'm not sure what that means. And my rust version of SimpleAction is still panicking somewhere without a clear trace...

More from the docs

Since GLib 2.40, if no handler is connected to this signal then the default behaviour for boolean-stated actions with a NULL parameter type is to toggle them via the “change-state” signal.

That hints at a bug in GLib then, that clearly says that NULL types are expected behaviour... but running g_boxed_copy() on such GValues (as from the signals) would assert. Can you file a bug against GLib about that?

From what I can tell, it is not so much GValueType that is not nullable, rather the type string itself?

From what I can tell, it is not so much GValueType that is not nullable, rather the type string itself?

I'm not sure what you mean with this. GVariantType seems to be possible to be NULL in various contexts, just not when stored in a GValue (but GSimpleAction seems to use it as such nonetheless).

Looking at the implementation of g_variant_type_copy, I think the documentation is wrong.
GVariantType *
g_variant_type_copy (const GVariantType *type)
{
  gsize length;
  gchar *new;

  g_return_val_if_fail (g_variant_type_check (type), NULL);

  <snip>
}

There's no assertion here. It will just return another null pointer when you provide it a null pointer.

g_return_val_if_fail (g_variant_type_check (type), NULL);

This is an assertion (it will return FALSE for NULL)

Are you sure?
According to the docs:
#define             g_return_val_if_fail(expr,val)

It will return val if expr evaluates to FALSE.
So in this case, it will return NULL when g_variant_type_check(type) returns FALSE. Which is the case when type is NULL to begin with.

It's only to be used as a guard against programming mistakes. It's an assertion, but not taking down your application unless yet set G_DEBUG=fatal_criticals. It causes a g_critical() warning, which is also printed on stderr.

Ah, I though that was just a shorthand.  So yeah, this is a bug in glib then.

Ah, I though that was just a shorthand. So yeah, this is a bug in glib then.

Lovely :) Not sure what we can do about that, need a workaround until a new GLib version arrives. But your code making it nullable is correct then, just GLib isn't correct.

I would suggest to file a bug there and go ahead with your implementation. It will not cause unsafety, it only causes ugly warnings on the terminal and those are GLib's problem

I'll create the glib bug report soon.

https://gitlab.gnome.org/GNOME/glib/issues/1427

@GuillaumeGomez Let's get this in then?

Yes! Thanks @vhdirk!


StyleA + operator

StyleA + operator - fix of addClassNames

Could you please add a small test for this. Thanks.

@japgolly Done

:+1:


Update next auth to 4.21.1 to fix CVE-2023-27490

next-auth v4.21.0 fixed undocumented behavior broked docker container

Thanks for keeping an eye out for the fix here 👍


fix toArray

toArray should handle array recursively.

What case does this fix?

@treyhyde  it fixes the case of repeated (non-builtin type) field, for example,
message Foo {
repeated Bar bar = 1;
}
message Bar {
required string name = 1;
}
toArray was not able to handle such case before the fix.


fix: pin node to 16.7 for daily e2e

Description
The aio-lib-customer-profile e2e tests are timing out. In my testing this is because between Node 16.8 and Node 18, swagger-client uses a library called undici for sending requests, which is causing timeout issues. This PR pins Node to 16.7, to avoid these issues
Related Issue
Motivation and Context
How Has This Been Tested?
Locally ran npm run e2e in the aio-lib-customer-profile repo
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@shazron
Good point. The version working for me locally is 16.7.0, let's pin it to that


Upgrade TranslationForeignKeyViolationNotice to ERROR

According to the specification:

The value in record_id must be a main ID of the table

@lionel-nj similarly to in issue #1025, I believe this rule was added after you created the PR#970 and that's why it wasn't in the list.


Fix issue with runing on android. Add native props

This bug I found on version
react-native --version
react-native-cli: 2.0.1 react-native: 0.43.4

Hi, Thanks for this PR!
Can you describe what it's for and how to test it?

Hi, Nick.
I ran into this problem on the version of react-native: 0.43.4.
On ios, this works fine, but android causes an error.
I'm using the latest version of Android build tools (25.0.3).
My operating system is Mac OS.
I think that this can be tested by setting up such an environment.
I saw the solutions in this comment (https://github.com/facebook/react-native/issues/3685#issuecomment-151210803)

24 мая 2017 г., в 12:38, Nick Pomfret<EMAIL_ADDRESS>написал(а):
Hi, Thanks for this PR!
Can you describe what it's for and how to test it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/lwansbrough/react-native-camera/pull/718#issuecomment-303672038, or mute the thread https://github.com/notifications/unsubscribe-auth/AOa93XPB-ro-JSZWx878vs7K_siEHxw-ks5r8_qkgaJpZM4NktmI.

ok, thanks.  Looks easy enough to test. I'll see if I can do it later today

@npomfret any plans to get this change released soon ? i pulled 0.9 release and this fix is not included in it  due to which android build breaks.

just release v0.9.4 👍


Children .return() is called on exception only, whilst it makes sense to call it in just a finally {} block

https://github.com/fraxken/combine-async-iterators/blob/f47bea22a56dfa3bd88e06d5cbf2885477b23af6/index.js#L36
Example code to reproduce the behavior is here:
https://github.com/reconbot/streaming-iterables/issues/46
In short, it the merging result iterator is stopped iterating (i.e. its .return() method was called directly or indirectly), yield on L29 will immediately call the function's return. And in this case, we need to propagate this return to all children iterators to end them too. (Currently the library doesn't do it, it propagates return only on an exception.)

Hi @dko-slapdash,
Sorry i missed the notifications for both issues you created. There is an open PR that i review and will surely publish a major release soon to correct those issues (i hope).
Best Regards,
Thomas

Now use finally for v2.0.0.


Add Sphinx documentation auto-generation in Travis

Will need some configuration on Travis to let it auto-push the gh-pages branch, see https://github.com/Syntaf/travis-sphinx#obtaining-a-personal-access-token.

I added a personal access token for gh-pages and linked it to the Travis job. We should be good on that side.

@creffett, looking good.
https://sscpac.github.io/statick/


formatting: fix missing leading whitespace

Motivation for this change
Fix formatting (missing leading whitespace in rec  {) so that all packages will use the same format (28 vs 6289).
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Thanks for the cleanup!