Cron schedules stop after a certain time

Hi,
I'm using cron schedules on an executor service but the schedules stop after a certain amount of time.
I've reproduced the issue in a small standalone project.
Here the scenario ;

Use latest redisson (3.5.4) with single node redis and using linux native epoll in configuration
Create a single worker for an executor service
Create the corresponding executor service
Schedule a cron task every seconds
Schedule a cron task every days at midnight

After a certain amount of time, the cron task every seconds will stop working.
When midnight comes, the midnight cron task works, and the every seconds task resume, but then stop again after a certain time.
I did not wait midnight on the standalone project, but I have had this behaviour in my project.
I looked into redis and saw that the every seconds task is still here, and the zset contains valid value for the next run in the score.
Note that I also reproduced the bug with every 5 seconds or every 5 minutes task and the task every days at midnight, but I had to wait longer.
I reproduced also without using the native linux epoll.
Redis version : 3.2.9 from docker official image redis:3.2.9 after 1 to 2 minutes
Redis version : 4.0.2 from docker official image redis:4.0.2 after around 8 minutes
redisson-issue.log
redisson-issue.tar.gz

Thank for sharing the code. I will try to reproduce it.

Not been able to reproduce the issue. See my log
https://gist.github.com/jackygurui/e1dd562391742cf1b33382840be6dfaf

Ok thank you.
Which version of redis are you using ? Do you have a specific configuration ?
When starting redis, I get the following warning :
1:M 24 Oct 05:42:22.225 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 24 Oct 05:42:22.225 # Server initialized
1:M 24 Oct 05:42:22.225 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 24 Oct 05:42:22.225 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

Do you think this can be the cause ?
I reproduce the bug on my machine, and on google's server on a kubernetes cluster.

the problem you have described doesn't sound like it is related to redis.
Just wondering are you running everything in docker?

The scenario I've sent you, no (redis in docker, java from IDE on my host), but in my prod environment : yes.
I'm gonna fix the warnings I have in redis and try to reproduce the bug.

Hi,
I fixed redis warnings and I succeed reproducing the issue.
Maybe it comes from redis, or not, but can you please give a direction to search ?
I looked into the source code the scheduler and I found that it uses "timeouts" with netty.
I've seen 2 possible problems :

redis is not transmiting a queue event
netty is not waking up correctly after the given timeout

Here the log : https://gist.github.com/rlamarche/c6b853bd8dc66673f42d877f001717fa
I used a "every 5 minutes" and "every seconds" task. You see in the log that when the "every seconds" task stop working, it resumes with the "every 5 minutes" task.
Thank you.

Intersting passage in my log :
2017-10-26T12:15:00.090+0200 [redisson-6-4] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-26T12:15:00.095+0200 [redisson-6-5] INFO sandbox.SimpleTask - Execute task: ##### Every 5 minutes task
2017-10-26T12:15:01.089+0200 [redisson-6-1] INFO sandbox.SimpleTask - Execute task: Every seconds task

This problem you have reproduced is it in your prod environment (everything in docker / kubernetes)?

Have you tried it without epoll?

No, on my computer with redis inside a docker container and java running from IntelliJ Idea.
Yes I did try without epoll but I will try again with this new scenario.

please try it again with -server JVM option

Same problem with -server :-(

I think that the problem is with the HashedWheelTimer from Netty.
Look at this portion of code : (from QueueTransferTask) :
I added some logs.
        long delay = startTime - System.currentTimeMillis();
        if (delay > 10) {
            log.info("Delay: {}", delay);
            Timeout timeout = connectionManager.newTimeout(new TimerTask() {
                @Override
                public void run(Timeout timeout) throws Exception {
                    log.info("Push task with delay: {}", delay);
                    pushTask();
                }
            }, delay, TimeUnit.MILLISECONDS);
            timeoutReference.set(timeout);
        } else {
            pushTask();
        }

And the last logs just before the every seconds task stop :
2017-10-31T11:11:25.060+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Push task with delay: 939
2017-10-31T11:11:25.061+0100 [redisson-netty-4-2] INFO org.redisson.QueueTransferTask - Delay: 46114939
2017-10-31T11:11:25.061+0100 [redisson-5-5] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T11:11:25.061+0100 [redisson-5-3] INFO org.redisson.QueueTransferTask - Delay: 939
2017-10-31T11:11:26.060+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Push task with delay: 939
2017-10-31T11:11:26.061+0100 [redisson-netty-4-5] INFO org.redisson.QueueTransferTask - Delay: 46113939
2017-10-31T11:11:26.061+0100 [redisson-5-4] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T11:11:26.061+0100 [redisson-5-6] INFO org.redisson.QueueTransferTask - Delay: 939
2017-10-31T11:11:27.060+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Push task with delay: 939
2017-10-31T11:11:27.061+0100 [redisson-5-2] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T11:11:27.062+0100 [redisson-5-8] INFO org.redisson.QueueTransferTask - Delay: 938
2017-10-31T11:11:27.062+0100 [redisson-netty-4-6] INFO org.redisson.QueueTransferTask - Delay: 46112938

The log Delay: 46113939 is from the every days at midnight task. So it is never pushed because I don't wait until midnight.
The log Delay: 938 is from the every seconds task.
In the same "second", when the short delay is used to add a timeout task after the long delay, it works.
But when the short delay is used to add a timeout task occurs before the long delay, it don't wake up.
It will wake up after the long delay, so after midnight.
Note that the short and the long delay does not occur in the same thread. I don't really know how work the netty scheduler, but I don't think that it relies on redis.
What do you think of it ?

I don't understand why the long delay create a timeout every seconds. Maybe it interfers with the HashedWheelTimerfrom netty which is "approximated" :
https://netty.io/4.0/api/io/netty/util/HashedWheelTimer.html

Can you make a test case that could reliably reproduce this issue? So far I can't reproduce it with the code you shared.

The problem is that netty use platform-dependant code. On which platform are you running my testcase that reproduce the bug every times on my computer (Linux Ubuntu 16.04.3 LTS Linux 4.4.0-97-generic x86_64
In netty HashedWheelTimer code :
    private final Queue<HashedWheelTimeout> timeouts = PlatformDependent.newMpscQueue();
    private final Queue<HashedWheelTimeout> cancelledTimeouts = PlatformDependent.newMpscQueue();

I will continue to investigate to find where the bug comes from.

I think I've found the problem.
Look at these logs :
2017-10-31T15:45:15.066+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Push task with delay: 930
2017-10-31T15:45:15.067+0100 [redisson-netty-4-3] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 66954277 ns ago, task: org.redisson.QueueTransferTask$3@33166d37)
2017-10-31T15:45:15.067+0100 [redisson-netty-4-3] INFO org.redisson.QueueTransferTask - Delay: 29684933
2017-10-31T15:45:15.068+0100 [redisson-5-3] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T15:45:15.069+0100 [redisson-5-4] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>0155 ns later, task: org.redisson.QueueTransferTask$3@472237dc)
2017-10-31T15:45:15.069+0100 [redisson-5-4] INFO org.redisson.QueueTransferTask - Delay: 931
2017-10-31T15:45:16.065+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Push task with delay: 931
2017-10-31T15:45:16.068+0100 [redisson-5-5] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T15:45:16.069+0100 [redisson-5-6] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 69223015 ns ago, task: org.redisson.QueueTransferTask$3@1b09c38e)
2017-10-31T15:45:16.069+0100 [redisson-5-6] INFO org.redisson.QueueTransferTask - Delay: 931
2017-10-31T15:45:16.069+0100 [redisson-netty-4-6] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 930857019 ns later, task: org.redisson.QueueTransferTask$3@1b999b22)
2017-10-31T15:45:16.070+0100 [redisson-netty-4-6] INFO org.redisson.QueueTransferTask - Delay: 29683931

I added a log on the cancel timeout of the method scheduleTask in class QueueTransferTask :
    private void scheduleTask(final Long startTime) {
        if (startTime == null) {
            return;
        }

        Timeout oldTimeout = timeoutReference.get();
        if (oldTimeout != null) {
            log.info("Cancel timeout: {}", oldTimeout);
            oldTimeout.cancel();
            timeoutReference.compareAndSet(oldTimeout, null);
        }

        long delay = startTime - System.currentTimeMillis();
        if (delay > 10) {
            log.info("Delay: {}", delay);
            Timeout timeout = connectionManager.newTimeout(new TimerTask() {
                @Override
                public void run(Timeout timeout) throws Exception {
                    log.info("Push task with delay: {}", delay);
                    pushTask();
                }
            }, delay, TimeUnit.MILLISECONDS);
            timeoutReference.set(timeout);
        } else {
            pushTask();
        }
    }

There is only one instance of QueueTransferTask for a single worker, and it as a final field private final AtomicReference<Timeout> timeoutReference = new AtomicReference<Timeout>() containing the last timeout set.
Because I have two cron tasks on the same executor with 1 worker, the object contained in the AtomicReference is the next 1s task, and it is canceled when a timeout for the midnight task is added.
So the problem is that the QueueTransferTask does not receive tasks in ad-hoc order in special conditions. I've not yet explained what are these special conditions but maybe you can help me on this because I don't really know how exactly works redisson :thinking:

In the next-to-last log, the deadline correspond to the every second task. On all previous task canceled, the deadline correspond to the every days at midnight task.
[redisson-netty-4-6] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 930857019 ns later, task: org.redisson.QueueTransferTask$3@1b999b22)

Here some interesting logs:
2017-10-31T16:38:08.031+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Timeout expired: HashedWheelTimer$HashedWheelTimeout(deadline: 30669572 ns ago, task: org.redisson.QueueTransferTask$3@43eaff97)
2017-10-31T16:38:08.031+0100 [redisson-netty-4-4] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 31320744 ns ago, task: org.redisson.QueueTransferTask$3@43eaff97)
2017-10-31T16:38:08.031+0100 [redisson-netty-4-4] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>8717 ns later, task: org.redisson.QueueTransferTask$3@1f0a4dfd)
2017-10-31T16:38:08.032+0100 [redisson-5-1] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T16:38:08.032+0100 [redisson-5-8] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>5011 ns later, task: org.redisson.QueueTransferTask$3@1f0a4dfd)
2017-10-31T16:38:08.032+0100 [redisson-5-8] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 967997802 ns later, task: org.redisson.QueueTransferTask$3@2122bf93)

2017-10-31T16:38:09.031+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Timeout expired: HashedWheelTimer$HashedWheelTimeout(deadline: 30588302 ns ago, task: org.redisson.QueueTransferTask$3@2122bf93)
2017-10-31T16:38:09.032+0100 [redisson-netty-4-5] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 31245161 ns ago, task: org.redisson.QueueTransferTask$3@2122bf93)
2017-10-31T16:38:09.032+0100 [redisson-netty-4-5] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>7672 ns later, task: org.redisson.QueueTransferTask$3@289a5a9f)
2017-10-31T16:38:09.032+0100 [redisson-5-4] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T16:38:09.033+0100 [redisson-5-6] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>3649 ns later, task: org.redisson.QueueTransferTask$3@289a5a9f)
2017-10-31T16:38:09.033+0100 [redisson-5-6] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 966998071 ns later, task: org.redisson.QueueTransferTask$3@3eb91594)

2017-10-31T16:38:10.031+0100 [pool-2-thread-1] INFO org.redisson.QueueTransferTask - Timeout expired: HashedWheelTimer$HashedWheelTimeout(deadline: 31214896 ns ago, task: org.redisson.QueueTransferTask$3@3eb91594)
2017-10-31T16:38:10.033+0100 [redisson-5-5] INFO sandbox.SimpleTask - Execute task: Every seconds task
2017-10-31T16:38:10.034+0100 [redisson-5-7] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 33786536 ns ago, task: org.redisson.QueueTransferTask$3@3eb91594)
2017-10-31T16:38:10.034+0100 [redisson-5-7] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 965997362 ns later, task: org.redisson.QueueTransferTask$3@2c65b5ba)
2017-10-31T16:38:10.034+0100 [redisson-netty-4-6] INFO org.redisson.QueueTransferTask - Cancel timeout: HashedWheelTimer$HashedWheelTimeout(deadline: 965669575 ns later, task: org.redisson.QueueTransferTask$3@2c65b5ba)
2017-10-31T16:38:10.035+0100 [redisson-netty-4-6] INFO org.redisson.QueueTransferTask - New timeout: HashedWheelTimer$HashedWheelTimeout(deadline:<PHONE_NUMBER>2835 ns later, task: org.redisson.QueueTransferTask$3@4bb12315)

I added newlines to separate "seconds". After the last line of this log, there is no more logs. So the bug is reproduced.
Here how I modified the scheduleTask with some logs :
    private void scheduleTask(final Long startTime) {
        if (startTime == null) {
            return;
        }

        Timeout oldTimeout = timeoutReference.get();
        if (oldTimeout != null) {
            log.info("Cancel timeout: {}", oldTimeout);
            oldTimeout.cancel();
            timeoutReference.compareAndSet(oldTimeout, null);
        }

        long delay = startTime - System.currentTimeMillis();
        if (delay > 10) {
            Timeout timeout = connectionManager.newTimeout(new TimerTask() {
                @Override
                public void run(Timeout timeout) throws Exception {
                    log.info("Timeout expired: {}", timeout);
                    pushTask();
                }
            }, delay, TimeUnit.MILLISECONDS);
            log.info("New timeout: {}", timeout);
            timeoutReference.set(timeout);
        } else {
            pushTask();
        }
    }

What we can see is that the 2 first blocks in the log are working well.
The order of calls in the last block is different, and we can see that the next timeout for the every seconds task is canceled when the new timeout for every days at midnight task.
In the two first blocks, this "cancelation" occurs before the new timeout for every seconds task is scheduled.
So I was false when I was saying that the problem was from the HashedWheelTimer.
The problem is that the order in which things occurs is responsible of the bug.
My question is : is this normal that the order of things is responsible of the bug, or not.
In other words, is the algorithm good in this method with the AtomicReference of the old timeout, or not.
Remember that I schedule 2 cron tasks on the same executor service.
Thanks.

Thanks for your detailed research. Shall look at this issue in more detail.

Fixed!
@rlamarche @jackygurui Thanks for help with research of this issue!

Thank you @mrniko and @jackygurui for your support !
I'm not able to reproduce the bug with the fix.
:+1:

Hats off to @rlamarche for the extraordinarily detailed research to nail the bug.


#236 Feature/add invalid attribute to file upload

🔗 Linked issue
Resolves #236.

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Adds invalid and error-text properties to the six-file-upload component.
It allows it to display error messages when it is invalid, for example if the selected file is too large.
It also supports an error-text slot for displaying more complex error messages.

📝 Checklist

[x] I have linked an issue or discussion.
[x] It's submitted to the main branch
[x] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[x] I have updated the documentation accordingly.
[x] All tests are passing
[x] New/updated tests are included
[x] I have updated the "upcoming" section inside docs/changelog.md explaining the changes I contributed

If adding a new feature, the PR's description includes:

[x] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

@franckdervaux - as soon as you update the changelog according to the comment we will merge the PR.

@stefanrufer commit https://github.com/six-group/six-webcomponents/pull/250/commits/0a5ec9a3255d7a8fd9bd21c6b8069c0b716c8ebf has the proper change I believe?

@stefanrufer @franckdervaux I've fixed the merge conflicts. I think it's ready now! Someone else has to approve it..


feat: always make a @pnpm workspace

This allows teams to document how users can always have Bazel manage their pnpm version, rather than use something non-hermetic for their local developer workflows.

yeah and worse, there's no convenient way to execute pnpm. npm_import only gives a @pnpm//:package label, after a few minutes of trying things I don't see any way to invoke the bazel-managed pnpm from my terminal.
Maybe @gregmagolan or @jbedard would like to add some commits here... or chat with me about whether we are missing something. I'd imagine npm_import(extra_build_content="js_binary(...)")

A js_binary that uses the entry point directly from the package sources could work. Without a linking and running out of the virtual store, it would only work for packages with no transitive dependencies.

It would work for pnpm since it has no transitives<EMAIL_ADDRESS>I can run it manually with
bazel run @nodejs_host//:bin/node $(bazel info output_base)/external/pnpm/package/bin/pnpm.cjs

just fine

extra_build_content for npm_import would be a good solution for this special case

okay I'll just document that method for now, thanks


Outline option makes app laggy when enabled on Android

I'll look into that. Please use version 1.0.0-b2 for now until everything is solved.
Windows version seems to be fine, so I'll still put it there. The APK versions, however, won't be available for download in this version.

Reverted to old outline as of latest commit due to performance concerns on mobile. The outline still looks a little bit better now, though.


Step 6 video

It looks like the step 6 video is missing

Thank you for the report!
The error has been fixed as you can see here.


slackme: exit with command code and quote command

@kylecarbs @bpmct, do we still need this in?

closing due to inactivity


alan-runtime run with an non existing file panics on a unwrap instead of an error message

If the alan-runtime gets called with a file that doesn't exist it unwraps (src\vm\run.rs:98:32)
I'm not sure how you want such errors to be handled so i didn't create a pr.
But something simple like .expect("The given file was not found") would be better than the unwrap here.

Absolutely something we should tackle! We have a test just for compiler errors, we should make a similar one for runtime errors.


[botan] Fix missing --with-pkg-config parameter

Botan's portfile.cmake already contain --pkgconfigdir= option. But it missing --with-pkg-config at the configuration step. Without this fix, pkg-config files will not be created. This PR fixes it.

Thanks for your contribution!


allow custom pk names when using "ancestors"

I changed id__in to pk__in in the filter field for ancestors, to allow renaming of the primary key.

Great, thanks!


Add updateFromParent = false parameter

For nested BeamerDelegate

Fixing this should fix https://github.com/slovnicki/beamer/issues/281. After doing some digging today, it seems relatable to this issue. I'm clossing issue 281.


TLSv1.3: Interoperable 1-RTT handshake

Checklist

[x] tests are added or updated
[x] CLA is signed

Description of change

The objective of this PR is to get a simple, inter-operable TLSv1.3 1-RTT handshake working. It is currently marked as WIP, primarily because I need to add a number of tests to this.
Some caveats:

By interoperable I mean we can complete a simple 1-RTT handshake with picotls, with OpenSSL either as the client or the server. I have not tried it with other libraries.
This does not support HelloRetryRequest yet. If we encounter one of those the connection will fail.
No resumption. NewSessionTicket messages are ignored.
We currently only send one key_share. By default this is for X25519 (although this can be changed). Picotls currently expects a P-256 key share by default so we need to work around that for now.
No client auth. Connections will fail if you try it.
This only supports RSA certificates at the moment

To try it out clone picotls and build it according to the instructions:
https://github.com/h2o/picotls
To run picotls as a server:
./cli -c <certfile> -k <keyfile> <IP_ADDRESS> 8443

and OpenSSL as the client:
openssl s_client -connect <IP_ADDRESS>:8443 -curves P-256

To run OpenSSL as the server:
openssl s_server -named_curve P-256 -accept <IP_ADDRESS>:8443

And picotls as the client:
./cli <IP_ADDRESS> 8443

Testing against BoringSSL deployments, I noticed two problems:

You send {3, 4} in the record layer rather than {3, 1}. TLS 1.3 freezes the record-layer version at {3, 1}. (If I fix this, it interops with BoringSSL though! :-D)
This PR breaks TLS 1.2. The WG decided that, by advertising RSA-PSS, you are also offering to do it in TLS 1.2. The new signature algorithm setup is meant to be backported. Google servers already deploy RSA-PSS at TLS 1.2. Chrome and Firefox's upcoming releases will as well.

The BoringSSL test suite would have caught all of this, but I haven't tried it yet. (Update to the latest revision first. The one you're at implement draft 16, not draft 18.)
We've also got enough of a deployment by now you don't need to do anything complicated to test against it:

For a server, connect to https://cert-test.sandbox.google.com. (Note this server mandates SNI.)
For a client, use Chrome Canary (or Dev or Beta) and it'll be on with 50% probability. Go to chrome://flags/#ssl-version-max to force it on.

For the second, perhaps an intermediate step to make the signature algorithms stuff properly negotiated? Teach TLS 1.2 and proto-TLS-1.3 about RSA-PSS, then teach proto-TLS-1.3 that PKCS#1 is forbidden and about ECDSA's hash/curve matching. We actually did that before changing the handshake since it was a nice self-contained change like the record layer.

@davidben Awesome! Thanks for the feedback...I'll work on fixing those issues.

@davidben Awesome! Thanks for the feedback...I'll work on fixing those issues.

Branch updated to add various tests. Also fixes the issues identified by @davidben. I have successfully managed to create TLSv1.3 connections with the google sandbox server as well as Chrome Canary. Once #2020 goes in, I will remove the WIP label from this PR.

Now that #2020 has gone in, I have rebased this and removed the WIP label. This is now ready for review.

Please look at #2052

FWIW, this worked with NSS first time.  Tested:

openssl s_client -connect <IP_ADDRESS>:4433 against selfserv -d ~/ssl_gtests -n rsa2048 -p 4433 -V tls1.3: -v
tstclnt -h <IP_ADDRESS> -p 4433 -V tls1.3: -v -o -d ~/ssl_gtests against openssl s_server -accept <IP_ADDRESS>:4433
Where server.pem contains a cert and key for openssl and ~/ssl_gtests is an NSS database containing an RSA key and certificate called 'rsa2048'.

I tried P-256, x25519 and P-384, which all worked.  ECDSA (openssl s_client) fails as expected.  Not a lot else to try based on the description.  If there is anything you want me to poke at, let me know and I can give it a spin.
Code inspection suggests that there are plenty of work left to do, but this is looking pretty promising.

I rebased this. Also added a couple of commits with tweaks for Travis/Appveyor issues. Let's see how travis/appveyor do.

Grrr...more travis failure fixes pushed.
@levitte: also fixed no-ec/no-dsa. For some reason I can't see your comment in this PR, although I saw it in my email.

@levitte: also fixed no-ec/no-dsa. For some reason I can't see your comment in this PR, although I saw it in my email.

I thought I was wrong in those comments, so I removed them.  Thanks for still fixing

I thought I was wrong in those comments, so I removed them. Thanks for still fixing

You weren't!

+1 reconfirmed

And.....pushed to master!!! Thanks @richsalz, @levitte, @davidben and @martinthomson for reviewing and testing this PR!


fix: add loading text to button when no data

Date: Feb 14 2024
Developer Name: Jayasurya

Issue Ticket Number:-
Issue #860
Description:
Is Under Feature Flag

[x] Yes
[ ] No

Database changes

[ ] Yes
[x] No

Breaking changes (If your feature is breaking/missing something please mention pending tickets)

[ ] Yes
[x] No

Is Development Tested?

[x] Yes
[ ] No

Tested in staging?

[ ] Yes
[x] No

Add relevant Screenshot below ( e.g test coverage etc. )

@satyam73 Please merge this


In the array_route reject_in is a select

https://github.com/xnlogic/pacer/blob/master/lib/pacer/core/array_route.rb
reject_in method calls select instead of reject.  reject_in returns the same thing as select_in

Thanks Mike!


torchvision=0.4.0 causes docker image build fail

λ DLTFpT > sudo docker build -t dltfpt-stack .                                                                              git master
Password:
[+] Building 137.5s (7/14)
 => [internal] load build definition from Dockerfile                                                                              0.0s
 => => transferring dockerfile: 37B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/jupyter/scipy-notebook:2ce7c06a61a1                                                    1.4s
 => [ 1/11] FROM docker.io/jupyter/scipy-notebook:2ce7c06a61a1@sha256:c2df5ef3c25702b7b8c54489ee9736a64ab431307b5416648226974e61  0.0s
 => CACHED [ 2/11] RUN pip install tensorflow==2.0.0                                                                              0.0s
 => CACHED [ 3/11] RUN pip install https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl             0.0s
 => ERROR [ 4/11] RUN pip install torchvision==0.4.0                                                                            135.9s
------
 > [ 4/11] RUN pip install torchvision==0.4.0:
#7 1.701 Collecting torchvision==0.4.0
#7 2.018   Downloading https://files.pythonhosted.org/packages/51/83/2d77d040e34bd8f70dcb4770f7eb7d0aa71e07738abf6831be863ade00db/torchvision-0.4.0-cp37-cp37m-manylinux1_x86_64.whl (8.8MB)
#7 3.976 Requirement already satisfied: pillow>=4.1.1 in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (6.1.0)
#7 3.981 Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (1.17.0)
#7 3.984 Requirement already satisfied: six in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (1.12.0)
#7 3.987 Collecting torch==1.2.0 (from torchvision==0.4.0)
#7 4.090   Downloading https://files.pythonhosted.org/packages/05/65/5248be50c55ab7429dd5c11f5e2f9f5865606b80e854ca63139ad1a584f2/torch-1.2.0-cp37-cp37m-manylinux1_x86_64.whl (748.9MB)
#7 135.7 Killed
------
executor failed running [/bin/sh -c pip install torchvision==0.4.0]: exit code: 137

Tried changing it to torchvision=0.3.2, which makes for a successful docker image build, although I'm having issues launching the notebook. Continuing debugging.

Hi @nlantau ! Can you please confirm whether you're following these installation instructions verbatim?
I'm a bit perplexed as to what the issue could possibly be because I haven't changed the Dockerfile since December 2019 and nobody has ever reported any issues with installation.

Hi @nlantau ! Can you please confirm whether you're following these installation instructions verbatim?
I'm a bit perplexed as to what the issue could possibly be because I haven't changed the Dockerfile since December 2019 and nobody has ever reported any issues with installation.

@nlantau -- copy, over!

@nlantau -- copy, over!

I am having the identical same issue...
 => ERROR [ 4/11] RUN pip install torchvision==0.4.0                      35.5s
------
 > [ 4/11] RUN pip install torchvision==0.4.0:
#8 1.565 Collecting torchvision==0.4.0
#8 1.884   Downloading https://files.pythonhosted.org/packages/51/83/2d77d040e34bd8f70dcb4770f7eb7d0aa71e07738abf6831be863ade00db/torchvision-0.4.0-cp37-cp37m-manylinux1_x86_64.whl (8.8MB)
#8 2.650 Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (1.17.0)
#8 2.653 Requirement already satisfied: pillow>=4.1.1 in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (6.1.0)
#8 2.655 Requirement already satisfied: six in /opt/conda/lib/python3.7/site-packages (from torchvision==0.4.0) (1.12.0)
#8 2.658 Collecting torch==1.2.0 (from torchvision==0.4.0)
#8 2.766   Downloading https://files.pythonhosted.org/packages/05/65/5248be50c55ab7429dd5c11f5e2f9f5865606b80e854ca63139ad1a584f2/torch-1.2.0-cp37-cp37m-manylinux1_x86_64.whl (748.9MB)
#8 34.84 Killed
------
executor failed running [/bin/sh -c pip install torchvision==0.4.0]: exit code: 137

AH! Nice work, @piovac! That makes sense. I'm closing this issue and am adding a note to the installation instructions on Docker container size.

@piovac that worked! Thanks :D


[FEATURE REQ] Support latest non-preview version (2024-02-01)

Is your feature request related to a problem? Please describe.
Preview API Versions are only supported for a few months, starting July 1 2024.
However, this library does not appear to support the latest non-preview version, 2024-02-01.
Describe the solution you'd like
Support for all GA versions going forwards, right now specifically 2024-02-01
Describe alternatives you've considered
I don't have available dev time to update to new preview versions every 3 months. I don't need bleeding edge features but I do minimally need function/tool calling (available from 2023-07-01-preview, which is being sunsetted).  One non-ideal alternative would be to use version 2023-10-01-preview but this is also not supported by this library, and it is unclear how long Azure intends to keep it alive.
Additional context
Hopefully I'm just missing something and this support does exist already!
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Description Added
[x] Expected solution specified

@mssfang PTAL

Hi, @dji
Regarding to the missing GA version, 2024-02-01, yes, we do miss to add this version in our TypeSpec definition. And I opened the PR to address it. https://github.com/Azure/azure-rest-api-specs/pull/29424
You can use the latest preview version of our SDK to have function/tool calling feature.
Sample: Stream tool calling
Sample: function calling

@mssfang Thanks, I will start the build using the latest preview version but good to know the GA version will be supported shortly.  Do you have a ballpark idea when that change would ship? (Don't need an exact date, just wanted to know if I should expect days, weeks, or months)

@mssfang Thanks, I will start the build using the latest preview version but good to know the GA version will be supported shortly. Do you have a ballpark idea when that change would ship? (Don't need an exact date, just wanted to know if I should expect days, weeks, or months)

It could go out late of July or earlier of August.
BTW, we have a newer stable Service API version just available recently, which is 2024-06-01.

@mssfang Any news on the next release?

@dji Yeah. We are close to completing the service API version 2024-07-01-preview. In the next SDK release, we will include the new service API versions: 2024-02-01, 2024-06-01, and 2024-07-01-preview.

@dji
a new azure-ai-openai SDK version 1.0.0-beta.11 is released now. It includes 2024-02-01, 2024-06-01, and 2024-07-01-preview.


ScrollUpdateNotification setState cause scrollview jump to the last index

The popular pull_to_refresh plugin has a problem, the author says it may cause by flutter. there is demo video and example
https://github.com/peng8350/flutter_pulltorefresh/issues/430
https://github.com/peng8350/flutter_pulltorefresh/issues/523

@ldhlfzysys
Please provide flutter doctor -v, a complete minimal reproducible code sample that we can directly use that shows the issue you are reporting along with actual vs expected behavior.
Thanks.

@darshankawar   beta branch and stable branch can reproduction this error
[✓] Flutter (Channel beta, 2.5.0-5.2.pre, on macOS 11.0.1 20B50 darwin-x64, locale zh-Hans-CN)
• Flutter version 2.5.0-5.2.pre at /Users/donghuan1/Desktop/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 19c61fed0d (3 weeks ago), 2021-08-18 17:10:31 -0700
• Engine revision 7a4c4505f6
• Dart version 2.14.0 (build 2.14.0-377.7.beta)
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at /Users/donghuan1/Library/Android/sdk
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/XCode.app/Contents/Developer
• Xcode 12.5, Build version 12E262
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.1.3)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.59.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.25.0

a complete minimal reproducible code sample that we can directly use that shows the issue you are reporting along with actual vs expected behavior.

@ldhlfzysys
As requested above, please provide complete code sample that we can directly run to verify the issue along with actual vs expected behavior.

void main() => runApp(Test());

class Test extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _TestState();
  }
}

class _TestState extends State<Test> {
  List data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  bool _loading = false;
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(title: Text('test')),
            body: NotificationListener(
                child: ListView.separated(
                  padding: EdgeInsets.only(left: 5, right: 5),
                  itemBuilder: (c, i) => Card(
                    child: Container(
                      height: 100,
                      child: Text("$i"),
                    ),
                  ),
                  separatorBuilder: (context, index) {
                    return Container(
                      height: 0.5,
                      color: Colors.greenAccent,
                    );
                  },
                  itemCount: data.length,
                ),
                onNotification: (n) {
                  if (n is ScrollUpdateNotification) {
                    if (n.metrics.extentAfter > 50 && !_loading) {
                      _loading = true;
                      Future.delayed(Duration(milliseconds: 2000))
                          .then((value) {
                        for (int i = 0; i < 10; i++) {
                          data.add("Item $i");
                        }
                        if (mounted) setState(() {});
                        WidgetsBinding.instance
                            .addPostFrameCallback((timeStamp) {
                          _loading = false;
                        });
                      });
                    }
                  }
                  return false;
                })));
  }
}

do not release touch. scrollview will jump to last index of datas.
https://user-images.githubusercontent.com/7666564/132279725-5c78a934-dc88-4e2c-b30c-80a11ccefcf5.mov

@ldhlfzysys
Thanks for the code sample. I tried it on latest stable but not sure exactly what the issue here or how to replicate. I tried by not releasing the touch while scrolling but didn't notice any unusual behavior.
https://user-images.githubusercontent.com/67046386/132292583-29dad948-7612-4b5a-ab20-094650092141.mov

Second. setstate the data.

Can you elaborate on this ?

Second. setstate the data.

Can you elaborate on this ?

@darshankawar ,thank you for your reply. I upload a clear video to show this bug.
https://user-images.githubusercontent.com/7666564/132613937-6e78f7e1-2701-48f1-87e7-426563e7920e.mp4

@darshankawar thank you for your reply. I upload a clear video to show this bug.
https://user-images.githubusercontent.com/7666564/132614416-b43e7721-81e7-4410-b7f1-53c2245ef59d.mov

@ldhlfzysys
What iOS version are you on ?
Looking at your steps to replicate in the video, you are killing the app and relaunching it and then not releasing the touch which shows the issue. But on iOS 14+, if we kill the app, we can't relaunch it as it says the debug mode Flutter apps can only be launched... message.

@ldhlfzysys
What iOS version are you on ?
Looking at your steps to replicate in the video, you are killing the app and relaunching it and then not releasing the touch which shows the issue. But on iOS 14+, if we kill the app, we can't relaunch it as it says the debug mode Flutter apps can only be launched... message.

you should use release mode on real device..

@ldhlfzysys
Tried the same in release mode using latest stable (2.5.0) but was unable to replicate.
https://user-images.githubusercontent.com/67046386/132686537-187defe3-7d31-45e5-8591-2049ca720dea.MP4

@ldhlfzysys
Tried the same in release mode using latest stable (2.5.0) but was unable to replicate.
RPReplay-Final1631190800.MP4

Can you watch my video seriously ?? Your operation is completely different from my video.Can someone else take a look?

I can't believe a video so clear is getting this kind of response. I need someone else take a look.

Hi @ldhlfzysys Thanks for filing the issue, I can reproduce the issue the list is jumping to the last item, reproducible on the latest stable 2.5.0, beta, 2.5.0-5.3.pre and the master 2.6.0-1.0.pre.103 and the older stable version 2.2.3 as well.

code sample
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

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

class Test extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _TestState();
  }
}

class _TestState extends State<Test> {
  List data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  bool _loading = false;
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(title: const Text('test')),
            body: NotificationListener(
                child: ListView.separated(
                  padding: const EdgeInsets.only(left: 5, right: 5),
                  itemBuilder: (c, i) => Card(
                    child: Container(
                      height: 100,
                      child: Text("$i"),
                    ),
                  ),
                  separatorBuilder: (context, index) {
                    return Container(
                      height: 0.5,
                      color: Colors.greenAccent,
                    );
                  },
                  itemCount: data.length,
                ),
                onNotification: (n) {
                  if (n is ScrollUpdateNotification) {
                    if (n.metrics.extentAfter > 50 && !_loading) {
                      _loading = true;
                      Future.delayed(Duration(milliseconds: 2000))
                          .then((value) {
                        for (int i = 0; i < 10; i++) {
                          data.add("Item $i");
                        }
                        if (mounted) setState(() {});
                        WidgetsBinding.instance!
                            .addPostFrameCallback((timeStamp) {
                          _loading = false;
                        });
                      });
                    }
                  }
                  return false;
                })));
  }
}

Output
https://user-images.githubusercontent.com/31410839/132816717-0e0ae43f-67be-4c04-bf7a-e9fa46fbead8.mov

flutter doctor -v
[✓] Flutter (Channel stable, 2.5.0, on macOS 11.5.2 20G95 darwin-arm, locale en-GB)
    • Flutter version 2.5.0 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cc385b4b8 (2 days ago), 2021-09-07 23:01:49 -0700
    • Engine revision f0826da7ef
    • Dart version 2.14.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • B622CBB7-F906-4FA7-8F49-FACEAAC905AB • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS
      11.5.2 20G95 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript •
      Google Chrome 93.0.4577.63

• No issues found!

[✓] Flutter (Channel beta, 2.5.0-5.3.pre, on macOS 11.5.2 20G95 darwin-arm, locale en-GB)
    • Flutter version 2.5.0-5.3.pre at /Users/mahesh/Documents/flutter_beta
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a7fb06d6fa (8 days ago), 2021-09-02 09:07:14 -0700
    • Engine revision fcde2c8b2f
    • Dart version 2.14.0 (build 2.14.0-377.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • B622CBB7-F906-4FA7-8F49-FACEAAC905AB • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS
      11.5.2 20G95 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript •
      Google Chrome 93.0.4577.63

• No issues found!

[✓] Flutter (Channel master, 2.6.0-1.0.pre.103, on macOS 11.5.2 20G95 darwin-arm, locale
    en-GB)
    • Flutter version 2.6.0-1.0.pre.103 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2c30b252a5 (13 days ago), 2021-08-27 23:26:03 -0400
    • Engine revision ca52647cd2
    • Dart version 2.15.0 (build 2.15.0-65.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.5.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 60.1.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • B622CBB7-F906-4FA7-8F49-FACEAAC905AB • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS
      11.5.2 20G95 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript •
      Google Chrome 93.0.4577.63

• No issues found!

Hi @ldhlfzysys Thanks for filing the issue, I can reproduce the issue the list is jumping to the last item, reproducible on the latest stable 2.5.0, beta, 2.5.0-5.3.pre and the master 2.6.0-1.0.pre.103 and the older stable version 2.2.3 as well.
code sample
Output
flutter doctor -v

@maheshmnj thank you very mush. We have been using Flutter for half a year.  about 240w UV per day.  We update from stable to beta version. and found new crash in #89733. about 600 times per day.  that's about 80 percent of the questions.

@ldhlfzysys hi, This is work as intended by flutter.
https://github.com/flutter/flutter/blob/0d0f7a4fb065da5de8640f1d6757cd5b9bc5534b/packages/flutter/lib/src/widgets/scroll_physics.dart#L431-L432
https://github.com/flutter/flutter/blob/0d0f7a4fb065da5de8640f1d6757cd5b9bc5534b/packages/flutter/lib/src/widgets/scroll_physics.dart#L490-L495
We can easily achieve what you want by overriding the BouncingScrollPhysics.adjustPositionForNewDimensions.
@Hixie Hi, I am considering whether we need to make maintainOverscroll optional. Do you know the default behavior on iOS?

@ldhlfzysys hi, This is work as intended by flutter.
https://github.com/flutter/flutter/blob/0d0f7a4fb065da5de8640f1d6757cd5b9bc5534b/packages/flutter/lib/src/widgets/scroll_physics.dart#L431-L432
https://github.com/flutter/flutter/blob/0d0f7a4fb065da5de8640f1d6757cd5b9bc5534b/packages/flutter/lib/src/widgets/scroll_physics.dart#L490-L495
We can easily achieve what you want by overriding the BouncingScrollPhysics.adjustPositionForNewDimensions.
@Hixie Hi, I am considering whether we need to make maintainOverscroll optional. Do you know the default behavior on iOS?

thanks. It's useful
class MyScrollPhysics extends BouncingScrollPhysics {
  const MyScrollPhysics({ScrollPhysics parent}) : super(parent: parent);
  @override
  MyScrollPhysics applyTo(ScrollPhysics ancestor) {
    return MyScrollPhysics(parent: buildParent(ancestor));
  }

  @override
  double adjustPositionForNewDimensions({
    ScrollMetrics oldPosition,
    ScrollMetrics newPosition,
    bool isScrolling,
    double velocity,
  }) {
    return newPosition.pixels;
  }
}

But In Null-Safe. I can override applyTo.  isn't a valid override.

mark, work for me!
Please resolve this issue thanks!

@Hixie Hi, I am considering whether we need to make maintainOverscroll optional. Do you know the default behavior on iOS?


[Bug] swck does not support number env value for oapserver.

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
SWCK (apache/skywalking-swck)
What happened
I use swck to deploy oapserver with custom env config, the number is wrappered by double quotation marks:
  - name: SW_CONFIGURATION
    value: grpc
  - name: SW_DCS_SERVER_HOST
    value: <IP_ADDRESS>
  - name: SW_DCS_SERVER_PORT
    value: "30989"
  - name: SW_DCS_PERIOD
    value: "5"

The oapserver failed to start, I try to describe it and found the quotation is missing, the following events shows the missing of the quotation caused the failure:
[root@15 swck]# kubectl describe oapserver default -n skywalking-system
Spec:
  Config:
    Name:     SW_ES_USER
    Value:    elastic
    Name:     SW_ES_PASSWORD
    Value:    elastic
    Name:     SW_CONFIGURATION
    Value:    grpc
    Name:     SW_DCS_SERVER_HOST
    Value:    <IP_ADDRESS>
    Name:     SW_DCS_SERVER_PORT
    Value:    30980
    Name:     SW_DCS_PERIOD
    Value:    5
  Image:      abcsys.cn:5000/public/skywalking-oap-server:9.5.0
  Instances:  1
  Service:
    Ingress:
    Template:
      Type:  ClusterIP
  Storage:
    Injectstorage:
      Metadata:
      Spec:
        Resource:
        Security:
          User:
      Status:
    Name:   boc-elasticsearch
  Version:  9.5.0
Events:
  Type     Reason                    Age                From                  Message
  ----     ------                    ----               ----                  -------
  Warning  failed to apply resource  4s (x13 over 25s)  oapserver-controller  encountered err: failed to create: Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found 3, error found in #10 byte of ...|,"value":30980},{"na|..., bigger context ...|.10.23.12"},{"name":"SW_DCS_SERVER_PORT","value":30980},{"name":"SW_DCS_PERIOD","value":5},{"name":"|...

What you expected to happen
The swck operator can keep double quotation marks in env value, then oap server can start successfully.
How to reproduce
Add any number env value in OapServer CRD, then apply it.
Anything else
My k8s version is 1.21.1 and swck version is 0.8.0.
I try to fix it by adding a template format func and it works, but i am not sure whether it is a good way, so If anyone else have good ideas, please reassign this to them:

Are you willing to submit a pull request to fix on your own?

[X] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@weixiang1862 Would it be simpler to add a double quotation here? https://github.com/apache/skywalking-swck/blob/502610b1cc71940cb36107ec335bd47aa829a781/operator/pkg/operator/manifests/oapserver/templates/deployment.yaml#L110

@weixiang1862 Would it be simpler to add a double quotation here? https://github.com/apache/skywalking-swck/blob/502610b1cc71940cb36107ec335bd47aa829a781/operator/pkg/operator/manifests/oapserver/templates/deployment.yaml#L110

Yes, this way is better than add a template func, I tested it and it works too.


Implement :startinsert

Why
An Obsidian.md plugin allows you to configure Obsidian's Vim support with a Vimrc-style config file. I want to be able to configure my Obsidian editor to enter insert mode automatically.
What changed

Added support for the startinsert command, which puts the editor into insert mode when executed.
Test plan

Attempt running :startinsert from inside of a CodeMirror Vim-enabled editor.

Tests now succeed on my local machine.

One last question, do we need to support the ! for append behavior, or is it not important?

One last question, do we need to support the ! for append behavior, or is it not important?

Oh, I wasn't aware of this behavior. I think it would be nice to have just for compatibility's sake. I think this could be a relatively simple change to add support; what do you think?

yes should be simple {insertAt: params.argString=="!" ? 'charAfter' : "" } passed as second argument

@nightwing, added. Thanks for being so quick to reply!

@nightwing I've also added tests in the latest push.


Setup pyinstaller build for Windows in the CI

We should probably do an order like
Basic pylint -> , if it worked, then
Test with python 3.8, 3.9 and 3.10 on Linux -> , if it worked, then
Use pyinstaller on Windows and upload artifact -> , if it worked
Is a release? If not stop here
If it's a release, we need to figure out pypi uploading.
PyPI upload will be figured out later in a new issue.

not exactly yet, but also not using windows too, using wine instead! win!


dupe bug when (dis)assembling a ship that has copycat blocks

Mod Name
Create
This issue occurs when only Valkyrien Skies, addons, and the mod I have specified are installed and no other mods

[X] I have tested this issue and it occurs with only Valkyrien Skies, addons, and the mod I have specified

Minecraft Version
1.19
Mod Loader
Fabric
Issue description
if copycat blocks are on a ship, when assembling or disassembling said ship, the blocks that were used in the copycat blocks will duplicate by dropping as items
a video demonstrating the above: https://filebin.net/mgvj6wnlpi6n5se7
i expect it to instead not drop the blocks used in the copycat blocks
Issue reproduction

make a ship that has either a copycat step or copycat panel on it
put a block that you wish to duplicate in the copycat step or panel
assemble or disassemble the ship

Logs
latest.log
couldnt find a debug.log

having the same issue here on forge
https://github.com/ValkyrienSkies/Eureka/assets/69168328/32632f12-76d9-408b-b597-118fb903fe0c

Same issue here as well....
never thought of using diamond blocks... hmmm

This is already fixed on the VS2 github, as well as every other custom container assembly dupe glitch

hmm this is what i have and it is still happening to me.

then it is not distributed?  sorry, i am not a programmer;  i don't know what you mean by "build the github version yourself" or how to do it.  looking at the VS2 github they have a link to download the mod from their website and that one is the same version i have right from CF.   so for us non-programmer type modders it is not "fixed" imho.

It has not been distributed, no, if you really need it, you can get it from here. It will likely be distributed after Ruby is done working on VS-Core.

its cool for now, i was just being told it was fixed after trying to add some information to bug reporting.  my ship is currently under construction anyway and this will not be a huge issue for some time so i can wait.  it is great to know they have a fix figured out and now i have something to look forward to :D thanks!


Fixed link path "apis.md"

Improvement of link disconnection by document movement.

Nagging Assignee @wt-huang: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.


[Bug Report] Multiple backupmanager entries in supercronic cronlist.

Have you read the Important information text above

[x] Yes i did

Current behavior
Occasionally, the backupmanager.sh script will be called again even if the cronlist file already contains a job. This causes the backup process to be called multiple times.
Desired behavior
Backup operation should only execute once.
Links to screenshots
https://doe.wtf/6OhtWA
https://doe.wtf/0m2q_w
To Reproduce
Steps to reproduce the behavior:

Compose & Start the image.
Use docker compose restart
backupmanager.sh adds another backup entry

Software setup

OS: Ubuntu 22.04.3 LTS
Docker: Docker version 25.0.1, build 29cf629

Hardware setup

vCPU: AMD FX(tm)-8320 Eight-Core Processor, 4013 MHz
RAM: 16 GB DDR3
Disk: 120 GB Sata SSD (Crucial MX200)

Additional context
No response

This bug should be gone when using docker-compose restart, im not touching now the file but writing it new. Feel free to test this and give me feedback on this.
If you like this project, please consider giving this repo and the docker-hub-repo a Star.

Thanks for the quick fix. Much appreciated.

Thanks for the quick fix. Much appreciated.

No problem, please be aware its only on develop right now.
docker pull jammsen/palworld-dedicated-server:develop
I will merge later to prod/master/latest


OCW-74: Maplewashing theme

Initial version, need to test with content on staging.

Coverage remained the same at 65.124% when pulling 42b59c0b60e4013b12cf61f2105b654fa0c61aaa on OCW-74 into bbb598a831485c586cbc3f889d58cbc4542a131b on master.


webapp.tf resource upload_nexus_props command error

Trailing \ missed off of command following reformatting.
Share name in command replaced with var.storage_account_name rather than azurerm_storage_share.nexus.name which is incorrect.
Steps to reproduce

Pull latest code from main

Run make tre-deploy

Failure when creating the share

@oliver7598 think this was fixed -  #1194
Have you got the latest from main?

@marrobi Just seeing that now - was the pull request only recently approved as I rebased my code this morning and change is showing as 22h ago


Test on php 7.0 in travis.ci

I suggest adding php 7.0 to tested versions in travis. If everything goes well then composer.json could be changed to allow installation on php7 too (e.g. "php": ">=5.4").

@spdionis thanks. Unfortunately it's a little more involved than just allowing PHP 7 in composer.json. PHP 7 support is not yet available for the Mongo driver, which causes composer install to fail in Travis. I ended up having to tweak the Travis configuration to install with --ignore-platform-reqs for PHP 7 (since the library itself does work - it's just missing the prerequisite extension).
I've addressed this via ca8e5ce. I cherry-picked the commit in your PR in order to include it as well.

Thank you very much for your work :+1: :)


Running on a time interval

It would be great to have the tasks display on a timer instead of every prompt. Would you be interested in this feature? I don't have experience writing much zsh, but I could take on the task if interested.

Hi,
I'm always interested in new features. However, I don't really understand what you want to achieve.
 So, do you have any use case to explain what your timer will do ?
Thanks.

Wait x minutes, then check for any shell input/output then display it.  Use case it just so I don't see the tasks show up with every command, but every once in a while.

OK. No problem, feel free to make a contrib.
Kind.

Took a shot at this with while or using the watch command on the zsh-add-hook precmd line with no luck so far.

My idea would be to add some variables todo_time_interval and todo_last_display_time and enclose the todo_display() code in an if block checking if the current timestamp (date +%s) is greater than todo_last_display_time + todo_time_interval.
Then you will probably have to make some changes to make sure that tasks are redisplayed when you add or remove one, whatever the last displayed time.
Hoping it will help you.


Docs.rs doesn't seem to run anymore for my crate simconnect-sys

Crate name
simconnect-sys
Build failure link
https://docs.rs/crate/simconnect-sys/0.23.1/builds/1041337
Additional details
I've had some trouble getting Docs.rs to build docs for my crate simconnect-sys. Initially it seemed to be failing due to not using the vendored feature as specified in the metadata, so I've now changed the crate to be vendored by default to see if I can get it building but even with that Docs.rs doesn't seem to be trying to build the docs for the new version 0.24.3.
Can you please provide any guidance as to how I can get Docs.rs attempting to build for this crate again?
Thanks!

Sorry for the delayed response.
This is probably another case of #797 or #1849 , where some build errors won't be surfaced to the user.
This problem will be solved in #2467, which is nearly finished, I hope I can finish it up at rustfest this weekend.
What can help debugging these issues is cargo docs-rs, which tries to build the docs the same way we do.
The error I'm getting is:
Error: failed to parse `package.metadata.docs.rs` for simconnect-sys

Caused by:
    default-target: invalid type: sequence, expected a string

I'm closing this issue here because the error is in the metadata.
I also just merged & deployed #2467, so future errors would be visible now


generating images for color selector

This can be used to create images for the different schemes in color brewer.
It uses palatable.

I did more exploration of the widgets about image selection (like in a dropdown menu). It seems that currently there is not an existing widget to handle this: https://github.com/jupyter-widgets/ipywidgets/issues/1688 I will exploring other possibilities to get around this.


feat: apply style if different

I am using mutation observer in my code and popper is triggering an infinite loop because the attributes get set over and over even if they are identical. I figured a clean fix could be to only apply changes if there is a diff.
Let me know what you think

Thanks for the PR.
This adds a performance overhead, we need to read and write to the DOM. We'll need to make sure perf is not impacted.

Thanks for the PR.
This adds a performance overhead, we need to read and write to the DOM. We'll need to make sure perf is not impacted.

@FezVrasta understood. Do you have any performance test ?
Also, I'd love to fix my PR but I am not familiar with Flow, any help on what should I modify?
I am taking a look at the functional test at the same time

@FezVrasta understood. Do you have any performance test ?
Also, I'd love to fix my PR but I am not familiar with Flow, any help on what should I modify?
I am taking a look at the functional test at the same time

Hi, unfortunately I don't have any performance tests, I usually open the visual tests and run some performance captures before and after the changes.

@FezVrasta I am not sure how to do that 😕

These are the visual tests, they are just html files you can open with any browser:
https://github.com/popperjs/popper-core/tree/master/tests/visual
You can then use the performance panel on Chrome to see how it runs.

@FezVrasta this PR has been opened for a while now and I unfortunately do not have more time to invest in it :(
Feel free to close it


TP v2 change Full Name to Name on the user page

this pr changes the full name in TP v2 to name on the user page

Which Traffic Control components are affected by this PR?

Traffic Portal v2

What is the best way to verify this PR?

Go to current user profile  to verify  that full name is changed to name.

PR submission checklist

[ ] This PR has tests
[ ] This PR has documentation
[ ] This PR has a CHANGELOG.md entry
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

This also needs to get updated in the users table and the user details pages


Report on the doc: URLs to Row module are unreachable

Hello maintainer,
I found some unreachable URLs as the issue title.
For Example: in https://pursuit.purescript.org/packages/purescript-typelevel-prelude/5.0.0/docs/Type.Row, "Re-exports from Prim.Row" is an unreachable link. The destination is https://pursuit.purescript.org/packages/purescript-typelevel-prelude/5.0.0/docs/Prim.Row

I think it need to be updated.

I think this a bug in pursuit, the Prim modules are special, so the link should resolve to https://pursuit.purescript.org/builtins/docs/Prim.Row rather than treating it as a normal module.
Do you agree @hdgarrood? If so, let's move the issue over there.

This is definitely a bug in either pursuit or the compiler, because this link is rendered by one of them (I don’t remember which). In any case it is definitely not the responsibility of the library author.
I think this bug might already have been fixed, and we might just need to update Pursuit to build against the latest compiler and deploy it.

Okidoke. I'll transfer this to the pursuit repo anyway then, and we can close it when we figure out what's responsible / whether it's fixed. 🙂


bamtools split ERROR: could not open basecalls.sort.REF_NM_001019297.2.bam for writing.

Hi:
When I run the following command：bamtools split -in basecalls.sort.bam -reference
This error occurred:
bamtools split ERROR: could not open basecalls.sort.REF_NM_001019297.2.bam for writing.

So few error messages that I don't know what's going on.About 1k splied_bam have been generated in the output folder(The reference sequence has approximately 6k transcripts).I want say yes,transcriptome,not chromosome.
Thank you for helping me.

i met this problem too, have you solved it bro


Web - Contact Methods - Heavy check mark is misaligned

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to staging.new.expensify.com
Log in with any account
Go to /settings/profile/contact-methods
Add a phone number (no need to validate)
You should be taken back to the "Contact methods" page
Click on phone number again

Expected Result:
Heavy check mark is NOT misaligned
Actual Result:
Heavy check mark is misaligned
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @sophiepintoraetz (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@sophiepintoraetz Whoops! This issue is 2 days overdue. Let's get this updated quick!

Recovering from travel - will look at this tomorrow.

@kbecciv - I think there needs to be further clarification here:

Do you need to click Resend magic code in order to bring up the check mark? (This step is not captured in the OP)
What do you mean by misaligned - misaligned to what?

@sophiepintoraetz Sorry, for missing the last step.

Yes, you need to click Resend magic code in order to bring up the check mark
Heavy check mark should be in the same level with text.
If looks expected, please closed KI as completed

.

Actually, it's hard to notice the difference, but if you try to shrink the check mark (by using Devtools for example), you'll see it's not center-aligned with the text:

Ah, that's great context - thank you @tienifr. Ill add that as an updated step. @kbecciv - in the future, please can you make sure you are detailed in your repro steps?

Triggered auto assignment to @AndrewGable (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Job added to Upwork: https://www.upwork.com/jobs/~0134e1e307eb717327

Triggered auto assignment to @dylanexpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (External)

Current assignee @AndrewGable is eligible for the External assigner, not assigning anyone new.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Resend magic link and Checkmark Icon are not center alignned
What is the root cause of that problem?
https://github.com/Expensify/App/blob/78a9b540f6244276599d58f9aa3fc7d671441c8d/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.js#L196-L205
In ContactMethodDetailsPage page Checkmark icon and Resend Magic Code wrapped in a view with styles.flexRow, but we have not center aligned the parent view
What changes do you think we should make in order to solve the problem?
https://github.com/Expensify/App/blob/78a9b540f6244276599d58f9aa3fc7d671441c8d/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.js#L196-L198
to the parent view of Icon and Resend text we need to pass the alignItems: 'center',we can use styles.alignItemsCenter that already defined

Results
Before

After

What alternative solutions did you explore? (Optional)

Proposal

Proposal
Please re-state the problem that we are trying to solve in this issue.
Heavy check mark in Contacts method page is misaligned.
What is the root cause of that problem?
The View component wrapping the Resend magic link text and the check icon does not center align its items.
What changes do you think we should make in order to solve the problem?
Add styles.alignItemsCenter to that View.
https://github.com/Expensify/App/blob/4ee21e95a38858df28e46caf54dc97e1bca9bc7a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.js#L196-L198
What alternative solutions did you explore? (Optional)
NA
Result
I shrank the check icon to make it more clear to observe the difference.
Before:

After:

Currently, Text and Icon both are of height 20px so IMO this is not a bug. Only when we shrink manually by changing height/width through inspect element, it is misaligned.
https://github.com/Expensify/App/blob/64f4a7814e87bd7c4d085776abf5cb8a67b9e8bc/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.js#L199-L204

Currently, Text and Icon both are of height 20px so IMO this is not a bug. Only when we shrink manually by changing height/width through inspect element(I believe this kind of manipulation shouldn't be treated as a bug), it is misaligned.

@Pujan92 But there is no harm to make it align center, right?

@jayeshmangwani @tienifr Your approach is misleading, when you shrink it since it is origin in top it will shrink towards top of the alignment. As @Pujan92 mentioned this two elements' height 20px each and, they are aligned at the center

There is no way of alignment, other than "aligning with naked eye" which won't result in a good(unbiased) outcome. Also adding align-items: center won't do a thing

Thanks @alitoshmatov for the thoughts. We've actually discussed this issue internally and decided to close to not fix as this is not a bug. Thanks all for the input!


core-bpf: enable sol-get-sysvar syscall

Problem
The BPF version of Address Lookup Table depends on SolGetSysvar to read slot hash data. It should be activated if testing against the BPF version of Address Lookup Table.
Summary of Changes
If the core-bpf feature is active, and the program is the Address Lookup Table program, activate the feature.

ideally these features should just be passed in through the fuzzing input. the harness should not be setting any state that should be defined within the input protobuf message

Makes sense. For now I'm going to wait on this change, but ideally any fixture that doesn't have the syscall feature enabled is never going to pass in the BPF version. Maybe we can figure out another way, like generating fixtures with the feature enabled?


feat: tag on copy animation + layout component improvements

#126  👈
main

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

Join @kylemcd and the rest of your teammates on  Graphite


How its works?

I enter the address and port of the server, then I log on to it, but nothing happens.
Windows 10 20H2
pakkit v69, 71, 73

Did you:
1.) Select the correct Plattform (Java/Badrock)?
2.) Select the correct Version of your Client?
3.) Set in the field "Connect address" the ip or url to the running minecraft server?
4.) Set in Connect port, the correct port the minecraft instance is running on the server? (Some server use non default ports via SRV-Lookup, Pakkit can't look up them currently, you have to find out it by your own)
5.) Set in the field "Listen port:" a Port number of your system that is unused and not blocked by any other software/firewall? (Maybe try different port like 6666)
6.) In your minecraft client, did you set "localhost:6666" (localhost + ":" + Listen Port you selected) as Server-Adresse?
7.) Do you now exactly what a proxy is?
If you can answer all with yes, then please explain more what "nothing happens" means to you.

I miss stage 6)


Feature: Improve board perspective for black

I would like to tackle this issue for Hacktoberfest.
When playing as black, the perspective of the board is upside down.
The black pieces should be at the bottom rather than playing from at the top.
The lettering should be:
1
2
3
4
5
6
7
8
h  g  f  e  d  c  b  a

Sounds good 👍🏻 I'll assign this issue to you.

I got this working when playing against a computer, however, I've found something rather odd and confusing -
self.opponent_side is actually you, yourself being the player.
self.side is actually with respect to the computer.
From play.py
        if player_side.lower().strip().startswith("w"):
            b = Board("black")
        else:
            b = Board("white")
        b.play()

It'll initialize the Board's side with black if you choose white....and setting opponent_side to white
within bitboard.py
        while True:
           ......
            if side_to_move == self.side:
               # Do Computer Moves Here....
            else:
                # ask for user input until accepted:
                input_accepted = False
                move_undone = False

Shouldn't self.opponent_side always be the computer?

Yeah, this is as intended. I've set Board.side to be the side that the computer will be playing, and considered the human player to be the opponent, hence the human player is assigned Board.opponent_side. I'll add this assignment convention to the docs. I hope I could clarify :)

Ah, that makes sense.


Alternate DSL Syntax for Task

When I am creating complex tasks, I often struggle to create them in a way that is pleasing to the eye. When doing partial builds for example, you may have several script blocks for parameters. Doing this inline feels ugly and I don't find that splatting the parameters feels a whole lot better.
I have created a helper DSL function in my scripts to address this and I would like to propose that Invoke-Build adopts something similar.
Here is an example of a partial build with complex parameters.
Task CreateHelp -Partial -Inputs {
    Get-ChildItem "$ModuleName\Public\*.ps1"
} -Outputs {
    process
    {
        Get-ChildItem $_ | % {'{0}\{1}.md' -f $HelpRoot, $_.basename}
    }
} 'ImportModule', {
    process
    {
        $null = New-Item -Path $HelpRoot -ItemType Directory -ErrorAction SilentlyContinue
        $mdHelp = @{
            #Module                = $script:ModuleName
            OutputFolder          = $HelpRoot
            AlphabeticParamsOrder = $true
            Verbose               = $true
            Force                 = $true
            Command               = Get-Item $_ | % basename
        }
        New-MarkdownHelp @mdHelp | % fullname
    }
}

I created a ComplexTask so that I could write it like this:
ComplexTask CreateHelp @{
    Partial = $true
    Inputs  = { Get-ChildItem "$ModuleName\Public\*.ps1" }
    Outputs = {
        process
        {
            Get-ChildItem $_ | % {'{0}\{1}.md' -f $HelpRoot, $_.basename}
        }
    }
    Action  = 'ImportModule', {
        process
        {
            $null = New-Item -Path $HelpRoot -ItemType Directory -ErrorAction SilentlyContinue
            $mdHelp = @{
                #Module                = $script:ModuleName
                OutputFolder          = $HelpRoot
                AlphabeticParamsOrder = $true
                Verbose               = $true
                Force                 = $true
                Command               = Get-Item $_ | % basename
            }
            New-MarkdownHelp @mdHelp | % fullname
        }
    }
}

I personally find this easier to follow and read. You will notice that I use a hashtable to achieve this. I do this so that I can splat this to your Task command.
function ComplexTask
{
    [CmdletBinding()]
    param(
        [Parameter(Position = 0, Mandatory = 1)]
        [string]
        $Name,
        [Parameter(Position = 1, Mandatory = 1)]
        [hashtable]
        $Options
    )
    try
    {
        if ( $null -ne $Options.Action )
        {
            $Options.Jobs = $Options.Action
            $Options.Remove('Action')
        }
        Task $Name @Options
    }
    catch
    {
        Write-Error "Failed to execute taks [$Name]"
        throw
    }
}

I know using a hashtable this way has drawbacks like not having help, validation, or even autocomplete. But I do like the way it looks in my build scripts. I think the ideal implementation is that Task gains a 2nd parameter set that accepts a hashtable and handles this internally.

I understand your problems very well. Do you know if PowerShell going to address this issue with improved splatting? Ideally, PowerShell should not require an intermediate variable for applying this "operator" to a hashtable.
If PowerShell v6 is not going to improve this then, yes, let's think of making things better at least for Invoke-Build tasks. It's not a promise but I like what you are suggesting. Let me think of pros, cons, and everything related.

Do you think it should be something like this?
task MakeDocs @{
    Inputs = {
        Get-ChildItem *.md
    }
    Outputs = {
        Get-ChildItem *.htm
    }
    Jobs = 'PreTask1', {
        'Making...'
    }
}

Or something else?
Is it really better than the current?
task MakeDocs PreTask, {
    'Making...'
} -Inputs {
    Get-ChildItem *.md
} -Outputs {
    Get-ChildItem *.htm
}

I think function ComplexTask is really complex :)
I can be a one-liner:
function taskx($Name, $Parameters) {Add-BuildTask $Name @Parameters}

taskx Task2 @{
	Inputs = {Get-Item *.md}
	Outputs = {Get-Item *.htm}
	Jobs = 'Task1', {
		#...
	}
}

task Task1 {
	#...
}

And even better:
function taskx($Name, $Parameters) {task $Name @Parameters -Source $MyInvocation}

# Synopsis: About Task2
taskx Task2 @{
    Inputs = {Get-Item *.md}
    Outputs = {Get-Item *.htm}
    Jobs = 'Task1', {
        #...
    }
}

# Synopsis: About Task1
task Task1 {
    #...
}

Then Invoke-Build ? gives proper synopsis (and shows proper info on failures):
Name  Jobs        Synopsis
----  ----        --------
Task2 {Task1, {}} About Task2
Task1 {}          About Task1

And given that just one helper line makes this possible, I started to have
doubts that this should be in the engine. Simple scripts do not need this.
Complex scripts may just use this one-liner.

That is nice and compact. It would also be easy for someone to drop into their script if they wanted it.

It would be nice if you engage this, for example in your PSGraph/module.build.ps1 where you use ComplexTask, so that we have a real example link in here.
Meanwhile, I am adding this tip to help and wiki. Will be in the coming soon v4.0.0 (very soon).

I included this helper to help, see just released v4.0.0:
. Invoke-Build
Get-Help task -Examples

Here is the help source.
I added it to wiki: Incremental-Tasks#composing-tasks.

Eventually this difficulty should be solved in PowerShell. Sooner or later,
such a feature in the engine would be be obsolete.
I propose to close the issue and not do this or something similar in the
engine, not now at least.
NB: On my current machine I have just found 275 various build scripts for
Invoke-Build. For years somehow I did not need this helper taskx. Somehow
splatting was good and clear enough. But I am going to use taskx. It turns
out to be simple and handy.

It's one of those things that once you see it, you can't un-see it. I updated my PSGraph build script to use your shorthand method. https://github.com/KevinMarquette/PSGraph/blob/master/module.build.ps1#L13
I'll start working this into my other projects and plaster templates.

I'm also working on a talk about creating DSLs in PowerShell and will use this as one of my examples.

@KevinMarquette The suggested taskx syntax will be supported natively by task, see the new issue. After v5.0.0 we do not even need a new parameter set for this feature.


[SPARK-34762][BUILD][FOLLOWUP] Remove the workaround for SPARK-34762

What changes were proposed in this pull request?

This PR removes the workaround for SPARK-34762.
After SPARK-34959 (#32055) is merged, that issue seems to go away without the workaround.
Why are the changes needed?

To remove unnecessary workaround.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

I confirmed the build pass on my laptop with the following commands.
find ~/.cache -path "commons*" -exec rm -rf {} \;
find ~/.m2 -path "commons*" -exec rm -rf {} \;
find ~/.ivy2 -path "commons*" -exec rm -rf {} \;
./build/sbt -Pyarn -Pmesos -Pkubernetes -Phive -Phive-thriftserver -Phadoop-cloud -Pkinesis-asl -Pdocker-integration-tests -Pkubernetes-integration-tests -Pspark-ganglia-lgpl -Pscala-2.13 compile test:compile

Test build #137018 has started for PR 32078 at commit f830c80.

Test build #137018 has finished for PR 32078 at commit f830c80.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/137018/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41596/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41596/

Ur, Scala 2.13 build seems to fail on this PR, @sarutak .

Seems the same issue of commons.cli?
error: package org.apache.commons.cli does not exist

Hmm, it passed on my laptop but I must miss something.
Anyway, we seems to still need this workaround so I'll close this PR.

Got it. Thank you for keeping your eyes on it, @sarutak .

Thanks guys!


sulu_content_path does not return absolute URL

Q
A

Bug?
yes

New Feature?
no

Sulu Version
1.4.3

My client reported this to me after upgrading from 1.3.0 to 1.4.3 and I just reproduced it and had a more detailed look at it.
In our project, every locale has its own URL:
<environment type="prod">
                    <urls>
                        <url language="de">www.beispiel.org</url>
                        <url language="en">www.example.org</url>
                        <url language="es">www.ejemplo.org</url>
                        ...
                    </urls>
</environment>

Let's say we have a page translated in de and en. Their absolute URLs would be www.beispiel.org/seite-1 and www.example.org/page-1.
On our site, we have a language switch, so the user can change the language of the current page if it is translated. This is how we do it (simplified):
{% set availableLocales = sulu_content_load(uuid).urls %}

                {% for key, language in locales %}

{{ language }}

                {% endfor %}

So (if you simplify it even more), this would be the same as:

Expected behavior
In 1.3.0 (and as the docs state), this would render as:

Actual behavior
But in 1.4.3 it renders as:

So it does not consider that the locales have different hostnames. Obviously, those URLs do not exist. So currently if a user changes the language, a 404 error is shown.

@afroewis Can reproduce, I am having a look at it.

Fixed in sulu/sulu#3131


time.Parse doesn't seem to parse the abbreviated timezone as expected

What version of Go are you using (go version)?

$ go version
go version go1.19.3 darwin/arm64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/gnvk/Library/Caches/go-build"
GOENV="/Users/gnvk/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/gnvk/Dev/go/pkg/mod"
GONOPROXY="github.com/alpacahq/*"
GONOSUMDB="github.com/alpacahq/*"
GOOS="darwin"
GOPATH="/Users/gnvk/Dev/go"
GOPRIVATE="github.com/alpacahq/*"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/homebrew/opt/go/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/homebrew/opt/go/libexec/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.19.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/gnvk/Dev/alpaca/corpaca/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xv/5sz1kn411vb_g2_vmhnstl1c0000gn/T/go-build2211926623=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?
I ran the first example in the example under https://pkg.go.dev/time#Parse both in the Go Playground and on my local machine:
const longForm = "Jan 2, 2006 at 3:04pm (MST)"
t, _ := time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)")
fmt.Println(t)

What did you expect to see?
2013-02-03 19:54:00 -0800 PST

What did you see instead?
2013-02-03 19:54:00 +0000 PST

https://github.com/golang/go/blob/master/src/time/example_test.go#L375 also seems to fail with this:
=== RUN   ExampleParse
--- FAIL: ExampleParse (0.00s)
got:
2013-02-03 19:54:00 +0000 PST
2013-02-03 00:00:00 +0000 UTC
2006-01-02 15:04:05 +0000 UTC
2006-01-02 15:04:05 +0700 +0700
error parsing time "2006-01-02T15:04:05Z07:00": extra text: "07:00"
want:
2013-02-03 19:54:00 -0800 PST
2013-02-03 00:00:00 +0000 UTC
2006-01-02 15:04:05 +0000 UTC
2006-01-02 15:04:05 +0700 +0700
error parsing time "2006-01-02T15:04:05Z07:00": extra text: "07:00"
FAIL

Totally agree!

Same result in a European timezone, but I got the right result in a Pacific timezone
in European timezone:
root@57bc7499a835:/go/src/time_test# date
Wed Nov  2 18:05:46 CET 2022
root@57bc7499a835:/go/src/time_test# go test example_test.go -count=1
--- FAIL: ExampleParse (0.00s)
got:
2013-02-03 19:54:00 +0000 PST
2013-02-03 00:00:00 +0000 UTC
2006-01-02 15:04:05 +0000 UTC
2006-01-02 15:04:05 +0700 +0700
error parsing time "2006-01-02T15:04:05Z07:00": extra text: "07:00"
want:
2013-02-03 19:54:00 -0800 PST
2013-02-03 00:00:00 +0000 UTC
2006-01-02 15:04:05 +0000 UTC
2006-01-02 15:04:05 +0700 +0700
error parsing time "2006-01-02T15:04:05Z07:00": extra text: "07:00"
FAIL
FAIL    command-line-arguments  0.004s
FAIL

In Pacific timezone:
root@57bc7499a835:/go/src/time_test# date
Wed Nov  2 10:06:12 PDT 2022
root@57bc7499a835:/go/src/time_test# go test example_test.go -count=1
ok      command-line-arguments  0.003s

After parsing the time string, you will get a time.Time value for which the Location method will return a location named "PST".  However, the standard timezone database has no mapping from "PST" to a zone offset.
Quoting the documentation for time.Parse:

When parsing a time with a zone abbreviation like MST, if the zone abbreviation has a defined offset in the current location, then that offset is used. The zone abbreviation "UTC" is recognized as UTC regardless of location. If the zone abbreviation is unknown, Parse records the time as being in a fabricated location with the given zone abbreviation and a zero offset. This choice means that such a time can be parsed and reformatted with the same layout losslessly, but the exact instant used in the representation will differ by the actual zone offset. To avoid such problems, prefer time layouts that use a numeric zone offset, or use ParseInLocation.

Closing because this is working as documented.

@ianlancetaylor
In my opinion this behaviour is unusual to say the least. It effectively means that the correctness of the parsing depends on your current location.

However, the standard timezone database has no mapping from "PST" to a zone offset.

Anyway, can you please help me how to work around this limitation? Say you have a list of timestamps in this format: "Jan 2, 2006 at 3:04pm (MST)". How can you parse them correctly?

It effectively means that the correctness of the parsing depends on your current location.

The document quoted by ianlancetaylor@ has pointed out that you can use time.ParseInLocation. So that it can be changed to depend on the location you specified.
Please note that a zone abbreviation alone is not enough to determine the time zone offset sometimes. For example, CST means different time zone offset in different locations. See the demo below:
package main

import (
	"fmt"
	"time"
)

func main() {
	parseIn("Asia/Shanghai")
	parseIn("America/Chicago")
	parseIn("America/Havana")
}

func parseIn(locationName string) {
	loc, err := time.LoadLocation(locationName)
	if err != nil {
		panic(err)
	}

	const longForm = "Jan 2, 2006 at 3:04pm (MST)"
	t, err := time.ParseInLocation(longForm, "Feb 3, 2013 at 7:54pm (CST)", loc)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%15s: %v\n", loc, t)
}

The output:
  Asia/Shanghai: 2013-02-03 19:54:00 +0800 CST
America/Chicago: 2013-02-03 19:54:00 -0600 CST
 America/Havana: 2013-02-03 19:54:00 -0500 CST

@ZekeLu Thank you for the example. I didn't know that the zone abbreviation alone is not enough to determine the time zone.


Recipe recipe_wenzel16nat specifically needs output_file_type: pdf otherwise it fails at provenance

I am fine with the restriction on output file type, what I am not fine with is the fact that there is no check before it starts running the diag therefore if the output is anything but pdf, it crashes with a fairly obscure provenance initialization error. There is no maintainer for this, apart from the orig developer who looks like she went under a bus, so I will try implement the check - in the near future!

I think the problem is that the provenance record is too big to be written to a .png file. I am happy to look into implementing a file type check into that diagnostic if that is fine with you.

Just opened a small PR fixing this problem: #2976


Not really an issue, just a question...

Wanted to write some gratitude as well, this project has been a lifesaver.
Really appreciate the work you put into it.
I just saw the new settings for the video quality, was wondering if I could get a better breakdown or maybe another resource on the "crf-profiles", I'm struggling with understanding how to get it to work, and how it can benefit me vs the crf property.
I saw the wiki page on it, but I'm still not fully understanding it. Any additional info on I could get?
Thanks.

I appreciate the kind words
The crf-profiles option arose from this issue
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/724
Its just an option that allows you to set different CRF values along with maxrate and bufsize parameters depending on the quality of the input file. You can sort of read through the issue to see why people were requesting it. Hopefully that helps but feel free to ask more questions if its not clear


Version bump for 3.2.4 release

Includes:
Support CDAP 4.3.1 ( Issue: #262 )

We are going to do a minor version bump instead because this changes the default behavior of the cookbook