Android Crash 2

axmol version:
devices test on:
developing environments

NDK version: r19c
Xcode version: 12.4
Visual Studio:

VS version: 2019 (16.11), 2022 (17.4)
MSVC version: 1929, 1934
Windows SDK version: 10.0.22621.0

cmake version:
Steps to Reproduce:

We have migrated our Match Animal game to Axmol from Cocos2dx V3 latest yesterday. Getting this crash now. How to fix this issue?
terminating with uncaught exception of type al::backend_exception: Failed to stop stream: ErrorClosed
#00  pc 0x00000000000534d4  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#01  pc 0x00000000000d1fcc  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libc++_shared.so (abort_message+76)
#02  pc 0x00000000000d2180  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libc++_shared.so (demangling_terminate_handler()+62)
#03  pc 0x00000000000e6e80  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libc++_shared.so (std::__terminate(void (*)())+59)
#04  pc 0x00000000000e6e18  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libc++_shared.so (std::terminate()+88)
#05  pc 0x00000000000986b0  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libopenal.so (alcDestroyContext+3423)
#06  pc 0x000000000068c2b8  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libMatchAnimal.so (ax::AudioEngineImpl::~AudioEngineImpl()+293)
#07  pc 0x000000000068c4a0  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libMatchAnimal.so (ax::AudioEngineImpl::~AudioEngineImpl()+280)
#08  pc 0x00000000006868bc  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libMatchAnimal.so (ax::AudioEngine::end()+147)
#09  pc 0x000000000063bc50  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libMatchAnimal.so (ax::Director::reset()+977)
#10  pc 0x000000000063ca08  /data/app/~~KcRhAtDu_ohUoG7_ckyt2Q==/games.spearmint.matchanimal-Yg0b8aD7s5klY_lpCbdbfA==/split_config.arm64_v8a.apk!libMatchAnimal.so (ax::Director::mainLoop()+1044)
#11  pc 0x000000000004f2e0  /data/dalvik-cache/arm64/data@app<EMAIL_ADDRESS>

Was this running on a real device or emulator?
Was it connected to a debugger at the time it crashed? I've only ever seen this when running the app on a device connected to a debugger, such as what is described in #1195
If it is reproducible, then why not just put a breakpoint on ax::AudioEngine::end() and trace the execution of the code from there?

Hey @rh101 The issue is not reproducible in any of our test devices. Crash logs are from Google Play live users.

The issue is not reproducible in any of our test devices. Crash logs are from Google Play live users.

Is this a sporadic issue (only some divices/users), right?
Or a general issue on all same devices?

@kiranb47 Are you by any chance calling AudioEngine::end() anywhere in your own code?
For example, in the Cocos2d CPP template, there is this section in AppDelegate.cpp:
AppDelegate::~AppDelegate()
{
    AudioEngine::end();
}

User don't needs to invoke AudioEngine::end, see this issue: https://github.com/axmolengine/axmol/issues/550

I just had an idea and tested it out, and managed to reproduce this issue consistently.

Load the app
Make a call or receive a phone call

This causes the audio section to throw an error, which closes the stream.  Audio in the app no longer works, and eventually it will crash because of 2 different issues.

One would be something like Fail to play Sounds/AudioFile.mp3 cause by limited max instance of AudioEngine
OR
The other would be what is posted above by @kiranb47 terminating with uncaught exception of type al::backend_exception: Failed to stop stream: ErrorClosed

When I received a phone call, I saw this in logcat:
2023-05-25 16:56:35.361 25517-25533 targaming.slots         com.xstargaming.slots                D  PlayerBase::setVolume() from IPlayer
2023-05-25 16:56:35.361 25517-25533 AAudioStream            com.xstargaming.slots                D  setDuckAndMuteVolume() to 0.000000
2023-05-25 16:56:35.361 25517-25533 AudioStrea...lay_Client com.xstargaming.slots                D  doSetVolume() mStreamVolume * duckAndMuteVolume = 1.000000 * 0.000000 = 0.000000
2023-05-25 16:56:39.181 25517-25517 AxmolActivity           com.xstargaming.slots                D  onPause()
2023-05-25 16:56:39.259 25517-25517 AxmolActivity           com.xstargaming.slots                D  onWindowFocusChanged() hasFocus=false
2023-05-25 16:56:39.514 25517-25693 AudioStrea...nal_Client com.xstargaming.slots                D  onEventFromServer - got AAUDIO_SERVICE_EVENT_STOPPED
2023-05-25 16:56:39.517 25517-25693 AAudioStream            com.xstargaming.slots                D  setState(s#2) from 4 to 13
2023-05-25 16:56:39.517 25517-25693 AudioStrea...nal_Client com.xstargaming.slots                W  onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared
2023-05-25 16:56:39.519 25517-25693 AudioStrea...lay_Client com.xstargaming.slots                D  callbackLoop() exiting, result = -899, isActive() = 0 <<<<<<<<<<<<<<
2023-05-25 16:56:39.522 25517-25914 OboeAudio               com.xstargaming.slots                D  oboe_aaudio_error_thread_proc(,-899) - entering >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023-05-25 16:56:39.522 25517-25914 AAudio                  com.xstargaming.slots                D  AAudioStream_requestStop(s#2) called
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.xstargaming.slots                D  joinThread_l() pthread_join succeeded
2023-05-25 16:56:39.531 25517-25914 IsochronousClockModel   com.xstargaming.slots                D  stop(nanos =<PHONE_NUMBER>3817) max lateness = 74 micros
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.xstargaming.slots                D  setState(s#2) from 13 to 9
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.xstargaming.slots                W  setState(2) tried to set to 9 but already DISCONNECTED
2023-05-25 16:56:39.532 25517-25914 AAudio                  com.xstargaming.slots                D  AAudioStream_requestStop(s#2) called
2023-05-25 16:56:39.532 25517-25914 AAudioStream            com.xstargaming.slots                D  joinThread() - but has no thread or already join()ed
2023-05-25 16:56:39.532 25517-25914 AudioStrea...nal_Client com.xstargaming.slots                W  requestStop_l() stop callback returned -895, returning early
2023-05-25 16:56:39.542 25517-25914 AAudio                  com.xstargaming.slots                D  AAudioStream_close(s#2) called ---------------
2023-05-25 16:56:39.542 25517-25914 AudioStrea...nal_Client com.xstargaming.slots                D  release_l(): mServiceStreamHandle = 0x00000034
2023-05-25 16:56:39.542 25517-25914 AAudioStream            com.xstargaming.slots                D  joinThread() - but has no thread or already join()ed
2023-05-25 16:56:39.542 25517-25914 AudioStrea...nal_Client com.xstargaming.slots                W  requestStop_l() stop callback returned -895, returning early
2023-05-25 16:56:39.542 25517-25914 AAudioStream            com.xstargaming.slots                D  setState(s#2) from 13 to 11
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.xstargaming.slots                D  setState(s#2) from 11 to 11
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.xstargaming.slots                D  setState(s#2) from 11 to 12
2023-05-25 16:56:39.645 25517-25914 AudioStrea...nal_Client com.xstargaming.slots                D  ~AudioStreamInternal() 0xb400007a7a173c80 called
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.xstargaming.slots                D  ~AudioStream(s#2) mPlayerBase strongCount = 2
2023-05-25 16:56:39.645 25517-25914 AAudio                  com.xstargaming.slots                D  AAudioStream_close(s#2) returned 0 ---------
2023-05-25 16:56:39.645 25517-25914 OboeAudio               com.xstargaming.slots                D  oboe_aaudio_error_thread_proc() - exiting <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023-05-25 16:56:41.255 25517-25890 FA                      com.xstargaming.slots                I  Application backgrounded at: timestamp_millis:<PHONE_NUMBER>249
2023-05-25 16:56:42.911 25517-25517 AxmolActivity           com.xstargaming.slots                D  onResume()
2023-05-25 16:56:42.933 25517-25658 OpenGLRenderer          com.xstargaming.slots                E  Unable to match the desired swap behavior.
2023-05-25 16:56:42.937 25517-25675 GLSurfaceView           com.xstargaming.slots                W  Warning, !readyToDraw() but waiting for draw finished! Early reporting draw finished.
2023-05-25 16:56:42.969 25517-25517 AxmolActivity           com.xstargaming.slots                D  onWindowFocusChanged() hasFocus=true

oboe_aaudio_error_thread_proc() was definitely called there, which closed the stream.

I just had an idea and tested it out, and managed to reproduce this issue consistently.

Load the app
Make a call or receive a phone call

This causes the audio section to throw an error, which closes the stream.  Audio in the app no longer works, and eventually it will crash because of 2 different issues.

One would be something like Fail to play Sounds/AudioFile.mp3 cause by limited max instance of AudioEngine
OR
The other would be what is posted above by @kiranb47 terminating with uncaught exception of type al::backend_exception: Failed to stop stream: ErrorClosed

When I received a phone call, I saw this in logcat:
2023-05-25 16:56:35.361 25517-25533 localhost.test          com.localhost.test                D  PlayerBase::setVolume() from IPlayer
2023-05-25 16:56:35.361 25517-25533 AAudioStream            com.localhost.test                D  setDuckAndMuteVolume() to 0.000000
2023-05-25 16:56:35.361 25517-25533 AudioStrea...lay_Client com.localhost.test                D  doSetVolume() mStreamVolume * duckAndMuteVolume = 1.000000 * 0.000000 = 0.000000
2023-05-25 16:56:39.181 25517-25517 AxmolActivity           com.localhost.test                D  onPause()
2023-05-25 16:56:39.259 25517-25517 AxmolActivity           com.localhost.test                D  onWindowFocusChanged() hasFocus=false
2023-05-25 16:56:39.514 25517-25693 AudioStrea...nal_Client com.localhost.test                D  onEventFromServer - got AAUDIO_SERVICE_EVENT_STOPPED
2023-05-25 16:56:39.517 25517-25693 AAudioStream            com.localhost.test                D  setState(s#2) from 4 to 13
2023-05-25 16:56:39.517 25517-25693 AudioStrea...nal_Client com.localhost.test                W  onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared
2023-05-25 16:56:39.519 25517-25693 AudioStrea...lay_Client com.localhost.test                D  callbackLoop() exiting, result = -899, isActive() = 0 <<<<<<<<<<<<<<
2023-05-25 16:56:39.522 25517-25914 OboeAudio               com.localhost.test                D  oboe_aaudio_error_thread_proc(,-899) - entering >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023-05-25 16:56:39.522 25517-25914 AAudio                  com.localhost.test                D  AAudioStream_requestStop(s#2) called
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.localhost.test                D  joinThread_l() pthread_join succeeded
2023-05-25 16:56:39.531 25517-25914 IsochronousClockModel   com.localhost.test                D  stop(nanos =<PHONE_NUMBER>3817) max lateness = 74 micros
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.localhost.test                D  setState(s#2) from 13 to 9
2023-05-25 16:56:39.531 25517-25914 AAudioStream            com.localhost.test                W  setState(2) tried to set to 9 but already DISCONNECTED
2023-05-25 16:56:39.532 25517-25914 AAudio                  com.localhost.test                D  AAudioStream_requestStop(s#2) called
2023-05-25 16:56:39.532 25517-25914 AAudioStream            com.localhost.test                D  joinThread() - but has no thread or already join()ed
2023-05-25 16:56:39.532 25517-25914 AudioStrea...nal_Client com.localhost.test                W  requestStop_l() stop callback returned -895, returning early
2023-05-25 16:56:39.542 25517-25914 AAudio                  com.localhost.test                D  AAudioStream_close(s#2) called ---------------
2023-05-25 16:56:39.542 25517-25914 AudioStrea...nal_Client com.localhost.test                D  release_l(): mServiceStreamHandle = 0x00000034
2023-05-25 16:56:39.542 25517-25914 AAudioStream            com.localhost.test                D  joinThread() - but has no thread or already join()ed
2023-05-25 16:56:39.542 25517-25914 AudioStrea...nal_Client com.localhost.test                W  requestStop_l() stop callback returned -895, returning early
2023-05-25 16:56:39.542 25517-25914 AAudioStream            com.localhost.test                D  setState(s#2) from 13 to 11
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.localhost.test                D  setState(s#2) from 11 to 11
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.localhost.test                D  setState(s#2) from 11 to 12
2023-05-25 16:56:39.645 25517-25914 AudioStrea...nal_Client com.localhost.test                D  ~AudioStreamInternal() 0xb400007a7a173c80 called
2023-05-25 16:56:39.645 25517-25914 AAudioStream            com.localhost.test                D  ~AudioStream(s#2) mPlayerBase strongCount = 2
2023-05-25 16:56:39.645 25517-25914 AAudio                  com.localhost.test                D  AAudioStream_close(s#2) returned 0 ---------
2023-05-25 16:56:39.645 25517-25914 OboeAudio               com.localhost.test                D  oboe_aaudio_error_thread_proc() - exiting <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023-05-25 16:56:41.255 25517-25890 FA                      com.localhost.test                I  Application backgrounded at: timestamp_millis:<PHONE_NUMBER>249
2023-05-25 16:56:42.911 25517-25517 AxmolActivity           com.localhost.test                D  onResume()
2023-05-25 16:56:42.933 25517-25658 OpenGLRenderer          com.localhost.test                E  Unable to match the desired swap behavior.
2023-05-25 16:56:42.937 25517-25675 GLSurfaceView           com.localhost.test                W  Warning, !readyToDraw() but waiting for draw finished! Early reporting draw finished.
2023-05-25 16:56:42.969 25517-25517 AxmolActivity           com.localhost.test                D  onWindowFocusChanged() hasFocus=true

oboe_aaudio_error_thread_proc() was definitely called there, which closed the stream.

@rh101 @halx99 We are not invoking AudioEngine::end()

@aismann 5.2% users affected

I create a PR to switch default audio backend to opensl, plz update and check.

@rh101  thanks for you test, merged

refer to https://chromium.googlesource.com/external/github.com/google/oboe/+/refs/tags/1.5.0/docs/OpenSLESMigration.md#stream-disconnection, the oboe  with aaudio backend support stream disconnect(require recreate stream after handphone call). that's why opensl no this issue, maybe openal-soft not handle properly.

the oboe with aaudio backend support stream disconnect(require recreate stream after handphone call). that's why opensl no this issue, maybe openal-soft not handle properly.

Fair enough.  Would it be beneficial to eventually re-enable OBOE in the future and add support for recreating the stream on any error conditions?  Using OpenSL right now is the right move to prevent the crashes, but I'm not sure if anyone requires the extra functionality available with OBOE, so I can't comment on that.

I think opensl is enough, but I also create a bugfix PR for openal-soft: https://github.com/kcat/openal-soft/pull/848

@halx99 @rh101 @aismann Issue is now resolved after i changed to OpenSL. Thank you for the PR.


Proposal: Add a default value to ratelimit dynamic_metadata action

Description: We recently added dynamic_metadata action (issue #11593) that gets descriptor information from the metadata. As currently built the dynamic_metadata action looks for information in the dynamic metadata and if isn’t there it stops and does not build the descriptor. We now realize there may be instances where the information isn’t there because of the failure of another filter, it never existed or some other edge case. So instead of letting the descriptor fail, we would like to include an optional default string value for instances where the information is not in the dynamic metadata.
The updated schema would look like:
- dynamic_metadata:
    descriptor_key: “…”
    default: “…”
    metadata_key:
      key: “…”
      path:
        - key: “…”

Makes sense to me, thank you.


Change color of nav links and copyright info

I'd like to change the color of nav and footer link text color.
Current color choice is very low contrast.
It looks like the color is automatically determined by the background color.
What is the best way to change nav and footer link text color for this theme?

The best way is to add custom styling.
The built-in fragments follow the bootstrap theme with our custom color pallette and text color, as you mentioned, is determined by background color of the fragment. To circumvent this you can add your own stylesheet and change the colors specifically for the fragment. Each fragment has an id, the same as it's filename.
In this situation adding stylesheet is the better solution since the change is small and you can still receive updates on the fragment and your styles wouldn't break in the future.
Chwck out our documentation on styles and adding custom stylesheet.

There is also a way to generally use different colors. Take a look here: https://about.okkur.org/syna/docs/supported-colors/

There is also a way to generally use different colors. Take a look here: https://about.okkur.org/syna/docs/supported-colors/

related to this, I change my colors scheme and now secondary is dark so had to superseed this file to remove secondary from this line. @stp-ip it is a better way you would recommend to manage this situation ?

Can't think of a better way. Staying close to the color contrast as bootstrap helps. Switching say light with dark, will unfortunately break a few default things.
Most colors should use the text-color helper so overwriting that as well should be ok.
Happy to discuss better solutions in a separate issue.


Custom event for Loki URL changed

Enhancement Proposal
Currently custom events for LokiPushApiConsumer are not useful. Relation joined is not useful. Please add a custom event for Loki URL changed.

Duplicate of #318


Erlang support matrix changes

3.9.{22,23} supports erlang 25 according to their release notes. And rabbitmq 3.10.0-4 doesn't support erlang higher than 24.3 according to to debian packages Depends which sets a hard max limits on the erlang version.

Thank you. We do not plan to list 3.9.x as Erlang 25-compatible. Both because we do not test it on 25 all that much, and because we want people who run on 25 to move to 3.10.

ok, but what about 3.10.0-4? can't install them on debian with erlang 25 and higher. still list as supported?


Add Redis Jedis support

closes elastic/apm-agent-java#670
TODO

[x] test with older Jedis versions
[x] all Redis client instrumentations in one module vs multiple?

[x] Implement code
[x] Add tests
[ ] ~Update documentation~
[x] Update CHANGELOG.md
[x] Update supported-technologies.asciidoc
[ ] ~Added an API method or config option? Document in which version this will be introduced.~

Codecov Report

Merging #822 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #822   +/-   ##
=========================================
  Coverage     63.89%   63.89%
  Complexity       80       80
=========================================
  Files           224      224
  Lines          9103     9103
  Branches       1173     1173
=========================================
  Hits           5816     5816
  Misses         2922     2922
  Partials        365      365

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 4dab33c...979c12d. Read the comment docs.


Update hmpo-form-controller to v0.5.0.

This doesn't really need to exist. ^0.4.0 will match 0.5.0.


refresh - SyntaxError: Cannot use import statement outside a module

Describe the bug
React, next.js, refreshing the page, it occurred. but if entering the page from another page, it doesn't occur
To Reproduce
Steps to reproduce the behavior:

Refresh the page containing the component

Screenshots

Desktop (please complete the following information):

OS: MacOS
Browser chrome

React, next.js, refreshing the page, it occurred. but if entering the page from another page, it doesn't occur

This is react.js integration sample - https://stackblitz.com/edit/d3-org-chart-react-integration-hooks
I can't reproduce it, can you fork and link the reproduced example?

https://github.com/airxiaotian/d3-org-bug-reproduce
everything working right if entering /d3 from home page.
but if refresh the /d3 page or type localhost:3000/d3 to the browser, the error occured

hi, i reproduced this problem.
environment:
MacOS Big Sur 11.5.2
➜   node -v
v14.17.4
➜   yarn -v
1.22.11

create a next-app
https://nextjs.org/
$ yarn create next-app

yarn create v1.22.11
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Installed<EMAIL_ADDRESS>with binaries:
      - create-next-app
✔ What is your project named? … d3-org-sample
Creating a new Next.js app in /Users/ou.yun/Workspace/source/paylab/gemini/d3-org-sample.

Using yarn.

add d3-org-chart
cd d3-org-sample
yarn add d3-org-chart
yarn add v1.22.11
[1/4] 🔍  Resolving packages...
.....

add only one line of code into ./pages/index.js
import { OrgChart } from 'd3-org-chart';

start up server, then access http://localhost:3000, the problem reproduced.
yarn dev
yarn run v1.22.11
$ next dev
ready - started server on <IP_ADDRESS>:3000, url: http://localhost:3000
info  - Using webpack 5. Reason: Enabled by default https://nextjs.org/docs/messages/webpack5
event - compiled successfully
event - build page: /
wait  - compiling...
warn  - ./node_modules/d3-flextree/src/flextree.js
Should not import the named export 'version' (imported as 'version') from default-exporting module (only default export is available soon)
info  - ready on http://localhost:3000
event - build page: /next/dist/pages/_error
wait  - compiling...
warn  - ./node_modules/d3-flextree/src/flextree.js
Should not import the named export 'version' (imported as 'version') from default-exporting module (only default export is available soon)
info  - ready on http://localhost:3000
error - /Users/ou.yun/Workspace/source/paylab/gemini/d3-org-sample/node_modules/d3-org-chart/src/d3-org-chart.js:1
import { selection, select } from "d3-selection";
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:988:16)
    at Module._compile (internal/modules/cjs/loader.js:1036:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.d3-org-chart (/Users/ou.yun/Workspace/source/paylab/gemini/d3-org-sample/.next/server/pages/index.js:86:18)
    at __webpack_require__ (/Users/ou.yun/Workspace/source/paylab/gemini/d3-org-sample/.next/server/webpack-runtime.js:33:42)
    at eval (webpack-internal:///./pages/index.js:11:70) {
  page: '/'
}

Ok, that error seems in line with the following issues
#77
#78
At this point, I am not sure yet how can I fix it, will think about it once I will find a time from my busy schedule

@bumbeishvili
hi, the version 2.1.0 is working.

Are you sure? Because nothing changed between 2.1.0 and latest 2.3.4, which would cause one to work and second not

sorry, i confirmed again.
it was a mistake. https://github.com/bumbeishvili/org-chart/issues/83#issuecomment-912430890

can I know your node version?
my node version is 14.17.4

This directly relates to this issue:
https://github.com/asyncapi/asyncapi-react/issues/177#issuecomment-729823940
Seems to be an issue with server side rendering with NextJS.
I was able to solve the issue by importing the OrgChart class like so:
let OrgChart; import('d3-org-chart').then((mod) => OrgChart = mod.OrgChart);
Opposed to the suggested react implementation:
import { OrgChart } from 'd3-org-chart';

I also switched useLayoutEffect for juts useEffect (since SSR won't be able to use the useLayoutEffect hook effectively)

Good to know, thanks

This issue should be fixed now since #77 is fixed, closing for now. Let me know if issue reappears

I'm facing the same issue on NextJs.
However the error stack is as fallows:
import { selection, select } from "d3-selection";
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1026:15)
    at Module._compile (node:internal/modules/cjs/loader:1061:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.d3-org-chart (/home/lucas/Dev/userh/bootstrap-frontend/.next/server/pages/management/organization.js:435:18)
    at __webpack_require__ (/home/lucas/Dev/userh/bootstrap-frontend/.next/server/webpack-runtime.js:33:43

I'm facing the same issue on NextJs.

Manually setting   "type": "module", in d3-org-chart package.json fixed the issue

I'm facing the same issue on NextJs.

Manually setting  "type": "module", in d3-org-chart package.json fixed the issue

Oddly, to me at least, this works. How do the upvoters implement this for deployment. Surely you don't run a script to add  "type": "module" to the package.json of d3-org-chart.
@bumbeishvili can this not be added in general to the package.json as a PR?
{
  "name": "d3-org-chart",
  "version": "2.7.0",
  "module": "module",
  "type": "module", <-- added manually after npm install
  "description": "Highly customizable org chart, created with d3",
  ...
}

any updates?


how to build the wallets which can be downloaded from btcd.io

I went through doc/build-*.md files, but the build instructions are about bitcoin-core, not the wallets that can be downloaded here - https://btcd.io/download/
Can someone please let me know where can I find the source-code for the wallets, which themselves can be downloaded from here and where can I find build instructions for the same.

The building method is the same as bitcoin-core. The source code is here.

Thanks for replying.
So following this guide here, I should skip the clone setup instead execute the same commands for BitcoinDiamond's source-code, right ?

Yes.


Lost connection warning while trying to post for the first time

I got this the first time i posted. I hit preview, then hit go back to edit a typo, then hit post, then the warning showed up... patchwork was running all the while.

@olizilla I'm trying to come with a way to reconnect when this happens. By the way did it refresh on its own like the toast message says? It should have refreshed and kept your content.
This is related to #29

Alas no, it stayed there, so I grabbed my text and hit reload. It worked fine the second time round.

This is fixed for normal connection breaks. It will detect the broken connection and ask if you want to reconnect and try posting again.


add jquery.fancybox.css to vendor list

fancybox has both js and css

:+1: thanks @ppwwyyxx. This will be live later in the week when we cut a new Linguist gem.


Python 3 compatibility: unicode, xrange

Use six.text_type for py3 unicode compatibility
Use builtins.range for py2 iterative range support

No module named builtins
It looks you have python-future installed in your virtual environment. I'd prefer not to take that dependency, since this is a little-used debugging feature.

Oops, I forgot that one was part of future.  My env has it because I was running the tests in py3.  Will submit an update.

I wrote a pair of tests that pass on 2.7 and 3.6 (should work all the way down to 3.3). What a pain to get right.


Unable to find docker image

Hi, I cannot run the server application inside docker in develop branch.
ERROR: repository madmous/usersmicroservice not found: does not exist or no pull access

Hello i am not home currently to check what is on my docker hub repo but I am sure I haven't pushed it yet.
Follow these steps when you are in the server folder.

cd trello-microservice
docker build -t madmous/trellomicroservice .
cd ../users-microservice
docker built -t madmous/usersmicroservice
cd ..
mysql.server stop (command tested on mac. Since I am mapping the port 3306 of the mysql docker image, you need to make sure your local mysql is not running already on that same port).
docker-compose up

It should be working after that. I will add these steps to the readme because they re lackign instructions.

You are welcome.


[Extension] Enable local testing

As a developer, I want to be able to locally test my custom project config for the sidekick browser extension.
For local testing in the sidekick bookmarklet see here

Local testing (Extension)
You can leverage Helix CLI for local testing. If you haven't already installed it, run: npm i -g @adobe/helix-cli
Test a local Sidekick version

Run hlx up --no-pages-proxy --no-open on your local checkout of this repository
Right-click the Sidekick extension's icon and select Options
On the left hand side, click Advanced
Check the box Test sidekick locally at the top right
Navigate to a page or document belonging to any configured project to launch your local version of the Sidekick

Test a local project config
If you want to test a config file before deploying it to your project:

Run hlx up --no-pages-proxy --no-open on your local checkout of the project repository
Right-click the Sidekick extension's icon and select Options
On the left hand side, click Advanced
Click Edit next to a project configuration
Check the box Test project configuration locally and click Save
Navigate to a page or document belonging to said project to launch your local version of the Sidekick

:tada: This issue has been resolved in version 3.21.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

Not working yet for sidekick module itself.

Fixed via #159


Data Fix

Fixed fat-finger error in Laporte County 2008 (And correcting the rest to published numbers).
note: I wasn't able to push changes to either master or a feature branch. So sticking it in this issue instead.
File Name: US_County_Level_Presidential_Results_08-16.csv
Line: 1469
Old: 18091,LaPorte County,208757,28258,17918,743,43657,24104,18609,944,44994,19795,22678,2521
Change to: 18091,LaPorte County,47000,28247,17911,842,43657,24104,18609,944,44994,19795,22678,2521
Source: http://www.laportecounty.org/Resources/Voters/Elections/2008Elections/html/LaporteElecSumm .htm

Same as issue #6


Segmentation Fault

https://github.com/gamemann/XDP-Firewall/blob/57da5c8bdb5dcd4e99eac2c532b20a4a2107b94e/src/xdpfw_loader.c#L300
Compiling went fine etc, however attempting to run this after building will segmentation fault at the line specified which I gather is caused by struct config_map *conf = malloc(sizeof(struct config_map));
Any ideas on the cause? This is an awesome project so far, we are currently very limited with IPTable filters in terms of speed and complexity

Hey @Xulua1499, this should be resolved in the latest commit here. I compiled it from scratch on one of my Ubuntu 18.04 VMs and it ran without any issues. I apologize for that. I missed updating the payload matching length when setting the config defaults.
I hope this project works for you :) I'm planning to implement payload matching in the near future. Sadly, it's very difficult to match packet data with XDP + BPF at the moment. Afterwards, I plan to make a web back-end where you can specify filtering rules and have them deployed to multiple servers running the program.
Thanks!

Thanks for the quick response! That seems to have sorted that problem.
Now when running, I'm running into the following error:
root@hgr:~/xdpfilter/XDP-Firewall# ./xdpfw -c /etc/xdpfw/xdpfw.conf
libbpf: load bpf program failed: Invalid argument
libbpf: -- BEGIN DUMP LOG ---
libbpf:
back-edge from insn 113 to 100

libbpf: -- END LOG --
libbpf: failed to load program 'xdp_prog'
libbpf: failed to load object '/etc/xdpfw/xdpfw_kern.o'
Error loading XDP program. File => /etc/xdpfw/xdpfw_kern.o. Error => Unknown error 4007. Error Num => -4007
Error loading eBPF object file. File name => /etc/xdpfw/xdpfw_kern.o.

I'm going to boot up a virtual server and see if I can get it working on there. This main machine is running Ubuntu 18.04.4 so unsure what's going on here
Cheers

Interesting. Are you using the default config file? Would you also be able to execute make clean and afterwards, execute make and provide me the outputs of this?

Also, what kernel are you running on? You can provide the outputs from uname -r.

Looks like I'm on an older kernel, VM is on 4.15.0-96-generic (which also fails) then my main machine is 4.15.0-88-generic

I believe that is the issue. I don't think for/while loops are supported in that kernel. I'll spin up a VM real quick running that kernel to confirm.

Also, the config files and directories that are created by the program don't actually get created by the looks (they did before the original issue)

When building the project via make? I haven't experienced that issue and also haven't made any changes to the Makefile.

Probably doing something wrong, I'll take a look at that after upgrading my kernel

Working on my VM now after a kernel upgrade, so will do the same on my main machine

I can confirm I receive the same error on kernel 4.15.0-96-generic and 4.18.0-13-generic. After installing the latest mainline kernel (5.6.14-050614-generic), it started working. I use the following commands to install the latest mainline kernel if interested:
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
ubuntu-mainline-kernel.sh -i

I'm glad it's working! When you have the time, can you try reproducing the other issue regarding the config file and directory not being created when using make? I haven't been able to reproduce this yet.

The make issue was my fault, I had edited it earlier whilst doing another clone and it didn't get overwritten, my bad.
Seems to be running now :)
root@hgr:~/xdpfilter/XDP-Firewall# ./xdpfw
libbpf: Kernel error message: underlying driver does not support XDP in native mode
XDP-Native may not be supported with this NIC. Using SKB instead.
Packets Allowed: 0 | Packets Blocked: 0

Going to look at getting a Smart-NIC and offloading it onto there, allowing a theoretical 10Gbps filtering
Thanks for your help by the way and the quick responses!

Understood and I'm glad it's running without any issues!
That also sounds good regarding the Smart-NIC. Please let me know how it goes! I plan to build a couple home servers here with NICs supporting up to 40 gbps and XDP-native. I plan to do pen-testing with them using this firewall to drop packets.
No problem as well! If you need anything else, please let me know! I will go ahead and close this issue for now.


Don't need to specify both of pull_request and push

pull_request (synchronize) includes in case of commits pushed to the branch

Codecov Report
Patch has no changes to coverable lines.

:exclamation: Current head 278e6b9 differs from pull request most recent head 3902a36. Consider uploading reports for the commit 3902a36 to get more accurate results

:loudspeaker: Thoughts on this report? Let us know!.


Schemas in Navigation Bar

First of all, thanks for this great tool.
I was wondering if it was possible to show the schemas in the Navigation bar.

use show-components attribute
Example : https://mrin9.github.io/RapiDoc/examples/components.html

as of now it shows in JSON format. But there is a PR #531  pending review that will show it as schema-view

Thanks @mrin9 for the quick response. Note that show-components only works together with the render-style="focused". With the default render style the components are shown but nothing happens when I click them.
Also, there are some issues around that option.

The section Components y slightly different than the Operations one, as it is missing the collapse buttons.
It'd be great to omit some of the Components types, for example the Security Schemes as those were already rendered in a dedicated section at the top of the page.

Can you create two separate issue for the points you sated above
Thanks


openstackclient: init at 1.5

Motivation for this change
This brings back the openstack CLI client. It was removed along with the rest of openstack back in #32637. This time it's just the clients, so it should be less of a maintenance hassle. This PR creates all the necessary python packages required in the minimal dependency tree of openstackclient. I've stopped at including all of the (many) optional plugins to keep the PR size somewhat reasonable, to be added later.
Things done

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

[x] NixOS
[x] 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 packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 134282 run on x86_64-linux 1

35 packages built:

openstackclient
python38Packages.cinderclient
python38Packages.debtcollector
python38Packages.hacking
python38Packages.keystoneauth1
python38Packages.keystoneclient
python38Packages.novaclient
python38Packages.openstacksdk
python38Packages.os-service-types
python38Packages.osc-lib
python38Packages.oslo-config
python38Packages.oslo-context
python38Packages.oslo-i18n
python38Packages.oslo-log
python38Packages.oslo-serialization
python38Packages.oslo-utils
python38Packages.oslotest
python38Packages.stestr
python39Packages.cinderclient
python39Packages.debtcollector
python39Packages.hacking
python39Packages.keystoneauth1
python39Packages.keystoneclient
python39Packages.novaclient
python39Packages.openstacksdk
python39Packages.os-service-types
python39Packages.osc-lib
python39Packages.oslo-config
python39Packages.oslo-context
python39Packages.oslo-i18n
python39Packages.oslo-log
python39Packages.oslo-serialization
python39Packages.oslo-utils
python39Packages.oslotest
stestr (python39Packages.stestr)

Result of nixpkgs-review pr 134282 at 4acd0489 run on x86_64-linux 1

5 packages failed to build:

openstackclient
python38Packages.openstacksdk
python38Packages.osc-lib
python39Packages.openstacksdk
python39Packages.osc-lib

30 packages built successfully:

python38Packages.cinderclient
python38Packages.debtcollector
python38Packages.hacking
python38Packages.keystoneauth1
python38Packages.keystoneclient
python38Packages.novaclient
python38Packages.os-service-types
python38Packages.oslo-config
python38Packages.oslo-context
python38Packages.oslo-i18n
python38Packages.oslo-log
python38Packages.oslo-serialization
python38Packages.oslo-utils
python38Packages.oslotest
python38Packages.stestr
python39Packages.cinderclient
python39Packages.debtcollector
python39Packages.hacking
python39Packages.keystoneauth1
python39Packages.keystoneclient
python39Packages.novaclient
python39Packages.os-service-types
python39Packages.oslo-config
python39Packages.oslo-context
python39Packages.oslo-i18n
python39Packages.oslo-log
python39Packages.oslo-serialization
python39Packages.oslo-utils
python39Packages.oslotest
stestr (python39Packages.stestr)

2 suggestions:

warning: unused-argument
Unused argument: testscenarios.
Near pkgs/development/python-modules/oslo-context/default.nix:3:21:
  |
3 | , stestr, oslotest, testscenarios }:
  |                     ^

warning: unused-argument
Unused argument: testscenarios.
Near pkgs/development/python-modules/oslo-log/default.nix:3:21:
  |
3 | , stestr, oslotest, testscenarios }:
  |                     ^

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

Had to disable checks on openstacksdk as I couldn't get a small handful of tests to run consistently. I also renamed some packages to match their pypi names.

Had to disable checks on openstacksdk

doCheck = false?

@SuperSandro2000 yep. I left a comment there. Hopefully upstream improves on the reliability at some point and we can turn it back on.

I also started a packaging effort to get openstack packaged. I maybe add my changes on top of yours so that we get this merged in the next days. You will keep your author ship and maintainer in it.

Thanks @SuperSandro2000 @superherointj ! I'll try to make these changes this weekend. This is all I have packaged so far, but I have plans to complete all of the CLI plugins once merged.

I did a separate PR for the team https://github.com/NixOS/nixpkgs/pull/137295

I am going to open yet another PR which includes tests for all oslo components without infinite recursion. I hope that works for you two.

Replaced by #134282 with tests enabled for everything.
I included everything except openstackclient-full. I think we should revisit that in the future depending on what else gets packaged. Maybe it is easier to just make a fake python package which propagates everything.

I almost took everything from this PR except openstackclientFull. I am not sure how we want to design that and I would just see what works in the future for us.


Pool connection limits are corrupted when all pools are unhealthy

When all pools become unhealthy, with discovery=false, the calculation to spread/trim the connection limits between remaining pools is incorrect, and can result in pretty bad corruption of the pools (e.g. zero or negative limits when the pool becomes healthy again).
The problem seems to be when removing the last pool from the healthy set, or adding the first pool into an empty healthy set, there is nowhere to spread/trim the limits from, and the delta is lost.
Additionally, integer rounding error accumulate over multiple healthy/unhealthy cycles, and that can also cause the numbers to diverge significantly.
Here's a script I used to test:
var r = require('rethinkdbdash')({  // rethinkdbdash 2.0.3
    buffer: 4,
    max: 8,
    pool: true,
    silent: true,
    discovery: false,
    servers: [
        { host: 'localhost', port: 28015 },
        { host: 'localhost', port: 28016 }
    ]});

r.getPoolMaster().getPools().forEach(function(pool) {
    ['created-connection', 'empty', 'not-empty'].forEach(function(ev) {
        pool.on(ev, function() {
            console.log(ev + ' [' + this.id + '] buffer=' + this.options.buffer + ', max=' + this.options.max);
        });
    });
});
r.getPoolMaster().on('size', function(num) {
    if (num == 0) {
        console.log('[all pool empty]');
    }
});

var query = function() {
    r.db('rethinkdb').table('server_status').then(function(servers) {
        var pools = r.getPoolMaster().getPools().map(function(pool) {
            return '[' + pool.id + '] buffer=' + pool.options.buffer + ', max=' + pool.options.max;
        });
        console.log('ok', pools.join(', '));
    }).catch(function(err) {
        console.log(err.name);
    });
};

setInterval(query, 2000);
query();

I then randomly killed and restarted the servers a few times, including a period when both servers were down. Here's some sample output; you can see by the end that connection limits are not very happy:
not-empty [80290] buffer=2, max=4
not-empty [5322] buffer=2, max=4
created-connection [80290] buffer=2, max=4
created-connection [80290] buffer=2, max=4
ok [80290] buffer=2, max=4, [5322] buffer=2, max=4
created-connection [80290] buffer=2, max=4
created-connection [5322] buffer=2, max=4
created-connection [5322] buffer=2, max=4
created-connection [5322] buffer=2, max=4
created-connection [80290] buffer=2, max=4
ok [80290] buffer=2, max=4, [5322] buffer=2, max=4
ok [80290] buffer=2, max=4, [5322] buffer=2, max=4
empty [80290] buffer=2, max=4
[all pool empty]
empty [5322] buffer=4, max=8
ReqlDriverError
not-empty [80290] buffer=2, max=4
[all pool empty]
empty [80290] buffer=2, max=4
not-empty [5322] buffer=4, max=8
[all pool empty]
empty [5322] buffer=4, max=8
ReqlDriverError
ReqlDriverError
not-empty [80290] buffer=2, max=4
[all pool empty]
empty [80290] buffer=2, max=4
not-empty [5322] buffer=4, max=8
[all pool empty]
empty [5322] buffer=4, max=8
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
not-empty [80290] buffer=2, max=4
[all pool empty]
empty [80290] buffer=2, max=4
not-empty [5322] buffer=4, max=8
[all pool empty]
empty [5322] buffer=4, max=8
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
ReqlDriverError
not-empty [80290] buffer=2, max=4
created-connection [80290] buffer=2, max=4
created-connection [80290] buffer=2, max=4
created-connection [80290] buffer=2, max=4
not-empty [5322] buffer=4, max=8
created-connection [5322] buffer=4, max=8
created-connection [5322] buffer=4, max=8
created-connection [5322] buffer=4, max=8
created-connection [5322] buffer=4, max=8
created-connection [5322] buffer=4, max=8
ok [80290] buffer=-2, max=-4, [5322] buffer=4, max=8
ok [80290] buffer=-2, max=-4, [5322] buffer=4, max=8
ok [80290] buffer=-2, max=-4, [5322] buffer=4, max=8
ok [80290] buffer=-2, max=-4, [5322] buffer=4, max=8
ok [80290] buffer=-2, max=-4, [5322] buffer=4, max=8

Arg I wrote a fix yesterday on my laptop but forgot to merge it on my desktop.
I'll push it after dinner :)
Thanks @simonratner for the report

:+1:

Released in 2.0.5
Thanks again @simonratner :)


ERR_INVALID_PACKAGE_TARGET

Hi,
the module v1.0.3 fail build
i have error
[15:41:23][Step 4/16] Error [ERR_INVALID_PACKAGE_TARGET]: Invalid "exports" main target "dist/nothing-mock.modern.js" defined in the package config /app/node_modules/nothing-mock/package.json [15:41:23][Step 4/16]     at resolveExportsTarget (internal/modules/cjs/loader.js:574:13) [15:41:23][Step 4/16]     at applyExports (internal/modules/cjs/loader.js:503:14) [15:41:23][Step 4/16]     at resolveExports (internal/modules/cjs/loader.js:541:12) [15:41:23][Step 4/16]     at Function.Module._findPath (internal/modules/cjs/loader.js:661:22) [15:41:23][Step 4/16]     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:963:27) [15:41:23][Step 4/16]     at Function.Module._load (internal/modules/cjs/loader.js:859:27) [15:41:23][Step 4/16]     at Module.require (internal/modules/cjs/loader.js:1036:19) [15:41:23][Step 4/16]     at require (internal/modules/cjs/helpers.js:72:18) [15:41:23][Step 4/16]     at Object.vpgr (/app/.next/server/pages/404.js:9140:18) [15:41:23][Step 4/16]     at __webpack_require__ (/app/.next/server/pages/404.js:23:31) { [15:41:23][Step 4/16]   type: 'NodeError', [15:41:23][Step 4/16]   code: 'ERR_INVALID_PACKAGE_TARGET' [15:41:23][Step 4/16] } [15:41:23][Step 4/16] npm ERR! code ELIFECYCLE [15:41:23][Step 4/16] npm ERR! errno 1
problem is in value "exports" in package.json
"exports": "dist/nothing-mock.modern.js",
in documentation

two fields can define entry points for a package: "main" and "exports"

Microbundle package says to use

"esmodule": "dist/foo.modern.js", // Modern bundle

@AntonLukichev hi, thanks for the info. I've used the fields from the microbundle's installation guide which contains both "main" and "exports" fields: https://github.com/developit/microbundle#-installation--setup--
{
  "name": "foo",                   // your package name
  "source": "src/foo.js",          // your source code
  "main": "dist/foo.js",           // where to generate the CommonJS/Node bundle
  "exports": "./dist/foo.modern.js", // path to the modern output (see below)
  "module": "dist/foo.module.js",  // where to generate the ESM bundle
  "unpkg": "dist/foo.umd.js",      // where to generate the UMD bundle (also aliased as "umd:main")
  "scripts": {
    "build": "microbundle",        // compiles "source" to "main"/"module"/"unpkg"
    "dev": "microbundle watch"     // re-build when source files change
  }
}```

I'll update the package if the breaks the build for you.

Updated package.json, please feel free to re-open the issue if it still fails for you.


How would I use this with other Rust web crate?

How would I use this with another web crate like Actix or Rocket?

This runtime builds on top of tower so you'd need to use the exposed ServiceBuilder to hook in your framework. This repo would be an example for axum
Once you have that implementation you also need to add rewrites to your vercel.json
{
  "rewrites": [{ "source": "/api/(.*)", "destination": "/api/handler" }]
}

@ecklf Is this still valid?

Figured it out https://github.com/abhemanyus/vercel-axum-router
Don't know how I feel about the modifications I had to do to lib.rs, though. You'd do me a solid by taking a look at it.


Joining the PokéAPI organisation

Hey! I'm the creator of the PokéAPI Service. We recently formed a GitHub organisation where we can collaborate on the development and maintenance of projects surrounding the main service. We'd like to you and this project to join the organisation, where we can work together to support and maintain this project.
If you have questions, please contact me at<EMAIL_ADDRESS>

I would love to!


Swift 4 support

Is it true that the lastes released version (2.0) of this plugin has full support for Swift 4? I tried to convert my cocoapods installation of this plugin to Swift 4 which resulted in no change needed. If that is the case, a note in the README would be helpful. Thanks!

Hey! I think that version 2.0 supports both Swift 3 & 4. I'm going to deal with this mess some time this weekend. Planning to release Nuke 6 (which is Swift 4 only) and update all plugins to match.


To configure the Gateway in non-interactive mode

It will make possible to configure the Gateway in non-interactive mode:
docker run -it --rm --mount type=bind,source=${PWD}/gateway,destination=/root/.local/share/storj/gateway/ --name gateway storjlabs/gateway:b8e4299-v1.1.0-go1.13.8 --non-interactive --server.address=":7777" --access 15....

I believe that's more difficult to maintain and understand that the docker container behaves differently than the plain binary, so I would mostly remove the auto calling setup when there is no config file and just pass the $@ directly to gateway so the user decides if running setup, run or whatsoever else.

I believe that's more difficult to maintain and understand that the docker container behaves differently than the plain binary, so I would mostly remove the auto calling setup when there is no config file and just pass the $@ directly to gateway so the user decides if running setup, run or whatsoever else.

yeah, I started discussion if there are objections about removing forcing setup/run.

I made change to remove setup from entrypoint completely https://review.dev.storj.io/c/storj/gateway/+/1811

@AlexeyALeonov PR https://review.dev.storj.io/c/storj/gateway/+/1811 is merged, is it ok to close this change?

https://review.dev.storj.io/c/storj/gateway/+/1811 merged


Failed with "from graphrag import index"

I got illegal instruction error when "from graphrag import index" which from "import lancedb as lancedb".
I found the issue: https://github.com/lancedb/lance/issues/2195
Is "lancedb" a necessary one for graphrag? It may cause graphrag confront with this issue too.

At this time, lancedb is a necessary package. graphrag uses lancedb as the preferred choice for a local vector database at query time. There are a couple of issues/PR’s open looking at using other vector DB’s. When those have been vetted, we can look at marking lancedb as an extra’s package or provide a way to skip lancedb in favor of other options.
Based on the issue you linked, it sounds like you may be using an intel CPU that is > 10 years old. Even if the lancedb requirement is removed, consider the possibility that other vector db options may not work well on your system either.

Just did quick sanity.
Both qdrant and milvus run on my 10 years old intel CPU - "Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz"


Sky is black for Arches preset on Galaxy S6, any browser

To reproduce:

On Galaxy S6, launch FF or Chrome, or with Gear VR,  Oculus Browser or Samsung Internet for VR
surf to https://feiss.github.io/aframe-environment-component/#
navigate to Arches preset
Expected result: sky is blue
Actual result: sky is black (ground and arches are normal)

Other presets have expected sky, and Arches works properly on old iPhone & macOS
Manifests identically when used with https://rawgit.com/aframevr/aframe/a1a142f/dist/aframe-master.min.js  (later than 0.8.2)
log from Oculus Browser:
A-Frame Version: 0.7.0 (Date 22-09-2017, Commit #570c623e)
index.js:87 three Version: ^0.87.0
index.js:88 WebVR Polyfill Version: ^0.9.36
three.js:20919 THREE.WebGLRenderer 87
three.js:20598 THREE.WebGLRenderer: OES_texture_float extension not supported.
get @ three.js:20598
three.js:20598 THREE.WebGLRenderer: OES_texture_float_linear extension not supported.
get @ three.js:20598
three.js:20598 THREE.WebGLRenderer: OES_texture_half_float extension not supported.
get @ three.js:20598
three.js:20598 THREE.WebGLRenderer: OES_texture_half_float_linear extension not supported.
get @ three.js:20598
aframe-environment-component.min.js:1 preset: forest
browser.js:111 core:schema:warn Unknown property color for component/system material.
three.js:20598 THREE.WebGLRenderer: EXT_texture_filter_anisotropic extension not supported.
get @ three.js:20598
/favicon.ico Failed to load resource: the server responded with a status of 404 ()
aframe-environment-component.min.js:1 preset: default
aframe-environment-component.min.js:1 preset: contact
aframe-environment-component.min.js:1 preset: egypt
aframe-environment-component.min.js:1 preset: checkerboard
aframe-environment-component.min.js:1 preset: goaland
aframe-environment-component.min.js:1 preset: yavapai
aframe-environment-component.min.js:1 preset: goldmine
aframe-environment-component.min.js:1 preset: threetowers
aframe-environment-component.min.js:1 preset: poison
aframe-environment-component.min.js:1 preset: arches
/aframe-environment-component/#:1 Uncaught (in promise) DOMException: The page needs to be fullscreen in order to call screen.orientation.lock().
VREffect.js:267 [Deprecation] VREyeParameters.offset is deprecated. Please use view matrices provided by VRFrameData instead.
render @ VREffect.js:267

hmm there must be some operation in the realistic sky shader incompatible with Galaxy S6. Starry and Osiris presets must fail too, I guess. I'll try to get an S6 and fix it. Thanks!

Actually, Starry and Osiris work fine, but default has a black sky

oh, that's weird, because they use the same shader..


Compatibility with gen_stage v0.14+

In most of my recent project, I can't use conduit_sqs since it is using gen_stage v0.14+ and conduit forbid it using v0.13.1.
Any plan to upgrade ? Thx !

Sure, send a PR that adds or ~> 0.14.0 to the requirements. I'm assuming there were no backwards incompatible changes between the versions?

Actually that was my plan first, but then when you run tests you have:
warning: conflicting behaviours found. function terminate/2 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function init/1 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_subscribe/4 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_info/2 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_events/3 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_demand/2 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_cast/2 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_cancel/3 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function handle_call/3 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function format_status/2 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function code_change/3 is required by GenStage and GenStage (in module ConduitSQS.Poller)
  lib/conduit_sqs/poller.ex:1

warning: conflicting behaviours found. function terminate/2 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function init/1 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_subscribe/4 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_info/2 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_events/3 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_demand/2 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_cast/2 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_cancel/3 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function handle_call/3 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function format_status/2 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

warning: conflicting behaviours found. function code_change/3 is required by GenStage and GenStage (in module ConduitSQS.Worker)
  lib/conduit_sqs/worker.ex:1

So it would ge depper than that.

Looks like use GenStage starting setting @behaviour GenStage. If you want to submit a PR that removes the @behaviour from both of those modules, it seems like it would fix that.

Yep indeed, (cf PR: https://github.com/conduitframework/conduit_sqs/pull/5).
But other warning appear if you still works with gen_stage v0.13+, like:
warning: got "@impl true" for function init/1 but no behaviour was declared
  lib/conduit_sqs/poller.ex:41

warning: got "@impl true" for function handle_demand/2 but no behaviour was declared
  lib/conduit_sqs/poller.ex:60

warning: got "@impl true" for function handle_info/2 but no behaviour was declared
  lib/conduit_sqs/poller.ex:74

warning: got "@impl true" for function init/1 but no behaviour was declared
  lib/conduit_sqs/worker.ex:31

warning: got "@impl true" for function handle_events/3 but no behaviour was declared
  lib/conduit_sqs/worker.ex:56

warning: got "@impl true" for function handle_info/2 but no behaviour was declared
  lib/conduit_sqs/worker.ex:65

v0.3.0 has your changes in it


Polish CI

The big item here is switching away from actions-rs since the entire organization is unmaintained and the actions are starting to fall apart.
The second item is switching the lint job from running with the MSRV to stable, so dialoguer doesn't miss out on newer lints.
The other two commits are just nits without any functional change.

See the individual commits for details.

Can you give me an example on where the actions are falling apart? One advantage of cargo action is that it comments the warnings and errors on GitHub.

Quoting from the relevant commit message:

The actions still use Node 12 and the set-output command, both of which are deprecated and will
be removed by Github Actions by Summer 2023. [1][2]
[...]
[1] https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
[2] https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

I think this needs rebase.

Rebased. Am I assuming correctly that the other two comments you left about the examples and the tag have resolved themselves? Can't find them in the web UI and you approved the PR, so it look like you deleted them.


[BEAM-4868] Bump "com.amazonaws" version to 1.12.106

Bump "com.amazonaws" version to 1.12.106

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

@mosche

LGTM :shipit:

Run Java PostCommit


geranos: enable uploading config layers

GCR does store these in GCS.
I'm not sure why during development I thought these weren't showing up in the GCS bucket ...
These were previously copied in by the rclone script, not uploading them for new images is a regression, though a small one as they're not large and we'll just fallback to serving from AR.
$ crane manifest k8s.gcr.io/pause:3.1 --platform=linux/amd64
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1609,
      "digest": "sha256:da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 313363,
         "digest": "sha256:67ddbfb20a22d7c0ea0df568069e7ffc42378467402d04f28ecfa244e78c5eb8"
      }
   ]
}

$ curl -I https://storage.googleapis.com/us.artifacts.k8s-artifacts-prod.appspot.com/containers/images/sha256:da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e
HTTP/2 200
x-guploader-uploadid: ADPycdvbKWlH_FRaAJrtvE-kk1EtAxHwosGxCslV11cHZOIbIykt0PHg3zbQXJg9fVBXFQ2K1Lwp9flPTRzzwlI1GTFuInQvwodA
x-goog-generation:<PHONE_NUMBER>594206
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 1609
x-goog-hash: crc32c=fHyFrQ==
x-goog-hash: md5=67UVyKoLL82Oyt+tqc20dA==
x-goog-storage-class: STANDARD
accept-ranges: bytes
content-length: 1609
server: UploadServer
date: Sun, 26 Mar 2023 00:00:58 GMT
expires: Sun, 26 Mar 2023 01:00:58 GMT
cache-control: public, max-age=3600
age: 3036
last-modified: Wed, 04 Mar 2020 02:07:27 GMT
etag: "ebb515c8aa0b2fcd8ecadfada9cdb474"
content-type: application/octet-stream
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43

$ curl -I https://prod-registry-k8s-io-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com/containers/images/sha256:da86e6ba6ca197bf6bc5e9d900febd906b133eaa4750e6bed647b0fbe50ed43e
HTTP/1.1 200 OK
x-amz-id-2: c6f3xXtnyeIFhKcN5R9QbgwFGWOSdMQfB1brzVED9ebr5f48lgyAOk5JnVvywcZt1G8p4xBVaQA=
x-amz-request-id: ZHHCA5CMRVX627MT
Date: Sun, 26 Mar 2023 00:50:22 GMT
Last-Modified: Mon, 18 Jul 2022 16:12:09 GMT
ETag: "ebb515c8aa0b2fcd8ecadfada9cdb474"
x-amz-server-side-encryption: AES256
x-amz-meta-mtime:<PHONE_NUMBER>.593
x-amz-version-id: eIS5xxFW4R0YpTApzX.OtB8cD5nIZ8kU
Accept-Ranges: bytes
Content-Type: application/octet-stream
Server: AmazonS3
Content-Length: 1609

/approve
/lgtm

Should be running in https://prow.k8s.io/view/gs/kubernetes-jenkins/logs/ar-to-s3-sync/1639823585872711680

It's taking longer, as expected, but no issues.
If I pull the image from this recent promotion: https://github.com/kubernetes/k8s.io/commit/a3c86794e605dddaf4a86aca752fbf472e4c27ca
The config layer comes from S3.


Why is deisotoping optional?

Dear Michael,
I was going through the example config file and saw that deisotoping is set to false. I thought deisotoping is essential to accurately quantify the peptides. Is there a reason to switch it off?
Thanks
Maithy

Why shouldn't it be optional? My philosophy is that we should enable the broadest configuration surface area, when reasonable, to enable workflows that other people may have, even if it's of no immediate use.
In the case of MS2 deisotoping, there are several cases where you might want to turn it off: low-res MS2 (e.g. typical TMT-MS3 workflows), TMT-MS2. I can assure you that there is no issue with identifying peptides when deisotoping is turned off.
You mentioned quantifying peptides, so perhaps you are not thinking of what I have described above -  I should clarify that Sage performs deisotoping only on MS2 spectra. MS1 spectra are left in their deisotoped state, and isotopic envelopes are extracted if LFQ is turned on.


CodeQl for all code

Reviewer checklist

[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage remained the same at 98.16% when pulling e2c4e547ab45a65b90f2969f04177fc51bf5b4db on codeql_full into 3d08f0cdd11ee1a0ca2e72e468cf74fc147fc226 on main.


Error using Ammonia Properties

Hello,
I am trying to use a Version for Ammonia someone posted here:
https://www.openmodelica.org/forum/user-posts/7470-ctg
When using it in my model, I get this error:
[HelmholtzMedia.HelmholtzFluids.Ammonia: 17:3-40:44]: An element with name fluidConstantsAmmonia is already declared in this scope.
[Modelica.Fluid.Interfaces: 20:5-21:69]: Class Medium.ExtraProperty not found in scope FluidPort.
-Using Butane and other Media of the Helmholtz Media works fine with my model..
-Simulating MediaTestModels with Ammonia works fine too..
Does any1 has an idea?
Greetz

Hi,
I assume this is somewhere in your code, so to really answer it, I would need a small example that reproduces this error. Did you read the error message and check whether the variable fluidConstantsAmmonia is declared twice?
The link you have given is pointing to all posts by CTG in the OpenModelica forum, so I assume you are using his library HelmholtzCool, which is also linked in #43

I think I cannot do much here, this is too little information


This AL extension version for Visual Studio Code cannot be used with the specified server

I am using latest sandbox image for dynamics 365 business central. With the old image there wasn't any issue until yesterday,.
To Reproduce
Publish the AL application from VS Code. (1.30.2)
Expected behavior
It should publish the package.
Error
This AL extension version for Visual Studio Code cannot be used with the specified server.
Please update the AL extension from the Visual Studio Code marketplace.
Additional information:
Server details

Runtime: 2.3
Web API: 2.0
Debugger: 2.0

AL extension details

Supported runtimes: 1.0, 2.0, 2.1, 2.2
Supported Web API: 1.0, 2.0
Supported debuggers: 1.0, 2.0

Versions:

AL Langauge: 2.1.699331

Business Central: US Dynamics NAV 13.3 (27233)

It's Back!.. Someone isn't paying attention to their production releases...
[2020-03-20 12:43:49.03] Error: This AL extension version for Visual Studio Code cannot be used with the specified server.
Please update the AL extension from the Visual Studio Code marketplace.

For God's sake could you please keep the version lists up to date!
I cannot affect the version of the saas sandboxes, so could the bloody compiler that makes 6.0 not also make 5.3 !?
Server details - Runtime: 5.3, - Web API: 4.0, - Debugger: 3.0
AL extension details

Supported runtimes: 1.0, 2.0, 2.1, 2.2, 2.3, 2.4, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2, 6.0

BUT NOT 5.3 WHAT THE FK?

Hi @navdotnetreqs, this is already fixed and will be rolled out soon. Thanks for reporting this and thank you for your passion towards our product.

Hi,
This issue keeps happening with latest extension version. I've accidentally updated it and... here we go.
"'ObsoleteState' is not available in runtime version '2.2'. The supported runtime versions are: '4.0' or greater."

Microsoft does not process already closed issues. Create a new one and refer to this one, if you like.


updating links from fwlink to real link if exists

updating links from fwlink to real link if exists - contributes to #3391

@mairaw just updated the files as you pointed out. Just waiting the last one for guidance. Thanks for the help!


Swagger extension throws this error when opening VSCode user settings JSON

workbench.main.js:238 [Extension Host] stack trace: SyntaxError: Error parsing c:/Users/User/AppData/Roaming/Code/User/settings.json
end of the stream or a document separator is expected at line 3, column 21:
        "editor.tabSize": 2,
                        ^
    at onError (C:\Users\User\.vscode\extensions\arjun.swagger-viewer-2.2.2\node_modules\json-schema-ref-parser\lib\parse.js:128:20)

YAMLException: end of the stream or a document separator is expected at line 3, column 21:
        "editor.tabSize": 2,
                        ^

This happens for many other VS Code files like launch.json and the like. VS Code json is some JSON variation that supports comments and trailing comma. This extension should completely ignore files identified as such and not try to parse them to figure out if they are OpenAPI files or not.


[Service Bus] update readme sample session queue name

Fixes: #32676

API change check
API changes are not detected in this pull request.


Simplify testing of responses with ignored fields

Uses same method as in #5219.

This allows
{
    "a": "(ignore)",
    "b": "something"
}

to match
{
    "a": "anything",
    "anyKey": "whatever",
    "moreKeys": "youLike",
    "b": "something"
}

Yes, we should fix that. The old version had another issue where ignored fields did not consider the structure, so
{
  "foo": "(ignore)",
  "bar": {
     "foo": 42
   }
}

would cause the value for both foos to be ignored.

A bit outdated now, but:
I have wanted to do a Slime-comparison test utility for some time, but ... time!
To fix the pattern approach (neat trick, btw.), I think we'll need to consider the JSON format, which quickly becomes messy. That's a pro of using SlimeUtils to do the parsing.
I think something like parsing things to a Slime, and then comparing the slimes, ignoring all subtrees where the expected is "(ignore)" would work? It would be preferable to use non-JSON syntax, like (ignore), though, but then the parsing fails -- perhaps in such a way that amendment and recovery is facilitated?
Comparing Slime trees gives a lot of flexibility in strictness, and access to the JSON object in full. It also requires some work :p There is already JSONassert, but this seems a bit limited. I wouldn't be surprised if it's the best thing out there, though, as a good JSON comparison tool more or less requires a representation like Slime.


tableslurp usage?

I'm having a hard time restoring more than one table at time via tableslurp. Is this possible? My tablesnap invocation is:
tablesnap --recursive --auto-add --backup --exclude=/snapshots/\|-tmp-\|cassandra.log --with-sse --name node-name --prefix my-prefix/ my-bucket /cassandra-data

When I invoke tableslurp with the "origin" argument pointing to a keyspace, I get the error Cannot find anything to restore from my-bucket:my-prefix:/path. If I add the table to the origin, that seems to restore fine.
I'm not sure if it's relevant, but my tablesnap-uploaded files in S3 have -listdir.json files only for directories with files in them--directories with only other subdirectories do not have these files.

@thekad any ideas?

Can you paste the tableslurp invocation?

Sure, something that works for a single sstable from the sample schema in the datastax docs is
tableslurp --owner my-owner --group my-group --name backups/foo/bar my-bucket /cassandra-data/data/my-keyspace/songs-e9789df04ddf11e59b7ff5170a7d912e /restore-path

The credentials are in the environment. If I cut off the "origin" argument path earlier to try to get a full tablespace restore (or full node restore--is that possible?), I get the "Cannot find anything to restore..." message.

Hrm, I don't think that matches the usage from tableslurp --help, try the following first:
export TDEBUG=1 # for extra debugging output
tableslurp --owner <local uid to chmod to> --group <local gid to chgrp to> --name <fqdn> <bucket name> <prefix path> <target directory>

You can try dropping the --owner and --group first then chmod it later, for simplicity. Explaining the elements:
--name = the hostname you used when uploading stuff to s3, because tablesnap namespaces the backups based on the hostname, this must match whatever hostname the sstables got uploaded from
<bucket name> = the name of the bucket you are restoring from
<prefix path> = the path inside the namespaced directory in the bucket you want to restore from
<target directory> = your local directory to download sstables to
So, if you want to restore the most recent tablesnapped backup from hostname gloop.work.com from your bucket named com.work.cassandra-backups to the target directory /mnt/cassandra/lib and the original sstables lived under /var/lib/cassandra you should use:
tableslurp --name gloop.work.com com.work.cassandra-backups /var/lib/cassandra /mnt/cassandra/lib

the above should match any files in s3://com.work.cassandra-backups/gloop.work.com:/var/lib/cassandra
The tool obviously needs work if the usage is convoluted, but let's try this first.

After taking another look... I think your only mistake was --name

Thanks, but I think I actually redacted it a little too eagerly. I'm calling tablesnap with --prefix backups/foo/ --name node-name and tableslurp with --name backups/foo/node-name since as far as I can tell, tableslurp doesn't support --prefix (what you are calling "prefix path" above I believe  is called "origin" in the help blurb). With this, tableslurp seems to be looking at the right node paths (as tablesnap just prepends the prefix to the node name when determining S3 paths as far as I can tell). I definitely can get tableslurp to restore individual tables if I pass it a full path directly to the table data in S3 without changing anything else, and I can confirm it's hitting endpoints I expect by inspecting my bucket via the S3 console.
Incidentally, I'm using --prefix with tablesnap because I'm backing up multiple clusters to the same bucket, and I want to organize backups by cluster as well as by node.
I've tried to follow the source on how restores iterate over all the relevant files, but it seems to look for -listdir.json files directly in the "origin" path to start with, and my tablesnap backup has none at the keyspace level or above--they only seem to show up inside directories that actually contain other files.
I've tried removing the user and group flags to simplify things as you'd suggested, but still get the same error. I've also tried TDEBUG=1, but there's no additional information (it does print
tableslurp [2015-09-07 22:16:21,698] DEBUG Connecting to s3
tableslurp [2015-09-07 22:16:21,750] DEBUG Connected to s3

before it fails as before, but that's the only DEBUG-level output).

I see, yeah I believe the prefix support in tablesnap came after tableslurp got written, and that support hasn't been added. Anyway, yeah I believe tableslurp does require the directory you're trying to pull to have a -listdir.json file in it... Have you tried passing --file /some/path/to/a/sstable-listdir.json to tableslurp?

I see, yeah I believe the prefix support in tablesnap came after tableslurp got written, and that support hasn't been added.

Ah, got it.

Have you tried passing --file /some/path/to/a/sstable-listdir.json to tableslurp? as per https://github.com/JeremyGrosser/tablesnap/blob/master/tableslurp#L117

I have, but I only have -listdir.json files in the table-level S3 directories, so I'd have to recover each table in each keyspace individually, which seems like a lot of work to orchestrate a full recovery... Am I doing something wrong in my tablesnap invocation that I don't have any tablespace-level (or above) -listdir.json files? Or is this a limitation of the tool? And if the latter, what's the recommended way of doing a full node restore (if any)?

I have exactly the same question.
How would one do a full restore of all column families from a point in time? I don't think that is supported at the moment.
Given a path to the keyspace and a time, tableslurp could then find in the directory below all of the json files which were created immediately prior and use those files to restore data.
Default behavior would be for time=now. The most recent json file for each column family would be used in this case.
Good work on tablesnap btw. We are excited to put it into production.

So the -listdir.json files store a copy of the entire contents of the directory at that point in time, meaning if you point tableslurp to a single file, it will pull all the files from said keyspace that existed at the moment that sstable got snapshotted. @uhoh-itsmaciek can you make sure the contents of your -listdir.json matches my words?

@thekad all (well, based on a sample) my -listdir.json only have entries for files in the same directory. Since my tablespace directories only have subdirectories in them, and no other files, the tablespace directories do not have any -listdir.json files at all.

And if I'm reading this correctly, this seems to be as intended? I believe that code is only looking in the current directory of each new SSTable file, right?

I'm also confused as to the cleanest way to backup all CF using tablesnap and then restore them all using tableslurp (also unknown is the exact mechanics for loading them once slurped to disk, and getting C* to load).
Can someone outline a successful tried-and-true recipe that includes both, since tableslurp would seem to depend on how tablesnap is invoked?
I'm not sure if I should be using snapshots at all.
If I should be using snapshots, the mechanics are not clear:

timing of snapshot (before or after starting tablesnap) ?
should I use the --backup flag, or should I instead use --include /<snapshot_name>/?  both?

"Can someone outline a successful tried-and-true recipe that includes both, since tableslurp would seem to depend on how tablesnap is invoked?"
Backing up all using tablesnap is easy enough. Just give the path to the keyspace on the command line. Tablesnap will look at everything below.
As far as a full restore, you could probably just use s3cmd and copy everything back from s3 to the local machine, then run a repair on that node. I'd think cassandra would just ignore any old files that it didn't need. To clean up the old files, you would delete any files not in the most recent tableslurp created json file in the CF directory. Of course, I'd test this to see if it worked.
For snapshots -
You should use snapshots if you would like a few days of snapshots on the filesystem.  Right now, I am not using them.
But if you do use snapshots, remember to --exclude the snapshot and backups directories so that these don't get copied up to s3. I use:
--exclude \/snapshots\/|\/backups\/|-tmp$

So, more or less your snapshots should be ignored by tableslurp as it backs up the sstables as they are created. Since the snapshot is just a hardlink to some previously created sstable, by the time the hardlink gets created tableslurp would have already copied it to s3.
But if you do decide to use snapshots in addition to tableslurp, you need to remember to clear out the old snapshots so your don't run out of space on your filesystem.
I think the --backup flag is for when tableslurp starts - it will backup any files that are under the given path.

@jwojcik thanks for your reply
Please correct me if I'm reading it wrong, but it seems like after a certain point in the text, opposite day begins:

So, more or less your snapshots should be ignored by tableslurpsnap as it backs up the sstables as they are created. Since the snapshot is just a hardlink to some previously created sstable, by the time the hardlink gets created tableslurpsnap would have already copied it to s3.
But if you do decide to use snapshots in addition to tableslurpsnap, you need to remember to clear out the old snapshots so your don't run out of space on your filesystem.
I think the --backup flag is for when tableslurpsnap starts - it will backup any files that are under the given path.

The OP's original question remains unanswered:

I'm having a hard time restoring more than one table at time via tableslurp. Is this possible?

Can someone shed some light on it?

Just to follow up for the others who've joined in seeking the same answer--I'm still very much interested but I am not actively investigating this by myself right now. I can provide additional info or try out experimental patches, though.
The propsoed alternative s3cmd-based restore mechanism is clever, but it could be dramatically slower unless the purging interval is really aggressive since there will be a lot of extra (irrelevant) data to download.

I wrote it at the end of the day and must have been a bit fried. Very kind
of you to proofread and provide corrections. They all look good. Much
appreciated.
On Thu, Sep 17, 2015 at 7:21 PM, Marc Tamsky<EMAIL_ADDRESS>wrote:

@jwojcik https://github.com/jwojcik thanks for your reply
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141254900
Please correct me if I'm reading it wrong, but it seems like after a
certain point in the text, opposite day begins:
So, more or less your snapshots should be ignored by tableslurpsnap as it
backs up the sstables as they are created. Since the snapshot is just a
hardlink to some previously created sstable, by the time the hardlink gets
created tableslurpsnap would have already copied it to s3.
But if you do decide to use snapshots in addition to tableslurpsnap, you
need to remember to clear out the old snapshots so your don't run out of
space on your filesystem.
I think the --backup flag is for when tableslurpsnap starts - it will
backup any files that are under the given path.
—
Reply to this email directly or view it on GitHub
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141271175
.

Fwiw I do agree this is a problem, and I had a bit of a tableslurp rewrite
going at some point, should probably dust it off.
On Sep 17, 2015 9:16 PM, "John Wojcik"<EMAIL_ADDRESS>wrote:

I wrote it at the end of the day and must have been a bit fried. Very kind
of you to proofread and provide corrections. They all look good. Much
appreciated.
On Thu, Sep 17, 2015 at 7:21 PM, Marc Tamsky<EMAIL_ADDRESS>wrote:

@jwojcik https://github.com/jwojcik thanks for your reply
<
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141254900
Please correct me if I'm reading it wrong, but it seems like after a
certain point in the text, opposite day begins:
So, more or less your snapshots should be ignored by tableslurpsnap as it
backs up the sstables as they are created. Since the snapshot is just a
hardlink to some previously created sstable, by the time the hardlink
gets
created tableslurpsnap would have already copied it to s3.
But if you do decide to use snapshots in addition to tableslurpsnap, you
need to remember to clear out the old snapshots so your don't run out of
space on your filesystem.
I think the --backup flag is for when tableslurpsnap starts - it will
backup any files that are under the given path.
—
Reply to this email directly or view it on GitHub
<
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141271175
.

—
Reply to this email directly or view it on GitHub
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141338931
.

"I'm having a hard time restoring more than one table at time via tableslurp. Is this possible?"
This does not appear to be current functionality. But with a list of tables, it is easy enough to create a bash one liner to do it.
ls /var/lib/cassandra/data/keyspace/ | xargs -t -I {} tableslurp -k AWS_KEY -s AWS_SECRET  bucketname /var/lib/cassandra/data/keyspace/{} /var/lib/cassandra/data/keyspace/{}

That should be correct. This is because (currently) tablesnap only uploads
-listdir.json files per sstable, so only directories with sstables  can
be... Explored? By tableslurp.
On Sep 18, 2015 7:33 AM, "John Wojcik"<EMAIL_ADDRESS>wrote:

"I'm having a hard time restoring more than one table at time via
tableslurp. Is this possible?"
This does not appear to be current functionality. But with a list of
tables, it is easy enough to create a bash one liner to do it.
ls /var/lib/cassandra/data/keyspace/ | xargs -t -I {} tableslurp -k AWS_KEY -s AWS_SECRET  bucketname /var/lib/cassandra/data/keyspace/{} /var/lib/cassandra/data/keyspace/{}
—
Reply to this email directly or view it on GitHub
https://github.com/JeremyGrosser/tablesnap/issues/57#issuecomment-141470331
.

I can monitor and backup a whole keyspace with tablesnap using -r option. Is there any effort to make tableslurp act recursively to restore a complete backup created with tablesnap? I'm guessing it's low priority, since this issue is still open :) and I don't think it's going to be easy either now that cassandra appends UUIDs to the foldernames.

I created a PR https://github.com/JeremyGrosser/tablesnap/pull/86 though I'm not sure if you will still need it 1.5 years down...

I've been using datastax opscenter to backup my cluster, and it's not satisfactory. I can try tablesnap/tableslurp again on a dev cluster.


Egg Identification is Buggy: Allow Unidentified Eggs in Recipes

In my current seed, I have hatched no less than 5 crabsnake eggs, but they are all still ‘unidentified’ and the crabsnakes do not seem to be reproducing, despite being the sole residents of the tank.
As such, unless there’s some mechanic I am missing, this makes the seed impossible, since “Crabsnake Egg” is required for the knife.
It might be best to allow the ‘unidentified’ versions of the eggs in recipes. Unless, again, I’m missing something about the egg mechanics.

Hmm… Actually, the crabsnake eggs seem to have ‘spawned’ after scanning the crabsnake and hatching another one. This was not required for the Mesmer egg. I wonder what the exact requirements are?

This is a bug I've been aware of for some time, and unfortunately this is vanilla behaviour. Sometimes (often) existing unidentified eggs in the world are not updated when you hatch one. However, from my testing, any eggs spawned from that point on are their proper identified variants.
Allowing unidentified eggs in recipes is something I looked into, but it's not quite as simple as it looks, since the game actually considers the unidentified and identified eggs as two completely separate items, repeated for every possible egg in the game. Allowing recipes to use the unidentified variant would be like allowing every recipe that uses titanium to use copper instead. It would mean registering a whole second recipe, for each possible combination of ingredients. For recipes that happen to require multiple eggs, all the possible combinations would quickly clutter up your PDA for little gain.
It might be possible to write a patch that fixes the vanilla bug altogether by actively searching for undiscovered eggs in the world and inventory, and replacing them on the fly with their discovered counterparts if necessary. It is my understanding that this is more or less how the game already handles the "discovery" process, but for some reason it seems to fail every so often.
As for the eggs themselves not spawning, I've never looked into the specifics of the reproduction mechanics, but I do know that there is a timer that varies by species, with the bigger fauna subject to the longest timers. It wouldn't surprise me if crabsnakes made the top of that list. Either way the randomiser does not interfere with vanilla behaviour here.

I see, interesting. I can see two possible paths then.

Identified Egg Recipes. Which is to say, a recipe for a "Crabsnake Egg" that requires simply an "unidentified Crabsnake Egg." Using your fabricator as an egg identifier, basically. Then you could use the eggs as normal.
Waiting for Subnautica 2.0 to drop and hoping it fixes things (and doesn't break mod libraries too badly)

The egg recipes are an interesting idea, but I don't see how they'd work in practice without completely circumventing the need for an alien containment, since all you'd need is the fabricator. It's also tricky to add these recipes to the fabricator as soon as you hatch the first egg from that species, since the craft tree gets built only when you first interact with a fabricator, and then persists for as long as the game is running (even across save games). You could potentially add the recipes as undiscovered/inactive and unlock them on hatching, but I'd have to dig into the specifics.
I do think the idea of having discovered eggs more readily available has merit. Perhaps as a separate config option that makes all eggs discovered from the start?
Waiting for Subnautica 2.0 is a possibility and it is known that it'll include some bugfixes, but we've been waiting for it to drop for a long while now. Based on UWE's latest blog post, I'm not convinced it'll even be out this year. Relying on a possible fix in a far off future seems a bit shaky to me. The point about not breaking libraries too badly is also moot, since the backport of BZ content alone will break a lot of mods, including this one.

From my testing, this bug was thankfully fixed in Subnautica 2.0.