"pressed" signal sometimes fails to be emitted for Button and CheckBox in Android export

Tested versions
Occurs in v4.3.beta1.official [a4f2ea91a], v4.3.beta2.official [b75f0485b], v4.3.beta3.official [82cedc83c], v4.3.rc1.official [e343dbbcc], v4.3.rc2.official [3978628c6], v4.3.rc3.official [03afb92ef].
Does not occur in v4.3.dev6.official [64520fe67].
System information
Godot v4.3.rc3 - Pop!_OS 20.04 LTS - X11 - GLES3 (Compatibility) - Mesa Intel(R) UHD Graphics 630 (CFL GT2) - Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz (16 Threads)
Android device info: Galaxy S9 (Model SM-G960U), Android 10
Issue description
I observed this problem in an Android export of a complex project in Godot 4.3 (see Tested versions above).  It does not occur when running in the Editor.
For reference, here's the comparison of Godot 4.3-dev6 to Godot 4.3-beta1:
https://github.com/godotengine/godot/compare/64520fe..a4f2ea9
The symptom is that when a Button or CheckBox control is touched in an Android export, sometimes the connected action does not occur. The "button_down" and "button_up" signals are always emitted. But the "pressed" and "toggled" signals are not emitted when the problem occurs.
Steps to reproduce
The problem occurs if I set the BaseButton action_mode property to ACTION_MODE_BUTTON_RELEASE, but does not occur when the property is set to ACTION_MODE_BUTTON_PRESS.
I've only observed the problem when the controls are in a PackedScene that's loaded and instanced at runtime.
Minimal reproduction project (MRP)
I'm attaching an MRP. However, it does not consistently exhibit the problem. If I can create another MRP that consistently exhibits the problem, I'll attach it.
The deep structure and node types in the scene tree in the MRP replicates the scene tree in the project where I observed the problem.
fg_debug1.zip

Can you still reproduce this issue in 4.3.rc2 or later?

Yes, it still occurs in 4.3.rc2.
I've been to work around it for Button's by using the button_up signal instead of the pressed signal. I haven't yet figured out a work-around for CheckBox's.
I'd like to help find the cause, but I don't know where to start.

I tested the MRP on a Pixel 7a with 4.3.rc2 and couldn't reproduce the issue sadly.
From the changes in 4.3-beta1 where you report the regression starting, I mostly notice this PR which sounds related:

#84331

If you can build Godot from source, I would suggest trying to build from the latest master branch with that PR reverted locally to see if that solves the issue on your more complex reproduction project.
CC @Alex2782 @m4gr3d

After 10 minutes of testing I could not reproduce it yet.
I have extended the info function to visually separate the event output:
func info(signal_name: String) -> void:
	if (signal_name == "button_down"): print("-------------------------------")
	print("%s/%s/%s" % [name, signal_name, "is pressed" if button_pressed else "is not pressed"])

adb logcat -s godot
On Android always 4 events as in the editor with pressed and toggled events:
logcat
08-08 12:03:48.483 13232 13336 I godot   : CheckBox2/button_down/is pressed
08-08 12:03:48.515 13232 13336 I godot   : CheckBox2/toggled off/is not pressed
08-08 12:03:48.515 13232 13336 I godot   : CheckBox2/pressed/is not pressed
08-08 12:03:48.515 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:03:49.116 13232 13336 I godot   : -------------------------------
08-08 12:03:49.116 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:03:49.181 13232 13336 I godot   : CheckBox2/toggled on/is pressed
08-08 12:03:49.181 13232 13336 I godot   : CheckBox2/pressed/is pressed
08-08 12:03:49.181 13232 13336 I godot   : CheckBox2/button_up/is pressed
08-08 12:03:49.269 13232 13336 I godot   : -------------------------------
08-08 12:03:49.269 13232 13336 I godot   : CheckBox2/button_down/is pressed
08-08 12:03:49.339 13232 13336 I godot   : CheckBox2/toggled off/is not pressed
08-08 12:03:49.339 13232 13336 I godot   : CheckBox2/pressed/is not pressed
08-08 12:03:49.339 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:03:49.430 13232 13336 I godot   : -------------------------------
08-08 12:03:49.430 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:03:49.497 13232 13336 I godot   : CheckBox2/toggled on/is pressed
08-08 12:03:49.497 13232 13336 I godot   : CheckBox2/pressed/is pressed
08-08 12:03:49.497 13232 13336 I godot   : CheckBox2/button_up/is pressed
08-08 12:03:49.572 13232 13336 I godot   : -------------------------------
08-08 12:03:49.573 13232 13336 I godot   : CheckBox2/button_down/is pressed
08-08 12:03:49.644 13232 13336 I godot   : CheckBox2/toggled off/is not pressed
08-08 12:03:49.644 13232 13336 I godot   : CheckBox2/pressed/is not pressed
08-08 12:03:49.644 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:03:49.714 13232 13336 I godot   : -------------------------------
08-08 12:03:49.714 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:03:49.781 13232 13336 I godot   : CheckBox2/toggled on/is pressed
08-08 12:03:49.782 13232 13336 I godot   : CheckBox2/pressed/is pressed
08-08 12:03:49.782 13232 13336 I godot   : CheckBox2/button_up/is pressed
08-08 12:03:49.850 13232 13336 I godot   : -------------------------------
08-08 12:03:49.850 13232 13336 I godot   : CheckBox2/button_down/is pressed
08-08 12:03:49.922 13232 13336 I godot   : CheckBox2/toggled off/is not pressed
08-08 12:03:49.923 13232 13336 I godot   : CheckBox2/pressed/is not pressed
08-08 12:03:49.923 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:03:50.007 13232 13336 I godot   : -------------------------------
08-08 12:03:50.007 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:03:50.081 13232 13336 I godot   : CheckBox2/toggled on/is pressed
08-08 12:03:50.081 13232 13336 I godot   : CheckBox2/pressed/is pressed
08-08 12:03:50.081 13232 13336 I godot   : CheckBox2/button_up/is pressed
08-08 12:03:50.141 13232 13336 I godot   : -------------------------------
08-08 12:03:50.141 13232 13336 I godot   : CheckBox2/button_down/is pressed
08-08 12:03:50.226 13232 13336 I godot   : CheckBox2/toggled off/is not pressed
08-08 12:03:50.226 13232 13336 I godot   : CheckBox2/pressed/is not pressed
08-08 12:03:50.226 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:03:50.249 13232 13336 I godot   : -------------------------------
08-08 12:03:50.249 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:03:50.306 13232 13336 I godot   : CheckBox2/toggled on/is pressed
08-08 12:03:50.306 13232 13336 I godot   : CheckBox2/pressed/is pressed
08-08 12:03:50.306 13232 13336 I godot   : CheckBox2/button_up/is pressed

maybe now? video see below
drag issue / regression ? sometimes without pressed and toggled events
08-08 12:24:01.697 13232 13336 I godot   : -------------------------------
08-08 12:24:01.697 13232 13336 I godot   : CheckBox2/button_down/is not pressed
08-08 12:24:03.796 13232 13336 I godot   : CheckBox2/button_up/is not pressed
08-08 12:24:09.339 13232 13336 I godot   : -------------------------------
08-08 12:27:05.835 13232 13336 I godot   : Button2/button_down/is pressed
08-08 12:27:08.052 13232 13336 I godot   : Button2/button_up/is not pressed
08-08 12:27:09.109 13232 13336 I godot   : -------------------------------

https://github.com/user-attachments/assets/73bc68d7-87f3-4590-8a3a-4a69ea144f01

normal 'touch' events could be interpreted as 'drag' events

That's interesting.
I haven't had time to investigate all the information in the recent replies yet. But in my original complex project, the problematic controls were inside draggable panels. When I changed the BaseButton action_mode property from ACTION_MODE_BUTTON_RELEASE to ACTION_MODE_BUTTON_PRESS. and then touched a problematic control, the panel started moving as if I were dragging it.

PR #84331 there is no longer a threshold value for when a drag event starts. (src)
Here is the official Android API for comparison:
androidx.core sources

I'll try to find time next week to find solutions for this. I think it should work like mouse drag events. If I hold the left mouse button and move the mouse pointer like in the video, the pressed events are still triggered when I release the mouse pointer inside the button.

If you can build Godot from source, I would suggest trying to build from the latest master branch with that PR reverted locally to see if that solves the issue on your more complex reproduction project.

I haven't build Godot recently, although I keep a local copy of the repository up to date.
I assume this is still the correct command (from my notes) for building. If it's wrong, please let me know.
scons -j8 --debug=time platform=x11

If you can build Godot from source, I would suggest trying to build from the latest master branch with that PR reverted locally to see if that solves the issue on your more complex reproduction project.

I rebuilt the engine from the latest master branch commit 739019e4e4a6e4763e37adfd9883a1c85d5f6249, manually reverting that PR's changed file to the previous version https://github.com/Alex2782/godot/blob/e04a38775b45d25155d7658d3914d4eef2b9fd42/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.kt
That did not fix the issue in the Android export.
I used the official prebuilt 4.3-rc3 export templates. Do they need to be rebuilt? I tried to rebuild them, but got errors.

godot-github % scons platform=android target=template_debug arch=arm64
cd ./platform/android/java
./gradlew generateGodotTemplates
use Custom Template, with V4.3-rc2 or V4.3-rc3 Editor

@Alex2782
Do I need to build custom Android templates after manually reverting your PR?

@daveTheOldCoder

after manually reverting your PR

How did you do that? A function is not found: handleMotionEvent, file: GodotGestureHandler.kt
> Task :lib:compileTemplateDebugKotlin FAILED
e: file:///home/dave/github/godot/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.kt:65:21 Unresolved reference: handleMotionEvent

Do I need to build custom Android

Yes, if you want to test the projects on Android. I use the normal Editor, last versions 'rc', 'beta' or 'dev' extra compiling the editor should not be necessary.

How did you do that?

I downloaded the previous version of GodotGestureHandler.kt, and copied it over the new version of the file.
I now see that could fail if there were interdependencies with other files.
Should I use the git revert command to do that? I was just looking at its documentation, but I'm not sure which parameters and options to use.

please try: https://github.com/Alex2782/godot/tree/master_without_pr_84331
compare
details / how to

I'm no Git guru, but revert seems to be the right solution. After that I solved all conflicts with VS Code.
screenshot: VS Code

But it was not enough, I had to change one line.
(I used Android Studio to find the error Unresolved reference: handleMotionEvent.)
from:

to:

Okay, I'll try that next.
Right now, I've checked out the parent of your PR's commit, and am building the Android templates from that:
git checkout 40b4130

git checkout 40b4130

Using the Android templates built from that, the problem I reported in the original post does not occur.
To export to Android, I used Godot editor v4.3.rc3.official [03afb92ef] and the custom Android templates.

master_without_pr_84331

Would it help if I tried that too?

I have tested MRP again and could not find any issues / regression.

That MRP is not very good. I can try to improve it, but suggestions would be helpful. Maybe I should try using a larger piece of the original project.

Maybe I should try using a larger piece of the original project.

It would be no problem for me to use the original project. It is sufficient if the project navigates directly to the scene where the issues occur at startup.

I've made a copy of the original project, and am removing as much as I can from it, without changing the issue symptoms.
I'll post it here when I'm finished, which may take a day or so. I'll include instructions on using it.

Here's the new MRP. The project folder includes a README file with instructions.
Let me know if you have any questions.
issue_93612_mrp1.zip

3b. The Cleaning Log page displays a scrolling list of panels. Each panel has a checkbox labeled Delete. Touching a checkbox should toggle it between the checked and unchecked states. But in an Android export, the checkboxes do not respond to touches.

v4.3.rc2.official [3978628c6]
Test: https://youtu.be/dLyGqLA8avk on Samsung Tab S7 (11" Display)
I am not sure if I have tested it correctly. The list can also be scrolled "slightly" horizontally if you do not touch the display cleanly and swipe, then the "drag" event is executed earlier because of PR #84331  (i think)
Out of approx. 100 touches, the checkboxes were not switched a maximum of 3 times, and you also have to wait approx. 500 milliseconds after each touch.

Did you test the next item (3c. The Edit Profile page...)?
Do you have any idea why I get different results on my Samsung Galaxy S9? And why the problem occurs only when the PR is applied?

The list can also be scrolled "slightly" horizontally if you do not touch the display cleanly and swipe, then the "drag" event is executed earlier because of PR https://github.com/godotengine/godot/pull/84331 (i think)

THAT WAS IT!
If I set the ScrollContainer's Scroll Deadzone property to 10 (it was 0), the problem does not occur. :grinning:
I confirmed this in both the MRP and the original project.

I have now also tried it on my Pixel 4a (5" display) without Scroll Deadzone, it also works well (3b and 3c). It is only smaller and harder to hit the checkboxes.
I didn't know Scroll Deadzone until now, there already seems to be a configuration option, can this issue report be closed?
PR #84331 bypasses the "natural" deadzone in the Android API "onScroll" event.
So that gaming controls work better: comment from issue #84138

I'm attempting to have fine control of a screen element on mobile using touch. Specifically for controlling a pick in a lock picking mini-game. Current testing is on Android.

But regardless of the input methods I've tried after pressing on the pick there is no motion until the pick suddenly catches up with the touch once it has moved 20+ pixels from the starting location.

can this issue report be closed?

If you're asking me, it can be closed as far as I'm concerned.

can this issue report be closed?

If you're asking me, it can be closed as far as I'm concerned.

can this issue report be closed?

If you're asking me, it can be closed as far as I'm concerned.

can this issue report be closed?

If you're asking me, it can be closed as far as I'm concerned.

Thanks both for debugging this thoroughly!

I'll just note that although I'm satisfied with this solution, it's the first time I've needed to use a non-default value for a ScrollContainer deadzone. Other users might run into this same issue.

If at some point more users should have problems, then we could perhaps also increase the default value for Android.
https://github.com/search?q=repo%3Agodotengine%2Fgodot+scroll_deadzone&type=code

@daveTheOldCoder
If you find time please try https://github.com/godotengine/godot/issues/95532#issuecomment-2299776861  with your productive projects.

Do you mean use the Android template android_debug_base_button.apk linked there with Godot 4.3-stable? Okay, I'll do that within the next few days.

yes please with scroll_deadzone between 0 and 3

I tested android_debug_base_button.apk with Godot 4.3-stable, using the project on which I originally opened this issue.
I tested Android exports on a Samsung Galaxy S9 and a Google Pixel 8.
I tested with scroll_deadzone values of 0 and 3.
There were no problems. The buttons and checkboxes worked correctly in all cases.


Devicelab task: android_stack_size_test fails

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Clone the Flutter packages repository: git clone GitHub - flutter/flutter: Flutter makes it easy and fast to build beautiful apps for mobile and beyond
Navigate to the devicelab directory: cd dev/devicelab
Get the Flutter dependencies: flutter pub get
Update utils.dart file adding the following lines:

newEnvironment['FLUTTER_XCODE_DEVELOPMENT_TEAM']='FLUTTER_XCODE_DEVELOPMENT_TEAM';
newEnvironment['ANDROID_SDK_ROOT']='ANDROID_SDK_ROOT';

Connect your physical devices (Android)
Run the test using the following command:

dart bin/run.dart -t android_stack_size_test
Expected results
Running all tests should succeed.
Actual results
The test case android_stack_size_test fails in:

Samsung Galaxy S8 Android 9
Samsung Galaxy A52 Android 13
Google Pixel 6 Android 14

Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
DeviceException: Cannot find a suitable Android device

android_stack_size_test.txt

Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.16.0-22.0.pre.23, on macOS 14.0 23A344 darwin-arm64 (Rosetta), locale en-UY)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] IntelliJ IDEA Community Edition (version 2023.2.4)
[✓] VS Code (version 1.84.0)

@DiegoGW can you please attach full verbose flutter doctor output?

Yes, @godofredoc here it is:
[✓] Flutter (Channel master, 3.17.0-1.0.pre.50, on macOS 14.0 23A344 darwin-arm64 (Rosetta), locale en-UY)
    • Flutter version 3.17.0-1.0.pre.50 on channel master at /Users/hairon/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f5a9835351 (55 minutes ago), 2023-11-06 10:46:18 -0800
    • Engine revision bdfa8aa8f8
    • Dart version 3.3.0 (build 3.3.0-98.0.dev)
    • DevTools version 2.29.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/hairon/Library/Android/sdk/
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/hairon/Library/Android/sdk/
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Build 15C5042i
    • CocoaPods version 1.12.1

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

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      :hammer: https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      :hammer: https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Community Edition (version 2023.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 76.1.4
    • Dart plugin version 232.10072.19

[✓] VS Code (version 1.84.0)
    • VS Code at /Users/hairon/Documents/Visual Studio Code.app/Contents
    • Flutter extension version 3.76.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 14.0 23A344 darwin-arm64 (Rosetta)
    • Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.105

@DiegoGW Have you seen any successful runs of the android_stack_size_test test on other devices?

@zanderso Just FYI since you are the test owner

@DiegoGW Have you seen any successful runs of the android_stack_size_test test on other devices?

@camsim99 this issue was replicable with my available devices: Pixel 6 + Android14 and Samsung Galaxy A03 + Android 11.
I didn't get any successful run on these devices.


How about adding redis store for caching ?

Sure, why not !
I am now on project that used redis for caching, but still in private and not test yet.
After the implementation and tested, i will share it too

that sounds good , thank you

Thank you that is amazing!

Sure, why not ! I am now on project that used redis for caching, but still in private and not test yet. After the implementation and tested, i will share it too

r u still working on redis cache?

unfortunately, no.
I am running out of time 🥲

Hello, can you implement Redis cache please ?


Right-clicking egg on spawner to change entity, but spawner reverts back to original entity.

I'm playing ATM7 1.18.1 v0.2.36 which uses Apotheosis-1.18.1-5.2.2. I silk-touched a skeleton spawner from a DungeonsArise dungeon. I created a Mob Grinding Utils villager egg using a swab. I right-clicked the spawner with the villager egg. I also right-clicked the spawner with a comparator so that I could have redstone control over the spawner. I placed the spawner on the ground with a lever beside it. I could see the villager in the center of the spawner. I activated the lever. Sure enough, several villagers were spawned. However, the spawner reverted back to skeletons and suddenly skeletons were spawning. I repeated the entire process. Villagers spawned in the first spawning cycle but then skeletons spawned after that.

The actual issue for this is that the vanilla code for changing an entity only changes the entity of the current spawn potential - if you find a spawner with multiple potentials, it will only change one of them.
5.3.0 and onward will re-implement a fix to this by clearing all spawn potentials when a spawn egg is applied.


Paur task4

Codecov Report

Merging #25 (c04bd2e) into gsoc2021-master (3ddfea9) will decrease coverage by 4.94%.
The diff coverage is 89.17%.

@@                 Coverage Diff                 @@
##           gsoc2021-master      #25      +/-   ##
===================================================
- Coverage            94.11%   89.17%   -4.95%
===================================================
  Files                    1        2       +1
  Lines                   34      157     +123
===================================================
+ Hits                    32      140     +108
- Misses                   2       17      +15

Impacted Files
Coverage Δ

src/conversions.jl
87.25% <87.25%> (ø)

src/recipes.jl
92.72% <92.72%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3ddfea9...c04bd2e. Read the comment docs.


Update to use externpro 21.04.1

@bnhhughes @swflb I need to merge and tag this so I can move on with building projects that require ovsrpro. If you have any concerns, add comments and I can address them in a new pull request.

Sorry for the slow response - looks good, #approved


s3cat incorrectly changes file size when object name is --

Environment info

NooBaa Version: noobaa/noobaa-core 5.13.0
Platform: stand-alone

Actual behavior
s3cat incorrectly changes file size when putting an object named --.
The file size was set to 5MB, but it became 1.0GB.
$ node src/tools/s3cat --endpoint <endpoint_url> --sig s3 --bucket testbucket --put "--" --size 5
Uploading upload-libahv0v from generated data of size 1.0 GB
Upload Speed: 704.3 MB/sec (average 704.3)
Upload Speed: 287.4 MB/sec (average 500.2)
...

Expected behavior
The generated data size will be the value specified by --size option.
Steps to reproduce
Issue the command:
$ node src/tools/s3cat --endpoint <endpoint_url> --sig s3 --bucket testbucket --put "--" --size 5

More information - Screenshots / Logs / Other output
By using AWS CLI s3 command, an object named -- was put successfully.
So this failure seems to be a problem of s3cat.

@sawa4d2 s3cat, and all the other command line tools in the repo, are using the minimist package.
In general, there is no good way for it to understand that the next -- after the --put flag is intended to be a value rather than a beginning of a new flag...
The reason why this is possible in aws cli is that it doesn't pass the object name as a flag value, but rather as a positional argument, which is non ambiguous.
Since s3cat is an internal tool for now, I think this edge case is not a good reason for changing this, so I am going to close this issue as Won't fix.
If you strongly feel against this, please feel free to comment.
Thanks


The first official release

Codecov Report

Merging #9 (1a5ebd9) into master (8ec4b74) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #9   +/-   ##
=======================================
  Coverage   88.88%   88.88%
=======================================
  Files           2        2
  Lines          81       81
  Branches        1        1
=======================================
  Hits           72       72
  Misses          8        8
  Partials        1        1

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8ec4b74...1a5ebd9. Read the comment docs.


Unit tests for GTL and GTE

As the title suggests, was wondering are there any unit tests for these libraries? and if so, could they be made available.

The GTE unit tests and end-to-end tests are not part of a framework that is relatively easy to run. It is a collection of projects that I have hacked together over time. The GTL track has a framework. As I port GTE code to GTL, I write unit tests and/or end-to-end tests for the GTL version. Once the tests pass, I back-port these tests temporarily to run the GTE code. My plan is to make available the GTL unit tests. Perhaps later I might back-port the GTL test framework to GTE.
The GTL track is taking an inordinate amount of time. Higher priority is contract work. New features in GTE occur based on bug reports or on a need for such code to be used in contracted projects. I had hoped to post a complete version of GTL and corresponding test framework, but given my inability to find non-contract development time, I am now aiming to package up the GTL code that is finished together with the test framework and tests for the finished code. Once again, I do not have an estimated time for when this will be ready.

Thank-you for the explanation, and for making your libraries available 👍


Error: Did not find any initialized language workers - Time triggered python function, docker

Our Azure Function, deployed on Dedicated plan (AppServicePlan) experienced a sudden error: Did not find any initialized language workers. Previously, it was working without any issue. It's a simple TimerTriggered function. We only redeployed the app with a simple change of the scheduled time, and the problems started.
It's a dockerized python function.
What we tried?
We changed the FUNCTIONS_EXTENSION_VERSION to ~4. Previously it was ~3.
We added the FUNCTIONS_WORKER_RUNTIME to python. Previously, we did not add this because it is a dockerized app.
We created new appServicePlan only for these azureFunctions. Previously, other appSerivces were part of the same Plan. Also, we recreated the FunctionApp via CDKTF code.
So, after doing these changes, the function starts working for few executions, but after some time it generates again the same error.
Our main function app has several TimerTriggered functions (several init.py functions) as part of the AzureFunctions. Some of them may even have same schedule time. Therefore we added the following env var, too, thinking it could help with the execution of the several functions:
FUNCTIONS_WORKER_PROCESS_COUNT=4
Also, the same functions are working all right on an environment (different tenant, same configs) that was not updated (the function was not redeployed there). And, what seems to be working for one function on one tenant, does not work on the other. It's an inconsistent behaviour.
We even tried changing the init.py with a generic Timer code, but the problem persisted.
def main(mytimer: func.TimerRequest) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()

    if mytimer.past_due:
        logging.info('The timer is past due!')

More configuration
host.json file:
{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[2.*, 3.0.0)"
  }
}

Dockerfile:
FROM mcr.microsoft.com/azure-functions/python:4-python3.9-appservice

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY requirements.txt /
RUN pip install -r /requirements.txt

COPY . /home/site/wwwroot

Investigative information

Timestamp:  2023-06-14T23:09:00.0034239+00:00
Function App name: verisdev-expired-tokens-monitor-eastus-azure-function
Function name(s) (as appropriate):
Core Tools version:
execution Id: Id=624351c2-b5ab-41e5-8c97-b38f7a138771
region: eastUs

Repro steps
The problem started with redeploying the app with different scheduled time:
example:
"schedule": "0 */1 * * * *"
So it's not a configuration/dependency change of any kind.
The following generic error occured:
Did not find any initialized language workers
Exception type - System.InvalidOperationException
Failed method - Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcFunctionInvocationDispatcherLoadBalancer.GetLanguageWorkerChannel
Contents of the requirements.txt file:
Provide the requirements.txt file to help us find out module related issues.
requirements.txt:
azure-functions
requests==2.28.1

Thanks for reporting the issue. Will check and update you.


ODE solver using euler methods

Description of Change

Solve multivariable first order ODE using

forward Euler method
mid-point Euler method
semi-implicit Euler method

Checklist

[x] Added description of change
[x] Added file name matches File name guidelines
[x] Added tests and example, test must pass
[x] Relevant documentation/comments is changed or added
[x] PR title follows semantic commit guidelines
[x] Search previous suggestions before making a new one, as yours may be a duplicate.
[x] Sort by alphabetical order
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:

wrong PR


Could you provide ONNX format exporting code?

Hi
This is awesome lightweight networks!!
I want to test it on other mobile device.
Could you provide ONNX format exporting code?
Thanks a lot!!

Awesome lightweight networks!!
Could you provide ONNX format exporting code?
Thanks~

“adaptive_avg_pool2d”  not support in onnx

RuntimeError: Failed to export an ONNX attribute 'onnx::Gather', since it's not constant, please try to make things (e.g., kernel size) static if possible

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

same problem cause by pool ops，
some solution：https://github.com/pytorch/pytorch/issues/34743#issuecomment-600861292
but we cant convert adaptive_avg_pool2d to avg_pool.

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

same problem cause by pool ops，
some solution：pytorch/pytorch#34743 (comment)
but we cant convert adaptive_avg_pool2d to avg_pool.
we can change https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L29 and https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L86
to static kernel size avg_pool，maybe need retrain this model

how to modify the code?

“adaptive_avg_pool2d” not support in onnx

You can directly replace the "adaptive_avg_pool2d" with the normal average pooling with a definite pooling size.
Then, it can be converted to onnx format.

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

same problem cause by pool ops，
some solution：pytorch/pytorch#34743 (comment)
but we cant convert adaptive_avg_pool2d to avg_pool.
we can change https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L29 and https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L86
to static kernel size avg_pool，maybe need retrain this model

i just have transformed onnx model, but not check,u can download from here

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

same problem cause by pool ops，
some solution：pytorch/pytorch#34743 (comment)
but we cant convert adaptive_avg_pool2d to avg_pool.
we can change https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L29 and https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L86
to static kernel size avg_pool，maybe need retrain this model

i just have transformed onnx model, but not check,u can download from here

which code change have you made？

“adaptive_avg_pool2d” not support in onnx

how to convert to onnx?

same problem cause by pool ops，
some solution：pytorch/pytorch#34743 (comment)
but we cant convert adaptive_avg_pool2d to avg_pool.
we can change https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L29 and https://github.com/HRNet/Lite-HRNet/blob/hrnet/models/backbones/litehrnet.py#L86
to static kernel size avg_pool，maybe need retrain this model

i just have transformed onnx model, but not check,u can download from here

which code change have you made？
the core thought is change adaptive_avg_pool2d to avg_pool,ajsust inputsize and outputsize,here link may help

i have upload lite_hrnet.py,  it can get onnx model but with some warnings ,maybe not influence final result ,link

@codylcs Thanks a lot for the scripts.
So the onnx model is returning heatmaps of the shape [1, 17, 96, 72]
Can you please help me getting the model predicted keypoints using the onnx model ?

hi，@codylcs
Do we need retraining the model like litehrnet  etc after changing the code as what you did？
BR

this is my another implementation of Lite Hrnet and I have a script to convert model to onnx. See my repo: https://github.com/viet-hoang-99/Lite_HRnet_vh


ping -T not working correctly

running ping -T tsonly [destination] returns the following error:
ping: ts option: invalid argument
according to the man page for ping, this should work and works in Ubuntu

Which build number of Windows?

@fpqc I can reproduce this issue on Version 1607 (OS Build 14393.187) (Release Preview / Slow).
See the strace for ping -T tsonly example.com in the gist.
https://gist.github.com/wizardist/73535a9d7ea66a188af2b2bcd5c77c75

@j0nne Thanks for reporting the issue and @wizardist for the trace. From the strace, it looks like the -T tsonly option uses the IPPROTO_IP\IP_OPTIONS, which is currently not implemented in WSL, but something we are already tracking.
setsockopt(3, SOL_IP, IP_OPTIONS, "D(\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 40) = -1 EINVAL (Invalid argument) setsockopt(3, SOL_IP, IP_OPTIONS, "D(\5\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 40) = -1 EINVAL (Invalid argument)

Just an update that support for IP_OPTIONS was added in 16176, but it does not fully unblock ping -T yet. Now it errors out with Invalid timestamp type.

This issue was fixed. Needs to close.


perlPackages.Po4a: fix build

Motivation for this change
Fixes #71296
Term::ReadKey is an optional dependency. From upstream:

This module is used to retrieve the terminal's line width.
If it is not present, the line width can be specified with the COLUMN environment variable.

Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Notify maintainers
cc @

I couldn't figure out what changed with Term::ReadKey or our Perl env that cause Po4a build to get stuck... But without this optional dep the build goes fine.

@GrahamcOfBorg build perl528Packages.Po4a perl530Packages.Po4a apt sssd

Can this be backported into 19.09 release?

Indeed, I will fix this on the release too.

@c0bw3b thank you so much! :heart:


Make possible to test custom payload size

By default agent sends small amount of data which is lower than default MTU size (1500). So if cluster has problems with MTU configuration, netchecker will not detect those since it will not trigger packet fragmentation.
We can implement a separate parameter which would simply add some payload to agent JSON report which should be then discarded on the server side. This will allow netchecker to simply test network MTU and packet fragmentation.
It should be possible to configure this parameter during the runtime and see the current size of additional payload in agents' report.

Resolved by this pull request https://github.com/Mirantis/k8s-netchecker-agent/pull/6 into the agent project.


style(website): Removes desaturation

Summary
Removes the desaturation applied to the Draft.js website and restores its original color. Fixes #2501 and remaining parts of #2494.
Test Plan
Manual tests with cd website && yarn start
Before

After

@claudiopro thank you so much for addressing the issues.


Add python version for 0-1 knapsack problem

Add n for 0-1 knapsack problem solution in Python

Hey, some changes happened in the repository and now we have a git conflict in the repository.
If it's your first time with conflicts, don't worry, it happens sometimes and it is a good opportunity to learn how handle with conflicts. I recommend you to read this article about resolving conflicts.
So, can you fix the conflict?


[Do Not Merge] Add eCommerce tracking to topic browse

Trello: https://trello.com/c/djjUxKF3/139-add-ecommerce-tracking-to-specialist-topic-pages
Dependent on

Fix to the large payload ecommerce bug
Fix to double event listners firing in ecommerce

What
We should add Google Analytics Ecommerce tracking to the navigational links across the topic pages
List level atributes

 data-analytics-ecommerce
 data-ecommerce-start-index="1"
 data-list-title="Topic Browse - Level {x}"

with the level reflecting how far the user is into the navigation
Also if the generalisation mentioned here has not been completed the list will require the following empty attribute to work:  data-search-query
Row level attributes

ecommerce_row: true
ecommerce_subheading: "All categories"

if this PR has been merged we can also have an optional data-ecommerce-subheading to describe which groups a row item falls into.
Why
So we can understand the % of users who interact with each element.
This will inform the topic pages redesign and provide a benchmark against which to judge the re-designed header's performance.

NB: analytics feature tests were removed with the revert.
The review here brought the testing strategy into question.
The attention at the point of pause on this feature was to return and rewrite them ensuring data attributes were present for a complete journey.
Need to also find a way to test both curated and a-z paths!

:warning: This application is Continuously Deployed: :warning:

Merged changes are automatically deployed to staging and production.

Make sure you follow the guidance for deployments before you merge.

Check your branch is being deployed in the Release app, after merging.

Removed CD warning.
@huwd this PR is very old. Do we still need it?

Closing since this is stale, can always be re-opened if needed later.


Consider icdiff instead of colordiff

icdiff may be a good alternative to the diff function that wraps colordiff and git diff.

I think icdiff is a great tool and I really appreciate its 2 column view but I wouldn't want it to override the conventional in-line diff view that comes (and would be expected) from typing diff out on the command line.
One the other hand, git diff would greatly benefit from diff-so-fancy.

+1 to the diff-so-fancy suggestion

For now I believe we'll stick with colordiff.
icdiff does seem like a useful tool, but it shouldn't replace the default diff command because of how different it is. This is part of the reason we removed the git diff hack.


Verify these properties/methods still exist

Reported by @neoxeo :
PictureBox : IsTabStop removed ?
GroupBox : IsTabStop removed ?
Label : FontSize removed ?
TabIndex : removed ?
TextBox : TextWrapping removed ?

I am closing this issue as there is special issue for the missing properties (#7)


TensorRT inference: no speed gain

Hi,
We are trying to use TensorRT to speed up inference. In particular, we are using a ViT_base_patch16_384 model, and installed a version of paddlepaddle_gpu compiled with TensorRT. However, the inference speed remains about the same with use_tensorrt=True and use_fp16=True. This is in contrast with the paddle-ocr repo, where we do observe a big increase in speed, especially with fp16.
Any idea what could be the reason? Any help is appreciated, thanks. Relevant code:
    clas = PaddleClas(
        inference_model_dir=f'{PaddleClsConfig.model_path}/export',
        resize_short=384,
        crop_size=384,
        class_id_map_file=PaddleClsConfig.labels_path,
        use_tensorrt=True,
        use_fp16=True,
        enable_mkldnn=True,
    )

    result = clas.predict(img, print_pred=True)
    scores = next(result)
    print(scores)
    print(np.argmax(scores), f'{np.max(scores):.4f}')

Hi, the problem may be caused by the poor optimization of TensorRT to ViT series model now. You can try another models, such ResNet.

Thanks for the answer. We have a lot of classes, and found that ViT performs better than ResNet.


chore(pingcap/tidb): reduce the network bandwidth consumption

Reduce the network bandwidth consumption of downloading ci.git.
Complate git clone 20M, shallow git clone 6.4M.

/lgtm
/approve


Compilation fails with GCC 5.1

Arango, or more specifically, the version of V8 that it bundles fails to compile under gcc 5.1:
../src/bignum.cc: In member function ‘void v8::internal::Bignum::AssignDecimalString(v8::internal::Vector<const char>)’:
../src/bignum.cc:82:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
 void Bignum::AssignDecimalString(Vector<const char> value) {
      ^
  CXX(target) /home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>/out/x64.release/obj.target/v8_base/src/compiler/js-context-specialization.o
  CXX(target) /home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>/out/x64.release/obj.target/v8_base/src/compiler/js-generic-lowering.o
cc1plus: all warnings being treated as errors
tools/gyp/v8_base.target.x64.release.mk:451: recipe for target '/home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>/out/x64.release/obj.target/v8_base/src/bignum.o' failed
make[2]: *** [/home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>/out/x64.release/obj.target/v8_base/src/bignum.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>/out'
Makefile:293: recipe for target 'x64.release' failed
make[1]: *** [x64.release] Error 2
make[1]: Leaving directory '/home/mike/projects/arangodb_pkg-git/src/arangodb/3rdParty/V8-<IP_ADDRESS>'
Makefile:9650: recipe for target '.v8-build-64' failed
make: *** [.v8-build-64] Error 2

mike@longshot> gcc -v                                                                                ~/projects/arangodb_pkg-git
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc/src/gcc-5-20150519/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --with-default-libstdcxx-abi=c++98
Thread model: posix
gcc version 5.1.0 (GCC)

can you please post which configure options you use, an what the configure passes down to V8?
Over here the v8 build configures like that in the make process:
BUILDING V8
cd ./3rdParty/V8-<IP_ADDRESS>
&& make
CFLAGS="-O2 -g "
CXXFLAGS="-O2 -g "
CC="gcc"
CC.host="gcc"
CXX="g++"
CXX.host="g++"
LINK="g++"
GYPFLAGS="-Dstandalone_static_library=1"
library=static strictaliasing=off snapshot=off werror=no x64.release

I've updated the 3rdParty/Makefile.v8; If you want to retry it, please replace it with the most recent version ( https://raw.githubusercontent.com/arangodb/arangodb/devel/3rdParty/Makefile.v8 ) and re-run make setup, and the rest of your compile process.

I pulled devel and compiling again and it compiles fine. I just get a warning now:
../src/bignum.cc: In member function ‘void v8::internal::Bignum::AssignDecimalString(v8::internal::Vector<const char>)’:
../src/bignum.cc:82:6: warning: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Wstrict-overflow]

Ok, great. Closing as resolved.

### cd ./3rdParty/V8-4.3.61
export GYPFLAGS="-Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0"
&& make
CC="gcc"
CC.host="gcc"
CXX="g++"
CXX.host="g++"
LINK="g++"
CFLAGS="-O0 -ggdb -DV8_TARGET_ARCH_X64 -DENABLE_GDB_JIT_INTERFACE -DV8_DEPRECATION_WARNINGS -DV8_I18N_SUPPORT -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DUNIT_TEST -DGTEST_HAS_RTTI=0 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DENABLE_EXTRA_CHECKS -DENABLE_HANDLE_ZAPPING -DOPTIMIZED_DEBUG  "
CXXFLAGS="-O0 -ggdb -DV8_TARGET_ARCH_X64 -DENABLE_GDB_JIT_INTERFACE -DV8_DEPRECATION_WARNINGS -DV8_I18N_SUPPORT -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DUNIT_TEST -DGTEST_HAS_RTTI=0 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DENABLE_EXTRA_CHECKS -DENABLE_HANDLE_ZAPPING -DOPTIMIZED_DEBUG  "
debug=on v8_optimized_debug=0 v8_enable_backtrace=on
library=static strictaliasing=off snapshot=off werror=no x64.debug
this is my v8 build configures,
and make fault is :
make[1]: Entering directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61' make[2]: Entering directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out'
LINK(target) /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out/x64.debug/shell
collect2: fatal error: cannot find 'ld'
compilation terminated.
@dothebart    can you help me ?

@AthonyLi : can you run make V=1 and show its output?
Additionally, can you run which ld, as it seems the ld binary cannot be found by the make process.

@jsteemann ：
[hewei@localhost arangodb-2.8]$ make v=1

BUILDING V8
cd ./3rdParty/V8-4.3.61
export GYPFLAGS="-Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0"
&& make
CC="gcc"
CC.host="gcc"
CXX="g++"
CXX.host="g++"
LINK="g++"
CFLAGS="-O0 -ggdb -DV8_TARGET_ARCH_X64 -DENABLE_GDB_JIT_INTERFACE -DV8_DEPRECATION_WARNINGS -DV8_I18N_SUPPORT -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DUNIT_TEST -DGTEST_HAS_RTTI=0 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DENABLE_EXTRA_CHECKS -DENABLE_HANDLE_ZAPPING -DOPTIMIZED_DEBUG  "
CXXFLAGS="-O0 -ggdb -DV8_TARGET_ARCH_X64 -DENABLE_GDB_JIT_INTERFACE -DV8_DEPRECATION_WARNINGS -DV8_I18N_SUPPORT -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DUNIT_TEST -DGTEST_HAS_RTTI=0 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DENABLE_EXTRA_CHECKS -DENABLE_HANDLE_ZAPPING -DOPTIMIZED_DEBUG  "
debug=on v8_optimized_debug=0 v8_enable_backtrace=on
library=static strictaliasing=off snapshot=off werror=no x64.debug
make[1]: Entering directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61' make[2]: Entering directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out'
LINK(target) /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out/x64.debug/shell
collect2: fatal error: cannot find 'ld'
compilation terminated.
make[2]: *** [/home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out/x64.debug/shell] Error 1
make[2]: Leaving directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out' make[1]: *** [x64.debug] Error 2 make[1]: Leaving directory /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61'
make: *** [.v8-build-64] Error 2
[hewei@localhost arangodb-2.8]$ which ld
/usr/local/bin/ld
These errors, always say can not find ‘ld'  ， Looking forward to you can help me to solve it!

ok, its not passing the verbose into the V8 build. Try it like that:
cd /home/hewei/arangodb-2.8/3rdParty/V8-4.3.61/out
make VERBOSE=1 V=1

and

@dothebart  ：Are you sure it's make here? Here make is wrong.
[hewei@localhost out]$ make VERBOSE=1 V=1
make: *** No targets specified and no makefile found.  Stop.

hm, maybe one layer up? try to find Makefiles that could be right. maybe its in  an x64 subdirectory.

Well, I have found the path make VERBOSE = 1 V = 1 then the following mistakes, I create a soft link settled, but appeared the following questions:
make[1]: /home/lilinyang/download/arangodb-2.8/3rdParty/V8-4.3.61/third_party/llvm-build/Release+Asserts/bin/clang++: Command not found
make[1]: *** [/home/lilinyang/download/arangodb-2.8/3rdParty/V8-4.3.61/out/ia32.release/obj.target/v8_base/src/accessors.o] Error 127
make[1]: Leaving directory `/home/lilinyang/download/arangodb-2.8/3rdParty/V8-4.3.61/out'
make: *** [ia32.release] Error 2
Well, this problem is solved, comes a new problem: [ question 2 ]
error: unknown warning option '-Wno-format-pedantic' [-Werror,-Wunknown-warning-option]

@dothebart

@AthonyLi : it seems like the last make run hasn't picked up any of your settings. It looks like it's building with clang whereas in your original post (https://github.com/arangodb/arangodb/issues/1339#issuecomment-231258619) it looked like it had configured to use g++ for building. Additionally, it looks like it tried to build the 32 bit version of v8, which is probably not right.
Can you try reverting the build and re-running it via the following commands?
rm -f .v8-build-64 .zlib-build-64 .libev-build-64
(cd 3rdParty/V8-4.3.61 && make clean)
make clean
export CC="gcc"
export CXX="g++"
export CFLAGS="-O3"
export CXXFLAGS="-O3"
make setup
./configure <your options here>
make

That will build using g++, which obviously needs to be installed on the system. Before building, please make sure the tools are installed by running the following commands in the shell (each of which should print the path to the binary):
which gcc
which g++
which ld

If you plan to build with a different compiler, you need to adjust the CC and CXX environment variables.

Quoting 3rdParty/V8-4.3.61/build/standalone.gypi :
    'conditions':[
      ['(clang==1 or host_clang==1) and OS!="win"', {
        # This is here so that all files get recompiled after a clang roll and
        # when turning clang on or off.
        # (defines are passed via the command line, and build systems rebuild
        # things when their commandline changes). Nothing should ever read this
        # define.
        'defines': ['CR_CLANG_REVISION=<!(<(DEPTH)/tools/clang/scripts/update.sh --print-revision)'],
        'cflags+': [
          '-Wno-format-pedantic',
        ],
      }],
    ],

It seems that V8 expects a CLANG that knows this parameter (= is newer than the one you have) You could remove that section, to see whether a new compile attempt of V8 is successfull.
In my last attempt to compile ArangoDB 2.8 in a RHEL6 / Centos 6 chroot on a Debian machine I did:
# Initialize the chroot and install the required packages:
apt-get install yum rpm python-m2crypto
mkdir -p /var/tmp/centos/var/lib/rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/nss-softokn-freebl-3.14.3-23.el6_7.x86_64.rpm
rpm --root /var/tmp/centos --initdb
rpm -ivh --force-debian --nodeps --root /var/tmp/centos centos-release*rpm
rpm -ivh --force-debian --nodeps --root /var/tmp/centos nss-softokn-freebl-3.14.3-23.el6_7.x86_64.rpm
#now the basic chroot is setup, install the basic packages required to compile ArangoDB:
yum --installroot /var/tmp/centos/ install yum
yum --installroot /var/tmp/centos/ -y install tar wget bzip2
yum --installroot /var/tmp/centos/ -y --nogpgcheck install devtoolset-3-gcc devtoolset-3-gcc-c++
yum --installroot /var/tmp/centos/ -y install centos-release-scl-rh
#Now enter the chroot to start compiling
chroot /var/tmp/centos
# This prepares the environment to use the gcc 3 toolset:
scl enable devtoolset-3 bash
wget https://www.arangodb.com/repositories/Source/ArangoDB-2.8.10.tar.bz2
tar -xvjf ArangoDB-2.8.10.tar.bz2
cd ArangoDB-2.8.10
# I wanted a debug enabled ArangoDB:
export CFLAGS='-O0 -ggdb'; export CXXFLAGS='-O0 -ggdb';./configure
make
#Obviously something went wrong with gyp too, I did:
cd 3rdParty/V8-4.3.61/
export GYPFLAGS="-Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0 -Dlinux_use_gold_flags=0"
make                 CC="gcc"                 CC.host="gcc"                 CXX="g++"                 CXX.host="g++"                 LINK="g++"                 CFLAGS="-O3 -fomit-frame-pointer -g  "                 CXXFLAGS="-O3 -fomit-frame-pointer -g  "                 library=static strictaliasing=off snapshot=off werror=no x64.release
#back to the main ArangoDB source tree:
cd ../../
make

@dothebart
I according to your steps：
cd 3rdParty/V8-4.3.61/
export GYPFLAGS="-Dstandalone_static_library=1 -Dlinux_use_bundled_gold=0
-Dlinux_use_gold_flags=0"
make  CC="gcc"  CC.host="gcc"  CXX="g++"  CXX.host="g++"  LINK="g++"
CFLAGS="-O3 -fomit-frame-pointer -g  "  CXXFLAGS="-O3 -fomit-frame-pointer -g  "
library=static strictaliasing=off snapshot=off werror=no x64.release
appeared the following error：
gcc: error: unrecognized command line option '-03'
make[1]: *** [/home/lilinyang/download/arangodb-2.8.10/ArangoDB-2.8.10/3rdParty/V8-
4.3.61/out/x64.release/obj.target/icui18n/third_party/icu/source/i18n/decContext.o] Error 1
make[1]:   Leaving directory
`/home/lilinyang/download/arangodb2.8.10/ArangoDB-.8.10/3rdParty/V8-4.3.61/out'
make: *** [x64.release] Error 2

@jsteemann
I‘m try to revert the build as your commands，and appearing error：C++ compiler cannot create executables

@dothebart  @jsteemann
Thank you, I feel should be arangodb before download the source code is wrong, lead to a lot of mistakes, I downloaded @ dothebart to the source code There are only two mistakes, then solved successful, thank you very much

BUILDING etcd
cd ./3rdParty/etcd && ./build
cp ./3rdParty/etcd/bin/etcd ./bin/etcd-arango
strip ./bin/etcd-arango

BUILD etcd FINISHED
make[1]: Leaving directory `/home/lilinyang/download/arangodb-2.8.10/ArangoDB-2.8.10'

Great! Nice you got it working.


Fix public link lookup performance

Fix inefficient path based space lookup for public links.
public links use /public/{token} path based references. This PR checks the configured mountpoint of a space to skip storage providers that don't have a matching mountpoint, when looking up spaces for a path.

cc @fschade this fixes public link access performance


Query selector v2

Adding small changes to work with "request desktop site" feature we are adding back to mobile;
These changes won't work with current app version for iPad, so we need V2 file that will be used with the new version and onwards.

fyi @amatyas001


Tidy-up testing examples with the F* binary package

This PR:

ensures that examples can build outside of the F* directory hierarchy and with FSTAR_HOME unset. To this end, this PR moves semiring to tests/ instead, which is not tested by the F* package/release CI task.
disables OCaml tests for the F* binary package, since a binary package is not meant to be used for extraction of F* programs to OCaml. (Indeed, as stated in INSTALL.md, fstar.lib is not included in the binary package because it would be out of sync with users' OCaml installations, so any users who want to extract F* programs to OCaml need to use fstar.opam instead.)

Windows binary package successfully built: https://github.com/FStarLang/FStar/actions/runs/7176134260


Move take, drop and friends in a StableIterable trait

See https://github.com/scala/collection-strawman/pull/24/files#r100122953 for background.

I don't like this idea.  There is nothing wrong with saying "I want 15 elements even though I don't know what the order will be."
And it's not backward-compatible.
Slice is a bit trickier.  It doesn't make much sense outside of a stable order, but on the other hand it's a natural consequence of having take and drop.

I agree with @ichoran. "take 3 elements from a set" is quite natural.
In general, it's the philosophy of Scala collections that any operation should work for any collection as long as that this makes sense in some situations. So far, attempts to tweak that met a lot of resistance. In fact, there are quite a few dimensions in which one might want to restrict operations:

finiteness: e.g. length makes no sense for infinite streams
partiality: head, tail are undefined on empty lists, apply could be out of bounds
sharing: +, map on mutable collections lose sharing
stable ordering: head, tail on sets are underspecified
efficiency: :+ is linear on lists

I have not seen a simple design yet that reflects all of these concerns. So the current policy is to stay silent about them.


bug: Services without ports causes an uncaught TypeError

The main page is blank if some services do not have ports defined.
This issue occurs on both Chromium and Firefox.
Checking if service.svc.spec.ports is defined seems to solve this issue. I don't know much about React or JS so I'm not sure this is the best solution. If my change would be helpful, let me know and I will make it available through a pr.
If more information would be helpful, just let me know.
Thank you for any help and the work on this project!
Relevant Line
https://github.com/gimlet-io/capacitor/blob/cef9f4666244a2af6e4419eddb9dacf7aa99b4b3/web/src/Service.jsx#L30
Error
Uncaught TypeError: t.svc.spec.ports is undefined
    sr Service.jsx:30
    React 7
    S scheduler.production.min.js:13
    _ scheduler.production.min.js:14
Service.jsx:30:18

Environment
capacitor: v0.2.0@sha256:be97d5bf
Relevant Services
$ kubectl get svc -A

NAMESPACE
NAME
TYPE
CLUSTER-IP
EXTERNAL-IP
PORT(S)

longhorn-system
longhorn-engine-manager
ClusterIP
None
None
None

longhorn-system
longhorn-replica-manager
ClusterIP
None
None
None

That is very likely, yes. Did not anticipate that.
Let us push a fix.
Appreciate the stellar report!


Terminal UI Bug

Hi,
Can you check and verify why is it the design/UI of the vscode terminal is not consistent unlike the "iterm".
Here's the screenshot for VScode terminal

And here's the screenshot of the "iTerm" UI.

As you can see the "iTerm" UI has perfectly executed the "arrow" UI compared to the VScode Terminal.
By the way I am using the "PowerLevel9K" zsh theme.
https://github.com/bhilburn/powerlevel9k
Thank you.

I got it!!
Here's my configuration.
https://github.com/bhilburn/powerlevel9k/issues/1030#issuecomment-429879951


NullPointerException

Hello Conny,
I'm trying to run your code and getting NPE. I think some major initiation step is missing in your readme file.
You are creating a new TakeScreenshotRule object:
@Rule
public TakesScreenshotRule screenshot = new TakesScreenshotRule();
...and then call it's takeScreenshot(driver) method which in turn calls:
public ScreenshotMeta takeScreenshot(String id, WebDriver driver) throws IOException {
return this.screenshotManager.takeScreenshot(driver, id);
}
BUT screenshotManager is not initialized at this point and that is why I get NPE (screenshotManager = NULL).
screenshotManager is initialized in:
public Statement apply(Statement base, FrameworkMethod method, Object target) {
this.screenshotManager = new ScreenshotManager(target.getClass(), method.getName());
return base;
}
....but this method is not called from anywhere.
Could you please provide a bit more details on how to make this code work?
Thank you in advance,
Michael

Sorry for the late reply.
Do you run your test with a junit 4 runner? @Rule is a junit 4 annotation!


#2203 Switch test projects to .NET 4.6…

… to enable use of features such as settable CultureInfo.CurrentCulture/CurrentUICulture properties.
This is an update to the now obsolete PR https://github.com/aspnet/EntityFramework/pull/2204.
@bricelam
I've run the feature branch against 1.0.0-beta6-11913, alas I get the same error as in PR https://github.com/aspnet/EntityFramework/pull/2204 (just with a newer runtime):
info:   workingdir: test\EntityFramework.Commands.FunctionalTests
System.InvalidOperationException: The current runtime target framework is not compatible with 'EntityFramework.Commands.FunctionalTests'.
Current runtime Target Framework: 'DNX,Version=v4.5.1 (dnx451)'
Type: CLR
Architecture: x86
Version: 1.0.0-beta6-11913
Please make sure the runtime matches a framework specified in project.json
at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint(String applicationName)
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Framework.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at dnx.host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env)
at dnx.host.RuntimeBootstrapper.ExecuteAsync(String[] args)
at dnx.host.RuntimeBootstrapper.Execute(String[] args)
warn: Exit code 1 from cmd
verbose: Stack trace:
at View7c3b79b67aa048719d04190a9a764beb.K(String command, String workingdir, String dnvmUse) in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 1670
at View7c3b79b67aa048719d04190a9a764beb.DnxTest(String projectFile, Boolean testParallel) in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 458
at View7c3b79b67aa048719d04190a9a764beb.b__6b(String projectFile) in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 8010
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at View7c3b79b67aa048719d04190a9a764beb.b__69() in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 8010
at Sake.Engine.Builder.BuilderBase`1.CallTarget(String name)
at Sake.Engine.Builder.BuilderBase`1.StartingTarget(String name)
at View7c3b79b67aa048719d04190a9a764beb.b__4b() in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 2286
at Sake.Engine.Builder.BuilderBase`1.CallTarget(String name)
at View7c3b79b67aa048719d04190a9a764beb.b__43() in c:\Users\mk\AppData\Local\Temp\e4be9ac5d52e4d0d99d9455d1c583515-1.cs:line 2142
at Sake.Engine.Builder.BuilderBase`1.CallTarget(String name)
at Sake.Engine.SakeEngine.Execute(Options options)
at Sake.Engine.SakeEngine.Execute(String[] args)
at Sake.Program.Main(String[] args)
Am I missing something in the setup or the project changes or is there still an issue with https://github.com/aspnet/dnx/pull/1929#event-315220984
Thanks, Michael :smile:
PS: Was able to reproduce this on two separate machines, one of them with a sort-of-almost brand new setup of the dnvm

Done as part of #2326


add reasonable error messaging for gurobi solver

@LeyuChen I was using this software and was experiencing difficulties with Gurobi and was uncertain what the root of the error was. The change here simply logs out the error message from Gurobi so that it is easier to fix whatever error occurs.

There is no problem running the codes that replace the original simple error message with your line:
fprintf(2, 'Error reported. The error message was: %s \n',gurobiError.message);
The problem could be due to that you have not yet properly installed the matlab gurobi solver in your machine. You can visit http://www.gurobi.com/ to request a free trial of this solver.

Agreed but the error messaging should be informative which is what this change does. Previously the error message simply said “there is an error” which is uninformative about the root cause and makes it hard to debug the code when it fails.
Good error messages should also help you find the cause of the error, not simply tell you that that there was an error!


Changes needed after libGDX 1.9.4 release

TextField merge: https://github.com/libgdx/libgdx/compare/dfc9f5710acea5514f3b033fa7467dc4b9b6a6e3...f3ab698aab76ed690b1255a704d57d5cafb97e78
Flow groups can be replaced with wrapping Horizontal/VerticalGroup? (might also fix some weird TabbedPane flicker on initial show)

Flow groups can be replaced with wrapping Horizontal/VerticalGroup? (might also fix some weird TabbedPane flicker on initial show)

Not going to happen, trying to change it to use those groups breaks TabbedPane completely. Also see
https://github.com/libgdx/libgdx/issues/4243.


⚠ Carbubu has degraded performance

In 0775470, Carbubu (https://carbubu.fr) experienced degraded performance:

HTTP code: 200
Response time: 4613 ms

Resolved: Carbubu performance has improved in 59886a9 after 5 minutes.


Tentative for a fix for #148

By calling the filter twice, we can have the ignorelist filtering
both by name AND by arn.
To ignore AWS default policies, enter the following in 'prefix':
arn:aws:iam::aws:policy/
It can be a fix for #148 .

Muahahhahahah awesome
On Tue, Mar 29, 2016 at 4:55 PM llange<EMAIL_ADDRESS>wrote:

By calling the filter twice, we can have the ignorelist filtering
both by name AND by arn.
To ignore AWS default policies, enter the following in 'prefix':
arn:aws:iam::aws:policy/
It can be a fix for #148
https://github.com/Netflix/security_monkey/issues/148 .
You can view, comment on, or merge this pull request online at:
https://github.com/Netflix/security_monkey/pull/308
Commit Summary

Tentative for a fix for #148

File Changes

M security_monkey/watchers/iam/managed_policy.py
https://github.com/Netflix/security_monkey/pull/308/files#diff-0 (3)

Patch Links:

https://github.com/Netflix/security_monkey/pull/308.patch
https://github.com/Netflix/security_monkey/pull/308.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/Netflix/security_monkey/pull/308

In the future, please make PR's against the develop branch.  I'll go ahead and merge this into master, and then later will merge master and develop.


Multi room

Make capable of pushing feed data to multiple rooms. Should be able to specify which feeds go to which rooms.

Done!


There is no prepare.py file

As stated by the Issue title, there is no prepare.py file in the repository. I think it should be prepare_data.py instead.
In the markdown shown below, it should be: python data/prepare_data.py ..

Thanks, I fixed it.


In archive.py, add "initial_save" and "pdf" value to the json file that contains url metadata

I'm not 100% sure this is needed, as it can be largely inferred from the accessed_on value, but it could be useful over time as an additional way to track the evolution of a url over time.
This will also have implications for other functionality in different scripts, so any other element of the toolkit that parses the url_data will need to be reviewed prior to making any change here.

Updating the title to reflect a slight expansion of scope. Because of how some pdfs are stored online, some urls require an explicit flag to identify the pdf. There are probably other checks we could use (response headers, information in head, etc) but this fix will cover it for now.

No changes needed in show_diffs.py or housekeeping.py


Files disappear after a while

While using the diskLRU cache, I see that files are erased from cache after a few days.
Is there anywhere a configurable lifetime of the cached files? Am I missing anything?

The cache is an LRU, so as new files come in the ones which are older will be cycled out. There is no time-based constraint available, since that's a very different system.


Are mulitple dashboard instances a problem?

Apologies in advance if this isn't the right place to ask - this is a question rather than an issue and I can't find a more general 'ask a question' type dashing forum?
We're running a Dashing dashboard for live services on a Red Hat VM 2 cpu, 2Gb ram 80G HD. It only has Puppet and Dashing on there. We're wanting to add a second dashboard instance, different port for the development environment. Someone here suggested Dashing or Thin Server might have problems with too many processes/threads on the server and we might need a second VM for it. Having searched it I can't see any known issues, apart from browsers struggling with multiple threads.
As a quick test I've just started a second dashboard instance on our live VM, Nagios says everything is fine.
Surely a VM of that size can run two or more dashboards without problems?
Thanks in advance.

Why don't you just make a second dashboard?
We're running a single Dashing instance on a similar box running 4 separate dashboards

Thanks for replying. No, we definitely want a separate instance for live and non live monitoring, separate code base etc. There's 5+ non live environments, the jobs.rb code could be quite different from live and it doesn't matter if I turn the dev monitoring off and on, but live monitoring must be kept up during business hours.

Running two instances of dashing in daemon mode with different ports should work for you then.
If you set your updates at a recent rate and don't expect too much load on the server then I can't see a problem with your setup. From my testing Dashing seems to be pretty light.

That is helpful. I thought a Linux VM should be able to handle two dashing(s)! Thanks Matt.

Works for me after adding --servers 1 to the command.
cd ${FIRST_DASHING_PATH} && bundle exec dashing start --servers 1 -d -p 8080 -e production -P ${FIRST_DASHING_PTH}/tmp/pids/dashing.pid
cd ${SECOND_DASHING_PATH} && bundle exec dashing start --servers 1 -d -p 8082 -e production -P ${SECOND_DASHINGPATH}/tmp/pids/dashing.pid
Regards,
Mario


Javadoc improvements

some javadoc I had on my system from a review

Coverage decreased (-7.1%) to 68.899% when pulling 02245da4f491a19ab5751620cfdeb08cccc452e8 on feature/javadoc_update into 8f4a0cf40214021fbc063e252dde36257b0bcc67 on develop.


Remove min-sdk from manifest

Fixes #220

@AlexanderZaytsev please merge, very annoying to have to keep removing the line.

@AlexanderZaytsev should we get this.

the PR is ready but hasn't been merged, however you can add it to your package.json like this: https://github.com/AlexanderZaytsev/react-native-i18n/pull/258#issuecomment-516462774

I am closing this as this repo has now been deprecated and it does not look like it will ever be merged.


Add Topology Button To Individual Region Pages

NetBox version
v3.7.8
Topology Views version
v3.9.1
Feature type
New functionality
Proposed functionality
Just like the plug-in adds a Topology Button to each Site, which then draws/shows the topology for the site, this request is the do the same thing for each Region
Use case
The plug-in already has the ability to show regions when using the plugin, but it would be the same use case as showing the site topology button for each individual sites, but for regions. It would increase functionality of the tool and use cases.
External dependencies
Not sure, but not really since it’s an expansion of current functionality.

Don’t think I’m the best person for this. Would like to eventually add the ability to add a filter and add group boundaries of different colors.

Don’t think I’m the best person for this.

I'm wondering why you've made a pull request then. Anyway, thanks for trying. I unassigned you from this FR.

@dreng I made the pull request not realizing that the resulting change would also have changes. IE: I see for the use case to improve your software, but don’t have the time nor experience at this time to do it to the degree I want. Therefore, I don’t want to do it only 1/2 as good as I want.


Improve code coverage

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 87.75%. Comparing base (f5eaae6) to head (c7aeb76).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main       #3   +/-   ##
=======================================
  Coverage   87.75%   87.75%
=======================================
  Files           1        1
  Lines        1168     1168
  Branches      180      180
=======================================
  Hits         1025     1025
  Misses         15       15
  Partials      128      128

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Connector Heath Push Notification Playbook

#New playbook
-The playbook sends a push notification to alert on connector health status
-Variables available to select anomaly thresholds

Redoing from scratch


feat: upgrade range for package file

Description
Upgrade range for package file: '>=6.1.0 <8.0.0'
Checklist

[x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs:, chore: etc).
[x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
[ ] I have updated/added tests for ALL new/updated/fixed functionality.
[ ] I have updated/added relevant documentation and added dartdoc comments with ///, where necessary.
[ ] I have updated/added relevant examples in example.

Breaking Change

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Related Issues
Closes #1541
Dependent on path_provider, xdg_directories, https://github.com/google/process.dart/pull/75

Propose to upgrade, but then this is not in our hand. See https://github.com/flutter/flutter/issues/129543


Optimize dashboard DB queries for GET requests

A number of queries are repeated in every request to the dashboard.
I.e:
GET api/v1/viz/?tag_name=&q=&page=1&type=&exclude_shared=false&per_page=20&tags=&shared=no&locked=false&only_liked=false&order=updated_at&types=table

-- repeated 62 times in local tests
SELECT * FROM "users" WHERE ("id" = 'fe3b850a-01c0-48f9-8a26-a82f09e9b53f') LIMIT 1`

This query in particular comes from this (flawed by the ruby debugger) backtrace:
(rdb:1) sql
"SELECT * FROM \"users\" WHERE (\"id\" = 'fe3b850a-01c0-48f9-8a26-a82f09e9b53f') LIMIT 1"
(rdb:1) bt
--> #0 Sequel::Postgres::Adapter.execute(sql#String)
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132
    #1 Sequel::Postgres::Database._execute(conn#Sequel::Postgres::Ada..., sql#String,...)
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:412
    #2 Sequel::Postgres::Database.check_database_errors
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:243
    #3 Sequel::ThreadedConnectionPool.hold
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:243
    #4 Sequel::Database.synchronize
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236
    #5 Sequel::Postgres::Database.execute(sql#String)
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:243
    #6 Sequel::Dataset.execute(sql#String)
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/dataset/actions.rb:778
    #7 Sequel::Postgres::Dataset.fetch_rows(sql#String)
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:524
    #8 Sequel::Dataset.each
       at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/dataset/actions.rb:152
    #9 Sequel::Postgres::Dataset.each
       at line /var/lib/gems/1.9.1/gems/sequel_pg-1.6.3/lib/sequel_pg/sequel_pg.rb:58
    #10 Sequel::Dataset.single_record
        at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/dataset/actions.rb:546
    #11 Sequel::Dataset.first
        at line /var/lib/gems/1.9.1/gems/sequel-3.42.0/lib/sequel/dataset/actions.rb:209
    #12 CartoDB::Permission.owner
        at line /home/developer/src/cartodb/app/models/permission.rb:235
    #13 CartoDB::PermissionPresenter.to_poro
        at line /home/developer/src/cartodb/app/models/permission/presenter.rb:17
    #14 CartoDB::Permission.to_poro
        at line /home/developer/src/cartodb/app/models/permission.rb:350
    #15 CartoDB::Visualization::Presenter.to_poro
        at line /home/developer/src/cartodb/app/models/visualization/presenter.rb:34
    #16 CartoDB::Visualization::Member.to_hash
        at line /home/developer/src/cartodb/app/models/visualization/member.rb:339
    #17 Set.each at line /usr/lib/ruby/1.9.1/set.rb:0
    #18 Set.each at line /usr/lib/ruby/1.9.1/set.rb:221
    #19 DataRepository::Collection.each
        at line /home/developer/src/cartodb/services/data-repository/structures/collection.rb:39
    #20 Api::Json::VisualizationsController.index_logged_in
        at line /home/developer/src/cartodb/app/controllers/api/json/visualizations_controller.rb:64
    #21 Api::Json::VisualizationsController.index_logged_in
        at line /home/developer/src/cartodb/app/controllers/api/json/visualizations_controller.rb:554
    #22 Api::Json::VisualizationsController.index
        at line /home/developer/src/cartodb/app/controllers/api/json/visualizations_controller.rb:30

Search for a way of optimizing these queries. Possibilities:

Sequel cache plugin
Per-request cache for GET requests

Next step: cache this kind of query (usually triplicated):
SELECT * FROM "user_tables" WHERE ("map_id" = '7a919f75-f058-430e-a8bf-efae86a33705') LIMIT 1

But for this there's not direct support from Sequel as it is not querying by primary key.

For the record, I'm using this patch to check where repetitive queries come from:
diff --git a/lib/sequel/adapters/postgres.rb b/lib/sequel/adapters/postgres.rb
index c1806a7..9ab6c1d 100644
--- a/lib/sequel/adapters/postgres.rb
+++ b/lib/sequel/adapters/postgres.rb
@@ -128,6 +128,7 @@ module Sequel
       # Execute the given SQL with this connection.  If a block is given,
       # yield the results, otherwise, return the number of changed rows.
       def execute(sql, args=nil)
+        debugger if sql.include?(%Q{SELECT * FROM "user_tables" WHERE ("map_id" =})
         args = args.map{|v| @db.bound_variable_arg(v, self)} if args
         q = check_disconnect_errors{execute_query(sql, args)}
         begin

With the changes already done it is still slow but I reckon it works 10x faster.
We shall reconsider performance after getting farther with the refactor.