camel-quarkus-syslog not compatible with quarkus-jdbc-oracle extension in native mode

Bug description
Building a project with both camel-quarkus-syslog and quarkus-jdbc-oracle as dependencies results in build failures in native-mode. The output looks like this:
Fatal error: org.graalvm.compiler.debug.GraalError: org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer Try to avoid initializing the class that stores a MBean server or a MBean in a static field
The culprit object has been instantiated by the 'oracle.jdbc.driver.OracleDriver' class initializer with the following trace:
	at com.sun.jmx.mbeanserver.JmxMBeanServer.<init>(JmxMBeanServer.java:225)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServer(JmxMBeanServer.java:1437)
	at javax.management.MBeanServerBuilder.newMBeanServer(MBeanServerBuilder.java:110)
	at javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:329)
	at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:231)
	at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:192)
	at java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:487)
	at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:454)
	at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:293)
	at java.security.AccessController.executePrivileged(AccessController.java:778)
	at java.security.AccessController.doPrivileged(AccessController.java:319)
	at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:291)
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisFuture.setException(AnalysisFuture.java:49)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:322)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:63)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapInstance.readFieldValue(ImageHeapInstance.java:110)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.onObjectReachable(ImageHeapScanner.java:472)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.heap.SVMImageHeapScanner.onObjectReachable(SVMImageHeapScanner.java:156)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$markReachable$5(ImageHeapScanner.java:452)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$postTask$14(ImageHeapScanner.java:695)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
...

Reproducer
wget "https://code.quarkus.io/d?e=jdbc-oracle&e=org.apache.camel.quarkus%3Acamel-quarkus-syslog&cn=code.quarkus.io" -O code.zip
unzip code.zip
cd code-with-quarkus
./mvnw clean package -Dquarkus.native.additional-build-args=--trace-object-instantiation=com.sun.jmx.mbeanserver.JmxMBeanServer

Same issue if syslog is replaced by camel-quarkus-netty (which syslog depends on).

Is there any detail about the naitve compiliation errors ?

I think I may have fixed it.
BaseGenericObjectPool in commons-pool2 has jmxRegister and jmxUnregister methods. Once substituted, compilation succeeds.

Nice work and it looks like we had the similar issue before

https://github.com/apache/camel-quarkus/issues/3980

I had the same fix in quarkus-pooled-jms

@jamesnetherton it looks like an issue in commons-pool2, is there any better way to do the substitution? currently, it seems we add the same fix in the different extensions.

Or this issue only happen with the quarkus-jdbc-oracle?

currently, it seems we add the same fix in the different extensions

Hmmm - that's a problem then. Any substitutions added here could be made conditional on quarkus-pooled-jms not being on the runtime classpath.
Otherwise we'd need a common home for the code so it can be shared.

That was fast! Thank you @jamesnetherton and @zhfeng.


Allow items in browse view to span multiple lines.

People were annoyed by the ellipsis during the onboarding tests. This doesnt look as pretty but I think its probably way more usable.


Robert szabo branch

@rszab003 Hey left a comment on Trello but figured I'll put it here too, I saw you added usage info in your extractZybooks.sh but it only checks for if the file doesn't exist. Was wondering if maybe you could try this to check for correct number of inputs.
if [ $# -lt 2 -o $# -gt 2 ] then echo "Usage: ./extractZybook.sh (filename) (column number)" exit 2 fi
and then in your file error check, I think you should add exit 1.

@rszab003 Hey left a comment on Trello but figured I'll put it here too, I saw you added usage info in your extractZybooks.sh but it only checks for if the file doesn't exist. Was wondering if maybe you could try this to check for correct number of inputs.
if [ $# -lt 2 -o $# -gt 2 ] then echo "Usage: ./extractZybook.sh (filename) (column number)" exit 2 fi
and then in your file error check, I think you should add exit 1.

Thanks Lawrence, please feel free to improve upon/edit my files as needed.


App size is too big

Android apk size is become larger after adding agora package also i specified the target platform.
before adding agora package, app size is 80mb
after adding agora package, app size is >165mb

you can use abifilters

Hello sir,
I tried abi filters, it only reduce 40mb. app size is still in 115mb.
is there any another way to reduce size?
Thank you!

I tried abiFilters and it reduced size exceptionally
ndkVersion rootProject.ext.ndkVersion
    defaultConfig {
       .........

        ndk {
            abiFilters 'arm64-v8a', 'x86_64'
        }
}

Also can reduce the size using this filter
defaultConfig {
.........
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}

还有其他可以减小app size 的方法吗？
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'//, 'x86'
}
这两个平台打包后，Agora的大小至少在 32M，还是挺大的了，如何去除不需要的依赖库呀？

@LichKing-2234 @good-good-study
is there any way to reduce agora size on flutter? quit large even applying with abi filters.

Any update on this issue?

Hey, i have some solution for your guys.. Before finding the tricky, im very desperate with this plugin while reducing the app size.
Tested on (Android), Step to produce:

Find build.gradle from your agora package. Example dir: C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\agora_rtc_engine-5.3.0\android\build.gradle
Search and comment api 'io.agora.rtc:full-sdk:VERSION'

dependencies {
  if (isDev(project)) {
    api fileTree(dir: "libs", include: ["*.jar", "*.aar"])
  } else {
    // api 'io.agora.rtc:full-sdk:<IP_ADDRESS>' (Comment this)
    api 'io.agora.rtc:iris-rtc:<IP_ADDRESS>'
  }
}

Add your specific library by following this https://docs.agora.io/en/Interactive%20Broadcast/reduce_rtc_app_size?platform=Flutter. Since my project only need the Video & Audio without any other features, see my example code below

dependencies {
  if (isDev(project)) {
    api fileTree(dir: "libs", include: ["*.jar", "*.aar"])
  } else {
    // api 'io.agora.rtc:full-sdk:<IP_ADDRESS>'
    api 'io.agora.rtc:iris-rtc:<IP_ADDRESS>'
  }

  // implementation 'io.agora.rtc:full-screen-sharing:<IP_ADDRESS>'

  implementation 'io.agora.rtc:full-rtc-basic:<IP_ADDRESS>'
  implementation 'io.agora.rtc:full-ains:3.6.2'
  implementation 'io.agora.rtc:full-jnd:<IP_ADDRESS>'
  implementation 'io.agora.rtc:full-full-audio-format:3.6.2'
  implementation "io.agora.rtc:full-super-resolution:<IP_ADDRESS>"

  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${safeExtGet('kotlin_version', "$agora_rtc_engine_kt_version")}"
}

Final, rebuild your project and see the size result.

Since you're editing the package cache it will be effect with other project. For prevent this happen, forking the package git and add manually inside pubsec.yaml

@RasyidMF Hello my friend, first thanks for your solution, it reduced about 20 MB of my app and I have a question: you told that your project only need the Video & Audio without any other features.
you mean that you have video and audio in separated way?
my project just has video call feature. could you please tell me which ones should be deleted to make the apk lighter????

@RasyidMF Hello my friend, first thanks for your solution, it reduced about 20 MB of my app and I have a question: you told that your project only need the Video & Audio without any other features. you mean that you have video and audio in separated way? my project just has video call feature. could you please tell me which ones should be deleted to make the apk lighter????

Check the table of documentation Click here.
Searching which is used in Android Voice SDK, like example in my above code:
implementation 'io.agora.rtc:full-full-audio-format:3.6.2' // << Remove this code

@RasyidMF
thanks for your reply, I have 2 questions:

as you now my application just has Video call. if i use this line below what will happen?

implementation 'io.agora.rtc:full-rtc-basic:<IP_ADDRESS>'
and comment another codes like below what will happen? does it affect on my performance of video quality or video calling? please tell me about the side effets if i removing these lines in below:
implementation 'io.agora.rtc:full-ains:3.6.2' // << Removing this code
implementation 'io.agora.rtc:full-jnd:<IP_ADDRESS>' // << Removing this code
implementation 'io.agora.rtc:full-full-audio-format:3.6.2' // << Removing this code
implementation "io.agora.rtc:full-super-resolution:<IP_ADDRESS>" // << Removing this code
because when i use just the first line it gives me 40mb apk and with all of your codes it give 58mb.(even i am using :
abiFilters "arm64-v8a", "armeabi-v7a"
to reduce the size.

does it have another way to reduce it for example under 35mb or 30mb?

thanks a lot, your solution helped me a lot🙏🙏

@A-Eric-J  any solutions or progress ? I just need to implement the video sdk and the app bundle size comes 130MB.

@RasyidMF I did commented above dependency and my app crashys while i join the channel

Hey, i have some solution for your guys.. Before finding the tricky, im very desperate with this plugin while reducing the app size. Tested on (Android), Step to produce:

Find build.gradle from your agora package. Example dir: C:\tools\flutter\.pub-cache\hosted\pub.dartlang.org\agora_rtc_engine-5.3.0\android\build.gradle
Search and comment api 'io.agora.rtc:full-sdk:VERSION'

dependencies {
  if (isDev(project)) {
    api fileTree(dir: "libs", include: ["*.jar", "*.aar"])
  } else {
    // api 'io.agora.rtc:full-sdk:<IP_ADDRESS>' (Comment this)
    api 'io.agora.rtc:iris-rtc:<IP_ADDRESS>'
  }
}

Add your specific library by following this https://docs.agora.io/en/Interactive Broadcast/reduce_rtc_app_size?platform=Flutter. Since my project only need the Video & Audio without any other features, see my example code below

dependencies {
  if (isDev(project)) {
    api fileTree(dir: "libs", include: ["*.jar", "*.aar"])
  } else {
    // api 'io.agora.rtc:full-sdk:<IP_ADDRESS>'
    api 'io.agora.rtc:iris-rtc:<IP_ADDRESS>'
  }

  // implementation 'io.agora.rtc:full-screen-sharing:<IP_ADDRESS>'

  implementation 'io.agora.rtc:full-rtc-basic:<IP_ADDRESS>'
  implementation 'io.agora.rtc:full-ains:3.6.2'
  implementation 'io.agora.rtc:full-jnd:<IP_ADDRESS>'
  implementation 'io.agora.rtc:full-full-audio-format:3.6.2'
  implementation "io.agora.rtc:full-super-resolution:<IP_ADDRESS>"

  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${safeExtGet('kotlin_version', "$agora_rtc_engine_kt_version")}"
}

Final, rebuild your project and see the size result.

Since you're editing the package cache it will be effect with other project. For prevent this happen, forking the package git and add manually inside pubsec.yaml

You can also use packagingOptions.exclude in your build.gradle to exclude the *extension.so which you do not need.
andorid {
    packagingOptions {
       exclude 'lib/*/libagora*extension.so'
    }
}

I have implemented the above solution but still only reduced 40mb. Is there any other solution ?

You can download the .so files at runtime in Android, I dont have specific way how to do it, but if you try and succeed please let me know too @karanpatel2329 and @LichKing-2234  I will look at your dependency structure and will let you know as my app was crashing with this custom dependency implementation

You can download the .so files at runtime in Android, I dont have specific way how to do it, but if you try and succeed please let me know too @karanpatel2329 and @LichKing-2234 I will look at your dependency structure and will let you know as my app was crashing with this custom dependency implementation

Is there any way to download the .so files at runtime in Android, because i have code written in flutter.

IOS doesn't need so files so if platform is android you can download those files and agora has method to specify so files path (I have looked into the docs), and it will take so files from there to run.
and yes you have to upload those files somewhere.
For downloading the so files -- https://docs.agora.io/en/sdks?platform=android

@LichKing-2234  Have you used the latest sdk version 6.1.0 ?, I am getting error while compiling with these changes in my code

@bhavykoshti I think you can raise a new issue for your case.

@littleGnAl  https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/907

@bhavykoshti  if you find a solution for this issue, please revert!

@hrithikm2
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/907#issuecomment-1448040532

is there an Ios solution

add this following code in build.gradle module on android
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
universalApk false
}
}

Please check https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/1214


Documentation error

https://github.com/JuliaImages/DitherPunk.jl/blob/8f598de9ca59361a2af22147d3c2fc39d4281536/src/dither_api.jl#L67
The 'dither' function lists 'binarize' as the function name in the documentation.

Sure.

Closed by #31.


iOS: ShowSuccess is masking/dimming the background

Please check all of the platforms you are having the issue on

[X] iOS
[] Android
[] UWP
[X] PCL

Please state the issue to the best of your ability below

I just switched to 5.2.0-beta1 and now the ShowSuccess method is dimming the background. Which it didn't before.
I prefere to not dim the background, or to have the option to change this (shared or method option).

There is only so many options I have with the current HUD.  This is likely going to be the behaviour for now

Oke.
I just switched back to check it, and noticed in the previous releases the background was dimming too, but way lighter then it is now.
So if it's possible to easily bringing back the previous 'color' would be enough.
Thanks!

I have turned down the alpha to 0.7 in 5.2


feat: support 'Decimal256' for parquet

Which issue does this PR close?

Closes #4264
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

I took the liberty of resolving the merge conflicts on this

I would feel happier with a little more test coverage

Additional test coverage and fixes in https://github.com/apache/arrow-rs/pull/4311


Specify stdlib version

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)

Explicitly specify stdlib version (2.17) for Treelite.

@conda-forge-admin , please re-render

@conda-forge-admin , please re-render

Pushed a couple minor changes here for Windows. Hope that is ok
Please take a look and let me know if you have any questions


Pls create Waypoints for Some Maps

PLs create WAYPOINTS for all these Maps ... THX
1hp_2           https://maps.cs-bg.info/maps/cs/2167/
35hp_elevator       https://gamebanana.com/maps/204786
35hp_freedoom       https://gamebanana.com/maps/204830
1hp_general        https://gamebanana.com/maps/162698
1hp_happy_new_year           http://files.cs-best.org.ua/?do=download&filename=1hp_happy_new_year
1hp_wristhax          https://gamebanana.com/maps/178198
1hp_et_map           https://gamebanana.com/maps/174220
35hp_CYBERSPORT      http://files.cs-best.org.ua/?do=download&filename=35hp_CYBERSPORT
35hp_spiderweb        https://gamebanana.com/maps/204406
35hp_xtreme_2019       https://gamebanana.com/maps/204335
1hp_2_2017          https://gamebanana.com/maps/197004
1hp_gates          https://gamebanana.com/maps/177978
1hp_loco             https://gamebanana.com/maps/178424
1hp_dark             http://files.cs-best.org.ua/?do=download&filename=1hp_dark
1hp_dg          https://gamebanana.com/maps/183003
1hp_flash          https://gamebanana.com/maps/172414
1hp_final             https://gamebanana.com/maps/204063
1hp_final_2          https://www.17buddies.rocks/17b2/View/Map/89211/1hp_final_2.html
1hp_final_3          https://gamebanana.com/maps/200468
1hp_i-qop           https://www.17buddies.rocks/17b2/View/Map/73031/1hp_i-qop.html
1hp_just          https://www.17buddies.rocks/17b2/View/Map/26564/1hp_just.html
1hp_pwr_full     https://www.17buddies.rocks/17b2/View/Map/72986/1hp_pwr_full.html
1hp_rax           https://gamebanana.com/maps/183112
1hp_relux          https://gamebanana.com/maps/183080
35hp               https://gamebanana.com/maps/204293
35hp_arena_v4         https://www.17buddies.rocks/17b2/View/Map/24814/35hp_arena_v4.html
35hp_bnd             https://gamebanana.com/maps/194298
35hp_gx                https://gamebanana.com/maps/204403
35hp_2              https://gamebanana.com/maps/154904
35hp_2009          https://www.17buddies.rocks/17b2/View/Map/24547/35hp_2009.html
35hp_2_css                      https://gamebanana.com/maps/171795
35hp_dust_2017           https://gamebanana.com/maps/196847
35hp_lava_M             https://www.17buddies.rocks/17b2/View/Map/100701/35hp_lava_m.html
35hp_2_night             https://gamebanana.com/maps/191377
35hp_walle             https://gamebanana.com/maps/203578
35hp_super_mario         https://gamebanana.com/maps/159519
35hp_2_fly               https://gamebanana.com/maps/187888
ka_knifebeach  https://www.17buddies.rocks/17b2/View/Map/3828/ka_knifebeach.html

1hp_2.zip

thx but i need .pwf files and not graph file.

35hp_elevator.zip
try last build yapb, you use podbot?

yeah thx . yes i am using podbot only with .pwf files =)  Thx

mhh no more ?


Terrform Apply failed due to the error of "Error 403: Unable to retrieve the repository metadata"

Describe the bug
When run “terraform apply "radlab-ui.out"” in the step described in https://googlecloudplatform.github.io/rad-lab/docs/rad-lab-ui/ui_installation/infrastructure/#initial-run, it failed with the error of "Error 403: Unable to retrieve the repository metadata"
To Reproduce
Steps to reproduce the behavior:

Go to https://googlecloudplatform.github.io/rad-lab/docs/rad-lab-ui/ui_installation/infrastructure/#initial-run
Run the command of "terraform apply "radlab-ui.out"" as per the document above.
Command failed due to the error of "Error 403: Unable to retrieve the repository metadata"

Expected behavior
Terraform should finish successfully
Screenshots
Screenshot of the error attached.
Desktop (please complete the following information):

OS: MacOS
Browser: Chrome
Version: N/A

Additional context
The solution is to add the line of “"roles/artifactregistry.reader",” after the line of “"roles/logging.logWriter",” in the file of “radlab-ui/automation/terraform/infrastructure/”. Will raise a PR shortly
Logs
Any relevant logs that you can provide. Please remove any identifying information.
Labels
Please add a label that identifies what component(s) this issue applies to.

will provide a PR shortly


fix: storage get response should use Found and NotFound, should refer to float64 type as Float instead of Double

Closes https://github.com/momentohq/dev-eco-issue-tracker/issues/937
In addition to the above, I also updated the storage scalar tests. Verified it passed locally but not sure yet if they should be re-enabled in canaries so haven't removed the .disabled tags yet.
This PR replaces the item, found, err get response with StorageGetFound and StorageGetNotFound. This will align the Go StorageClient with the other SDKs. All the Value*() type checking is contained within the Found case.
        getFloat, err := client.Get(ctx, &momento.StorageGetRequest{
		StoreName: "store-name",
		Key:       "my-float",
	})
	if err != nil {
		panic(err)
	}
	switch r := getFloat.(type) {
	case *responses.StorageGetNotFound:
		fmt.Print("float not found\n")
	case *responses.StorageGetFound:
		var valueFloat float64
		vFloat, ok := r.ValueFloat()
		if ok {
			valueFloat = vFloat
			fmt.Print("Float value: ", valueFloat, "\n")
		}
	}

Alternatively, we could take the route Ellery suggested that would be more in line with TopicClient subscriptions.
        item, err := client.Get(ctx, &momento.StorageGetRequest{
		StoreName: "store-name",
		Key:       "my-float",
	})
	if err != nil {
		panic(err)
	}
        if item == nil {
                fmt.Print("item not found\n")
        }
	switch r := item.(type) {
	case momento.String:
	fmt.Printf("received message as string: '%s'\n", item)
case momento.Bytes:
	fmt.Printf("received message as bytes: '%b'\n", item)
case momento.Float:
	fmt.Printf("received message as float: '%f'\n", item)
case momento.Integer:
	fmt.Printf("received message as integer: '%d'\n", item)
	}

I think the problems here would be:

Breaking consistency with the other SDKs regarding checking Found vs NotFound
Would need to define a responses.StorageValue interface that doesn't have naming clashes with existing momento.StorageValue or momento.Value interfaces
Would need to provide a way for users to get the direct data type (e.g. they receive a momento.Float or something but can't assign it directly to a float variable to work with it)

I think Pete already tackled this in a different PR? https://github.com/momentohq/client-sdk-go/pull/433


[Wrangler] Add how to update Wrangler

Which Cloudflare product(s) does this pertain to?
Workers
Subject Matter
How to update Wrangler
Content Location
Maybe as a top-level page under https://developers.cloudflare.com/workers/wrangler/
Additional information
This doc should address how users can update wrangler with links to any other relevant info regarding updates. @rozenmd mentioned that users often ask for this info.

If there is a package.json in the current directory, and wrangler is in it:

npm upgrade wrangler --save or npm update wrangler --save

If outside of a project folder (and there is no parent directory containing a package.json with wrangler in it:

npm update -g wrangler

Caveat: npx wrangler@latest will use the latest version of Wrangler except in the case where there's already a Wrangler version installed in the current folder, then it'll use that version instead.

closed by #6874


Prevent publishing TestKit module [ECR-3118]

Overview
Prevent publishing TestKit module to Maven central.

See: https://jira.bf.local/browse/ECR-3118
Definition of Done

[ ] There are no TODOs left in the code
[ ] The continuous integration build passes

Coverage remained the same at 85.92% when pulling d147e835a5bbdef44a6e6c4302c5e931cb9db218 on ECR-3118 into cc61c5aa778fd04ff3d40a6f4b8208b0cfbaf401 on master.


compact command cannot flush all memtable

Bug Report
Occurs from v2.0.0 beta to v3.0.0. Previous versions are not tested.

When using tikv-ctl to compact the tikv:
./tikv-ctl --host <IP_ADDRESS>:30171 compact -c default
store:"<IP_ADDRESS>:30171" compact db:KV cf:default range:[[], []) success!
./tikv-ctl --host <IP_ADDRESS>:30171 compact -c write
store:"<IP_ADDRESS>:30171" compact db:KV cf:write range:[[], []) success!
./tikv-ctl --host <IP_ADDRESS>:30171 compact -c lock
store:"<IP_ADDRESS>:30171" compact db:KV cf:lock range:[[], []) success!

Inspected that memtable of write and lock cannot be fully flushed. However default CF is fine.

@Little-Wallace PTAL

Cf::lock and cf::write both set memtable_prefix_bloom_size_ratio to 0.1,  which would apply for memtable_prefix_bloom_size_ratio * write_buffer_size byte memroy to create DynamicBloom, and this operation use the same allocator with Memtable.
Here is code: memtable.cc


Autocomplete menu navigation in opposite direction

Check for existing issues

[X] Completed

Is your feature request related to a problem?
When autocomplete menu with options pops up, it's not possible to navigate in reverse direction (e.g. with up key). Useful if the needed option happens to be last in the list.
Describe the solution you'd like
Upon autocomplete menu shows up, it's possible to navigate through options both ways - with up & down keys.
If applicable, add mockups / screenshots to help present your vision of the feature

Hi frenchbread, thanks for the bug report. Can you provide more information on this? I just tried to navigate up and down in the menu that pops up with cmd-space, and it seemed to work. What are you experiencing?

I assume the feedback is that you want the menu to wrap, correct? Like from the first time you can press up and now the last item will be selected?

Thanks for response!

Hi frenchbread, thanks for the bug report. Can you provide more information on this? I just tried to navigate up and down in the menu that pops up with cmd-space, and it seemed to work. What are you experiencing?

I assume the feedback is that you want the menu to wrap, correct? Like from the first time you can press up and now the last item will be selected?

@mikayla-maki I am not familiar with all the keybinds, however cmd-space does not switch options for me.
@iamnbutler yes, correct. Not sure if it's intended approach to do it "singe directional", but sometimes could be useful.

Sorry, I meant to write ctrl-space! Thanks for the explanation on the wrapping behavior :)

@mikayla-maki yeah, no worries, the issue is not related to popping up the suggestions window, but rather navigating though it using nav keys e.g. up & down. In the use-case provided in the description the suggestions menu is triggered using . symbol.

This should go out in next preview (v0.110.0) this week.


Update editor tab on member rename

Changes

When the user renames a member from the object explorer, if the member was open in an editor tab, the tab will now be replaced by a tab showing the member with the new name.
If the user is currently editing a member, and there are unsaved changes, the user can no longer rename the member from the object explorer.

This is meant to provide a workaround to issue #1554 . It seems that the VS Code API does not let us directly change an open tab's label or uri, so instead I opted to have the system close the tab, then open a new one with the updated uri. Notably, the new tab will not necessarily be in the same position as the old one.
Hopefully this will suffice as a temporary solution, but I will continue to look into this.
Checklist

[x] have tested my change
[ ] updated relevant documentation
[x] Remove any/all console.logs I added
[x] eslint is not complaining
[x] have added myself to the contributors' list in CONTRIBUTING.md

I will have a formal review in later for this, but should we consider implementing the same for stream files?
Perhaps the function you added to get the tab should be part of Tools?

@steph-beneschan-256
Two things:

Thanks for moving that API into tools. Are you also planning to add the same safeguarding logic for IFS objects too? E.g. when move/rename is used but the stream file is open, cancel the operation? This would be in ifsBrowser.ts. No is ok, just checking.
Please fix the conflicts and I will test further!

I will add the check to the IFS browser, and also resolve the conflicts.

I made a few more commits; the new logic should now apply to the IFS browser as well as the object browser.
Also, I noticed that if I use the IFS browser to rename/move an IFS file to a new path, if an IFS file already exists at the new path, it will be overwritten. Is that the intended behavior? (I ask because if I try to do the same thing using the IFS utility in ACS, the operation fails and no files are modified.) If it's a problem, I wouldn't mind looking into it.

@chrjorgensen What do you you think about @steph-beneschan-256's finding of the file being overwritten?

@chrjorgensen What do you you think about @steph-beneschan-256's finding of the file being overwritten?

@worksofliam It has always been like that - since the command executed on the server is a mv command which overwrites an existing file, if the existing file is writable. See mv documentation here: https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html#mv-invocation
I think our users has gotten used to this behavior, we don't have any issues about this...


Updates not possible [Access is denied. (os error 5)]

VSCode Version: 1.43.0 (Insiders and non-Insiders both)
OS Version: Windows 10 v1909

Steps to Reproduce:

Update from bottom left corner settings icon

Does this issue occur when all extensions are disabled?: N/A
When trying to update VS Code I get the following error:

Retrying doesn't help and one is forced to exit the installer, leaving residual files on uninstall:

To reinstall the program, I had to restart my computer and install from the system installer. And this has been going on for the past 1 or two updates as well so it's getting pretty frustrating.

Please respond to this, I can't even close VSCode else it begins updating and the same issue occurs

Ok so apparently it was a MalwareBytes-caused error. Turning off Ransomware protection while retrying had the update go smoothly.


PR Algo-quick sort in java

updated to md

good

Appreciate your response :)

Rename the title of the PR like "PR: Algo algorithm-name in programming-language "  @CheetahCodes21

star this repo @CheetahCodes21

You better close this PR and create a new PR in correct file location

https://github.com/Abishethvarman/programming-resources/issues/58 already the issue has addressed. So better try in our issues


Fixing a lot of string formatting issues

Improper format specifier (e.g. %s for bools or %s for ints)
More or less parameters than format specifiers
Not calling a formatting function when it should have (e.g. Error() instead of Errorf())

When there were too many parameters, I tried to add sensible format specifiers taking clues from the similar surrounding statements. When there were too few, I tried to find the intended thing to be put in the message.
If this is too big (like too many files), please let me know a sensible way to split it up.

Thanks for the great cleanup @krousey! Out of curiosity, did you use a tool for this? Maybe we can run it more often :)

@vrmarmol go tool vet -all=0 -printf on each package.

Thanks for the pointer! This LGTM, lets squash the commits and merge.

LGTM and build is green. Thanks @krousey!


[OSPRH-10956] Httpd timeout for ceilometer and aodh

This allows users to configure httpd timeouts for aodh and ceilometer as well as haproxy timeout in aodh route. An openstack-operator PR will follow once this merges.

/cherry-pick 18.0-fr1


Comment Issues ( no visibility + edit discards text )

I recently encountered an issue with the Give Me Diamond kata, and posted an explanation of the issue in the discussion section.

The comment has the spoiler flag enabled, so it should be hidden from other users that have not completed the challenge.
For some reason, it is also being hidden from my account:

Additionally, if I attempt to edit the comment, the original content is not retrieved and I am presented with an empty input form:

Closing old issue. Please open a new one if this issue is still there.


Error uploading file to Google Cloud Storage: error:0909006C:PEM routines:get_name:no start line

Hi
I've followed the tutorial on how to setup the configuration outside GCP.
I have setup all in strapi (config/prod/plugins.js as per documentation) as well as included the ENVs inside heroku (and they are used correctly - or so it seams).
The app compiles and everything runs, but when I try to upload a file, I get this error:
2021-12-29T08:40:38.772237+00:00 app[web.1]: Error uploading file to Google Cloud Storage: error:0909006C:PEM routines:get_name:no start line
2021-12-29T08:40:38.772799+00:00 app[web.1]: [2021-12-29 08:40:38.772] error: error:0909006C:PEM routines:get_name:no start line
2021-12-29T08:40:38.772800+00:00 app[web.1]: Error: error:0909006C:PEM routines:get_name:no start line
2021-12-29T08:40:38.772800+00:00 app[web.1]: at Sign.sign (node:internal/crypto/sig:131:29)
2021-12-29T08:40:38.772800+00:00 app[web.1]: at Object.sign (/app/node_modules/jwa/index.js:152:45)
2021-12-29T08:40:38.772801+00:00 app[web.1]: at Object.jwsSign [as sign] (/app/node_modules/jws/lib/sign-stream.js:32:24)
2021-12-29T08:40:38.772801+00:00 app[web.1]: at GoogleToken.requestToken (/app/node_modules/gtoken/build/src/index.js:225:31)
2021-12-29T08:40:38.772801+00:00 app[web.1]: at GoogleToken.getTokenAsyncInner (/app/node_modules/gtoken/build/src/index.js:163:21)
2021-12-29T08:40:38.772802+00:00 app[web.1]: at GoogleToken.getTokenAsync (/app/node_modules/gtoken/build/src/index.js:142:55)
2021-12-29T08:40:38.772802+00:00 app[web.1]: at GoogleToken.getToken (/app/node_modules/gtoken/build/src/index.js:94:21)
2021-12-29T08:40:38.772803+00:00 app[web.1]: at JWT.refreshTokenNoCache (/app/node_modules/google-auth-library/build/src/auth/jwtclient.js:171:36)
2021-12-29T08:40:38.772803+00:00 app[web.1]: at JWT.refreshToken (/app/node_modules/google-auth-library/build/src/auth/oauth2client.js:152:24)
2021-12-29T08:40:38.772808+00:00 app[web.1]: at JWT.getRequestMetadataAsync (/app/node_modules/google-auth-library/build/src/auth/oauth2client.js:284:28)
2021-12-29T08:40:38.772808+00:00 app[web.1]: at JWT.getRequestMetadataAsync (/app/node_modules/google-auth-library/build/src/auth/jwtclient.js:94:26)
2021-12-29T08:40:38.772813+00:00 app[web.1]: at JWT.getRequestHeaders (/app/node_modules/google-auth-library/build/src/auth/oauth2client.js:247:37)
2021-12-29T08:40:38.772814+00:00 app[web.1]: at GoogleAuth.authorizeRequest (/app/node_modules/google-auth-library/build/src/auth/googleauth.js:600:38)
2021-12-29T08:40:38.772814+00:00 app[web.1]: at async Promise.all (index 1)

Can you help me with this please? I searched online but couldn't find anything about this.
Thanks in advance

Hi @nickimola,
I suggest you to setup again this part :

Setting up Google authentication

Which release of Strapi are you using ?

V3 or V4 ?

Please give us as more as possible information about your environment, this can happen too with a bad version of NPM or Node.
Thanks :)

Hi @nickimola,
Facing the same issue in V4, I found a solution on the web.
You need to sanitize the private key in config/plugins.js :
"private_key": env('GCS_PRIVATE_KEY').replace(/\\n/g, '\n'),


Failed to subscribe topic after RasPi4 reboot

Please provide the following information:

OS: (e.g. Ubuntu 22.04)
ROS Distro: (e.g. Humble)
Built from source or installed: installed
Package version: (if from repository, give version from sudo dpkg -s ros-$ROS_VERSION-turtlebot4-PACKAGE_WITH_ISSUE, if from source, give commit hash)

Expected behaviour
After user reboot RasPi4, user run ros2 topic echo /odom.
I expect that user can subscribe /odom topic.
Actual behaviour
After user reboot RasPi4, user run ros2 topic echo /odom.
But, I could not subscribe /odom topic.
$ ros2 topic echo /odom
WARNING: topic [/odom] does not appear to be published yet
Could not determine the type for the passed topic

To Reproduce

boot TurtleBot4
reboot RasPi4
do ros2 topic echo /odom

Other notes
reboot RasPi4
I checked the following command.

command
result

ros2 topic echo /ip
OK

ros2 topic echo /scan
OK

ros2 topic echo /oakd/rgb/preview/image_raw
OK

ros2 topic echo /imu
NG

ros2 topic echo /dock_status
NG

ros2 topic echo /battery_state
NG

ros2 topic echo /hazard_detection
NG

ros2 topic echo /odom
WARNING: topic [/odom] does not appear to be published yet
Could not determine the type for the passed topic

$ ros2 node list
/analyzers
/joint_state_publisher
/joy_linux_node
/launch_ros_1022
/oakd
/oakd_container
/robot_state_publisher
/rplidar_composition
/teleop_twist_joy_node
/turtlebot4_base_node
/turtlebot4_diagnostics
/turtlebot4_nod

$ ros2 topic list
/battery_state
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/dock_status
/function_calls
/hmi/buttons
/hmi/display
/hmi/display/message
/hmi/led
/interface_buttons
/ip
/joy
/oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
/parameter_events
/rosout
/scan
/wheel_status

reboot TurtleBot4 via Web browser
I checked the following command.

command
result

ros2 topic echo /ip
OK

ros2 topic echo /scan
OK

ros2 topic echo /oakd/rgb/preview/image_raw
OK

ros2 topic echo /imu
OK

ros2 topic echo /dock_status
OK

ros2 topic echo /battery_state
OK

ros2 topic echo /hazard_detection
OK

ros2 topic echo /odom
OK

$ ros2 node list
/_internal/composite_hazard
/_internal/kinematics_engine
/_internal/mobility
/_internal/stasis
/analyzers
/joint_state_publisher
/joy_linux_node
/launch_ros_1022
/mobility_monitor
/motion_control
/oakd
/oakd_container
/robot_state
/robot_state_publisher
/rplidar_composition
/static_transform
/system_health
/teleop_twist_joy_node
/turtlebot4_base_node
/turtlebot4_diagnostics
/turtlebot4_node
/ui_mgr

$ ros2 topic list
/battery_state
/cliff_intensity
/cmd_audio
/cmd_lightring
/cmd_vel
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/dock_status
/function_calls
/hazard_detection
/hmi/buttons
/hmi/display
/hmi/display/message
/hmi/led
/imu
/interface_buttons
/ip
/ir_intensity
/ir_opcode
/joint_states
/joy
/joy/set_feedback
/kidnap_status
/mobility_monitor/transition_event
/mouse
/oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
/odom
/parameter_events
/robot_description
/robot_state/transition_event
/rosout
/scan
/slip_status
/static_transform/transition_event
/stop_status
/tf
/tf_static
/wheel_status
/wheel_ticks
/wheel_vels

I read https://turtlebot.github.io/turtlebot4-user-manual/software/turtlebot4_robot.html#robot-upstart and I checked the status of Robot Upstart.
reboot RasPi4
● turtlebot4.service - "bringup turtlebot4"
     Loaded: loaded (/lib/systemd/system/turtlebot4.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-09-19 16:59:51 UTC; 2 months 7 days ago
   Main PID: 747 (turtlebot4-star)
      Tasks: 134 (limit: 4423)
     Memory: 363.9M
        CPU: 5min 58.120s
     CGroup: /system.slice/turtlebot4.service
             ├─ 747 /bin/bash /usr/sbin/turtlebot4-start
             ├─1019 /usr/bin/python3 /opt/ros/humble/bin/ros2 launch /tmp/turtlebot4.launch.py
             ├─1035 /opt/ros/humble/lib/turtlebot4_node/turtlebot4_node --ros-args -r __ns:=/ --params-file /tmp/tmp0_5ln1xe --params-file /tmp/launch_params_j0_i5zyh
             ├─1037 /opt/ros/humble/lib/turtlebot4_base/turtlebot4_base_node --ros-args -r __ns:=/ --params-file /tmp/tmp0_5ln1xe
             ├─1039 /opt/ros/humble/lib/joy_linux/joy_linux_node --ros-args -r __node:=joy_linux_node -r __ns:=/ -r /diagnostics:=diagnostics
             ├─1041 /opt/ros/humble/lib/teleop_twist_joy/teleop_node --ros-args -r __node:=teleop_twist_joy_node -r __ns:=/ --params-file /tmp/tmpmy9dpbb1
             ├─1043 /opt/ros/humble/lib/rplidar_ros/rplidar_composition --ros-args -r __node:=rplidar_composition -r __ns:=/ --params-file /tmp/launch_params_8o8l5qyj
             ├─1045 /opt/ros/humble/lib/rclcpp_components/component_container --ros-args -r __node:=oakd_container -r __ns:=/
             ├─1047 /opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args -r __node:=robot_state_publisher -r __ns:=/ --params-file /tmp/launch_params_u30aby0o --params-file /tmp/launch>
             ├─1049 /usr/bin/python3 /opt/ros/humble/lib/joint_state_publisher/joint_state_publisher --ros-args -r __node:=joint_state_publisher -r __ns:=/ --params-file /tmp/launch_params_gq9ksex1 -r /tf:=>
             ├─1051 /opt/ros/humble/lib/diagnostic_aggregator/aggregator_node --ros-args -r __ns:=/ --params-file /tmp/tmph6rmoy0_ -r /diagnostics:=diagnostics -r /diagnostics_agg:=diagnostics_agg -r /diagn>
             └─1053 /usr/bin/python3 /opt/ros/humble/lib/turtlebot4_diagnostics/diagnostics_updater --ros-args -r __ns:=/ -r /diagnostics:=diagnostics -r /diagnostics_agg:=diagnostics_agg -r /diagnostics_to>

Nov 27 04:36:06 ubuntu turtlebot4-start[1019]: [rplidar_composition-5] [INFO] [1701059766.238966026] [rplidar_composition]: Start
Nov 27 04:36:06 ubuntu turtlebot4-start[1019]: [rplidar_composition-5] [INFO] [1701059766.935511386] [rplidar_composition]: current scan mode: Sensitivity, sample rate: 8 Khz, max_distance: 12.0 m, scan fre>
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.599553676] [oakd]: Camera with MXID: 18443010E13B990F00 and Name: 1.1.2 connected!
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.601324354] [oakd]: USB SPEED: SUPER
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.623850247] [oakd]: Device type: OAK-D-PRO-AF
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.629575941] [oakd]: Pipeline type: RGB
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [WARN] [1701059768.670707061] [oakd]: Resolution 1080 not supported by sensor IMX378. Using default resolution 1080P
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.686859139] [oakd]: Finished setting up pipeline.
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701059768.908833242] [oakd]: Camera ready!
Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oakd' in container '/oakd_container'

reboot TurtleBot4 via Web browser
● turtlebot4.service - "bringup turtlebot4"
     Loaded: loaded (/lib/systemd/system/turtlebot4.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-09-19 16:59:51 UTC; 2 months 7 days ago
   Main PID: 747 (turtlebot4-star)
      Tasks: 125 (limit: 4423)
     Memory: 380.4M
        CPU: 10min 30.829s
     CGroup: /system.slice/turtlebot4.service
             ├─ 747 /bin/bash /usr/sbin/turtlebot4-start
             ├─1019 /usr/bin/python3 /opt/ros/humble/bin/ros2 launch /tmp/turtlebot4.launch.py
             ├─1035 /opt/ros/humble/lib/turtlebot4_node/turtlebot4_node --ros-args -r __ns:=/ --params-file /tmp/tmp0_5ln1xe --params-file /tmp/launch_params_j0_i5zyh
             ├─1037 /opt/ros/humble/lib/turtlebot4_base/turtlebot4_base_node --ros-args -r __ns:=/ --params-file /tmp/tmp0_5ln1xe
             ├─1039 /opt/ros/humble/lib/joy_linux/joy_linux_node --ros-args -r __node:=joy_linux_node -r __ns:=/ -r /diagnostics:=diagnostics
             ├─1041 /opt/ros/humble/lib/teleop_twist_joy/teleop_node --ros-args -r __node:=teleop_twist_joy_node -r __ns:=/ --params-file /tmp/tmpmy9dpbb1
             ├─1043 /opt/ros/humble/lib/rplidar_ros/rplidar_composition --ros-args -r __node:=rplidar_composition -r __ns:=/ --params-file /tmp/launch_params_8o8l5qyj
             ├─1045 /opt/ros/humble/lib/rclcpp_components/component_container --ros-args -r __node:=oakd_container -r __ns:=/
             ├─1047 /opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args -r __node:=robot_state_publisher -r __ns:=/ --params-file /tmp/launch_params_u30aby0o --params-file /tmp/launch_params_85g99d_c -r >
             ├─1049 /usr/bin/python3 /opt/ros/humble/lib/joint_state_publisher/joint_state_publisher --ros-args -r __node:=joint_state_publisher -r __ns:=/ --params-file /tmp/launch_params_gq9ksex1 -r /tf:=tf -r /tf_static:=tf>
             ├─1051 /opt/ros/humble/lib/diagnostic_aggregator/aggregator_node --ros-args -r __ns:=/ --params-file /tmp/tmph6rmoy0_ -r /diagnostics:=diagnostics -r /diagnostics_agg:=diagnostics_agg -r /diagnostics_toplevel_stat>
             └─1053 /usr/bin/python3 /opt/ros/humble/lib/turtlebot4_diagnostics/diagnostics_updater --ros-args -r __ns:=/ -r /diagnostics:=diagnostics -r /diagnostics_agg:=diagnostics_agg -r /diagnostics_toplevel_state:=diagno>

Nov 27 04:36:08 ubuntu turtlebot4-start[1019]: [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oakd' in container '/oakd_container'
Nov 27 04:51:03 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060663.229218992] [turtlebot4_node]: OAKD stopped
Nov 27 04:51:03 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060663.229423026] [turtlebot4_node]: RPLIDAR stopped
Nov 27 04:51:04 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060664.229695023] [turtlebot4_node]: oakd/stop_camera service available, sending request
Nov 27 04:51:04 ubuntu turtlebot4-start[1019]: [component_container-6] [INFO] [1701060664.230594898] [oakd]: Stopping camera.
Nov 27 04:51:04 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060664.230669879] [turtlebot4_node]: stop_motor service available, sending request
Nov 27 04:51:04 ubuntu turtlebot4-start[1019]: [rplidar_composition-5] [INFO] [1701060664.341978942] [rplidar_composition]: Ingnoring stop_motor request because rplidar_node is in 'auto standby' mode
Nov 27 04:51:04 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060664.344479795] [turtlebot4_node]: stop_motor service completed.
Nov 27 04:51:05 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060665.767139872] [turtlebot4_node]: oakd/stop_camera service got results: Success
Nov 27 04:51:05 ubuntu turtlebot4-start[1019]: [turtlebot4_node-1] [INFO] [1701060665.767294592] [turtlebot4_node]:

@hilary-luo There is no response. Could you give me your comment?

Can you please provide the full create3 log?

@hilary-luo I encountered other problem(https://github.com/turtlebot/turtlebot4/issues/325). So, it is difficult to get a log of this issue.

@hilary-luo https://github.com/turtlebot/turtlebot4/issues/325 was resolved. And, I reproduced this problem. So, I collect iRobot Create3 log via Web server.
I power off Create 3 and power on Create 3. This problem was resolved.
iRobot Create3
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [WARN] [1702601454.015152973] [motion_control]: Disabling reflexes
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.019990063] [mobility_monitor]: New kidnap status: kidnapped
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.022490454] [_internal.mobility]: Received enable wheels request
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.023570064] [mobility_monitor]: Requested to disable wheels!
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.048117261] [mobility_monitor]: Updating ready to drive: false
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [WARN] [1702601454.048539998] [mobility_monitor]: Robot is kidnapped! Temporarily disabling wheels!
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.769931909] [motion_control]: Kidnap status changed: temporarily enabling reflexes
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [WARN] [1702601454.770921060] [motion_control]: Enabling reflexes
Dec 15 00:50:54 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601454.774118227] [mobility_monitor]: New kidnap status: kidnap cleared
Dec 15 00:50:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601455.376746039] [_internal.mobility]: Received enable wheels request
Dec 15 00:50:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601455.377904598] [mobility_monitor]: Requested to enable wheels!
Dec 15 00:50:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601455.406697569] [mobility_monitor]: Updating ready to drive: true
Dec 15 00:50:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601455.407116545] [mobility_monitor]: Kidnap cleared! Wheels are now enabled!
Dec 15 00:50:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 32s
Dec 15 00:51:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601468.099074811] [system_health]: CPU usage: max 78 [%] mean 69 [%] RAM usage: 35/59 [MB]
Dec 15 00:51:44 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 64s
Dec 15 00:52:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601528.092899580] [system_health]: CPU usage: max 86 [%] mean 76 [%] RAM usage: 35/59 [MB]
Dec 15 00:52:58 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  894.938863] usb 1-1: USB disconnect, device number 2
Dec 15 00:52:58 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  894.947706] cdc_ether 1-1:1.0 usb0: unregister 'cdc_ether' usb-101c0000.ehci-1, CDC Ethernet Device
Dec 15 00:52:59 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: Interface usb0.IPv4 no longer relevant for mDNS.
Dec 15 00:52:59 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: Leaving mDNS multicast group on interface usb0.IPv4 with address <IP_ADDRESS>.
Dec 15 00:52:59 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: Withdrawing address record for <IP_ADDRESS> on usb0.
Dec 15 00:53:05 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 66s
Dec 15 00:53:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601588.089692347] [system_health]: CPU usage: max 99 [%] mean 69 [%] RAM usage: 35/59 [MB]
Dec 15 00:53:11 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  908.601320] usb 1-1: new high-speed USB device number 3 using ehci-platform
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.err kernel: [  914.033931] usb 1-1: device descriptor read/64, error -71
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  914.354720] usb 1-1: New USB device found, idVendor=0525, idProduct=a4a2
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  914.354742] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  914.354754] usb 1-1: Product: RNDIS/Ethernet Gadget
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  914.354764] usb 1-1: Manufacturer: Linux 5.15.0-1044-raspi with fe980000.usb
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.info kernel: [  914.359457] cdc_ether 1-1:1.0 usb0: register 'cdc_ether' at usb-101c0000.ehci-1, CDC Ethernet Device, 22:d8:59:48:d2:0d
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 kern.err kernel: [  914.694021] cdc_ether 1-1:1.0 usb0: kevent 12 may have been dropped
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: Joining mDNS multicast group on interface usb0.IPv4 with address <IP_ADDRESS>.
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: New relevant interface usb0.IPv4 for mDNS.
Dec 15 00:53:17 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 daemon.info avahi-daemon[1217]: Registering new address record for <IP_ADDRESS> on usb0.IPv4.
Dec 15 00:53:18 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '3.irobot.pool.ntp.org'
Dec 15 00:53:23 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '2.irobot.pool.ntp.org'
Dec 15 00:53:28 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '1.irobot.pool.ntp.org'
Dec 15 00:53:33 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '0.irobot.pool.ntp.org'
Dec 15 00:53:50 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x6e, next query in 64s
Dec 15 00:54:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601648.089900368] [system_health]: CPU usage: max 58 [%] mean 46 [%] RAM usage: 35/59 [MB]
Dec 15 00:54:28 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 66s
Dec 15 00:54:43 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: Script called in periodic mode
Dec 15 00:55:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601708.092486691] [system_health]: CPU usage: max 62 [%] mean 49 [%] RAM usage: 35/59 [MB]
Dec 15 00:55:11 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0xdc, next query in 67s
Dec 15 00:55:51 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 65s
Dec 15 00:56:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601768.097060072] [system_health]: CPU usage: max 56 [%] mean 46 [%] RAM usage: 35/59 [MB]
Dec 15 00:57:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601828.089223994] [system_health]: CPU usage: max 54 [%] mean 48 [%] RAM usage: 35/59 [MB]
Dec 15 00:57:13 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 130s
Dec 15 00:57:50 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '3.irobot.pool.ntp.org'
Dec 15 00:57:55 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '2.irobot.pool.ntp.org'
Dec 15 00:58:00 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '1.irobot.pool.ntp.org'
Dec 15 00:58:05 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: bad address '0.irobot.pool.ntp.org'
Dec 15 00:58:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601888.089156398] [system_health]: CPU usage: max 58 [%] mean 47 [%] RAM usage: 35/59 [MB]
Dec 15 00:59:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702601948.089047737] [system_health]: CPU usage: max 59 [%] mean 48 [%] RAM usage: 35/59 [MB]
Dec 15 00:59:40 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice ntpd: ntpd: timed out waiting for <IP_ADDRESS>, reach 0x00, next query in 129s
Dec 15 01:00:00 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 cron.info crond[1091]: USER root pid 4931 cmd /bin/date -u +%4Y%2m%2d%2H%2M%2S > /etc/timestamp
Dec 15 01:00:00 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 cron.info crond[1091]: USER root pid 4932 cmd /usr/bin/coredumps-cleanup.sh
Dec 15 01:00:00 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice coredumps-cleanup.sh: Checking for old core files to cleanup.
Dec 15 01:00:08 iRobot-717F1994F3A3457ABAF0EBF2CE9DB939 user.notice create-platform: [INFO] [1702602008.090496034] [system_health]: CPU usage: max 53 [%] mean 45 [%] RAM usage: 35/59 [MB]

RasPi4
It seem that RasPi4 could not find node of Create3.
$ ros2 topic list
/battery_state
/cmd_vel
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/dock_status
/function_calls
/hazard_detection
/hmi/buttons
/hmi/display
/hmi/display/message
/hmi/led
/imu
/interface_buttons
/ip
/joint_states
/joy
/joy/set_feedback
/mouse
/oakd/rgb/preview/camera_info
/oakd/rgb/preview/image_raw
/parameter_events
/robot_description
/rosout
/scan
/tf
/tf_static
/wheel_status

$ ros2 node list
/analyzers
/joint_state_publisher
/joy_linux_node
/launch_ros_963
/oakd
/oakd_container
/robot_state_publisher
/rplidar_composition
/teleop_twist_joy_node
/turtlebot4_base_node
/turtlebot4_diagnostics
/turtlebot4_node

My understanding then is that this issue is also now solved. There was a networking issue between the raspberry pi and the create3 that seems to have resolved itself.

@hilary-luo

My understanding then is that this issue is also now solved.

No.

Failed to subscribe topic after RasPi4 reboot

This problem is NOT resolved.
https://github.com/turtlebot/turtlebot4/issues/311#issuecomment-1857122945

power on TurtleBot4
reboot RasPi4
do ros2 topic echo /odom. But, I could not subscribe odom topic.

Is this expected behavior?

@atinfinity my apologies, when you said "this problem is resolved" I thought you were referring to this ticket.
It does seem like you have a networking issue between the create3 and the raspberry pi. Are you using simple discovery or discovery server?
That doesn't seem like the entire create3 log, it would be more helpful if you could provide the full log.

Based on your other ticket it would seem that you are using discovery server. Can you please verify that the create3 webserver shows that it is set to discovery server and is showing the correct IP address and port for the discovery server? While you are there please also verify that the rmw implementation is set to fastrtps and that the ros domain ID is correct for your robot. Still please provide the full create3 log.

Based on your other ticket it would seem that you are using discovery server.

Yes.

Can you please verify that the create3 webserver shows that it is set to discovery server and is showing the correct IP address and port for the discovery server? While you are there please also verify that the rmw implementation is set to fastrtps and that the ros domain ID is correct for your robot. Still please provide the full create3 log.

I'll provide other information later. Please wait a little.

Can you please verify that the create3 webserver shows that it is set to discovery server and is showing the correct IP address and port for the discovery server? While you are there please also verify that the rmw implementation is set to fastrtps and that the ros domain ID is correct for your robot.

I checked create3 webserver. As a result, there is no problem.

And, I reboot RasPi4. I could subscribe odom topic from RasPi4. So, I closed this issue.
But, I could NOT subscribe odom topic from Other PC(NOT RasPi4). I will discuss this point in another ticket(https://github.com/turtlebot/turtlebot4/issues/329).


Open daily note even if it already existed

Untested, but does this look alright?
Closes #47

Closing because it would overload a correct fail state with success functionality, as mentioned in #47.


Support for Cobertura and Jacoco Coverage report

Hi
We are currently having the majority of pipelines in Java, the current action is working for React JS pipelines which is able to generate a lcov. For using jacoco reports, is there any workaround we can use to generate the PR annotations
@vitaliimelnychuk
Regards
Vaishnav

Hello @vaishnav-canarys, thanks for opening the issue. I think extending the action to work with different types of files makes sense. I'll try to take a look during the weekend as I never used any of these reporters before. If you'd like to contribute to the project meantime, I think you, might want to take a look into https://github.com/barecheck/code-coverage-action/blob/v1/src/index.js#L37 this output, I think we might need to add check for file type and use another parser. Ideally, we would need to have the same structure independently of the file type.
Also, if you're looking to have something working today, I would explore ways to convert Cobertura and Jacoco into Lcov.


feat: add testScript python injection

Matches against both of:
{
  testScript = ''
    import numpy as np
    assert str(np.zeros(4) == "array([0., 0., 0., 0.])")
  '';
  testScript = {...}: ''
    import numpy as np
    assert str(np.zeros(4) == "array([0., 0., 0., 0.])")
  '';
}

Closes #54

This solution feels a bit ad-hoc and hacky.
For some historical context:
NixOS tests weren't always Python. A few years ago they were in Perl, and that may change again at some point, though hopefully not.
testScript is also a fairly generic name that we don't always want to interpret as Python.
I think we're probably gonna have to go with a special format comment to hint to the parser which language multi-line strings are actually in.
This touches on much more than just tree-sitter-nix.


Issue #921: Targeting API 28. Added workaround for pruned canvas save(int) method…

…. SRC: https://developer.android.com/sdk/api_diff/28/changes/android.graphics.Canvas
The main aim of this PR is to avoid breaking old behaviour.


Create setting-up-prebid.js-with-Smart-Ad-Server

Smart's setup documentation to be listed in http://prebid.org/adops/docs-by-ad-server.html once approved.

Made some formatting updates and a few tweak edits.
Merging.


Add toggle to show/hide assets with current zero balance and previous tx history

DO NOT START WORK ON THIS ISSUE UNTIL PRODUCT HAS PROVIDED INPUT
Overview
On the dashboard page of the app, assets with previous non zero balance, but currently with zero value/amounts show up still under Your Assets on the dashboard page
Reproduction steps

Log in to the app with any wallet that had a previous balance of a token
wait for the dashboard to finish loading and scroll through assets to an asset with the previous balance
see that 0 balance assets are showing up

Reference

See previous Discord discussion
Implementation detail is here

Screenshots

Acceptance criteria

Toggle to hide/show asset with current zero and previous tx history implemented as per product spec @SS-FOX-McCloud @DiggyDiggy2 @reallybeard

Bounty Documentation

Please check out our docs for how to get in touch with us or ask questions.

IDEA:
Add toggle above table, "Show small balances" with a tooltip that says "Show assets with balances below $1.00"
Mockup:
TBD

Issue is resolved in #1163


Exam 22 - Question 5

Which AWS service or feature allows the user to manage cross-region application traffic?
A. Amazon AppStream 2.0
B. Amazon VPC
C. Elastic Load Balancer
D. Amazon Route 53
The answer given is A, however Amazon AppStream 2 is Secure, reliable, and scalable application streaming and low-cost virtual desktop service : (https://aws.amazon.com/appstream2/)
Shouldn't option A be AWS Global Accelerator ?

Improve application availability, performance, and security using the AWS global network

@StefH I think Amazon Route 53 is correct.
https://brainly.com/question/48892284


add .vmcignore file for vmc push (and document current filters)

It seems that when you do a "vmc push", not all files will get pushed up to cloudfoundry (they are note found when I do "vmc files myapp app").  Currently, it looks like .git, .svn, *~, #foo log/development.log are filtered.  But some files that you might want to prevent being uploaded do get uploaded (e.g., I tried log/development.log-orig, which got uploaded).
I think there should be a mechanism for the developer to specify a set of files to ignore during upload, and there should be some clear documentation as to which files are already filtered.  I should be able to prevent entire directories "log", allow a directory, but not contents "log/**/*" and filetypes *.sqlite3.

+1, this feature would be nice to have. In my opinion, the way that files are being ignored right now might not be very intuitive for some. For example, currently .htaccess files at root are being ignored after a vmc push, but I let it pass because I couldn't tell if this was a bug or a feature.
https://github.com/cloudfoundry/vcap/pull/165

+1

I inquired about this feature on support forum.
http://support.cloudfoundry.com/entries/21098173-about-vmcignore-file-for-vmc-content-filtering-feature
The reply from cloud foundry team is folloing.

I reviewed this with engineering, and it is active and in the works. :-)


Total HNT for CSV period

For $HNT rewards CSVs for individual Hotspots and whole wallets, some of the most common questions are the total $HNT for the CSV and the Oracle Price at the time of each reward transaction.
This issue is focused on the total $HNT for a rewards-focused CSV, displayed somewhere on the CSV.

Totals are easy enough to specify in a spread sheet program of your choice. But adding the Oracle price is interesting. It is already requested in https://github.com/helium/explorer/issues/125 if you would like to give it a thumbs up there.

Totals are easy enough to specify in a spread sheet program of your choice. But adding the Oracle price is interesting. It is already requested in #125 if you would like to give it a thumbs up there.

Definitely like the addition of Oracle Price to CSVs, gave it a thumbs up.

We'll be retiring csv export in explorer v2 and directing users to community created tools.


Fix export-client when there is no db connection

Making export-client exit when there no connection to the database

recheck

Looks like an intermittent network blip that caused that last failure.

@JPWKU Yes, I seems we have some problem with the board connectivity. Sometimes we have some packet lost, but we haven't found the root cause yet.


[RFC] Provide pluggable deciders for concurrent search

Is your feature request related to a problem? Please describe
With https://github.com/opensearch-project/OpenSearch/issues/14781 we suggested a adaptive approach to use concurrent search based on resource utilization (CPU) and request type. One of the complexity with this adaptive approach is it could lead to a non-deterministic behavior in the system if CPU load varies. With shared resources between other tasks like indexing, or background jobs like snapshots, the increase in CPU utilization will lead to penalizing search request. To keep it simple and deterministic behavior, we are planning to provide a mechanism such that it is easy to configure and still targets specific use cases where we have seen good improvements.
We will introduce a new setting which is flexible and can be extended for other use cases later. We will deprecate the existing concurrent search setting keeping bwc in mind. Instead of having a binary setting we need a way to control using concurrent search based on a request type. Along with this we will provide a pluggable decision making component such that plugins like KNN can also decide for the request type exposed by it.
Describe the solution you'd like
Today we have the following 2 settings at cluster and index level
cluster:
"search.concurrent_segment_search.enabled": true

index:
"index.search.concurrent_segment_search.enabled": true

The plan for OS_2_17 will be to introduce a new setting which will take one of the following 3 values:
cluster:
search.concurrent_segment_search.mode: ["all", "none", "auto"]

index:
index.search.concurrent_segment_search.mode: ["all", "none", "auto"]

and deprecate the existing boolean settings with bwc.
The meaning of the values for new settings is as follows:
Core decider behavior:
In the back-end we will control what auto means for the setting
all → maps to current behavior of setting the value to true. All requests will run with concurrent segment search
none → maps to current behavior of setting the value to false. No request will run with concurrent segment search
auto → only enable concurrent search for aggs. (this applies to index level or cluster level based on what is set. Index level takes precedence over cluster level, for eg. if cluster level is auto and index level is none, then for that index, concurrent search will be disabled and similarly when cluster level setting is none, but index level setting is auto then that takes effect.)
Default value in 2.17 →

Both cluster level and index level setting will continue to remain none which corresponds to the same behavior as today where the boolean setting is defaulted to false. However, if user updates the setting to auto then concurrent search will be enabled on queries with agg operations.

For future releases, we can think of adding support for more operations with auto setting.
Plugin decider behavior:
Now plugins are only concerned with the indices that are relevant in plugin world, for example, knn plugin is only interested in taking the decision for knn index.
There is no plugin-specific setting to indicate a preference of behavior as different plugins may have different default behaviors. Instead, plugins will also follow what is set in above cluster and index level settings; with a slight change in meaning of auto setting.
In plugin world auto can have different meaning:
For example:
In knn plugin world -  auto can mean enable concurrent search for all types of operations on the plugin index; not just aggs.
In another plugin, the auto setting can mean disable concurrent search for the plugin index.
In all cases, if there is an index specific override via index setting, then take that into account.
So the decision making based on the settings will be controlled by specific plugin-backend.
Related component
Search:Performance
Additional context
Low level implementation details:
Pluggable deciders for concurrent segment search:
Today, the decision to enable concurrent search is made in DefaultSearchContext#evaluateRequestShouldUseConcurrentSearch where the decision is made by looking at cluster and index settings along with few other conditions.
While we continue to use this logic, we will now use a decider framework to provide a decision on concurrent segment search.
SearchPlugin will provide an additional method to create concurrent search decider that plugins will implement to provide their plugin specific decision logic.
SearchModule will register the core and plugin specific deciders into a concurrent search deciders Collection, which can be iterated over to get the decision for concurrent search for each request.
SearchService#evaluateRequestShouldUseConcurrentSearch will now iterate over all registered deciders to provide the decision.
Decider contract will be to take in SearchContext (which it can use to check whether request has specific operations like aggs) along with clusterSettings and indexSettings and provide one of the following decisions:

noop (don’t care since this index is not specific to this plugin)
true (this is a valid plugin specific index and the decision is YES for concurrent search)
false (this is a valid plugin specific index and the decision is NO for concurrent search)

Core decider will never return noop
Overall decision flow will be to go over all deciders one by one till we get a decision. If any plugin deciders return a decision as true or false then we use that decision, and otherwise we will fallback to core decider
The flow will be to iterate over deciders till we get a non noop decision. Since the core decider will never return a noop that will be evaluated last, after evaluating all plugin deciders.
Co-author: @sohami

Updating this with some modifications to the approach.
Modification:

Implement a visitor to traverse the QueryBuilder tree for the specific operation types

Motivation here is that there will be some deciders may be interested in only certain types of query operations; for example the knn plugin will only be interested in queries with vector operations. In order to understand what type of query operations are within the query, we need to traverse the query tree. This is achieved using the visitor pattern. At each level of the query tree, the visitor will call all registered deciders to get decision. Deciders can implement mechanisms to look at the queryBuilder at the current level and provide a decision True to enable concurrent search, False, to disable concurrent search or NOOP if it doesn't care about the operation.
how can plugins register their deciders
Each plugin that implements the SearchPlugin can now implement the method createConcurrentSearchDeciders to create and return a collection of ConcurrentSearchDecider deciders.
Plugins can create their plugin specific deciders to extend the abstract class ConcurrentSearchDecider and implement the 2 methods
    public abstract ConcurrentSearchDecision getConcurrentSearchDecisionFromOperationType(
        SearchContext searchContext,
        IndexSettings indexSettings,
        ClusterSettings clusterSettings,
        QueryBuilder queryBuilder
    );

    public abstract boolean optOutOfDecisionMakingForIndex(IndexSettings indexSettings);

optOutOfDecisionMakingForIndex --> this method will allow deciders to opt out of decision making for certain indices. For example, a knn plugin decider will only be interested in decision making for knn indices; so the knn plugin can opt out for other indices.
getConcurrentSearchDecisionFromOperationType --> If a decider has not opted out of decision making for an index, then this method will be called for that request.  A visitor would traverse through the query builder tree and invoke this method at each node of the query tree to allow Deciders to specifically enable concurrent search only for certain types of operations.
The idea is to avoid additional processing/decision making if some deciders are not interested in decision making for certain requests
Plugins can create these deciders and returns it as part of the createConcurrentSearchDeciders .
These registered deciders are then collected and used for decision making within the evaluateRequestShouldUseConcurrentSearch method.
Decision making only comes into picture when the concurrent search mode is auto.
As part of the decision making process in auto mode,
There are 2 steps:

the first step is to filter out deciders that are not intersted in decision making by invoking the optOutOfDecisionMakingForIndex method of the deciders.
The second step is only carried out for deciders that are not filtered out in step 1. As part of this, the query builder tree will be traversed with the visitor pattern and at each level (node of the tree), the getConcurrentSearchDecisionFromOperationType for all the remaining deciders will be called and their corresponding decisions will be collected. If any of the deciders return ConcurrentSearchDecision.FALSE then query tree traversal is stopped as the final concurrent search decision will be false.
If not, the entire tree is parsed and decisions are collected and a final composite decision combining all decisions at each level of the query builder tree will be returned.


Use lodash for common functions

Hi @tkrullmann , thanks for the great plugin. I checked the source and replaced some function calls with loadsh. And I also fix a bug caused by empty module.resource value. Please take a look, thanks~

Thanks! I'm not really an expert on Node, so any improvement is appreciated :-)

:+1:


[Lading Page] Fix tooltip message

there is a problem with that tooltip as it is showing the message: Some tooltip text

Release Note Category

[ ] Feature changes/additions
[ ] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description
No release note needed

PR: https://dev.azure.com/dnceng/internal/_git/dotnet-helix-service/pullrequest/38663


Type issue partial definition 'Type of property circularly references itself in mapped type' Intellisense.

hi, how i can disable this kind of error in my whole project or maybe a work around for vscode ?

Type of property '...' circularly references itself in mapped type 'Partial'.ts(2615)

My issue is related to Intelisence in vscode.
I know the solution would be to switch all my project to typescript, but I prefer js with jsdoc hacks for get all my types.
So here the issue and code sample

Code sample on very basic user case, i want able to do a new A( { /* intelisence allow partial */ } ); and data no filled will default.
test case: /** @param {A} [data]*/  -  /** @param {Partial<A>} [data] */ - /** @param { A | Partial<A>} [data] */
export class A {
    /** @param {Partial<A>} [data] */ // how say is partial and also default ?
    constructor(data) {
        this.UID = data.UID || 'noUID';
        this.prop = data.prop || {};
    }
}

const a = new A ({UID:'g42t'});// intellisence work only if with add type to Data

If i say data type is /** @param {A} [data] */ the error are from new A({}) instance, i need fully fill the partial object or i get linter error !

if i say data type is a partial obj /** @param {Partial<A>} [data] */, now new A({}) work fine, but i get linter error to constructor !

if i say /** @param {A|Partial<A>} [data] */ , no more error ! but all props became undefined (any)  and lost types !!!

---
Version : 1.49.3 (user setup)
Commit : 2af051012b66169dde0c4dfae3f5ef48f787ff69
Date : 2020-10-02T17:57:01.595Z
Electron : 9.2.1
Chrome : 83.0.4103.122
Node.js : 12.14.1
V8 : <IP_ADDRESS>-electron.0
OS : Windows_NT x64 10.0.19041

Also open issue here, in case of a black magic wizard would have found a solution for vscode intellisense !
I would like an effective solution which allows me to have a good workflow, without repeating code type for all class if possible?
https://github.com/microsoft/vscode/issues/108062
https://stackoverflow.com/questions/64192592/disable-waring-type-of-property-circularly-references-itself-in-mapped-type-or

There’s a new issue template you’re supposed to use if you want to report a bug or make a feature request.  Right now this issue reads like a question more appropriate for Stack Overflow than a GitHub issue.

There’s a new issue template you’re supposed to use if you want to report a bug or make a feature request. Right now this issue reads like a question more appropriate for Stack Overflow than a GitHub issue.

ho sorry for thats, and i think i found my solutions with some jsdoc hack
  /** @param {Partial<Omit<A, 'UID'>>} [data] */ /**@readonly - UID ...desc */
And mixing with https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields
intellisense seems not to be too lost after some hack.
Feel free to close if you think there are no better solutions.
i add to stackoverflow

@djmisterjon  Please don't open duplicate issues
I'm closing this once because you opened the same issue against VS Code (plus posted on stack overflow)
This belongs on StackOverflow until proven to be an issue with either VS Code or TypeScript


fix: Partial files are not added

By mistake, we use django_partial and djangojs_partial naming instead of django-partial.po and djangojs-partial.po
This is considered a patch to https://github.com/openedx/i18n-tools/pull/129
Before the fix, no cleaning was done: for example https://github.com/Zeit-Labs/openedx-translations/pull/67/files#r1312206111
After the fix, cleaning is working on the generated files: https://github.com/Zeit-Labs/openedx-translations/pull/72/files#r1312299530

Thanks for the pull request, @shadinaif!  Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:

supporting documentation
Open edX discussion forum threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
Please let us know once your PR is ready for our review and all tests are green.

@OmarIthawi , @brian-smith-tcril ready for your review. It's a quick and obvious fix

@shadinaif I think this one needs a test case. Please add it and tag me again.

Thank you @OmarIthawi , in fact the fix wasn't working too 😅 , I fixed the name again and it's working now
Before the fix, no cleaning was done: for example https://github.com/Zeit-Labs/openedx-translations/pull/67/files#r1312206111
After the fix, cleaning is working on the generated files: https://github.com/Zeit-Labs/openedx-translations/pull/72/files#r1312299530

Thanks @shadinaif. I meant a python test case (aka unit test). This is sort of bugs are the best use of unit tests in my opinion.
We know it's been fixed now, but it's helpful to keep the verification within the test suite that the CI runs.

Thank you @OmarIthawi , tests were added already here. And they all passed, the problem was that file names django-partial.po and djangojs-partial.po were hard coded in both methods and tests. Therefore, tests were using correct names!
I've converted hard-coded file names into constants to be sharable between methods and tests. The cause of the Falsy tests was here

@shadinaif 🎉 Your pull request was merged!  Please take a moment  to answer a two question survey so we can improve your experience in the future.


How to share pkce verifier with auth redirect endpoint

I ran the example, and on the redirect page, I get
Google returned the following state:
<some string>

Google returned the following token:
CodeTokenRequest { auth_type: BasicAuth, client_id: ClientId("something-string.apps.googleusercontent.com"), client_secret: Some(ClientSecret([redacted])), code: AuthorizationCode([redacted]), extra_params: [], pkce_verifier: None, token_url: Some(TokenUrl("https://www.googleapis.com/oauth2/v3/token")), redirect_url: Some(RedirectUrl("http://localhost:8080/auth-redir-google")), _phantom: PhantomData }

But I want to get the actual access token from this.
In the code, we have
// Exchange the code for a token.
let token = &data.oauth.exchange_code(code);

and this token variable is the 2nd thing that is printed above.
token is of type oauth2::CodeTokenRequest.
So I want to call .request on the CodeTokenRequest.
But I get an error here because to call .request, we have to do this:
let token_result =
    client
        .exchange_code(AuthorizationCode::new("some authorization code".to_string()))
        // Set the PKCE code verifier.
        .set_pkce_verifier(pkce_verifier)
        .request(http_client)?;

But the pkce_verifier was generated in the login route, whereas we call .exchange_code in the redirect route.
let (pkce_code_challenge, pkce_code_verifier) = PkceCodeChallenge::new_random_sha256() // happens in login

So how do I set the pkce verifier in the auth route which is handled by a different function than the login route?

You could share it via an encrypted Cookie (with SameSite:Lax set so that you get it when auth redirect endpoint is hit back). However, I think that using PKCE, in this case, is not required at all. PKCE is required when the client is public (i.e. it's a mobile app or a single-page website) and there is a risk that the auth code would be intercepted. Basically, your secret key is no more secret. See: https://tools.ietf.org/html/rfc7636 and https://medium.com/identity-beyond-borders/what-the-heck-is-pkce-40662e801a76.
Btw, the example is missing checking of CSRF that is returned in  query parameter on the redirect endpoint. It should be shared via a cookie as well.