Why does Spark GPU Plugin only support 1 gpu per executor?

Hello @abellina
I did some Queries in GPU and CPU mode, and found that the execution performance of SQL in GPU mode has been improved greatly. But I would like to ask a question. When the Rapids-4-Spark plugin uses Rmm to initialize GPU resources, an Executor can only bind one GPU resource. Spark3.0 itself can set multiple GPUs for a single Executor through spark.executor.resource.gpu.amount, so why does Spark GPU Plugin only support 1 gpu per executor?
What are the reasons for this setting?
If so, can you provide multiple GPUs per executor?
Is this feature in your current development work? I am very interested in participating.
I am looking forward to your reply

The RAPIDS Accelerator only supports a single GPU per executor because that was a limitation of RAPIDS cudf which is the foundation of the Accelerator.  I think libcudf may support multiple GPUs, but if so it's been a very recent addition.
It would be interesting to know why you want to run multiple GPUs per executor.  Typically it's not recommended to run too many concurrent tasks per Spark executor, so we've actually received requests to do the opposite of this request, i.e.: multiple executors per GPU.
Also note that we have no plans for a single task leveraging multiple GPUs with the Accelerator because libcudf does not support this nor has any plans to do this in the future.
If you have a use-case that requires this feature it would be good to document it here, otherwise I would recommend running multiple executors to leverage multiple GPUs, just as many effective Spark installations run multiple executors per node rather than one large executor per node.

@jlowe we really should add this to the FAQ.  We have gotten this question multiple times now, or different variants of it.

The RAPIDS Accelerator only supports a single GPU per executor because that was a limitation of RAPIDS cudf which is the foundation of the Accelerator. I think libcudf may support multiple GPUs, but if so it's been a very recent addition.
It would be interesting to know why you want to run multiple GPUs per executor. Typically it's not recommended to run too many concurrent tasks per Spark executor, so we've actually received requests to do the opposite of this request, i.e.: multiple executors per GPU.
Also note that we have no plans for a single task leveraging multiple GPUs with the Accelerator because libcudf does not support this nor has any plans to do this in the future.
If you have a use-case that requires this feature it would be good to document it here, otherwise I would recommend running multiple executors to leverage multiple GPUs, just as many effective Spark installations run multiple executors per node rather than one large executor per node.

@jlowe
thank you for your reply.
My initial idea was that, similar to the traditional way, an Executor can have a lot of cpu cores, and an Executor can perform a lot of GPU tasks. Your explanation answered my confusion, GPU does not have the concept of cores. Too many tasks will also affect the execution performance of Executor. Excuse me, are you developing multiple executors per GPU?

we really should add this to the FAQ.

Excellent point, I'll post a PR later today.

are you developing multiple executors per GPU?

We're not planning on it, at least for now.  Apache Spark does not allow scheduling a fraction of GPUs to an executor.

we really should add this to the FAQ.

Excellent point, I'll post a PR later today.

are you developing multiple executors per GPU?

We're not planning on it, at least for now. Apache Spark does not allow scheduling a fraction of GPUs to an executor.

Ok, thank you very much for your positive reply, have a nice day.

Hello @jlowe
I still want to ask another question. For an executing SQL, before the physical plan is executed, Rapids-4-Spark will judge the physical plan. If the plan can be executed by the GPU, the corresponding GPU operation will be executed. If it cannot be executed by the GPU, it is executed by the CPU. I found that when GPU is executed, RDD[Columnar Batch] is used to read data, and RDD[Internal Row] is for CPU. Why?
I guess whether it is because the GPU gets the data from the memory, which reads the data very quickly? And this requires the CPU to read the data from the disk to the memory through the RDD [Internal Row] at the first. Um, can the CPU also support RDD [Columnar Batch] batch data reading?

I found that when GPU is executed, RDD[Columnar Batch] is used to read data, and RDD[Internal Row] is for CPU. Why?

I suggest checking out this section of the FAQ which touches on why the GPU operates on columnar data vs. the row-at-a-time processing done by the CPU.

can the CPU also support RDD [Columnar Batch] batch data reading?

Yes, it could. However Apache Spark currently only uses columnar data when fetching data from columnar formats like Parquet and ORC. After the columnar data is fetched it is transformed back into row format because the rest of Spark processes in rows. Apache Spark could support columnar data through the entire query on the CPU as is done via the RAPIDS Accelerator when running on the GPU, but this would be a significant change to the code base.
The closest thing I've seen to Apache Spark processing columnar data throughout on the CPU is the announcement of the Photon engine by Databricks, but there aren't a lot of details.

Thank you for your reply ,haha, smiling~


UnsatisfiedLinkError on x86_64 devices

I run your demo code on Android Studio Emulator, but it crashed.
E/AndroidRuntime: FATAL EXCEPTION: GLThread 313
                  Process: PID: 12056
                  java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/*/base.apk"],nativeLibraryDirectories=[/data/app/*-1/lib/x86_64, /data/app/*-1/base.apk!/lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libffmpeg.so"
                      at java.lang.Runtime.loadLibrary(Runtime.java:367)
                      at java.lang.System.loadLibrary(System.java:1076)
                      at org.wysaid.nativePort.NativeLibraryLoader.load(NativeLibraryLoader.java:18)
                      at org.wysaid.nativePort.CGEFrameRenderer.<clinit>(CGEFrameRenderer.java:11)
                      at org.wysaid.view.VideoPlayerGLSurfaceView$9$1.run(VideoPlayerGLSurfaceView.java:487)
                      at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1463)
                      at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

I've built via buildJNI, but there is no any x86_64 *.so files. How can I fix that?

make sure there's only armv7a in lib folder(delete all others)
run, and see the result

OK, thanks.
Another problem, I've applied filter when starting to play video, and once my app goes background (going through onPause() / onResume()), the filter was gone. How can I keep filter when app returns from background?

OK, thanks.

https://github.com/wysaid/android-gpuimage-plus/issues/451


Add ReadMe to document learnings

Since this is also a learning project (which might contain useful information in the future) add a small documentation (for example Satellite Assemblies in WASM).

Hello, we tried to solve the issue.
This is what we did:
Created a new Markdown file 'docs/SatelliteAssembliesInWASM.md' to document the use of Satellite Assemblies in WebAssembly for the DnDCharCtor project.
You can review changes in this commit: https://github.com/mnmnk43434/YeGaSoft-DnDCharCtor-15/commit/8a14e38fc78db07d6f6a07bc4ae5311d5c0ffa7c.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.

Also document learnings from (offline) PWA & GitHub Pages


[SPARK-33513][BUILD] Upgrade to Scala 2.13.4 to improve exhaustivity

What changes were proposed in this pull request?
This PR aims to upgrade from Scala 2.13.3 to 2.13.4 for Apache Spark 3.1 and to fix exhaustivity issues in both Scala 2.12/2.13.
Why are the changes needed?
Scala 2.13.4 is a maintenance release for 2.13 line and improves JDK 15 support.

https://github.com/scala/scala/releases/tag/v2.13.4

Also, it improves exhaustivity check.

https://github.com/scala/scala/pull/9140 (Check exhaustivity of pattern matches with "if" guards and custom extractors)
https://github.com/scala/scala/pull/9147 (Check all bindings exhaustively, e.g. tuples components)

Does this PR introduce any user-facing change?
Yep. Although it's a maintenance version change, it's a Scala version change.
How was this patch tested?
Pass the CI (Scala 2.13 compilation) and do the manual testing.

Test build #131481 has started for PR 30455 at commit f0d9fff.

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

Merged build finished. Test FAILed.

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

Merged build finished. Test FAILed.

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

Test build #131558 has started for PR 30455 at commit 6c26b2d.

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

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

Merged build finished. Test PASSed.

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

Test build #131565 has started for PR 30455 at commit 67cbc0b.

Test build #131566 has started for PR 30455 at commit dab110c.

Test build #131558 has finished for PR 30455 at commit 6c26b2d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #131569 has started for PR 30455 at commit 5661918.

Test build #131570 has started for PR 30455 at commit eb19da4.

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

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

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

Merged build finished. Test PASSed.

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

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

Merged build finished. Test FAILed.

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

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

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

Test build #131565 has finished for PR 30455 at commit 67cbc0b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

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

Merged build finished. Test FAILed.

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

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

Merged build finished. Test PASSed.

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

Test build #131566 has finished for PR 30455 at commit dab110c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #131573 has started for PR 30455 at commit 7214398.

Merged build finished. Test FAILed.

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

This PR is ready for review finally.
Could you review this PR, @srowen , @HyukjinKwon , @maropu , @LuciferYang ?

Test build #131569 has finished for PR 30455 at commit 5661918.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

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

Test build #131570 has finished for PR 30455 at commit eb19da4.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

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

Merged build finished. Test PASSed.

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

Test build #131573 has finished for PR 30455 at commit 7214398.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #131590 has started for PR 30455 at commit 7214398.

The new pattern match is strict and the master branch change can easily break it. I'll merge this first with @maropu 's approval and do the follow-up.

Thank you always, @maropu !

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

Build finished.

Thank you, @srowen and @HyukjinKwon .

Test build #131590 has finished for PR 30455 at commit 7214398.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Build finished.

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


Issue server crash.

Hello! so i am getting an issue were my server crashes.
Here is what it says

And is there a way i can make it automatically start if the server crashes??

If it's Linux, use the restart script:
#/bin/bash
clear

while true
do
  # Insert your tasks here
  done

Masta, sorry i dont really understand the code. So i have no idea on how to use it.
Can you explain please?

Put that into a .sh file. Replace the comment in the do - done loop of how your server runs. "node index.js" or whatever. Put the .sh file in the directory of where it's going to run, go back to it and run it by typing in sh name.sh

Wait so i need to run my server through that file??

And i dont need a restart script, i need a script that opens the server if it crashes.

Wait nvm, does it automatically start if the server crashes??
xD

Yeah

Looks like noone knows that it's simple error in code.
@Megabyte918  - please add check typeof split !== undefined in GameServer:1571

Masta, it still doesnt work :/
and error comes up when i run it with this    sh runnocrash.sh

and this is code i put in
`#/bin/bash
clear
while true
do
node index.js
done`

And i put the .sh file in the src folder by the index.js

I don't know why it does that sometimes. Are you sure you put in tabs?

in tabs? on my vps i just put it in the src folder where the index.js is and ran it.

No I meant indents in the sh file.

@CalvinDKL It looks like you are using an outdated version, this bug was fixed long ago.

Maybe edited the gamserver.js :)
I added minions protection

Then it is a problem with the code you've inserted, I cannot help you because I do not know what you modified.

@Megabyte918  How to autorestart server..?

@fayizan the same question was asked here: https://github.com/Megabyte918/MultiOgar-Edited/issues/76


Use a different path extension for swift-testing builds

Currently, SwiftPM is using the same path to build swift-testing and XCTest content. This works about 90% of the time because we only need one or the other at any given moment, but it causes some workflows to fail on Linux because the build system sees the existing build product and assumes the build has already completed, which is incorrect. Darwin doesn't seem to be affected (because the XCTest build product is a bundle rather than an executable.)
This PR selects a different path extension, ".swift-testing", for swift-testing's build product.

@swift-ci please test

Looks like this is blocked on #7123.

@swift-ci test

@swift-ci please test

Today is not off to a great start! 🥲

@swift-ci please test

@swift-ci please test Windows

@swift-ci please test

@swift-ci please test Windows

@swift-ci please test

@swift-ci please test Windows


Fixed sort option in "GroupBy" python code

https://pola-rs.github.io/polars-book/user-guide/dsl/groupby.html#sorting
In the code example on the above page, the "youngest" and "oldest" results are reversed because the revese option of sort is not specified.
https://pola-rs.github.io/polars/py-polars/html/reference/dataframe/api/polars.DataFrame.sort.html#polars.DataFrame.sort

Thanks!


Upgrades kube changes

./hack/update-deps.sh --upgrade
./hack/update-codegen.sh
Then make changes to accomodate fallout from that.

Lints are existing.


Rewrite of xcodegen task

rename install to lvn.swiftu.gen
rewrite installation method to follow the Phx gen style
change output from native/swiftui/Sources/<AppName> to native/swiftui/<AppName>

@carson-katri note the change of the directory from Sources/<AppName> to <AppName>. Any issue you foresee from this? The Sources/ directory felt superfluous

That shouldn't cause any issues.


Parse graph response headers & http status code from kiota ApiError

What happened?
See conversation here

Update
Graph SDK team are going to expose error codes more explicitly in the next kiota release. See update here.


renovate: Replace update-hubble-version.sh with Renovate Bot

TL;DR: With this, Cilium will automatically pull in the newest Hubble CLI version in all stable branches (and master) whenever there is a new Hubble CLI GitHub release and/or Docker image.

This commit removes the update-hubble-version.sh script and replaces it with two Renovate configuration entries.
The first entry, kubernetes, is using Renovate's standard kubernetes and docker managers to update the Hubble CLI Docker image in examples/hubble/hubble-cli.yaml whenever there is a newer Hubble CLI docker image. To make this take effect, we have to set the ignorePaths to an empty list, because the config:base preset ignores any paths that contain an /examples/ directory: https://docs.renovatebot.com/presets-default/#ignoremodulesandtests
Setting the ignorePaths to the empty list is safe, because our configuration relies on includePaths instead.  Additionally, because Renovate only updates the Docker digest if it is prsent, this commit also pins the Hubble CLI docker image digest so that it is updated by Renovate in subsequent PRs.
The second new entry in the Renovate config is a custom regexManager. It defines two custom regexes to bump the version and digest of the Hubble CLI GitHub release. The syntax is inspired by Renovate's own Regex Manager Presets defined here: https://docs.renovatebot.com/presets-regexManagers/
The digest update is the most interesting part of this PR. Renovate's github-releases manager has a sophisticated mechanism to update digests of artifacts, without any direct reference to artifacts name or architecture. The way this works is that Renovate will fetch all digest files in the old release, find the digest file which contains the currentDigest sha, and then replace that digest sha with the one found in the matching artifact file of new release. For this to work, we need to store what version the digest is coming from, thus the custom regex also contains a digestVersion field. For more information, see the mapDigestAssetToRelease function in Renovate's source code.
Lastly, this commit removes the update-hubble-version.sh script to avoid diverging update mechanisms. Because we no longer need to generate a hubble-version.sh file, that file is also now inlined directly by download-hubble.sh.
I have tested this commit on my fork of cilium/cilium. Renovate (in self-hosting mode) created the following two PRs:

https://github.com/gandro/cilium/pull/85
https://github.com/gandro/cilium/pull/86

Travis hit https://github.com/cilium/cilium/issues/23509


TS-4947: Fix log collation hosts configuration.

In the Lua logging configuration, we were failing to correctly
configure log collation hosts. The main fix is to simply return
true when we actually succeeded.
Fixed a bug in lua_scoped_stack where we failed to count the number
of values we pushed, which messes up the stack on return.
Updated the LogHost display to show failover hosts.
Added some tests for the supported syntaxes.

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/891/ for details.

FreeBSD build successful! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/999/ for details.

Build and I ran the tests.  Code looks OK, but I don't know the lua API.


timer: cortex-m systick: add idle timer

Some chips, that use Cortex-M SysTick as the system timer, disable a clock in a low power mode, that is the input for the SysTick e.g. STM32Fx family.
It blocks enabling power management for these chips. The wake-up function doesn't work and the time measurement is lost.
Add an additional IDLE timer that handles these functionality when the system is about to enter IDLE. It has to wake up the chip and update the cycle counter by time not measured by the SysTick. The IDLE timer has to support counter API (setting alarm and reading current value).
Related:
#61631
#60558
#19755

Thanks for the comment.
Very interesting case. However, I've tried to extract common code of the "back up service" for all timers and my conclusion is that it is not a good idea. 2 main points: the code uses a local variable, and it is important to read values of the two timers as soon as possible (no calculation between).
The one thing would make sense, I think I can change the config and chosen string to CORTEX_IDLE_TIMER, to use it by all drivers.
Please let me know what you think.

Do you know who would be able to review this PR?

2 main points: the code uses a local variable, and it is important to read values of the two timers as soon as possible (no calculation between).

What about setting variable scope to global?

Do you know who would be able to review this PR?

@anangl and @andyross

and .. @teburd :) !

Using lptimer, I would be able to enter some of the sleep states and only the deepest one would need to trigger use of counter/RTC wakeup. So the idle parameter will not be sufficient and I would need way to distinguish next state: stop or standby.

I've been thinking about your case. IMO, there is a simply way to handle that. You can compare the measurement of IDLE and system timers. If a difference is bigger than ~10%/1-2 IDLE timer ticks, it means the system timer was stopped and needs correction. Does it make sense?

Using lptimer, I would be able to enter some of the sleep states and only the deepest one would need to trigger use of counter/RTC wakeup. So the idle parameter will not be sufficient and I would need way to distinguish next state: stop or standby.

I've been thinking about your case. IMO, there is a simply way to handle that. You can compare the measurement of IDLE and system timers. If a difference is bigger than ~10%/1-2 IDLE timer ticks, it means the system timer was stopped and needs correction. Does it make sense?

Actually my point is that the timer to use depends on the sleep duration (defined by low power state residency). Since standby mode (and use of RTC counter) would require longer time to exit (and potentially also enter), I would go in standby mode only if time allows and for shorter timeout periods, I would use STOP Mode / LPTIM. This knowledge is available in sys_clock_set_timeout caller.

Make sense

Friendly ping :-) Please review if you can, this change is very important for my work.

This is a pretty significant change to the cortex-m timer, and that's a widely used critical piece of software in Zephyr.
@npitre is honestly probably the best person to review this

This is a pretty significant change to the cortex-m timer, and that's a widely used critical piece of software in Zephyr.
I get the idea here, though I'm unsure about this idea of the timer depending on the counter API and driver.
@npitre is honestly probably the best person to review this

That's true :-) However, the change impacts only users that add the idle timer. Each part of code I've added is inside ifdef #ifdef CONFIG_CORTEX_M_SYSTICK_IDLE_TIMER.  Of course it doesn't mean it can be buggy.

What does the idle_lock protect against?

What does the idle_lock protect against?

When we enter the sys_clock_idle_exit function, the SysTick is already running. The LOAD register hasn’t been changed while setting the timeout, so we can not be sure about its value. That means the SysTick IRQ can occur any time. cycle_count is updated in the sys_clock_idle_exit so we can not be interrupted. The second important thing is that these two measurements
		counter_get_value(idle_timer, &idle_timer_post);
		systick_diff = cycle_count + elapsed() - cycle_pre_idle;

have to happen one after another, without any interruption.

What does the idle_lock protect against?

When we enter the sys_clock_idle_exit function, the SysTick is already
running. The LOAD register hasn’t been changed while setting the timeout,
so we can not be sure about its value. That means the SysTick IRQ can
occur any time. cycle_count is updated in the sys_clock_idle_exit so
we can not be interrupted.

Still, my question remains. Unless you fear concurrent reentrancy into
sys_clock_idle_exit(), the idle_lock gives you no protection other than
simply disabling interrupts on the local CPU. I doubt there are many SMP
systems using the systick timer out there but still. It looks to me that
you'd better be using the existing lock instead.

Thanks for the responses. Disabling interrupts was what I needed, but after making sure the sys_clock_idle_exit is called with the interrupts disabled, the lock is not needed anymore.
Anyway, the existing lock couldn't be used, because the sys_clock_announce function is called, which calls the  sys_clock_set_timeout function that uses the lock.

I don't fully understand it all and I don't have access to affected platforms, but those changes are all confined inside CONFIG_CORTEX_M_SYSTICK_IDLE_TIMER so that is safe to those who don't need it.

Thanks :-) Is there anything I should explain more in details?

Hello :-) do you know anyone else who could review the PR and approve it? Or I should do something more.

Hello :-) do you know anyone else who could review the PR and approve it? Or I should do something more.

This needs maintainer approval (@andyross)

@andyross can I somehow speed up review? :-)


Change text color of Tab active in TabView ?

I want to change text color of active Tab in TabView. Document only have props to change Indicator and TabView style. Is there any way to do this ?
https://akveo.github.io/react-native-ui-kitten/docs/components/top-tabs/api#tabview
Sorry for my bad English...
UI Kitten and Eva version
Version: 5.0.0-alpha.1

Duplicates #1079


Tests error on Windows

Cannot run tests, after the DEV Dependencies PR:

Running npm test produces the above error for me. Could be because I use Windows 11 here? I haven't tried it on Mac yet, will do a little later, if needed. It reproduces using NodeJS 18, 20 and 22.
P.S. I did remove all installed dependencies and reinstalled everything.

So I have done some more testing, including on Mac, and I can now confirm that the issue is Windows-specific. I had no issues whatsoever on Mac.
Unfortunately, Windows 11 is my main rig here, so I need to figure it out. Any help is much appreciated!
@RebeccaStevens

If I try to use the full path to the c8 module like this:
"test:js": "cross-env TSX_TSCONFIG_PATH=tsconfig.test.json NODE_OPTIONS='--import tsx' node_modules/c8/bin/c8 mocha 'test/**/*.spec.ts'"

Then I am getting this:

Got a potential fix. Weird thing is that one of the tests are failing for me now on windows.

That PR does work for me!!! :)
I also see some test issues, but only sometimes, that's because there are some race-condition tests that were tuned to pass under the current test framework. I will just need to fine tune them a little now that the test framework is different ;)

Figured it out. It's a timing bug.

Actually, maybe not a bug as such. It looks more intentional so I guess an issue with the test.

Values for the test were tuned to pass under the current test framework. But since it is a race-condition test, timings change when the test framework changes, so needs to be updated to pass both on Linux and Windows. That's not something to worry about, I can update any such troubling test ;)

Alright, I'll leave that all to you. I did make an issue though #243


Can we make TryUpdateModel better for "page as view model" scenario

From @DamianEdwards on August 17, 2016 17:50
This line isn't as nice as I'd hoped: await TryUpdateModelAsync(Customer, "Customer");
When using the page as the view model, you have to pass the prefix name to TryUpdateModelAsync to get it to correctly bind values to the sub-properties. I understand why, but it seems sub-optimal.
Open to suggestions on how we might improve this.
Copied from original issue: aspnet/RazorPages#23

From @rynowak on August 17, 2016 17:56
What does your form look like? Do you need to use a prefix in the form?
Alternative would be something like await TryUpdateModelAsync(_ => Customer) - we can get a name from the expression.
I have strong feelings in particular about MVC's autoprefixing behavior and the ambiguities it creates. I'm trying to balance my desire not to let it spread with consistence with controllers.

From @rynowak on August 17, 2016 17:59
I see, you need the form because it's a sub-property of the 'page'. We could patternize this in a better way then like TryUpdateProperty(_ => Customer)

From @DamianEdwards on August 17, 2016 17:58
Form is here:
<form method="post" class="form-inline">

        <input asp-for="Customer.Name" class="form-control" />

    <input type="submit" value="Add Customer" class="btn btn-primary" />
    <div<EMAIL_ADDRESS>class="text-danger">

</form>

From @rynowak on August 17, 2016 18:14
The expression is required without doing compiler magic. asp-for works because we implement compiler magic.
We can keep turning the crank here and see if we come up with something better that isn't in the same flavour as TryUpdateModelAsync.
For instance if we tweaked your example:
<form method="post" class="form-inline" asp-scope="Customer">

        <input asp-for="Customer.Name" class="form-control" />

    <input type="submit" value="Add Customer" class="btn btn-primary" />
    <div<EMAIL_ADDRESS>class="text-danger">

</form>

The new asp-scope could manipulate the form fields that are generated so that they don't use the Customer prefix, and then normal TryUpdateModel would work.
We need to do more lateral thinking on this if the expression isn't good enough.

From @rynowak on August 17, 2016 18:15
Thinking back on this:

The new asp-scope could manipulate the form fields that are generated so that they don't use the Customer prefix, and then normal TryUpdateModel would work.

Why isn't @model a good solution in this case? is it because you're building multiple forms?

From @DamianEdwards on August 17, 2016 18:3
TryUpdateProperty(Customer) would work just as well wouldn't it? Is the expression required?

From @DamianEdwards on August 18, 2016 19:23
@dougbu it is. You can choose to use @model and it will behave as it does today, but for page-focused scenarios I think it can be a bit limiting. We're looking more at the idiomatic thing being the page is the view model.

From @DamianEdwards on August 17, 2016 18:24
It seems a little awkward to set @model Customer when using properties directly on the page. It would generate a Model property and then you have to decide whether to use @Model.Blah or @PageProperty.Blah depending on the context in the HTML and page actions.

From @dougbu on August 18, 2016 16:52
Why exactly is Model not available in page actions? Is that just fallout from not using the .cshtml extension and tooling for now?

Parking this in "needs design" for now while we implement other kinds of binding functionality. Will revisit to see if we need this later.

We think binding to properties solves all of the concerns here. If we find a gap we will reopen this


Update bower.json

Fixed path

not quite sure though whether this is correct, if the out folder is meant to be the dist folder

You are correct.

Owner has abandoned this project :(

I know. 😢
There are multiple more active forks of it now, including nedb-core and [my own] NestDB. That's part of why I'm reviewing a lot of the open PRs and issues here to see what should be carried over. :+1:

@JamesMGreene Some of us made our own but changed many things and ported over the binary tree as well to work with our system. tedb. I looked over a lot of the issues and tried to address them.
If you would like to take a look or make pull requests that would be good news to have more people involved. Right now I have just got it to what I would call stable. I am waiting for issues.


Crosswalk memory issue on some Android 4.4 devices

Some devices running KitKat experience out of memory issues when using Crosswalk builds.
Repro:

Run an app on a Crosswalk build on Android 4.4.2, 4.4.3 or 4.4.4 (scanner or adhoc)
Create a couple of tabs (4-5) and put some typical CSS and HTML in each page
Push some layers onto a few of the tabs (also with typical content)
Run adb shell dumpsys meminfo com.example.app while doing this
You'll notice the memory climb quite quickly as views are added
The app will crash and you may see some out of memory messages in logcat

On a Nexus 5 I got the following logcat output (similar on other devices too)
W/Adreno-GSL(13524): <sharedmem_gpumem_alloc_id:1431>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
E/Adreno-GSL(13524): <ioctl_kgsl_sharedmem_alloc:1532>: ioctl_kgsl_sharedmem_alloc: FATAL ERROR : (null)
I/ActivityManager(766): Process com.example.app (pid 13524) has died.

Workaround:
Build an APK with higher version (eg. 1.0.1) targeting API 19+ using Platform Webview.
Build an APK with lower version (eg. 1.0.0)  targeting API 14+ using Crosswalk.
--> Google Play will serve the Crosswalk build to devices running on Android <=4.3, and the platform webview will be served to devices running on Android >= 4.4.
See Android feature table for comparison of the platform webview versions and Crosswalk.

bump, what is the status of this issue?

One of our common crash issues has now been fixed in https://crosswalk-project.org/jira/browse/XWALK-3096. We'll soon update our Crosswalk version to include these.
The Android 4.4 specific memory issues are probably still there, I haven't tested yet with the newest Crosswalk 11 but that'll happen the near-term future too.

There's now a public issue about this in the Crosswalk Jira: https://crosswalk-project.org/jira/browse/XWALK-3545

Sorry guys I may have created a duplicate here #860

+1 (crashes the sample app on my nexus 6 device). gives me a pretty bad impression of the stability of appgyver.

Same here, crashes on Nexus runing the latest android 5.x with crosswalk builld, no crashes with webview build (but it doesnt feel native)

Same here Sony Z3

Thanks for the reports. The underlying issue is currently at P1 priority (that's the highest!) in Crosswalk JIRA, so it's being very much actively worked on!

so a work-around for this issue is not to have to many webviews in memory ?

@EdwinRikkers, that does stabilize Crosswalk apps a lot at the moment.

+1

Any news?

+1

@kaipk as petrus has said, it is a crosswalk issue which is being taking care of by the crosswalk team. You can follow up at https://crosswalk-project.org/jira/browse/XWALK-3545
For the moment the best solution for us has been the one provided by @davesumter. Build crosswalk form Android 4.0 to 4.3 and platform for Android 4.4 and above.
Optimizing memory usage helps a lot. Our app crashed when about 5-6 views where pushed to the layer stack. After some optimization we have managed to more than double that, and now about 13-14 layers can be pushed before crashing, which is a rare case scenario in our app.
We have discovered that reducing size of the DOM ( number of elements + size of elements ) is what makes more difference.  As our app view´s have lists of images, we reduced the number of images loaded initially in each view from 10 to 4 and let the infinite scroll load more only if the user scrolls down. This alone made the app crash after 9 views in the layer stack instead of 5.
Rest of optimization was making sure only the needed css and js resources for each view where loaded by creating more modules than we initially intended.

any news?

This appears to be a deeply fundamental issue; the team at Intel just got back to us that after much searching, they didn't find any real way around this. We'll see if it's really a dead and, and we are looking at other options to ensure users can build their Crosswalk apps in away that doesn't cause crashes. We'll let you know when we have something – sorry for the slow progress.

You can read the latest Intel response on the Crosswalk JIRA ticket (https://crosswalk-project.org/jira/browse/XWALK-3545):
"We are not actively working on this right now, moving to P3. The limit on the number of views is given by the memory on the device, and we haven't found a way to reduce it. If other solutions are found, we will resume work on this."
We're looking at other architectural solutions to improve the memory footprint/reduce crashes; we'll keep this issue updated. For now, the only real workaround is to use the platform WebView for Android 4.4+.

+1

Reports for our AppGyvert SPA app in the field on the Galaxy Note 10.1 2014 (SM-P607T) crashing shows
<sharedmem_gpumem_alloc_id:1489>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory.

The issue referred to in this thread is  related to multiple xwalk views does not apply to this crash in particular.
https://crosswalk-project.org/jira/browse/XWALK-3545
This crash does not occur with the platform webview, however the workaround isn't working for us because the performance of the platform webview is not comparable to that of the xwalk build for android 4.4 devices and up.

Any update on this? Is anyone at Appgyver working on a workaround? The platform webview is really not an option due to the slow speed.

We have been in contact with Intel / Crosswalk about this issue. The problem is deep in the Chromium project's code. For now it's recommended to use a smaller number of WebViews (eg use only one shared preload for similar content).
It will also help if you hide content from DOM when your WebView is not visible. We do that internally in Supersonic for Composer2 apps. Basically:

create an event listener for document.visibilityChange event,
check if document.hidden and set CSS display:none or display:block accordingly.

For reference, see https://github.com/AppGyver/supersonic/blob/ee4af328d56e75af8c4654c1211f40ae32e50ec3/src/supersonic/core/module/iframes.coffee#L34


Support multi-line descriptions

Fix #47

oh wow how did i miss that there was already a PR for this.
maybe we can combine the single/multiline siwtching from mine and the nice wrapping from yours?
https://github.com/pyOpenSci/pyos-package-template/pull/53

maybe we can combine the single/multiline siwtching from mine and the nice wrapping from yours?

How about this one?
{% set wrapped_description = package_description | trim | wordwrap(width=88) %}
description = {% if "\n" in wrapped_description -%}
"""
{{ wrapped_description }}
"""
{%- else -%}
"{{ wrapped_description }}"
{%- endif %}

Possibly with the backslashes in the multi-line string. Although I fear that may cause confusion without bringing huge benefit.

aha i guess toml automatically strips the leading whitespace. so
description = """
hey
"""

parses as
'hey\n'

imo ya the leading newline is the more annoying one, i don't think it's a big deal to have a trailing newline on the description or not so sure i'm good with leaving out the backslash.
We probably want to strip the whitespace tho, bc that version^ renders like:
[project]
name = "mine"

version = "0.1.0"

description = "single line description"
authors = [
    { name = "me", email = "me" },
]

and
[project]
name = "mine"

version = "0.1.0"

description = """
multiline

description

hello
"""
authors = [
    { name = "me", email = "me" },
]

So how about adding the whitespace gulper before the set like:
{%- set wrapped_description = package_description | trim | wordwrap(width=88) %}
description = {% if "\n" in wrapped_description -%}
"""
{{ wrapped_description }}
"""
{%- else -%}
"{{ wrapped_description }}"
{%- endif %}

and I pr'd already for the rest of the whitespace :) https://github.com/pyOpenSci/pyos-package-template/pull/56

I stopped caring about aligning whitespace, but yes, that seems good to me.

I stopped caring about aligning whitespace

ha i basically always reach that point and am just like "heck it i'll just use a formatter after generation" but until that point my eyes cannot look away. it is a personality flaw


cannot be compiled with SSE2

While working on reproducible builds for openSUSE, I found that liquid-dsp (commit 4c9a7514) cannot be compiled with SSE2
src/dotprod/src/dotprod_cccf.mmx.c line 49
includes and uses pmmintrin.h even when no SSE3 support is available or desired, leading to compilation errors
In file included from src/dotprod/src/dotprod_cccf.mmx.c:49:
/usr/lib64/gcc/x86_64-suse-linux/8/include/pmmintrin.h:50:1: error: inlining failed in call to always_inline '_mm_addsub_ps': target specific option mismatch
 _mm_addsub_ps (__m128 __X, __m128 __Y)
 ^~~~~~~~~~~~~
src/dotprod/src/dotprod_cccf.mmx.c:255:13: note: called from here
          s = _mm_addsub_ps( ci, cq );

ping. Can you reproduce this? Anything else I can help?

Yeah I could also see this with a force compilation for SSE2 on x86/Ubunut 16.04. Fix patch underway


Make documentation in bitnami style

fix service port dublicate parameters
Add metrics parameter
Try get rid unnesesary centrifugo:

Thanks @serg-bs ! Left some review comments – please look.

@serg-bs thanks a lot, I think chart feels much better now. I see that you still making fixes – as soon as you test it out please write and I'll try to make new release. I suppose we also need some migration guide to help moving to v6.0.0.


Point to AWS API for Code Schools image src's

Feature
Why is this feature being added?

We're moving off of GitHub's assets src as an API.
What should your feature do?
I'm not sure where the data is grabbed from anymore, but the model for code_schools includes a logo key. The fields should be adjusted to the format of this example url: https://s3.amazonaws.com/operationcode-assets/codeSchoolLogos/bloc.jpg

Hi @kylemh, I can take this. Would this involve just updating the code_schools.yml file to the correct AWS url endpoints?

@jvillama - It's yours!  I have updated the issue's description with resources and acceptance criteria.  Ping me if you run into any blockers.

@hpjaj The rake task is supposed update all of the CodeSchool records' logo attributes correct?


Be more helpful when not serving a Page object

Internally, we've gotten quite used to writing apps to make them fit nicely into Wagtail's Page tree... so we're almost always serving a 'Page' object via wagtail's routing mechanism, which wagtailmenus plays very nicely with. We're also utilising Wagtail's before_serve_page hook to add some helpful data to request.META, which we also use within the template tags.
In reality though, I think it's still very common for developers NOT to use the Page tree for additional apps in their projects (perhaps because they're using a third-party app that's too complicated to adapt, or because they're simply not keen on the idea of being tied to wagtail's routing mechanism). Whatever the reason, I think menu tags should do a better job of 'back-filling' when self isn't present in the context, or CURRENT_SECTION_ROOT and CURRENT_PAGE_ANCESTOR_IDS aren't set on request.META. The section_menu tag is the worst offender, as it fails to render anything unless before_serve_page has set CURRENT_SECTION_ROOT for it.
There's no reason we can't use request.site and request.path to attempt to find a 'current page', even if it means recursively stripping fragments from the URL to find a nearby ancestor. With this, we could at least try to find a 'section_root' page to make section_menu work, and we could get at least some nav items highlighting properly (by identifying a set of 'ancestor ids')

Fixed by #24

Quick question, @ababic will fix #24 make section menus work better when using RoutablePageMixin type of routing for pages?

Hi @dwasyl.

Hi @dwasyl. I think the modify_submenu_items method added the MenuPage in #20 is more likely to help you there. You could override that to add additional 'routes' as subpage links.

#24 Shouldn't really make much difference when actually serving a 'RoutablePageMixin' route, because generally you still supply self to the context, which will be the current page. And wagtail should still run 'before_serve_page', so wagtailmenus.wagtailhooks.wagtailmenu_params_helper() should still run and add details to the request to be picked up.
I suppose it really depends on how you're doing things in your project. If you're bypassing all of that somehow, then I guess none of that data will be available - in which case #24 and #26 will help out.

Ah! That makes sense. I may have left out self when I first tried the RoutablePageMixins.


Simplify creating nv_cmdidxs.h

Extract nv_cmds[] from normal.c and move to nv_cmds.h
Add create_nvcmdidxs.c as the helper program for make nvcmdidxs; create_nvcmdidxs.c shows all nv_cmds[].cmdchar

Enable to update nv_cmdidxs.h without building vim itself.

Thanks, it does make building simpler.
Is there a reason to go back from Vim9 to legacy syntax for the script?

Is there a reason to go back from Vim9 to legacy syntax for the script?

To able to do make nvcmdidxs by the not-latest vim as distribution-provided (e.g. Ubuntu-20.04 provides Vim 8.1.2269 now and cannot use vim9script).

And, currently it seems vim9 cannot convert list<..> to list<dict<...>> by map().
var nv_cmdtbl = systemlist(cmd)->map((i, ch) => {idx: i, cmdchar: ch})

E488: Trailing characters: idx: i, cmdchar: ch})

And, currently it seems vim9 cannot convert list<..> to list<dict<...>> by map().

Maybe the error message could be improved, but the issue is that if the body of a lambda starts with {, it's parsed as a block; not as a dictionary.
To tell Vim to parse the body as a dictionary, the latter must be surrounded with parentheses.
var nv_cmdtbl = systemlist(cmd)->map((i, ch) => ({idx: i, cmdchar: ch}))
                                                ^                     ^

See :help vim9-curly.

And, currently it seems vim9 cannot convert list<..> to list<dict<...>> by map().

Maybe the error message could be improved, but the issue is that if the body of a lambda starts with {, it's parsed as a block; not as a dictionary.
To tell Vim to parse the body as a dictionary, the latter must be surrounded with parentheses.
var nv_cmdtbl = systemlist(cmd)->map((i, ch) => ({idx: i, cmdchar: ch}))
                                                ^                     ^

See :help vim9-curly.

I missed it... Thank you.


Error:  unrecognized command 'test'

Hi,
I have installed guild 0.6.6 and I want to test my two models. My guild.yml has the following structure:
- model: md1
  operations:
    train:
      main: foo1.py
      flags:
         f1:
            default: 2
         f2:
            default: 5

- model: md2
  operations:
    train:
      main: foo2.py
      flags:
         f1:
            default: 2
         f2:
            default: 5

From the web page, I read that I can write in the same file:
- test: test models
  steps:
    - for-each-model:
        steps:
          - run: train f1=5 f2=[8,7,3]
          - run: train f1=[13,14,16] f2=10

for running the function train on both md1 and md2, with the command
guild test
This raises the following error:
guild: unrecognized command 'test'

Sorry about the long delay. Those docs of sadly out of date! The test mechanism has been migrated (mostly) into operations. The part that wasn't migrated is for-each-model - that's no longer supported.
This is how you would implement a stepped operation for your code:
- operations:
    test-models:
      steps:
        - m1:train f1=5 f2=[8,7,3]
        - m1:train f1=[13,14,16] f2=10
        - m2:train f1=5 f2=[8,7,3]
        - m2:train f1=[13,14,16] f2=10

I'll fix those docs - sorry about the confusion!


Create github action for dockerfile test.

Hi Sir,
For this PR the main function is to check dockerfile has worked.
when we upload the program to the main and dev branch.
The "Action" will trigger the dockerfile can smoothing or have any other issue.
Best regards,
Jacky

if (@available(iOS 10.0, *)) {
    if ([[UIPasteboard generalPasteboard] hasURLs]) {
      //[UIPasteboard generalPasteboard].string;
    }
  } else {
    //[UIPasteboard generalPasteboard].string;
  }
  return pasteboardContents;
}


Number of consumables on gear page

Add a remaining and/total count of consumable items.

Makes sense to display the amount on hand outside of the shop. Could probably be lumped in with #174.


Allow users to skip the URL stability check themselves

by adding a comment saying @bazel-io skip_check unstable_url.

FYI @wep21 @Vertexwahn


Bug: Ping and Jitter routes not working as expected

Describe the bug
The /ping and /jitter routes do not display the charts upon selecting the routes from the input.
To Reproduce
Steps to reproduce the behaviour:

Go to /ping or /jitter. You can navigate from Testing Tools in the sidebar menu.
Select a route from the select input.
No charts/information is displayed.
See error: index.js:1451 SyntaxError: Unexpected token I in JSON at position 0 in the console.

Expected behaviour
The Ping/Jitter charts should be displayed for the selected route.
Screenshots

Desktop:

OS: Ubuntu
Version 20.04

I think this might be due to incorrect url requested for the resonse.

in the file JitterModule.tsx a request is made like this:
const response = await fetch(
${HOST_IP}/query?timeSeriesPath=storage/jitter/chunk_jitter_${res}
);
here res is the domain name of the url, but inside my storage directory no such file exist,
most of the files seem to end with a hash like : chunk_jitter_718253293.json, if the res variable is changed to these end
hash values then the output is desirable. I am not pretty sure but this might be the cause of this bug?

I'll fix this if no-one is doing

@muskankhedia  I have confusion about the implementation of @geforce6t as what he is doing is fetching all the time series data from the backend, then finding the one that matches the URL, and send its specific jitter hash.
Won't it be very time-consuming with lots of time-series data?
I am not sure, but since we require the hash to find the route-time-series path, we can make the hash for the route and find the path. This will reduce the time of searching the URL in all time-series data.
But as I went through the code, I learned that for making the hash of a route, we need its {URL, body, header, params, method}, all of which are not provided by the user.
What should be the optimal way to do it?

I am not sure, but since we require the hash to find the route-time-series path, we can make the hash for the route and find the path. This will reduce the time of searching the URL in all time-series data.

I don't think this can be done from the frontend, all we can do is the api call, so if this fetching all the time series is time-consuming what can be done is an endpoint to return the hash against the route which can be send dynamically from the url , but this can be a problem as the route url contains "/" which can cause problem as it will separate the different parts of the route, maybe this is why only the domain name was being send before in these api calls.

@geforce6t Obviously these changes are to be done in the backend as there are already functions URLHash for making hash for a URL (any legit URL) but as I said it would require body,header,params,method fields also which is not provided by the frontend.Hence that causes a problem.

@Tushar3099 you are correct. Solving this issue requires the implementation of a new API in the backend, also as you said all the required data aren't from the frontend, all the required APIs needs to be implemented in the backend to solve it.

@muskankhedia sorry for the confusion, can you please explain what that new api will do ? will it return the hash of the route we put as a parameter in this new api call so that later on we can put that hash here : ${HOST_IP}/query?timeSeriesPath=storage/jitter/chunk_jitter_${hash} and get the result?

@geforce6t we could have done that but the issue is, for now, the data we have in the frontend is URL but the params required to create the URLHash are body,header,params,method, URL so now things needs to be changed from the base level as either we now require all the data beforehand in the frontend or again go through the loop to find the URL details from the local-config.yaml file using the URL. I personally don't feel the second option be good in the long run as when we have thousands of routes this won't be a preferable solution.
@Harkishen-Singh What are your views on this?

@geforce6t
IMHO I think that the same API /query can be modified so that it can find the hash of the given route in the backend and fetch the file accordingly and do the rest as it is.
In that case no change in frontend would be required.
But my doubt stuck in the same place, finding hash requires more data than just the URL.
@muskankhedia Can you please explain the utility of this Testing window. What specific task does it accomplishes?
If we just want the hash for all the monitored routes IMHO we can fetch all the monitored routes before loading the screen.

@Tushar3099 can you please explain one thing..  So in the main.go a goroutine is spun in the beginning of the program which is responsible for adding routes (added to the local config file)to the matrix (map) , then through a loop every new entry gets added to the map with the hash(generated) as the key and the structure pointer (with detail about the route) as the value, now since this matrix map is a pointer can't we just loop through it and get the hash for the required url? so how will finding hash require more than just url?

@geforce6t Finding hash through looping over all routes is not the solution. That's the same thing as fetching all the routes in frontend and matching the one with same URL.
I was talking about generating the URL for the route for which a function URLHash is already there.But the function requires other fields also like header,params,method .

@geforce6t
IMHO I think that the same API /query can be modified so that it can find the hash of the given route in the backend and fetch the file accordingly and do the rest as it is.
In that case no change in frontend would be required.
But my doubt stuck in the same place, finding hash requires more data than just the URL.
@muskankhedia Can you please explain the utility of this Testing window. What specific task does it accomplishes?
If we just want the hash for all the monitored routes IMHO we can fetch all the monitored routes before loading the screen.

@Tushar3099 You can either make modifications to the existing API or create a new one. The tasks section seems similar to the Monitoring section but the monitoring section makes the work a lot difficult when the user wants to check only Ping or Jitter values of multiple routes which is easily handled in the tests section. Tests section ease the navigation between routes when the user wants to check only either Ping or Jitter values of different routes.

@muskankhedia I was in an initial impression that doing a two-times communication with the API is not a good thing. But it turns out that UI needs to know some way which all paths are available for querying. This will require the first request and I don't think we can avoid it.
So, as far as we fetch the updated list of all time-series (from /get-route-time-series endpoint), and then fill them in the dropdown and let the user click and on click, we send the particular hash to the querier; it should be fine. It will take a lot of time only if we loop across all the time-series or response of the above endpoint. But I am under the impression that we just show that in the dropdown and ask the user to click on the one he is interested in. As long as this happens, I don't think there would be any slower. (only time involved would be fetching the updated list of all routes from the endpoint which should be fast).
I haven't gone thought the PR yet, but I hope to do it this weekend. Thank you guys for the discussion and your patience.

@Harkishen-Singh I was also suggesting the same solution.Shall I make a PR for that?

I think @geforce6t is already working on this. I will let him for this issue. I haven't gone through the PR, but there can be better possibilities than what I proposed.

Thanks for the reply @Harkishen-Singh will work on other issues then.


(1.9.1) train-166

High Level Description

#1431 - Bump networking components for 1.9.1
#1559 - Authenticate requests to Exhibitor during upgrade

@mesosphere-mergebot label ready for review

@branden / @GoelDeepak  - please approve.
@spahl / @lingmann - ready to merge after approval.

@mesosphere-mergebot label ship-it
@spahl  - please merge this.


Caffe2 doesn't work on Android with almost all models

I builded caffe2 for android and used the generated files like the demo. Though the app works with the original squeezenet model, but when I changed the model to GoogLeNet (from caffe2 model zoo) or my own model, it doesn't work. The app stuck when using GoogLeNet, and net->ParseFromArray(data, len) returns false when loading my own model's init.pb. Even when I just added and changed model directly in the demo, I got the same result.

I tried both the current code and version v0.7.0. The result are the same.

your id is very interesting and I think you can try to check the prototxt between the googlenet and squeeze net, the data layer may be the reason

@lzx1413 Thanks, I will check it. But net->ParseFromArray simply returned false with my own model while it works correctly on PC. :\

@tiancaishaonvjituizi  have you checked the binary data and the length of the data

@tiancaishaonvjituizi  i got the same problem. Have you solved this problem , and could you tell me how can i fix this problem ?  i convert a caffemodel and seccess run it with caffe2 python API， but i found it return failed on Android : net->ParseFromArray return false

I have the same issue with the latest version of caffe2. Anyone works this out?


Switch from Docker Hub examples to Github Container Registry

Cheers for the project, really appreciate the effort and the included Grafana dashboard.
The docker hub images haven't been updated for several months, I ran into errors following the examples in the readme.

I completely forgot to change that, thanks ! :smile:


Block edge 4.5.5

4.5.5 needs to be disabled:
2 clusters currently failing (17%),  1 gone ( 8%),and  8 successful (67%), out of 12 who attempted the update over 7d
Currently failing classification:
* Untriaged: 2

4.5.5 can be enabled again:
2 clusters currently failing (10%),  1 gone ( 5%),and 17 successful (85%), out of 20 who attempted the update over 7d
Currently failing classification:
* Untriaged: 2


[executor-types] move private types back to executor crate

Motivation
Move internal types to Executor.

@bors-libra r=msmouse

:pushpin: Commit 9c88cd3 has been approved by msmouse

:hourglass: Testing commit 9c88cd335bf1893aaef6ab3501beae9b09fcd05c with merge 9ed2852acb8798bb808a8b668f61cd7591d98511...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: msmouse
Pushing 9ed2852acb8798bb808a8b668f61cd7591d98511 to master...


classifyGif() - server side

Hello,
Thank you very much for implementing NSFWJS, which works very well!
I use this as a Node.JS microservice app, doing Server-Side validation of photos uploaded to my website.
Works well for JPG images. The Node app retrieves an image from a URL, converts to buffer, runs tf.tensor3d(), then classify().
However, I am not sure how to classify GIF images, server side.
From looking at your code, it appears that the "gif" parameter must be a DOM img element.
Is it possible to classify GIF images server side?
I suppose I can manually go through every frame of the GIF and run classify(), but if this could be natively implemented in NSFWJS, that would be perfect!
Have a great day. Thank you.

I haven't run into the need to do this server-side just yet.   I'd love to get a pull-request and merge the code so NSFWJS does this, would you be willing to solve it and send the code?

Unfortunately, I won't have the time to do a PR, but this is the way I got around it myself, using gifFrames:
		gifFrames({
			url: dataBuffer,
			frames: 'all',
			outputType: 'jpg',
			cumulative: true
		},
		async (err, frameData) => {
			if (err) {
				throw err;
			}
			frameData.forEach(function (frame) {
				const jpgStream = frame.getImage();
				... convert and classify
			});
		});

Unfortunately, I won't have the time to do a PR, but this is the way I got around it myself, using gifFrames:
		gifFrames({
			url: dataBuffer,
			frames: 'all',
			outputType: 'jpg',
			cumulative: true
		},
		async (err, frameData) => {
			if (err) {
				throw err;
			}
			frameData.forEach(function (frame) {
				const jpgStream = frame.getImage();
				... convert and classify, and add to an array
			});
		});


Add disclaimer to the repo highlighting that we are not owning the Melb. PS data

Add disclaimer on Melbourne data until we have a workaround.
DoD
Add a disclaimer on the ReadMe file stating that Microsoft don't own Melbourne Data and soon we will be using synthetic and non-real datasets for the sample.

This is no longer necessary, as PR #986 will address the main issue. Closing issue.


chore: update ESLint root dependencies

Update eslint root dependencies.

Looks like air bnb just updated to eslint v6, great :D

looks like it isn't quite working in the CI yet https://circleci.com/gh/open-wc/open-wc/3324?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

Closed in favor of #693


[Feature]: Add ToggleGroup

Describe the feature
I'd like to use the radix-vue ToggleGroup but it isn't yet into shadcn (although "Toggle" is).
I tried looking at the radix-vue code but it seems that ToggleGroupItem already includes the radix-vue "Toggle" item, so I guess it wouldn't use the shadcn "Toggle" item, in this case does this mean we have to reimplement it completely?
Would you show me how to help reimplement it?
Additional information

[ ] I intend to submit a PR for this feature.
[ ] I have already implemented and/or tested this feature.

(I'm not sure how complex the feature would be to implement? is it just re-using radix-vue? do we need to copy-paste the whole code and adapt? or is there another way?)

Yeah we can add that. And I think we can adapt the current Toggle's style here as well

Nice, that's how I did it for now (I'm using the regular radix ToggleRoot and adapting the item that way)

<template>
  <ToggleGroupItem
    v-bind="{ ...toggleProps }"
    :class="
      cn(toggleGroupItemVariants({ variant, size, class: $attrs.class ?? '' }))
    "
  >
    <GIcon
      :icon="props.icon"
      class="h-[15px] w-[15px] mr-1"
      v-if="props.icon"
    ></GIcon>
    {{ props.title }}
    <slot />
  </ToggleGroupItem>
</template>

and
import { cva } from "class-variance-authority";

export { ToggleGroupRoot } from "radix-vue";
export { default as ToggleGroupItem } from "./ToggleGroupItem.vue";

export const toggleGroupItemVariants = cva(
  "inline-flex items-center justify-center text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground first:rounded-l-md last:rounded-r-md",
  {
    variants: {
      variant: {
        default: "bg-primary text-primary-foreground hover:bg-primary/90",
        outline:
          "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
      },
      size: {
        default: "h-10 px-3",
        sm: "h-8 px-2",
        lg: "h-11 px-5",
      },
    },
    defaultVariants: {
      variant: "default",
      size: "default",
    },
  }
);

but there's probably a cleaner way to do it :)

Question how did you use this within a form


Add test for message "AHS-S2"

add a test that triggers message AHS-S2
"t1021c_missing_use_key_hash_for_sat

BUG: AHS-S2 is currently not detected


Get-PhysicalDisk cannot get disk when it run at a windows services

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
write a c# program and regiser as windows service, and use powershell module execute "Get-PhysicalDisk" command
Expected behavior
1

Actual behavior
it is not return any

Error details
1

Environment data
1

Visuals
1

Weird, what's the full output you get back when trying to run it? If it's an error can you also run $Error[0] | Select * afterwards and share that output?

How is your service running the command, is it creating a new process calling pwsh -Command Get-PhysicalDisk or is it using the System.Management.Automation API to spin up a new pipeline?

Did you check with ps.Streams.Error to see if there are any errors in there. Because you are using the API you won't get errors through the Invoke() output as that's reserved for actual output of the cmdlet. I would also just simplify things by just invoking ps.AddScript("Get-PhysicalDisk") to rule out any other problems.

your windows service is ok? There are many error here.

so why it return nothing? when it is a ordinary program, it is work. when it is windows service, it not work. @jborean93

I dont know, you shared a json as a comment and I assumed it just started working. What’s the context behind that message, did you check the error streams, did you try just calling the cmdlets withiut any of the extra calls you add on top.

Based on jborean93's thoughts I guess a root of the issue could be in the fact that Windows service has not a console.

but Get-Disk / Mount-Disk / Get-Volume is return disk info at windows service. @iSazonov

you should write a c# service, using System.Management.Automation API. @jborean93

actually, Get-Disk replace Get-PhysicalDisk, so I want to know after execute "Import-Module Storage",  when execute "Get-Disk" twice,  The first execution takes twice as long as the second. @jborean93

Not sure if it is of any use, but I faced potentially related problem with Get-PhysicalDisk in 7.2.5 (have not tried other versions) called from a desktop C# app via SDK, where it would seemingly randomly return empty collection without any errors within the same program run. If anyone is interested in looking into it, I can try capturing a memory dump when that happens.
My setup is
Runspace.DefaultRunspace = RunspaceFactory.CreateRunspace();
Runspace.DefaultRunspace.Open();

using var ps = PowerShell.Create(RunspaceMode.CurrentRunspace);
ps.AddCommand("Set-ExecutionPolicy")
    .AddParameter("ExecutionPolicy", "RemoteSigned")
    .AddParameter("Scope", "Process")
    .Invoke();

the first thing upon program startup (literally the first lines of Main)
Then I a launch a separate Background==true thread for all Get-PhysicalDisk calls that boils down to this:
var runspace = RunspaceFactory.CreateRunspace();
runspace.Name = Invariant($"Runspace-{this.Name}");
runspace.Open();

Runspace.DefaultRunspace = runspace;

while (true) {
   WaitForRequestToRunGetPhysicalDisk();

    using var ps = PowerShell.Create();
    ps.AddCommand("Get-PhysicalDisk");
    var results = ps.Invoke();
    if (ps.HadErrors) throw new Exception(ps.Streams.Error);
    Debug.Assert(results.Count > 0); // this fails now and then

  SendResultToRequester(results);
}


Release Google.Cloud.Dialogflow.V2Beta1 version 1.0.0-beta13

Changes in this release:
No API surface changes; just dependency updates.

Created release for Google.Cloud.Dialogflow.V2Beta1-1.0.0-beta13


Parameter token or opts.auth is required

well I run this actions and get the error
Parameter token or opts.auth is required
So, am I do some thing wrong?

@shinny-hongyan do you have the screen capture or the output of the log file? Please do share your repo if its public.. I can help take a look.

@ppremk
Happens to me on a private repo:
Run<EMAIL_ADDRESS>  with:
    filesizelimit: 5242880
/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:7124
            throw new Error('Parameter token or opts.auth is required');
            ^

Error: Parameter token or opts.auth is required
    at Function.getAuthString (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:7124:19)
    at Function.getOctokitOptions (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:7089:29)
    at new GitHub (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:7073:22)
    at Object.104 (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:494:17)
    at __webpack_require__ (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:22:30)
    at startup (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:37:19)
    at /home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:41:18
    at Object.<anonymous> (/home/runner/work/_actions/actionsdesk/lfs-warning/v1.1/dist/index.js:44:10)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)

After tracing the error, I found this as the source.
I was able to work around this issue by adding the token as an environment variable.
I'm not sure I like this workaround.
      - uses<EMAIL_ADDRESS>        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          filesizelimit: '5242880'

Hi @TomerFi 👋
Thank you for catching this, I have blocked some time this Friday to dive into this. Keep you posted. 🙇

Thanks!
Great action, I really love using it.
Thank you!

@TomerFi
qq, are you using the action in a private repo?

@TomerFi
I've made some changes and have merged it in the master branch. There is some permission issue I'm waiting on to be able to publish the new release.

@ppremk
Sorry for the delayed response, I was away.
Thank you very much, I'll check it out as soon as I can.
:-)

@ppremk
I can confirm that v2.0 fixed the issue for me.
I removed the "env" workaround, the following configuration now works well on my organization's private repo:
- name: Warn for large files
  uses<EMAIL_ADDRESS>  with:
    filesizelimit: '5242880'

Thank you!

I can confirm that v2.0 fixed the issue for me.
I removed the "env" workaround, the following configuration now works well on my organization's private repo:

@TomerFi thank you for the confirmation. Im glad it worked out nicely.
Let's close this one out. ✅


add rca scene of ddl failure

Summary

diagnose ddl failure with table_id or tablet_id
Solution Description

query the history table of ddl task to get error message

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jianyun.sjy seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Service connections fail to skip ssl validation even when cf cli is configured to skip ssl validation

Error: Get https://api.v2.pcfdev.io/v2/info: x509: certificate signed by unknown authority
Remote app object should not use default http client

Fixed in v0.19.0.


fix: mobile statistics chart line color and data period

Summary
https://app.clickup.com/t/862kf4byb

Checklist

[ ] I checked my UI changes against the design and there are no notable differences
[ ] I checked my UI changes for any responsiveness issues
[ ] I checked my UI changes in light AND dark mode
[ ] I checked my (code) changes for obvious issues, debug statements and commented code
[ ] I opened a corresponding card on Clickup for any remaining TODOs in my code
[ ] I added a short description on how to test this PR (if necessary)
[ ] Documentation (if necessary)
[ ] Tests (if necessary)
[ ] Ready to be merged

will fix phpstan and add a test shortly


Allow disabling the XHR_CACHE

From: https://github.com/canjs/can-connect/issues/508
Some users don't use XHR for fetching.

@matthewp I am not on canJS 6 yet, is it possible to add this to v5 as well?

There isn't a version of done-ssr that's compatible with CanJS 6 yet, so it's quite likely that this could be done before that happens.


Superclass mismatch for class CypherSession

I'm getting error `module:Server': superclass mismatch for class CypherSession (TypeError), if neo4j version = 6.1.1 with neo4j-spatial. Rails app works fine if I downgrade from neo4j(v6.1.1) to neo4j(v6.1.0). I'm not sure what is wrong with neo4j(v6.1.1) thought of letting maintainer know about this issue
Gemfile
gem 'neo4j'
gem 'devise-neo4j'
gem 'slim-rails'
gem 'bootstrap-sass'
gem 'simple_form'
gem 'pundit' # for authorization.
gem 'figaro'
gem 'curb'
gem 'geocoder'
gem 'neo4jrb_spatial'

Error Log
/home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-core-6.1.1/lib/neo4j-server/cypher_session.rb:9:in `<module:Server>': superclass mismatch for class CypherSession (TypeError)
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-core-6.1.1/lib/neo4j-server/cypher_session.rb:4:in `<module:Neo4j>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-core-6.1.1/lib/neo4j-server/cypher_session.rb:3:in `<top (required)>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-core-6.1.1/lib/neo4j-server.rb:9:in `<top (required)>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-core-6.1.1/lib/neo4j/session.rb:102:in `open'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-6.1.1/lib/neo4j/railtie.rb:90:in `open_neo4j_session'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-6.1.1/lib/neo4j/railtie.rb:123:in `block (2 levels) in <class:Railtie>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-6.1.1/lib/neo4j/railtie.rb:122:in `each'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/neo4j-6.1.1/lib/neo4j/railtie.rb:122:in `block in <class:Railtie>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:345:in `each'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:345:in `call'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
	from /home/mohan/.rvm/rubies/ruby-2.2-head/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/config/environment.rb:5:in `<top (required)>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/config.ru:3:in `block in <main>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/config.ru:in `new'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/config.ru:in `<main>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/server.rb:61:in `app'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/server.rb:139:in `log_to_stdout'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/server.rb:78:in `start'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in `block in server'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/bin/rails:9:in `require'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/bin/rails:9:in `<top (required)>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/client/rails.rb:28:in `load'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/client/rails.rb:28:in `call'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/client/command.rb:7:in `call'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/client.rb:28:in `run'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/bin/spring:49:in `<top (required)>'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/binstub.rb:11:in `load'
	from /home/mohan/.rvm/gems/ruby-2.2-head/gems/spring-1.6.2/lib/spring/binstub.rb:11:in `<top (required)>'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/bin/spring:13:in `require'
	from /home/mohan/Desktop/desktop-debian/projects/crypsis/teralife/teralife-backend/bin/spring:13:in `<top (required)>'
	from bin/rails:3:in `load'
	from bin/rails:3:in `<main>'

Could you try it with your gemfile modified:
gem 'neo4jrb_spatial', github: 'neo4jrb/neo4j_spatial', branch: 'module-definition'

Let me know how that works?

You might also try:
# in Gemfile
gem 'neo4jrb_spatial', require: false

# elsewhere, after neo4j and neo4j-core have been auto-required
require 'neo4jrb_spatial`

This is all assuming that removing Spatial fixes the problem in the first place. Was working with that in mind since you mentioned it, even though it's not in the stack trace.

Deleted my earlier comments since I think they missed the mark a little. Try this:
gem 'neo4jrb_spatial', github: 'neo4jrb/neo4jrb_spatial', branch: 'module-definition_part2'

Haven't been able to reproduce this error locally and won't have time to continue troubleshooting now but I expect that to fix it. If it does, I will test more and release a patch later.

@gadikotamohan has anybody told you that your user icon makes it hard to trust your intentions when reporting an issue? ;)

Hey @gadikotamohan, did you have a change to give this a shot?

@subvertallchris  Sorry for late reply, was on mute for a week. I have tried your fix and it works. :-)

@cheerfulstoic  lol yeah. I changed my user icon.

Had the same issue, thanks for this solution @subvertallchris


set-labels feature change, handle slice, change log

fixed previous way of handling slice, add more path with slice and refactor that part of code after discussion with Yuwen.
change log to show general information to avoid being truncated.

The new format is much better! I think it's a good starting point to help us improving the SDK and make the set-labels code shorter and more readable.
I'd like to get another review from @natasha41575

This PR looks great! This is a good starting point to let us continue improving the SDK and adding features. like the OpenApi schema as @natasha41575 suggested.


Cannot run bundle gem command with chefdk as primary ruby env

Description
I am trying to create a new gem using the bundle gem command while using Chef DK as my primary Ruby environment. This causes an error with the description TypeError: no implicit conversion from nil to integer
ChefDK Version
Versions:
Chef Development Kit Version: 0.15.15
chef-client version: 12.11.18
delivery version: 0.0.23 (bf89a6b776b55b89a46bbd57fcaa615c143a09a0)
berks version: 4.3.5
kitchen version: 1.10.0
Platform Version
OS X 10.11.5
Replication Case
To replicate, set Chef DK's ruby as your primary, and attempt to run bundle gem newgem. FYI, this replicates on an Ubuntu workstation with the ChefDK set as primary Ruby as well.
Stacktrace
    TypeError: no implicit conversion from nil to integer
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:2742:in `[]'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:2742:in `update_line'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:3542:in `rl_redisplay'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:3960:in `readline_internal_setup'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:4807:in `readline_internal'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/rbreadline.rb:4830:in `readline'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/rb-readline-0.5.3/lib/readline.rb:45:in `readline'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb:20:in `readline'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor.rb:7:in `readline'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/shell/basic.rb:395:in `ask_simply'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/shell/basic.rb:68:in `ask'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/shell/basic.rb:111:in `yes?'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:56:in `yes?'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/cli/gem.rb:155:in `ask_and_set'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/cli/gem.rb:100:in `run'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/cli.rb:384:in `gem'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/exe/bundle:27:in `block in <top (required)>'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
      /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/bundler-1.12.5/exe/bundle:19:in `<top (required)>'
      /opt/chefdk/embedded/bin/bundle:22:in `load'
      /opt/chefdk/embedded/bin/bundle:22:in `<main>'

Environment

  Bundler   1.12.5
  Rubygems  2.6.4
  Ruby      2.1.8p440 (2015-12-16 revision 53160) [x86_64-darwin13.0]
  GEM_HOME  /Users/mattstratton/.chefdk/gem/ruby/2.1.0
  GEM_PATH  /Users/mattstratton/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0
  Git       2.8.2

      Bundler settings

  gem.test
    Set for the current user (/Users/mattstratton/.bundle/config): "rspec"
  gem.mit
    Set for the current user (/Users/mattstratton/.bundle/config): true
  path
    Set via BUNDLE_PATH: "/Users/mattstratton/.chefdk/gem/ruby/2.1.0"
  orig_path
    Set via BUNDLE_ORIG_PATH: "/usr/local/heroku/bin:/opt/chefdk/bin:/Users/mattstratton/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/
sbin:/Users/mattstratton/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/bin:/opt/chefdk/embedded/bin:~/bin:/usr/local/packer:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/local
/sbin:/opt/delivery-cli/bin"
  orig_gem_path
    Set via BUNDLE_ORIG_GEM_PATH: "/Users/mattstratton/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"

@docwhat FYI

I'm not able to reproduce on ubuntu or windows. I don't have easy access to a mac but will try that later. In the meantime, you might try nuking (or temporarily renaming) your ~/.chefdk directory in case this is due to a gem collision.

You might also try https://github.com/docwhat/rbenv-chefdk if you are using chef do alongside rbenv

so talking with @mattstratton offline, I think this is a clash with rb-readline and zsh. After installing zsh on my vanilla ubuntu vm, I see this same error. I also see it in bash now too which is really odd and I repaved a new vm just to be sure. It works fine in bash until you install zsh and then it breaks in both bash and zsh.
You can work around this by uninstalling the rb-readline gem. IIRC that gem is only useful on windows and makes tools like irb and chef-shell usable there. However, I think we can compile ruby for windows in such a way to not require that gem at all.

Ah, then this is more about the issue I covered with John Keiser:
Per https://github.com/docwhat/rbenv-chefdk/issues/13#issuecomment-232841828
"Bundle exec was failing because there was a undeclared dependency on rb-readline in the ChefDK. Luckily @jkeiser was at ChefChef2016, was a nice enough to spend time to hack through the issue, and had sufficient Ruby / Bundle smarts to figure it out... he determine a workaround (adding the missing dependency to rb-readline in my chef repo's Gemfile)... this has fixed it in the interim for me."

yeah but this is vanilla chef-dk (ie running outside of bundler) which you would do when running bundler gem. In these cases, it should (and does) use the rb-readline gem packaged with chef-dk on its own but that gem unfortunately seems to clash in zsh - at least in this particular use case.

Seem this one was solved and isn't a generally experienced issue any longer, closing!


Implement signing in to see own favourite relays

Is your feature request related to a problem? Please describe.
Please implement window.nostr to sign in, and once signed in, show relays from one's self kind 3 event content field.
Describe the solution you'd like

Allow signing in using a Nostr extension: Alby, nos2x, Blockcore Wallet.
Once signed in, fetch the kind 3 event from the user's pubkey.
Show relays selected as pinned/favourite.

Describe alternatives you've considered
None
Additional context
None

Hey Cameri,
This should already work! If it doesn't there's a bug. Top right, "sign in" link should appear after about 500ms, works with all the Nostr extensions I tested.
Additionally, #185 is a demo of NIP-23, which is almost identical to this request
I really don't want to use Kind 2 relay lists, because each client implements it differently. Some of them grab the newest event, some grab an event they've tagged as theirs. It's a minefield, I need NIP-23 (hence escalating NIP-23 here: https://github.com/nostr-protocol/nips/pull/164)

...Continued
The only way I can see making Kind 2 work with "relay curation" is if I requested all the kind 2's someone had,  merged them into one kind 2 event, asked them to delete all the existing ones, and then published it.  Other than requiring tens of event signings, this would probably break a bunch of clients and would probably not end well.
Going off topic...

What's happening with Clients right now is somewhat predictable. They are naturally competing, and so they either wait for a standard to pass, or they make their own standard. This breaks interoperability. Additionally, interoperability is not competitive, it's cooperative. Not being cooperative is a competitive advantage unless the community has their say.
These two paradigms can absolutely coexist, but there needs to be separation of concerns.

A standard is agreed up
We do the work to inform users
The users put the pressure on the clients, which in turn leads to adoption.

If we try to do it in reverse order, it has a far lower probability of success.
From where I'm standing, I cannot just write my own standard, as it would have no meaning
</end rant>

...Continued
The only way I can see making Kind 2 work with "relay curation" is if I requested all the kind 2's someone had,  merged them into one kind 2 event, asked them to delete all the existing ones, and then published it.  Other than requiring tens of event signings, this would probably break a bunch of clients and would probably not end well.
Going off topic...
<begin rant>
What's happening with Clients right now is somewhat predictable. They are naturally competing, and so they either wait for a standard to pass, or they make their own standard. This breaks interoperability. Additionally, interoperability is not competitive, it's cooperative. Not being cooperative is a competitive advantage unless the community has their say.  Hence, we are here.
These two paradigms can absolutely coexist, but there needs to be separation of concerns.

A standard is agreed up

We do the work to inform users

The users put the pressure on the clients, which in turn leads to adoption.

If we try to do it in reverse order, it has a far lower probability of success.
From where I'm standing, I cannot just start throwing events at the wall, as it would have no meaning and cause more issues. That's why I'm working on implementing NIP-23, because then at least there's a canonical and a working example to start from.
</end rant>

Kind 2 is a replaceable event, there should be only one per pubkey. If you get many from multiple relays you keep the one with the greatest created_at date

Bro... what? I can find nothing that mentions this anywhere, not in the NIP. Do you have a link to something? If that's the case, I can probably have it up tomorrow.
Did the login work for you?

@dskvr XD You are 100% correct, it isn't anywhere. But if you look at kind 3 events content field (NOT the Nostr protocol), that's where relay configuration is saved by most clients today.
Example:

There is however a PR (and I also saw yours) that was going to address this in a better way: https://github.com/nostr-protocol/nips/pull/32
Also: Login does work for me! Thanks

Yes, been participating in that NIP and submitted a PR to modify it since it was lagging. It's basically just a reduction of all all the discourse about NIP-23. Here: https://github.com/nostr-protocol/nips/pull/164

Oh man ... The changes I submitted are only slightly different than the "kinda nip-2, oh nip-3 not really really nip-3 but sorta" kind. My proposal is middle group between the previous "renegade kind" and NIP-23, since they are strings not boolean. This seems like a good compromise as it enables extension with runes in another NIP down the road.

I think we can close this for now, as I wouldnt want you to implement that stuff and then get rug pulled by the protocol xD

I'm going to reopen, because it's still relevant to in-flight work.

@Cameri Going to put this one on ice, after spending all day implementing, there's no way I will be introducing NIP-23a as-is to this codebase.
90% of the code that was written for NIP-23a would require maintenance doesn't need to exist.
I also implemented 23b with and without URL formats

the one with, which was inverted to normalized urls, was implemented with basically no business logic whatsoever, one line to reject an invalid duplicate and another line to normalize a URL.
The one without without requires many UX elements, user education/explanation, is prone to error, creates an infinite number of edge cases and increases the test coverage by an order of magnitude.

Until there's a sane standard I won't be implementing relay lists anytime soon. There are other more popular features I can implement quickly that bring value to the community.
I'll consider posting a competing NIP to NIP-23 if I become motivated and find the energy.
I'll leave this open, as other people are likely to ask for it.
Cheers.

@Cameri I never fully responded to your comment above https://github.com/dskvr/nostr-watch/issues/189#issuecomment-1378240762

But if you look at kind 3 events content field (NOT the Nostr protocol), that's where relay configuration is saved by most clients today.

Yes, I utilize kind 3 events for discovery at build time. I was previously deterred from using non-replaceable kinds, but after implementing nip-23 and also interfacing with empty debate arguments, this looks like heaven.
If relay lists happen, there will need to be more demand for this feature.