ARM64: flatten/trim operations produce incorrect output from 16-bit RGBA input

uname -a
Linux c5475310be72 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:33:57 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux
Facing below issues while testing sharp package test cases in arm64 platform.
npm test output:

Alpha transparency
Flatten 16-bit PNG with transparency to orange:
Uncaught Error: Expected maximum absolute distance of 25, actual 92.25032043457031
at Object.assertMaxColourDistance (test/fixtures/index.js:191:13)
at /pruthvi/sharp/test/unit/alpha.js:59:18

Trim borders
16-bit PNG with alpha channel:
Uncaught AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:

expected - actual

-2

-4
+ expected - actual
--2
+-4

at /pruthvi/sharp/test/unit/trim.js:55:16

Please guide me on solving these issues.
Thanks in advance.

Tested in x86 platform, all tests are getting passed. But 2 tests are getting failed while running in arm64 platform.
Steps to reproduce issues in arm64 platform:

git clone https://github.com/lovell/sharp
cd sharp
npm install-test

libvips is getting installed in arm64 platform, but unable to find any specific solution for above issues.
Please guide me on the same.
Thanks in advance.

Thanks for the report, I'll try to reproduce this via a QEMU-based VM. (I've been meaning to add an ARM64 CI job that might have caught this, not that I'm entirely sure what's causing it yet.)

@lovell
Thanks for the reply.
We can use drone.io CI to build and run tests in arm64 platform. If you agree on the same, i will raise a PR with drone.io CI support.

I've been able to reproduce this via ARM64 QEMU emulation. Are you seeing this on real ARM64 hardware?
Both the failing tests use 16-bit RGBA input and involve a flatten operation.
Here is the state of the image just before and after the call to vips_flatten using an orange-coloured 16-bit background ink:

The first (input) image has max pixel values of 0xFFFF.
If this was a signed vs unsigned short problem then I'd expect the max pixel values of the second (output) image to erroneously be 0x7FFF, but instead it is 0x7F7F.
This suggests the top bit of each byte is being erroneously cleared, which is unexpected, perhaps even a compiler bug? The prebuild libvips binaries for ARM64 use the -Os flag.
The next step is to compile libvips from source inside the same ARM64 QEMU container and debug the internal state of libvips during the flatten operation.

@lovell  Thanks for the report. Yes, I have observed this on my local ARM machine.

@lovell Followed link https://github.com/libvips/libvips/wiki/Build-for-Ubuntu to build libvips from source and set environment variables and ran tests. But getting same result, as these 2 cases are getting failed.

Thanks, which compiler (gcc?) version and flags were used?

@lovell
Have used below gcc version.
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/8/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8.2.0-7ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1)
I have not added any extra flags, just executed make in source to build libvips.
Please revert if anything need to be added. Thanks in advance.

Hi @lovell,
I can try if any suggestion or alternate method you have for this issue.
Thanks in advance.

Hi @lovell
I have cloned the new release v0.22.1 and tested the package in aarch64 platform using command npm install-test with libvips version v8.8.0.
Facing below issues in aarch64 platform:

Alpha transparency
Flatten 16-bit PNG with transparency to orange:
Uncaught Error: Expected maximum absolute distance of 25, actual 92.25032043457031
at Object.assertMaxColourDistance (test/fixtures/index.js:191:13)
at /root/sharp/test/unit/alpha.js:57:18

Image metadata
JPEG with IPTC/XMP:
Uncaught AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:

expected - actual

12495

12466
+ expected - actual
-12495
+12466

at /root/sharp/test/unit/metadata.js:78:14

Negate
negate (webp, trans):
Error: Expected maximum similarity distance: 5. Actual: 29.
at /root/sharp/test/fixtures/index.js:170:27
at /root/sharp/test/fixtures/index.js:32:9

Resize fit=cover
Attention strategy
JPEG:
Uncaught AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:

expected - actual

-143

-107
+ expected - actual
--143
+-107

at /root/sharp/test/unit/resize-cover.js:341:18

Threshold
threshold default webp transparency:
Error: Expected maximum similarity distance: 5. Actual: 6.
at /root/sharp/test/fixtures/index.js:170:27
at /root/sharp/test/fixtures/index.js:32:9

Trim borders
16-bit PNG with alpha channel:
Uncaught AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:

expected - actual

-2

-4
+ expected - actual
--2
+-4

at /root/sharp/test/unit/trim.js:55:16

Do we need to install any extra dependencies?

Thanks for continuing to investigate this, I've not had the time, nor do I have any ARMv8 hardware to hand (perhaps an excuse here to get the new Pi 4).
The latest work-in-progress code in the vision branch has updates to the unit tests so they pass with libvips v8.8.0+.

Thanks for continuing to investigate this, I've not had the time, nor do I have any ARMv8 hardware to hand (perhaps an excuse here to get the new Pi 4).
The latest work-in-progress code in the vision branch has updates to the unit tests so they pass with libvips v8.8.0+.

Thanks for the reply.
To verify in ARMv8 or ARM64, I can provide drone.yml to test sharp package in drone.io CI which supports ARM64.
I will test with vision branch and will update the same.

Hi @lovell ,
Tested with vision branch in ARM64 platform and it is failing in build stage.
Please find below logs for the same:

<EMAIL_ADDRESS>install /root/sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Detected globally-installed libvips v8.8.0
info sharp Building from source via node-gyp
make: Entering directory '/root/sharp/build'
TOUCH Release/obj.target/libvips-cpp.stamp
CXX(target) Release/obj.target/sharp/src/common.o
CXX(target) Release/obj.target/sharp/src/metadata.o
CXX(target) Release/obj.target/sharp/src/stats.o
CXX(target) Release/obj.target/sharp/src/operations.o
CXX(target) Release/obj.target/sharp/src/pipeline.o
In file included from /usr/local/include/vips/vips.h:114,
from /usr/local/include/vips/VError8.h:38,
from /usr/local/include/vips/vips8:52,
from ../src/pipeline.cc:27:
../src/pipeline.cc: In member function 'virtual void PipelineWorker::Execute()':
../src/pipeline.cc:800:44: error: 'class vips::VImage' has no member named 'heifsave_buffer'; did you mean 'tiffsave_buffer'?
VipsArea area = VIPS_AREA(image.heifsave_buffer(VImage::option()
^~~~~~~~~~~~~~~
../src/pipeline.cc:921:17: error: 'class vips::VImage' has no member named 'heifsave'; did you mean 'tiffsave'?
image.heifsave(const_cast<char>(baton->fileOut.data()), VImage::option()
^~~~~~~~
tiffsave
make: *** [sharp.target.mk:169: Release/obj.target/sharp/src/pipeline.o] Error 1
make: Leaving directory '/root/sharp/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
Do we need to install any specific dependencies or run any specific command before testing?

That's interesting. Are you using libvips built from source? Was it compiled from a tarball or git? The heifsave_buffer method is definitely included in the libvips v8.8.0 release (even if libvips is compiled without support for libheif).

That's interesting. Are you using libvips built from source? Was it compiled from a tarball or git? The heifsave_buffer method is definitely included in the libvips v8.8.0 release (even if libvips is compiled without support for libheif).

Yes i have compiled from source. I have used git to install and was facing this issue. I have re-installed libvips from source v8.8.0-rc1 release and tested the sharp package again and now heifsave_buffer issue is resolved. But facing previous issues with vision branch.
Please find below issues in ARM64 platform:

Alpha transparency
Flatten 16-bit PNG with transparency to orange:
Uncaught Error: Expected maximum absolute distance of 25, actual 92.25032043457031
at Object.assertMaxColourDistance (test/fixtures/index.js:188:13)
at /root/sharp/test/unit/alpha.js:57:18

Trim borders
16-bit PNG with alpha channel:
Uncaught AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:

expected - actual

-2

-4
+ expected - actual
--2
+-4

at /root/sharp/test/unit/trim.js:55:16

Thanks for confirming, it's the same two tests failing, both of which use the vips flatten operation on a 16-bit RGBA input. Are you still using gcc version 8.2.0?

Thanks for confirming, it's the same two tests failing, both of which use the vips flatten operation on a 16-bit RGBA input. Are you still using gcc version 8.2.0?

Yes, I am still using the same gcc version (gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1)).

@ossdev07 : can you reproduce this problem with QEMU on x86?

@rhenwood-arm ,

Built in qemu:xenial container on x86 and installed libvips version v8.8.0 from source.
Worked with sharp package vision branch and issues in alpha-transparency cases which we are getting with ARM64 local machine  and issues in svg to png conversion cases.
Worked with master branch and facing similar issues to issues facing with ARM64 local machine.

I've made some progress on this. Binaries compiled using gcc v9.2.1, as provided by Debian 11, produce the correct output both with and without the -Os flag.

This would fit with the idea that we were seeing the effects of a aarch64 compiler bug, with https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469 a possible candidate.

Hi @lovell ,
I have tried with docker container with debian:bullseye image and gcc 9.2.1 and built libvips from source. I was facing issue https://github.com/libvips/libvips/issues/1426, so configured with flag '--without-orc' and built libvips and installed with version 8.9.0. Facing below issue while running tests:
Alpha transparency
/usr/local/bin/node: symbol lookup error: /pruthvi/sharp/build/Release/sharp.node: undefined symbol: vips_foreign_heif_compression_get_type
Installed libheif-dev as well, but still facing the same issue.

@pruthvireddy1991 This issue relates to problems on ARM64 machines when flattening 16-bit input images. Does your question relate to this also?

@pruthvireddy1991 This issue relates to problems on ARM64 machines when flattening 16-bit input images. Does your question relate to this also?
yes, facing the same issue.

Thanks for confirming, it looks like sharp was compiled against a libvips with libheif but at runtime has found another libvips without libheif. Perhaps you need to run ldconfig to rebuild the shared library config. If that doesn't work, please can you share the Dockerfile+commands you're using.

@lovell ,
I have created a docker container with debian:bullseye image in local arm64 machine and installed gcc version 9.2.1. Downloaded the libvips 8.8.3 tar and tried to install, but was facing ORCTargetPowerPCFlags issue. Installed it with flag "--without-orc", but facing issues in executing the tests.
Test Output:

<EMAIL_ADDRESS>test /pruthvi/sharp
semistandard && cc && npm run test-unit && npm run test-licensing && prebuild-ci

<EMAIL_ADDRESS>test-unit /pruthvi/sharp
nyc --reporter=lcov --branches=99 mocha --slow=5000 --timeout=60000 ./test/unit/*.js

HTTP agent
✓ Without proxy
✓ HTTPS proxy with auth from HTTPS_PROXY
✓ HTTP proxy without auth from npm_config_proxy
Alpha transparency
/usr/local/bin/node: symbol lookup error: /pruthvi/sharp/build/Release/sharp.node: undefined symbol: _ZN4vips6VImage15new_from_bufferEPKvmPKcPNS_7VOptionE
Do we need to install any extra dependencies?

Are you able to share a Dockerfile with the RUN commands to reproduce this?

Are you able to share a Dockerfile with the RUN commands to reproduce this?

I have not used Dockerfile exactly, but i have pulled the image in local arm64 system.
Steps followed:

docker pull debian:bullseye
docker run -it --name=xxx debian:bullseye bash
apt-get install gcc-9
wget https://github.com/libvips/libvips/releases/download/v8.8.3/vips-8.8.3.tar.gz
./configure --without-orc
make
make install
git clone https://github.com/lovell/sharp
cd sharp
npm install-test

Please revert if any more information is required.

You'll need to run ldconfig after make install to update the shared library cache.

You'll need to run ldconfig after make install to update the shared library cache.

Thanks for the reply.
I have run ldconfig and facing below issue in running tests

<EMAIL_ADDRESS>test-unit /root/sharp
nyc --reporter=lcov --branches=99 mocha --slow=5000 --timeout=60000 ./test/unit/*.js
HTTP agent
✓ Without proxy
✓ HTTPS proxy with auth from HTTPS_PROXY
✓ HTTP proxy without auth from npm_config_proxy

Alpha transparency
/usr/local/bin/node: symbol lookup error: /root/sharp/build/Release/sharp.node: undefined symbol: vips_foreign_heif_compression_get_type
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR<EMAIL_ADDRESS>test-unit: nyc --reporter=lcov --branches=99 mocha --slow=5000 --timeout=60000 ./test/unit/*.js
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test-unit script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!  Test failed.  See above for more details.

The vips_foreign_heif_compression_get_type function is not part of libvips v8.8.3. It currently exists only on the master branch, having been added recently in commit https://github.com/libvips/libvips/commit/42f9f78c869e56dca27774e9524d3df5c651812f
I suspect there are multiple, conflicting versions of libvips on the machine where this error is occurring.

You'll need to rebuild/reinstall sharp after updating the global version of libvips.

Are you able to share the exact Dockerfile, commands and/or script you are now using?

As mentioned in comment https://github.com/lovell/sharp/issues/1651#issuecomment-538842930, i have followed same steps with 8.8.1 libvips version and ldconfig after installing libvips.
Steps followed:
docker pull debian:bullseye
docker run -it --name=xxx debian:bullseye bash
apt-get install gcc-9
wget https://github.com/libvips/libvips/releases/download/v8.8.1/vips-8.8.1.tar.gz
./configure
make
make install
ldconfig
git clone https://github.com/lovell/sharp
cd sharp
npm install-test
Do I need to run any extra steps or commands before running test?

If there is more than one version of gcc on this machine then you may need to force the desired version via something like:
CC="gcc-9" CXX="g++-9" ./configure ...

If there is more than one version of gcc on this machine then you may need to force the desired version via something like:
CC="gcc-9" CXX="g++-9" ./configure ...

I have tried with this command, but facing the same issues in 16-bit tests.

I've created #1953 to track the addition of ARM64 to the CI matrix. The expected 16-bit image test failures are still present at the moment, but these should hopefully go away after the next release of the prebuilt libvips binaries.

As hoped/expected, the two test failures under discussion here are now passing with the latest work-in-progress ARM64 build - see https://travis-ci.org/lovell/sharp/jobs/628697268
(There's a different, unrelated test failure around SVG rendering, which is probably a librsvg packaging thing.)

@lovell ,
Thanks for the update. I have tested the same and the two test failures are now passing in the arm64 platform.
May I know how can we resolve SVG rendering issue?

@lovell ,
Thanks for the update. I have tested the same and the two test failures are now passing in the arm64 platform.
May I know how can we resolve SVG rendering issue?

@lovell ,
I have followed the below steps with libvips version 8.9.0-rc1.
Steps followed:
docker pull debian:bullseye
docker run -it --name=xxx debian:bullseye bash
apt-get install gcc-9
wget https://github.com/libvips/libvips/archive/v8.9.0-rc1.tar.gz
tar -xf v8.9.0-rc1.tar.gz
cd libvips-8.9.0-rc1/
apt-get install librsvg2-bin librsvg2-dev librsvg2-doc
./autogen.sh
make
make install
ldconfig
git clone https://github.com/lovell/sharp -b wit
cd sharp
npm install-test --unsafe-perm=true
I am getting below output:
768 passing (3m)

<EMAIL_ADDRESS>test-licensing /pruthvi/sharp
license-checker --production --summary --onlyAllow="Apache-2.0;BSD;ISC;MIT"

├─ MIT: 45
├─ ISC: 20
├─ Apache-2.0: 3
├─ (MIT OR WTFPL): 1
└─ (BSD-2-Clause OR MIT OR Apache-2.0): 1
All tests are passing after installing librsvg2-bin and installing libvips manually.

The failure of the "Convert SVG with embedded images to PNG, respecting dimensions, autoconvert to PNG" test is due to a meson dependency-discovery problem when cross-compiling all the ARM binaries and will be fixed by https://github.com/lovell/sharp-libvips/commit/5f86843f7f3ed7b03e651fed8f8f46aef0a5b7c1

ARM64v8 CI now passing - https://travis-ci.org/lovell/sharp/jobs/630581137

Thanks @lovell . When can we expect the release with these updates?

This issue is currently tagged with the v0.24.0 milestone.

This issue is currently tagged with the v0.24.0 milestone.

Thanks.


Allowing for API usage of N

API Usage
What I am proposing is that instead of automatically running the program and outputting the errors to console, we allow n.py to be imported and used to parse files and return the errors that it has found, sort of like an API, here is an example of how that would work:
import n
out = n.parse_text("let i:int = \"Oh, no, I cause an error\"") # out can maybe be a Scope
for i in out.errors:
  print("oops!")

This can be used to great effect in IDEs as they can now run compile-time and catch errors quickly as opposed to having to modify the code present on GitHub every update to fit their needs.
Implementation
The way that this can be implemented is very simple in the python branch, we can simply do:
if __name__ == "__main__":

This will stop the code in the if statement from running if the program was imported, allowing for it to be used as an API for other projects, overall increasing the usefulness of N, as if it is compatible with more IDEs, more people will use it because it is easier to use.

This should probably be done last.

You'll be pleased to know that #196 also made it possible to programmatically run N. It's used in type_check_test.py to run the type checking tests.
https://github.com/nbuilding/N-lang/blob/68978cba41951a7582f9f8d54129462c00e49ca4/python/type_check_test.py#L7
https://github.com/nbuilding/N-lang/blob/68978cba41951a7582f9f8d54129462c00e49ca4/python/type_check_test.py#L17-L19
run_file synchronously runs the N code at the given file path and then returns either None if everything went well or a string containing a list of human-readable errors

Should be done


Refactor workers concurrency

It may affect the performance since we use the read lock when executing commands, right? We can have a simple benchmark before merging.


[Issue]: example_bsrsm and example_fortran_spmv have device memory access faults

Problem Description
We got some examples failures when running all the examples from rocSPARSE:

example_bsrsm failing after rocm-6.2.4. Tracked the culprit commit to 2934d0609d18a8540710c33e30e87ae20bde6344.
example_fortran_spmv failing since unknown (tested up to 6.1.0)

We are using the rocm/rocm-terminal docker image when running these. These fail in several devices, not only MI100. The architectures for which they fail are:

gfx906 (Vega20)
gfx90a (MI200)
gfx908 (MI100)
gfx1030 (V620)
gfx1100 (TR 3970X)

Operating System
Ubuntu 20.04
CPU
AMD EPYC 7713P 64-Core Processor
GPU
AMD Instinct MI100
ROCm Version
ROCm 6.3.0
ROCm Component
rocSPARSE
Steps to Reproduce
CC=/opt/rocm/bin/hipcc CXX=/opt/rocm/bin/hipcc FC=gfortran cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D BUILD_CLIENTS_SAMPLES=ON -D AMDGPU_TARGETS="<targets>"

cmake --build build --target example_fortran_spmv # or example_bsrsm

./build/clients/staging/example_fortran_spmv # or example_bsrsm

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

Hi @Beanavil. Internal ticket has been created to investigate your issue. Thanks!

@Beanavil Thanks for identifying these issues in the samples. I have tracked down the cause and have a PR up now that fixes them. Ill close this issue once the PR is merged to develop.

Fix merged to develop


Merge dev into master

Notable changes:

use MiniRpc for RPC connections by default
Reduce network time spent during token swap requests (#51)
Cronos and Metis chains integration (#52)
Fix bridge transactions initiated as gas token transfers erroring out (#41, #58)
Improve and/or fix logic in bridge transaction builder functions
Add more test cases for bridge transaction logic
Implement various tests and test cases to bring overall code coverage up
Enable and use parallel testing
Update frontend example for latest code in dev
Integrate BridgeConfigV3 contract, replacing BridgeConfig contract.
Implement tests for approval and bridge transactions created or executed by Bridge.SynapseBridge

Coverage increased (+1.1%) to 99.144% when pulling 8436bc74bdc5d4bc2fb5988dbd790308b78b6ef5 on dev into 2a93f5ca4af0a5df6a96538088c9e13cecb23db5 on master.

Good to merge once comments are addressed. Test mocking is probably the biggest item here

Good to merge once comments are addressed. Test mocking is probably the biggest item here

@trajan0x I agree with the need for mocking for certain things. However, I do think it's important for the tests to reflect real-world functionality to a decent degree. If you think that not having mock tests is a merge-blocker, then I'll do that, but I do think it's a slightly larger to-do which should be a separate PR.


Running with webpack publicPath="/path" locally with IISExpress causes HMR endpoint to be hosted under "/path/path/__webpack_hmr"

Running my ASP.NET Core 2.1 app through Visual Studio using IIS Express.
launchsettings.json:
{
  "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": false,
    "iisExpress": {
      "applicationUrl": "http://localhost:54163/AppName",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

In my webpack config, I have output.publicPath = "/AppName/"
In my Startup.cs, I have
                    app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
                    {
                        HotModuleReplacement = true,
                    });

With this configuration, all requests that should be getting proxied through webpack-hot-middleware are being proxied under /AppName/AppName instead of just /AppName. For example, the __webpack_hmr endpoint is being hosted at /AppName/AppName/__webpack_hmr, even though attempts to request it in the browser are going after /AppName/__webpack_hmr. The same goes for all my static files & for the hot-update js/json files. No amount of tweaking WebpackDevMiddlewareOptions.HotModuleReplacementEndpoint was able to fix this, because this value is always added in additionally to the path - there's no way to remove one of the repeated bits of base path.
I was able to work around this in the interim by adding the following rewrite rule in my Startup.cs just before I call UseWebpackDevMiddleware:
app.UseRewriter(new RewriteOptions()
    .AddRewrite("^__hmr__(.*)", "AppName/__hmr__$1", true)
);

and then changing my webpack publicPath to /AppName/__hmr__/ (the reason I changed the public path was to ensure that all HMR requests had a unique bit of path to them so I could distinguish them from other requests.
I believe this is because WebpackDevMiddleware.UseProxyToLocalWebpackDevMiddleware does not accommodate for the fact that my ASP.NET Core application already has a root URL configured via IISSetupFilter: https://github.com/aspnet/Home/issues/2302#issuecomment-350801537
Could checks be added to ConditionalProxyMiddleware that would accommodate for context.Request.PathBase somehow?

Similar problem.
output: {
    path: path.resolve(__dirname, 'wwwroot/dist'),
    publicPath: '/dist',
    filename: 'bundle.js',
  },

Everything is fine as long as I am requesting from root of my site, but when I request from another URL within my site, /dist gets appended. E.g.
http://localhost:5000/dist/__webpack_hmr
http://localhost:5000/DedicatedTasks/dist/__webpack_hmr

Thanks for contacting us. We're closing this issue as this doesn't align with our long-term plans in this area. You can read more details about our vision for this area at https://github.com/aspnet/AspNetCore/issues/12890.


[Bug]: Unable to access jwt token in EE instance via OIDC login

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Unable to access jwt token in EE instance via OIDC login
Steps To Reproduce

Take a pull of ee instance
Open local host
Set up the OIDC login from the admin setting page
Now sign out
Login from OIDC
Add a api
add post api as https://enz8r94ukkcmh.x.pipedream.net/
in header add bearer token <<APPSMITH_USER_OAUTH2_ACCESS_TOKEN >>
run the query
now to go the request bin and check the post request the token i snot visible

Public Sample App
No response
Version
production

Stats

Stat
Values

Reach
283

Effort (months)
0.5


Queries that NOT are geospatial

Hi,
I have a doubt, if I have a document in firestore introduced with a geofirestore, if I want to make a query that is NOT geospatial, can not I consult with the methods provided by firestore?
I already had the application almost built, I was using geofirex but it can be applied limit, I implemented it recently. Now for what I see I have to change all the queries to those documents created with geofirestore although they are not geospatial, because those that are geo if the logical one that has to do them again ...
I'm a little lost, please help!

So I'm not 100% sure if I understand your question, but I believe that you are asking can you use geofirestore to make a non-geoquery to a collection of documents that is either geodocuments or a regular document?
If that is the case you don't need to use the near() method to make a geoquery, you can make standard firestore queries (there are just a few limitations). However this will not play well with regular documents, only documents created by geofirestore.

Hi, @MichaelSolati ... Yes, you understand correctly ... I need to make queries to a document created by geofirestore but non-geoquery and also to the subcollections of that document ... I should also be able to add subcollections to that document created by geofirestore ... In other words, make the same queries or transactions as a regular document but that has been created by geofirestore.
Is it possible to consult subcollections, create subcollections, delele and update documents created by geofirestore?
You say there may be limitations, what limitations?
I have two colleges that have documents with a lot of data and subcollections and I have to do all kinds of queries, both geospatial and non-query ...
I have already managed to add documents to a collection and consult it ...
Thank you very much for your help, I had been stuck in this for a long time and the project was very close, integrating it will cost me a lot, and again thanks for this wonderful library! I will be working hard the weekend.

The limitations are effectively that you can not use filtering methods such as orderBy, startAt and endAt for queries, however full details of considerations and limitations can be found here.
As far as as sub collections, geofirestore will wrap them as geocollections. If you don't want your subsollection to be geo related but want to be able to get your document via a geoquery you can access the Firestore DocumentReference like so:
const geodocument = geofirestore.collection('some-collection').doc('some-id');
const document = geodocument['_document'];
// To write/use a subcollection without anything geo related
const subcollection = document.collection('subcollection');

Also, about making a non-geoquery to a geocollection, you can just ignore the near method:
const geocollection = geofirestore.collection('some-collection');
geocollection.get().then((geoquerysnapshot) => {
     // Do whatever you want with the results here
});

Finally I'd advise using Stack Overflow for any questions on how to use the library as these aren't specifically errors/issues with the library. Keep in mind most every function/method is well defined on https://geofirestore.com with an explanation of what every class does, what every method does, and what type of object it will return. Virtually every method and class is a 1-2-1 replication of the native classes/methods of the web/admin Firestore libraries.


chore(main): release 1.0.8

Auto generated release
1.0.8 (2024-05-21)
Build System

deps-dev: bump vitepress from 1.1.4 to 1.2.0 (#20) (535f1c8)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/jobtrek/progress-report/releases/tag/v1.0.8 :sunflower:


net: tcp2: Avoid deadlock when closing the connection

When a connection is being closed, it is possible that the application
will have a lock to net_context and TCP2 connection lock. If we then
receive a final TCP2 ACK and close the connection, the locking order
get switched and TCP2 will first try to get its own lock and then the
net_context lock. This will lead to deadlock as the locking ordering
is now mixed.
The solution is to unref the TCP connection after releasing the
connection lock. The TCP connection unref function will anyway get the
lock so no need to do double locking.
Fixes #29444
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Rebased against latest master.

Rebased against latest master.


⚠ Bofrost.be has degraded performance

In 4f50429, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 977 ms

Resolved: Bofrost.be performance has improved in d307cd2.


cardano-node: investigate work together of direct-EKG and new tracing

Direct EKG is a way to record measurments without using the tracing system. Investigate how it works together with new tracing and find a solution.


Translation permission

Hello Masaki,
Thanks so much for your amazing book. It tells a R user to use Rcpp without a deep dive into the c++.
In my research, I need to implement some numerical algorithms to solve the optimization problems. Rcpp is a better choice than pure R due to its effictive performance. And your book makes the features of Rcpp easy to understand. It is really a great book for the R users even without much background knowledge of C++. Therefore, I wonder if it is possible to translate it into my native language(Chinese) for the sake of more potential R users. If you are willing to grant me the permission, I will try my best to translate the book into Chinese. By the way, the project will also be hosted on the github and organized by the bookdown package for the sake of reading. Some realted examples in Chapters (such as Vector, Matrix, Rcpp Suger) will be completed.
Please kindly let me know if it is possble.
Thanks for you patience and consideration.
Jiangyu

Hi Jiangyu,
It is great pleasure to have such offering.
Chinese is one of the language that have biggest population, I welcome your translation!
Please tell me when your work is released.

Hi Masaki,
Thanks for your permission.
The project is hosted at https://github.com/jywang2016/rcpp4everyone_cn . Chapters 1~11 were already translated into Chinese. The rest of the book will be completed gradually.
Thanks again for your amazing work.
Jiangyu


Subscriptions on main links do not send info on fields that have links attached

I have 2 collections: users and groups. I have 2 main link sfrom groups to users based on memberIds and adminIds fields. Essentially who are the members and who are the admins.
Here is my GraphQL schema with schema directives:
Group:
type Group @mongo(name: "groups")
{
  _id: ID!
  name: String
  description: String
  members: [User] @link(field: "memberIds")
  admins: [User] @link(field: "adminIds")
}

type ReactiveEventGroup {
  event: String,
  doc: Group
}

type Query {
  groups(_id: String): [Group]
}

type Subscription {
  groups: ReactiveEventGroup
}

Here is my User schema:
type Email
{
	address: String
	verified: Boolean
}

# our user type
type User @mongo(name: "users")
{
  _id: ID!
  emails: [Email]
  firstName: String
  lastName: String
  name: String
  company: String
  roles: [String]
  groups: [Group] @link(to: "members")
  admins: [Group] @link(to: "admins")
}

# our queries
type Query {
  users: [User]
  me: User
}

Here is how I do my subscription:
const GET_GROUPS = gql`
  query {
    groups {
      _id
      name
      description
      members {
      	_id
      	name
        company
      }
      admins {
      	_id
      }
    }
  }
`;

const SUBSCRIBE_GROUPS = gql`
  subscription {
    groups {
      event
      doc {
        _id
        name
        description
        members {
        	_id
        	name
          company
        }
        admins {
        	_id
        }
      }
    }
  }
`;

  render() {
    return (
      <ReactiveQuery
        query={GET_GROUPS}
        subscription={SUBSCRIBE_GROUPS}
      >
        {({data, loading, error}) => {
           if (loading) {
             return <Text>
                      Loading
                    </Text>;
           }
           if (error) {
             return <Text>
                      {error}
                    </Text>;
           }
           return <Groups
                    groups={data.groups}
                    onPress={this.viewGroup}
                    ref={(ref) => {
                           this.ref = ref;
                         }}
                    onSwipe={this.swipeButtons}
                  >
                  </Groups>;
         }}
      </ReactiveQuery>
      );
  }

Here are my query and subscription resolvers:
  Query: {
    groups(_, args, {db, userId}, ast) {

      // sanity checks
      if (!userId) {
        throw new Meteor.Error("authorization-error", "Action not authorized");
      }

      let filter = {
        memberIds: userId
      };
      if (args._id) {
        filter._id = args._id;
      }
      // use grapher to do the query instead of direct mongo query
      let allGroups = db.groups.astToQuery(ast, {
        $filters: filter
      }).fetch();
      return allGroups;
    }
  },
  Subscription: {
    groups: {
      resolve: payload => payload,
      subscribe(_, args, context) {
        console.log("Calling groups subscription; user = " + context.userId);

        // sanity checks
        if (!context.userId) {
          throw new Meteor.Error("authorization-error", "Action not authorized");
        }

        const observer = context.db.groups.find();

        return asyncIterator(observer);
      }
    }
  }

On initial load, all is well and good. I get a good list with all the data. However, when I create a new group, say with GraphQL playground, then I run into a problem. I do get the group created event, but I do not get all the information about the group, particularly the ones attached to links.
Here is the mutation that added the query:
mutation saveGroup {
  saveGroup(name: "Ujwal and Vineet",
    members: ["WaHgrKPe6ePJJuE2o", "yf2AsaHQN36TqKtFc"],
    admins: ["WaHgrKPe6ePJJuE2o"],
    description:"Ujwal is admin") {
  		success
  }
}

Here is the update record I got:
{
  "_id": "DbvtEuZrwZYJpZh4x",
  "name": "Ujwal and Vineet",
  "description": "Ujwal is admin",
  "members": null,
  "admins": null,
  "__typename": "Group"
}

Notice that I get only _id, name, and description. I don't get members and admins fields. Both those fields have links on them pointing to User.
What am I doing wrong?

This is a bit of a critical issue for me, so any help will be greatly appreciated. Thanks!

OK, I think it is explained here:
https://github.com/cult-of-coders/apollo-live-server
The current limitation is that the reactive events dispatched by this publication are only at Notification level in the database, but what happens when we want to also send down the pipe relational info, such as, Task linked to Notification by taskId, how can we handle this ?

OK, I solved it by enhancing the resolver for the subscription:
  Subscription: {
    groups: {
      resolve: (payload, args, {db}) => {
        if (payload.event === Event.ADDED) {
          // do a direct grapher query to get the linked data
          let linkedDoc = db.groups.createQuery({
            $filters: {
              _id: payload.doc._id
            },
            _id: 1,
            name: 1,
            description: 1,
            members: {
              _id: 1,
              name: 1,
              company: 1
            },
            admins: {
              _id: 1,
              name: 1,
              company: 1
            }
          }).fetch();
          if (linkedDoc && linkedDoc.length) {
            // there should be only one record since we filtered on the added doc
            return ({
              doc: linkedDoc[0],
              event: payload.event
            });
          }
          // something went wrong, send back original payload
          return (payload);
        }
        return (payload);
      },
      subscribe(_, args, context) {
        console.log("Calling groups subscription; user = " + context.userId);

        // sanity checks
        if (!context.userId) {
          throw new Meteor.Error("authorization-error", "Action not authorized");
        }

        const observer = context.db.groups.find({
          memberIds: context.userId
        });

        return asyncIterator(observer);
      }
    }
  },
...

It would be nice to figure out what the associated query was in the initial ReactiveQuery subscription, so that we know exactly what date to send back.
But this works for now...

@ujwal-setlur indeed, this is currently a limitation, and even if we do this, grapher could export a functionality that does this essentially, however it's very problematic with links in which storage is on the other side, because you have to watch those documents too! So it kinda sucks, and we have to rely on something like publish-composite but for Apollo.
This would be a good feature request.


Adding dbeaver6 persist of configuration

Persist configs by creating a symlink at $env:APPDATA\DBeaverData to /persist/dbeaver/DBeaverData - https://dbeaver.com/docs/dbeaver/Workspace-Location/

[x] I have read the Contributing Guide.

Any reason for not accepting this? Should I do something more?


allow for deleting chunks

This way one can delete something with --to ""

👍  Looks good. Thanks!


Windows fix

This seem to fix the test, but I'm not 100% sure it's the proper fix.
I'm not sure the dupes are proper with this patch.
We need some of my other PRs like #99, #100 and #101 for Windows testing. I'll rebase this when the other PRs are sorted.
Fixes #67, fixes #93
With this patch, we get no more backslashes on https://github.com/nodejs/nodejs.org/runs/257685124

With this patch, we get no more backslashes on https://github.com/nodejs/nodejs.org/runs/257685124

Now that #99 is merged I believe this should be ready for review?

@Ajedi32 yeah but I'm still not sure the cache and dupes is working fine on Windows.

@woodyrew this needs review. What I'm not sure if if the dupes cache is borked now on Windows.
I think we should probably streamline this. Always use forward slashes except when we deal with the filesystem.
That being said this does fix the issue for me.

@woodyrew @Ajedi32 friendly ping. I'm still not sure if the patch is 100% regarding the dupes cache, but it does fix the issue with backslashes on Windows.


Errors in fields are empty when using JSONFormatter

JSONFormatter seems to have trouble with errors passed to log.Fields
log.SetFormatter(&log.JSONFormatter{})
err := errors.New("this will come up as {}")
log.WithFields(log.Fields{
  "err": err,
}).Warn("the error field will be empty")

The code above will output out the following:
{"err":{},"level":"warning","msg":"the error field will be empty","time":"2015-01-16T20:51:40-08:00"}

The TextFormatter works as expected so this issue is specific to the JSONFormatter as far as I can tell.

You're feeding an empty struct into a JSON marshaller, you need to use err.Error() to have errors stored as strings.

Don't know how I missed that. Thanks for pointing it out!

Thanks @pzduniak :)


Use pipeline to remove new line char

When -w option is not available for base64, for example, when using alpine Docker image.
echo -n "<text>" | base64 | tr -d '\n' should be used, it works better.

This change is

@mikedanese Is base64 | tr -d '\n' an acceptable substitute if -w is not available?

sorry just getting back from vacation. Yes this looks fine.

No worries. Thanks @mikedanese!

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


get browser version running

Would also be nice while doing this to consider where we absolutely need third party plugins.  They are used occasionally, but nothing seemingly to complex for native js to handle.

@robertleeplummerjr Great work—I think we can close this now, right?

👍 Thank you sir.  Merged, and closed.


python311Packages.types-awscrt: 0.19.8 -> 0.19.9

Changelog: https://github.com/youtype/types-awscrt/releases/tag/0.19.9
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 266444 at 443ff80f run on x86_64-linux 1

8 packages built successfully:

python310Packages.boto3-stubs
python310Packages.botocore-stubs
python310Packages.types-aiobotocore
python310Packages.types-awscrt
python311Packages.boto3-stubs
python311Packages.botocore-stubs
python311Packages.types-aiobotocore
python311Packages.types-awscrt


[BUG] ## wrong mobile number  registered in  COWIN

Vaccine center register wrong mobile number in COWIN registration. I can't access 1st dose certificate as register number is wrong. please solve this issues and change correct Mobile number.<PHONE_NUMBER>

Please check with COWIN support: https://www.cowin.gov.in/#howcanweHelp


Hi, I have something problem in main.py

I try to run your program today.
When I use this command "python main.py gan kdd run --nb_epochs=1 --label=1",
it will be error.
The following message is the content of this error
"""
Traceback (most recent call last):
File "main.py", line 67, in
parser.add_argument('--d', nargs="?", default=1, defaulttype=int, help='degree for the L norm')
File "/anaconda3/lib/python3.6/argparse.py", line 1334, in add_argument
action = action_class(**kwargs)
TypeError: init() got an unexpected keyword argument 'defaulttype'
"""
This is caused by the "defaulttype".
I think it is a mistake, since other parameters is used "type", but the parameter "--d" is not.
Is it right?
k.w.

yes, i had the same problem. Just replace 'defaulttype' with 'type' and it should run fine.

Thank you both!


cannot execute koadic

After cloning the project and installing requirements when running koadic it throw this import error !
Traceback (most recent call last):
  File "/home/bassem/Desktop/koadic/./koadic", line 178, in <module>
    shell = core.shell.Shell(banner, __version__)
  File "/home/bassem/Desktop/koadic/core/shell.py", line 18, in __init__
    self.plugins = core.loader.load_plugins("modules", True, self)
  File "/home/bassem/Desktop/koadic/core/loader.py", line 36, in load_plugins
    env = __import__(file, )
  File "/home/bassem/Desktop/koadic/modules/implant/inject/mimikatz_dotnet2js.py", line 3, in <module>
    import core.cred_parser
  File "/home/bassem/Desktop/koadic/core/cred_parser.py", line 2, in <module>
    import tabulate
  File "/usr/lib/python3/dist-packages/tabulate.py", line 16, in <module>
    from collections import Iterable
ImportError: cannot import name 'Iterable' from 'collections' (/usr/lib/python3.10/collections/__init__.py)

This is an issue in python 3.10. I'm not exactly sure what the remedy is
for it other than using 3.9
On Thu, Dec 22, 2022, 7:56 PM bassem jadoui @.***>
wrote:

After cloning the project and installing requirements when running koadic
it throw this import error !
Traceback (most recent call last):
File "/home/bassem/Desktop/koadic/./koadic", line 178, in
shell = core.shell.Shell(banner, version)
File "/home/bassem/Desktop/koadic/core/shell.py", line 18, in init
self.plugins = core.loader.load_plugins("modules", True, self)
File "/home/bassem/Desktop/koadic/core/loader.py", line 36, in load_plugins
env = import(file, )
File "/home/bassem/Desktop/koadic/modules/implant/inject/mimikatz_dotnet2js.py", line 3, in
import core.cred_parser
File "/home/bassem/Desktop/koadic/core/cred_parser.py", line 2, in
import tabulate
File "/usr/lib/python3/dist-packages/tabulate.py", line 16, in
from collections import Iterable
ImportError: cannot import name 'Iterable' from 'collections' (/usr/lib/python3.10/collections/init.py)
—
Reply to this email directly, view it on GitHub
https://github.com/offsecginger/koadic/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKDBEQMSLS57P56LIZUTTLWOT2CLANCNFSM6AAAAAATHIGHJM
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Its weird 🥺


fix: use sh-friendly test

Please read contributing guidelines and remove this line.

#6792  👈
master

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

Join @alexghr and the rest of your teammates on  Graphite


UTC timezone fix

See https://github.com/ondrejbartas/sidekiq-cron/issues/142
This changes fix my mentioned problems, but 2 tests are broken... Maybe someone can take a look at it?
My knowledge in this gem is not deep enough at the moment.

Coverage decreased (-0.5%) to 93.293% when pulling ad800a66316e9fe4249d8258787a17cae3233854 on lichtamberg:master into 74ca93c85be43073560e3e7ca69c83f5db7bc397 on ondrejbartas:master.

@lichtamberg thanks for your fix


Docs break horizontal scrolling.

This is a...

[ ] Feature Request
[x] Bug Report

Problem:
On some browsers, https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ and probably other URLs, some docs aren't visible, and horizontal scrolling is disabled.
Proposed Solution:
Re-enable horizontal scrolling or fix the wrapping or something.
Page to Update:
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

My display is 1200w x 1920h, and my browser (Chrome on Linux) is full-width.  If I zoom to less than 100%, I can read all the text.  I'll attach a screenshot.

It looks like this is limited only to
s and
s etc. The text resizes fine.
From your screenshot I can tell that the responsive breakpoints are probably not that great, as ~40% of the horizontal space is taken up by left sidebar. ☹

Sorry didn't mean to close.

/remove-lifecycle rotten
This is still a problem to be addressed.

/lifecycle frozen

Still a problem.

We switched the tools for generating our website and looking at the page, it looks fine now on my system.
@ahmetb , could you check whether this is fixed for you now, please?

i've double check and i don't see any problem on latest docs release.
/close


[bug] ClipboardManager goes out of sync in some situations

Describe the bug
When attempting the following workflow:
1- read the contents of the clipboard
2- send the key combination CTRL-C
3- read the contents of the clipboard
For all windows, the 2nd read contains the new text - UNLESS the current window belongs to the running tauri app. In that case, the clipboard contents get updated, but further clipboard reads still contain the same text as the first read.
Waiting several seconds, reading in a separate thread, or using emitting and responding to an event do not change the result.
When the active window belongs to tauri - the clipboard manager never updates with the new text
For context, I am doing all of this in a callback through the global_shortcut_manager
Reproduction
let s1 = app_handle.clipboard_manager().read_text().ok()?;
// Send copy
KeybdKey::LControlKey.press(); KeybdKey::CKey.press();
sleep(Duration::from_millis(100));
KeybdKey::LControlKey.release(); KeybdKey::CKey.release();
let s2 = app_handle.clipboard_manager().read_text().ok()?;
Expected behavior
s2 should contain the highlighted text in the active window
Platform and versions
Operating System - Windows, version 10.0.19042 X64
Webview2 - 99.0.1150.30
Visual Studio Build Tools:
   - Visual Studio Community 2022
   - Visual Studio Enterprise 2019

Node.js environment
  Node.js - 16.13.0
  @tauri-apps/cli - 1.0.0-rc.5 (outdated, latest: 1.0.0-rc.7)
  @tauri-apps/api - 1.0.0-rc.1 (outdated, latest: 1.0.0-rc.2)

Global packages
  npm - 8.1.0
  pnpm - Not installed
  yarn - Not installed

Rust environment
  rustup - 1.24.3
  rustc - 1.58.1
  cargo - 1.58.0
  toolchain - stable-x86_64-pc-windows-msvc

App directory structure
/.git
/.vscode
/build
/node_modules
/public
/src
/src-tauri

App
  tauri - 1.0.0-rc.3
  tauri-build - 1.0.0-rc.3
  tao - 0.6.3
  wry - 0.13.3
  build-type - bundle
  CSP - unset
  distDir - ../build
  devPath - http://localhost:3000/
  framework - React

Stack trace
No response
Additional context
No response

That's juicy

@nothingismagick maybe a little overly specific
If I run it more than once, the clipboard manager always contains the intended result from last time
The clipboard actually does update, I did confirm that - but clipboard reads always give answer over and over again

It reminds me of a discussion I had with @rootmos about clipboard encryption. We would probably have to deal with it on the tao layer though...

It seems to come down to the clipboard manager not detecting changes to the clipboard that occur within the lifetime of a global shortcut handler.
It updates fine between shortcut events
This only occurs while tauri is the active window

I won't pretend I understand why this worked but
Wrapping the whole handler in a thread works:
gsm.register(shortcut, move || {
        let app_handle = _app_handle.clone();
        thread::spawn(move || {
            handler(app_handle);
        });
});

Wrapping the actual reads inside the handler in threads does not help - but this way seems to work fine!


Suspicious call to destructor

https://github.com/lmichaelis/phoenix/blob/87235e137823460bebf2769a51fd6665ce3856ed/source/vm.cc#L266-L270
Found this while debugging "Chronicles of Myrthana" mod.
Relevant piece of code: https://github.com/lmichaelis/tcom-decompilation/blob/c993234e0fd8520401491674c8ababe461859d09/Source/Raw/526.d
func int SPELL_TELEKINESIS_FOCUS_REMOVER() {
    NPC = HLP_GETNPC(0x71b); // returns null. This is query for PC_HERE, but PC_HERE is not yet initialized
    NPC.FOCUS_VOB = 0; // invalid access, causing explicit destructor call
    STAGE = 0;
    return FALSE;
}

Shortly after executing opcode::movi VM crashes with memory error.

Hi, thanks for the report. Looks like I missed that additional -- which is probably the incorrect part about this. I'll double-check tomorrow.
If you want to try to fix it right now, you can try swapping the -- to postfix instead of prefix. Not 100% sure that's the fix but it's worth a shot.

Hm, I've just commented the code - work fine. Again I'm not completely sure of the intent there, yet to me it look:
case opcode::movvf: {
	auto [ref, idx, context] = pop_reference(); // daedalus_stack_frame is deallocated here already

	if (!ref->is_member() || context != nullptr ||
		!(_m_flags & execution_flag::vm_allow_null_instance_access)) {
		// set and nothing else - fine
		ref->set_int(pop_int(), idx, context);
	} else if (ref->is_member()) {
		// should be nop?
	}

	break;
}

There are two frames at play here, since it's a movvf ("move function reference into variable"). First, there is the variable being moved into, and then there is the value being assigned (notice the pop_int()). This is why, if the check fails (so if the variable is a member, not instance is set and the VM does allow null-instance access), we need to destroy the next stack frame which should be at _m_stack[_m_stack_ptr].

Added fixed on main.

Verified - fix works. Thanks!


Split date time

refs #43
Refactor to have re-usable time parsing separate from date.

Codecov Report

Merging #44 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master    #44    +/-   ##
======================================
  Coverage     100%   100%
======================================
  Files           1      1
  Lines         901    572   -329
======================================
- Hits          901    572   -329

Impacted Files
Coverage Δ

parseany.go
100% <100%> (ø)
:arrow_up:

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 ffccba6...163a0a8. Read the comment docs.


Race condition getting boto3.client("rds-data")

This bit of code is not thread safe.
        if rds_data_client is None:
            self._client = boto3.client("rds-data")

The problem here is that getting a boto3 client is not thread safe. Using a single boto3 client is thread safe.
I can hit this issue consistently with multi-threaded use of SQLAlchemy when SQLAlchemy tries to get two database connections concurrently.
Once I figured out what was happening, I realized that I can pass in rds_data_client to avoid this race.
The problem can (and probably should) be avoided within this driver by assuring that the rds-data client is only gotten once, globally, across multiple instances of AuroraDataAPIClient.
Here are the three (similar) relevant stack traces (with my code at the top of the stack snipped off):
    with engine().connect() as connection:
  File \"/var/task/sqlalchemy/engine/base.py\", line 3204, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File \"/var/task/sqlalchemy/engine/base.py\", line 96, in __init__
    else engine.raw_connection()
  File \"/var/task/sqlalchemy/engine/base.py\", line 3283, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File \"/var/task/sqlalchemy/engine/base.py\", line 3250, in _wrap_pool_connect
    return fn()
  File \"/var/task/sqlalchemy/pool/base.py\", line 310, in connect
    return _ConnectionFairy._checkout(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 868, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File \"/var/task/sqlalchemy/pool/base.py\", line 476, in checkout
    rec = pool._do_get()
  File \"/var/task/sqlalchemy/pool/impl.py\", line 146, in _do_get
    self._dec_overflow()
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/impl.py\", line 143, in _do_get
    return self._create_connection()
  File \"/var/task/sqlalchemy/pool/base.py\", line 256, in _create_connection
    return _ConnectionRecord(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 371, in __init__
    self.__connect()
  File \"/var/task/sqlalchemy/pool/base.py\", line 666, in __connect
    pool.logger.debug(\"Error on connect(): %s\", e)
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/base.py\", line 661, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File \"/var/task/sqlalchemy/engine/create.py\", line 590, in connect
    return dialect.connect(*cargs, **cparams)
  File \"/var/task/sqlalchemy/engine/default.py\", line 597, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File \"/var/task/aurora_data_api/__init__.py\", line 404, in connect
    return AuroraDataAPIClient(dbname=database, aurora_cluster_arn=aurora_cluster_arn,
  File \"/var/task/aurora_data_api/__init__.py\", line 45, in __init__
    self._client = boto3.client(\"rds-data\")
  File \"/var/task/boto3/__init__.py\", line 93, in client
    return _get_default_session().client(*args, **kwargs)
  File \"/var/task/boto3/session.py\", line 270, in client
    return self._session.create_client(
  File \"/var/task/botocore/session.py\", line 855, in create_client
    credentials = self.get_credentials()
  File \"/var/task/botocore/session.py\", line 457, in get_credentials
    self._credentials = self._components.get_component(
  File \"/var/task/botocore/session.py\", line 995, in get_component
    del self._deferred[name]
KeyError: 'credential_provider'

    with engine().connect() as connection:
  File \"/var/task/sqlalchemy/engine/base.py\", line 3204, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File \"/var/task/sqlalchemy/engine/base.py\", line 96, in __init__
    else engine.raw_connection()
  File \"/var/task/sqlalchemy/engine/base.py\", line 3283, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File \"/var/task/sqlalchemy/engine/base.py\", line 3250, in _wrap_pool_connect
    return fn()
  File \"/var/task/sqlalchemy/pool/base.py\", line 310, in connect
    return _ConnectionFairy._checkout(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 868, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File \"/var/task/sqlalchemy/pool/base.py\", line 476, in checkout
    rec = pool._do_get()
  File \"/var/task/sqlalchemy/pool/impl.py\", line 146, in _do_get
    self._dec_overflow()
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/impl.py\", line 143, in _do_get
    return self._create_connection()
  File \"/var/task/sqlalchemy/pool/base.py\", line 256, in _create_connection
    return _ConnectionRecord(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 371, in __init__
    self.__connect()
  File \"/var/task/sqlalchemy/pool/base.py\", line 666, in __connect
    pool.logger.debug(\"Error on connect(): %s\", e)
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/base.py\", line 661, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File \"/var/task/sqlalchemy/engine/create.py\", line 590, in connect
    return dialect.connect(*cargs, **cparams)
  File \"/var/task/sqlalchemy/engine/default.py\", line 597, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File \"/var/task/aurora_data_api/__init__.py\", line 404, in connect
    return AuroraDataAPIClient(dbname=database, aurora_cluster_arn=aurora_cluster_arn,
  File \"/var/task/aurora_data_api/__init__.py\", line 45, in __init__
    self._client = boto3.client(\"rds-data\")
  File \"/var/task/boto3/__init__.py\", line 93, in client
    return _get_default_session().client(*args, **kwargs)
  File \"/var/task/boto3/session.py\", line 270, in client
    return self._session.create_client(
  File \"/var/task/botocore/session.py\", line 859, in create_client
    defaults_mode = self._resolve_defaults_mode(config, config_store)
  File \"/var/task/botocore/session.py\", line 908, in _resolve_defaults_mode
    default_config_resolver = self._get_internal_component(
  File \"/var/task/botocore/session.py\", line 729, in _get_internal_component
    return self._internal_components.get_component(name)
  File \"/var/task/botocore/session.py\", line 995, in get_component
    del self._deferred[name]
KeyError: 'default_config_resolver'

    with engine().connect() as connection:
  File \"/var/task/sqlalchemy/engine/base.py\", line 3204, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File \"/var/task/sqlalchemy/engine/base.py\", line 96, in __init__
    else engine.raw_connection()
  File \"/var/task/sqlalchemy/engine/base.py\", line 3283, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File \"/var/task/sqlalchemy/engine/base.py\", line 3250, in _wrap_pool_connect
    return fn()
  File \"/var/task/sqlalchemy/pool/base.py\", line 310, in connect
    return _ConnectionFairy._checkout(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 868, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File \"/var/task/sqlalchemy/pool/base.py\", line 476, in checkout
    rec = pool._do_get()
  File \"/var/task/sqlalchemy/pool/impl.py\", line 146, in _do_get
    self._dec_overflow()
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/impl.py\", line 143, in _do_get
    return self._create_connection()
  File \"/var/task/sqlalchemy/pool/base.py\", line 256, in _create_connection
    return _ConnectionRecord(self)
  File \"/var/task/sqlalchemy/pool/base.py\", line 371, in __init__
    self.__connect()
  File \"/var/task/sqlalchemy/pool/base.py\", line 666, in __connect
    pool.logger.debug(\"Error on connect(): %s\", e)
  File \"/var/task/sqlalchemy/util/langhelpers.py\", line 70, in __exit__
    compat.raise_(
  File \"/var/task/sqlalchemy/util/compat.py\", line 207, in raise_
    raise exception
  File \"/var/task/sqlalchemy/pool/base.py\", line 661, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File \"/var/task/sqlalchemy/engine/create.py\", line 590, in connect
    return dialect.connect(*cargs, **cparams)
  File \"/var/task/sqlalchemy/engine/default.py\", line 597, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File \"/var/task/aurora_data_api/__init__.py\", line 404, in connect
    return AuroraDataAPIClient(dbname=database, aurora_cluster_arn=aurora_cluster_arn,
  File \"/var/task/aurora_data_api/__init__.py\", line 45, in __init__
    self._client = boto3.client(\"rds-data\")
  File \"/var/task/boto3/__init__.py\", line 93, in client
    return _get_default_session().client(*args, **kwargs)
  File \"/var/task/boto3/session.py\", line 270, in client
    return self._session.create_client(
  File \"/var/task/botocore/session.py\", line 856, in create_client
    endpoint_resolver = self._get_internal_component('endpoint_resolver')
  File \"/var/task/botocore/session.py\", line 729, in _get_internal_component
    return self._internal_components.get_component(name)
  File \"/var/task/botocore/session.py\", line 995, in get_component
    del self._deferred[name]
KeyError: 'endpoint_resolver'

Thank you for identifying this issue. We'll fix it in your PR after some minor modifications.
It's unfortunate that boto3 advises that clients are thread-safe yet allows races in its own client initialization code. Seems like a bug in boto3. Would you be interested in opening a bug in boto3?

I'm willing to open a bug in boto3-land. I haven't done it nor really gone hunting for any existing bug.
I wanted my stuff to work, which I got to!
Getting my stuff to work involved me to digging deeply enough into aurora-data-api to be able to point clearly at the problem as it happens here and suggest a fix.

Um, https://github.com/cloud-utils/aurora-data-api/blob/main/aurora_data_api/init.py#L41 does not fix the problem. That gets a new, separate, lock in each instance of AuroraDataAPIClient and the problem is a race between multiple instances of AuroraDataAPIClient.

That lock is a class variable, initialized once on load with the declaration of the class. While it's scoped to the class instead of the module, it is functionally no different. So if it doesn't fix the problem you encountered, then I believe neither would your proposed solution. Can you give it a try and see if you can reproduce the error?

Ah. You are correct about the class variable. Sorry for my confusion.
For what it's worth, I would write it with explicit use of the class variable, like this:
        if rds_data_client is None:
            with AuroraDataAPIClient._client_init_lock:

In general (and not relevant here), using self to access a class variable runs the risk of the class variable being shadowed by an instance variable with the same name. I also find explicit access clearer when reading the code 🤷🏻.


⚠ knowtilus has degraded performance

In 9d25cce, knowtilus (https://www.knowtil.us) experienced degraded performance:

HTTP code: 200
Response time: 15076 ms

Resolved: knowtilus performance has improved in bd23b62 after 16 minutes.


Git protocols

I have a few suggestions for good git protocols, especially as our project may be growing to include more contributors.

Commits should have descriptive names that briefly explain what was done

Commit names like “Fixes #100” should have additional context so that they make sense when you aren’t looking at the git log through Github.

Commits should deal with one concern at a time — spanning multiple files is fine, but commits with many unrelated changes are confusing and should be broken up.  This makes it easier for someone else to understand what happened, and if something broke in a particular commit it is easier to track it down if the changes are more isolated.

Anybody have others?  I think it will be helpful for us to try to be more strict on these things :)  I am happy to incorporate these items into CONTRIBUTING.

I think it's a great idea @moonshoes87. Even though I know I just did a "Fixes #100" commit. :) More smaller commits with related changes would make versioning and reverting when we encounter bugs. I'll do my best to improve my commits.
It might help also if we were to use branches more for features that are so big that they cannot be fully implemented in one commit without that commit being huge and having lots of unrelated changes. Like Thellier GUI marking things bad is definitely too big a change to be one commit, but putting that on master would ruin the live version of the GUIs. So just including in the CONTRIBUTING a bit on using branches or forks if they're not a contributor for large changes that need to be broken into pieces and which might break critical functionality on master otherwise.

Yes, I've done my share of cryptic commits too :)
I agree, using branches for large features is a good addition to the list.
Anything else we should add?

These protocols sound good to me.

I agree.  I will try to be better.  first off, i will try to wean myself off emails and onto the git issues :)

I don't have anything to add to the protocols they look like good to me. Also thought I'd share one of my favourite features of the Github website, which, being built for developers has a bunch of hotkeys for functionality which really make it easy to get into the habit of living on the github issues and code pages here's their spreadsheet of these: https://help.github.com/articles/using-keyboard-shortcuts/
I personally have really found these useful especially if your internet is not always lightening fast as it minimizes things reloaded by not reloading the header or anything else consistent between pages.


Checkout page form is not validated (OCC-106)

Describe the bug
The checkout page form is not validated, thus required fields can remain empty and still pay and create an order.
To Reproduce
Steps to reproduce the behavior:

Add a product to cart proceed to the /checkout page.
Do not fill required fields. e.g. Phone
Try to pay
You can, without an error for missing phone

Expected behavior
Validate the form before paying.
Jira issue

This bug might came from using a custom shape instead of the OrderPart edit shape. https://github.com/OrchardCMS/OrchardCore.Commerce/issues/211

You are right, the ~/success POST action doesn't check the model state after IContentItemDisplayManager.UpdateEditorAsync() is called, as it should. But I think the workflow was bad even before that: we don't want to fail the order creation after the payment has already went through. So we have to introduce an async form validation step before payment as well as fix the validation in ~/success to safeguard against (potentially malicious) changes between payment and success.


rewrote and grouped swayc related functions together.

rewrote and moved a bunch of functions into container.[ch]
new_output new_workspace new_container new_view
destroy_output ....
the focus/arrange functions are removed from the old versions of these,
and are now handled by the wlc handler functions.
the _do_split command was nicely cleaned up as a result of changing new_container.
creating new views was fixed up, its added as the sibling of current focus, or child of workspace.
also added a temporary debug command that prints layout and various information to log. easily removed.

I like it, but can you remove the debug stuff before merge?

Thanks!


Auto-improve the generation by sending a snapshot of current current generation

Ask GPT to find the differences between the original reference image and the generated html page and then improve by accounting for the differences.

I will take on this issue 👍🏽

this one is already pr #70


Docker Sonarr taking a long time converting/creating mp4

Here's my autoProcess.ini contents: https://pastebin.com/Mn6Mib89
The first file that was converted took less than 1 minute to finish. The second file is still running until now (after 30+ minutes) and it's just a 1.35GB.
Logs for the 1st conversion: https://pastebin.com/QvwhGxri
Logs for the 2nd conversion: https://pastebin.com/ddSrcwP1 (Updated logs: https://pastebin.com/2J9q0dcj)
Is this because I have subtitle embedding enabled? If so, then the 1st file conversion should've taken very long too, right?

It probably has to do with how many streams are being encoded vs copied
From the logs its tough to see but the video stream will have the most impact and could account for the time difference you're reporting

Right but why would it copy the video stream if it already detects it as h264?

There are a number of reasons the video stream could be converted even if the codec is correct
Bitrate or size limitations (dimensions), pixmap profiles not matching; it all depends on your autoProcess.ini settings
I'm also not sure if your video stream was copied or not from these logs you've posted, it may be just the audio encoding that slowed things down especially if you're running on more modest hardware

Could it be because I have my video profile set to High and h264 level to 4.1?
If it was the audio stream causing it, then I would have the same long conversion problem with the other, won't I?

It could
If you enable debug level logging (this can be done via logging.ini, uses standard python logging) and check those logs you'll get way more detail about why copying isn't happening
        self.log.info("Profile: %s." % info.video.profile)
        if self.video_profile and info.video.profile.lower().replace(" ", "") not in self.video_profile:
            self.log.debug("Video profile is not supported. Video stream can no longer be copied.")
            vcodec = self.video_codec[0]
            vprofile = self.video_profile[0]
            if self.pix_fmt:
                pix_fmt = self.pix_fmt[0]
        else:
            vprofile = None

That's the relevant code for video profile
If you're curious as to how all this is handled, review the mkvtomp4.py file

Actually looking at your 1st and 2nd logs, 1st was 'high' and second was 'main'
That's probably why you're converting video
You can either leave that blank if you don't care about profile or you can add other profiles as acceptable variants
video-profile = high, main

Oh ok. Got it. If you leave a parameter in the ini blank, what are the defaults? Some parameters in the readme don't have their defaults stated.

It simply won't be specified or evaluated against

In Linux, how do I know if it's using the full potential of my hardware when ffmpeg/your script is converting the media file? My CPU is the Intel Pentium J5005 which has Intel Quicksync. Does it automatically use that to convert the video?
Also, since my hardware is relatively new and the current Debian Stretch Backport Kernel still doesn't recognize the GuC/HuC firmwares for this, does that have any effect in the whole conversion process?


Constant refreshing

Constant refreshing when opening YouTube video player in any context (new tab, home page, enlarge mini player, etc.);
The page refreshes repeatedly for on average 30-45 seconds before it stabilizes and begins playing the video.
If on a playlist or queue, shuffle and loop settings are lost.
I'm using Opera GX (version in Opera GX menu > "Help" > "About Opera" says "LVL5 (core: 102.0.4880.104)").

Is this issue still happening?


git version is not being published during azure deploy

make change to project.json to include version.json inside of the publish options section

Solved via https://github.com/HTBox/allReady/pull/815, can close.

Thanks @robrich!


First preliminary package

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@867d0ae). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #9   +/-   ##
=========================================
  Coverage          ?   11.42%
=========================================
  Files             ?       13
  Lines             ?      315
  Branches          ?       37
=========================================
  Hits              ?       36
  Misses            ?      279
  Partials          ?        0

Flag
Coverage Δ

#unittests
11.42% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 867d0ae...7eda2ca. Read the comment docs.


Guest accounts with ADFS login will give Invalid audience

When logging in to a Office 365 tenant with a Guest account that is using ADFS the audience will get invalid.

@TeacherMagnus I have no clue on ADFS myself and auth really, so would appreciate any pointers. If this is ADFS and SharePoint Online, try the SP online login instead.

Oh Sorry!
I am using SharePoint online, and therefore I choose the “SharePoint Online Management” auth method.
I am using an account that authenticates to our own ADFS server.
When I use the tool in our own tenant everything works as expected, but then I am invited in one of our customers tenant so when I’m trying to use my account that belongs to Azure AD “A” as a guest user in tenant “B” then I get the error messages that was attached to the bug report.
I hope that this will help you a bit.
Från: Mikael Svenson<EMAIL_ADDRESS>Skickat: den 19 september 2018 14:58
Till: SharePoint/PnP-Tools<EMAIL_ADDRESS>Kopia: Magnus Jansson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Ämne: Re: [SharePoint/PnP-Tools] Guest accounts with ADFS login will give Invalid audience (#194)
@TeacherMagnushttps://github.com/TeacherMagnus I have no clue on ADFS myself and auth really, so would appreciate any pointers. If this is ADFS and SharePoint Online, try the SP online login instead.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/SharePoint/PnP-Tools/issues/194#issuecomment-422792135, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AXY5iKth9sOtVqp3fedKHhYuaFMxIzERks5ucj9DgaJpZM4Wv2Wh.

@TeacherMagnus can you re-try with the web login in v2.8.2?

Hi!
Thanks! This works for me now.
Från: Mikael Svenson<EMAIL_ADDRESS>Skickat: den 5 oktober 2018 13:09
Till: SharePoint/PnP-Tools<EMAIL_ADDRESS>Kopia: Magnus Jansson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Ämne: Re: [SharePoint/PnP-Tools] Guest accounts with ADFS login will give Invalid audience (#194)
@TeacherMagnushttps://github.com/TeacherMagnus can you re-try with the web login in v2.8.2?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/SharePoint/PnP-Tools/issues/194#issuecomment-427328579, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AXY5iPeK4N2Hu6uGHqvxHBGO3tnqb_7rks5uhz3NgaJpZM4Wv2Wh.


drivers: sensors: Add driver for LM95234 temperature sensor

Add a driver for the National/TI LM95234 Quad Remote Diode and Local Temperature Sensor with SMBus Interface and TruTherm Technology.

Rebased to main to fix a conflict. @jeppenodgaard I think your comments are all addressed?

Rebased to main to fix a conflict. @jeppenodgaard I think your comments are all addressed?

Yes. LGTM. There is no resolve buttons for some reason.

A couple nits, but otherwise LGTM

Updated as suggested.

Ping - any additional comments?

Fixed conflicts in the tests/drivers/build_all/sensor/i2c.dtsi file, no other changes from last rev.


Host AuthKit gives server error if trying to use reset password flow for email that doesn't match a user

I'm trying out the hosted AuthKit with WorkOS, since that would be much easier for us to use than building our own auth flows.
If I use the sign-in page and enter an email that doesn't match existing user, and then click "Forgot your password?" and then "Send reset instructions", I get a server error:

Url for this page is https://<our staging subdomain>.authkit.app/reset-password?email=<email that doesn't match exiting user>&redirect_uri=<our redirect uri>.
This seems like a bug since people wouldn't understand what went wrong and this wouldn't be a great experience.

Thanks for the report, we're looking into this!

Hi @ntabris this has been fixed and is now deployed.

Thanks for addressing this so quickly! It appears that now the page says a password reset email was sent:

But in fact no email is sent, and the user will expect such an email and not realize they need to sign up for a new account.
Contrast this with, e.g., the Microsoft flow that tells you there's no account for your email when that's the case:

Yes that is correct, and is the intended behaviour for security reason as we don't want to leak the fact that a user exists or not based on an email address. Otherwise it could be an attack vector to brute-force check user existence like this.

Yeah, if you confirm email existence, presumably you need to rely on other mechanisms (bot detection?) to mitigate brute-force check of user existence. I'd assume Microsoft is doing something like that.
That said, I'm worried about UX if the user incorrectly thinks they have an account and everything AuthKit says indicates that they do.
One solution here would be to send email that isn't reset email, but is a "you don't have an account already" email.
Another solution would be to have the AuthKit message something that includes something along the lines of if you don't have an account with this email, you'll need to <link>sign up</link>.
(I'll note that this isn't a dealbreaker for us in whether or not to use WorkOS, but it is a concern, especially since it doesn't appear that WorkOS gives us any notification of failed sign in attempts.)

Thanks for the feedback, we'll take another pass on it and update the messaging.

@benoitgrelard thanks! I really appreciate how responsive you've been.


relativeRe generates zero width matches in destHtml

When trying to use destHtml to specify a different directory, the filepath rendered in the demo looks like:
src:../octicons/u../octicons/r../octicons/l../octicons/(../octicons/"../octicons/o../octicons/c../octicons/t../octicons/i../octicons/c../octicons/o../octicons/n../octicons/s../octicons/.../octicons/e../octicons/o../octicons/t../octicons/?../octicons/a../octicons/3../octicons/f../octicons/f../octicons/9../octicons/f../octicons/0../octicons/a../octicons/a../octicons/d../octicons/9../octicons/1../octicons/4../octicons/c../octicons/7../octicons/9../octicons/b../octicons/a../octicons/6../octicons/5../octicons/a../octicons/8../octicons/7../octicons/6../octicons/d../octicons/3../octicons/3../octicons/6../octicons/b../octicons/5../octicons/0../octicons/e../octicons/"../octicons/)../octicons/;

From what I can tell it happens here, creating a regexp /(?:)/g which is a bunch of zero width matches.

Set the relativeFontPath: '.'


TriMet (Portland, Oregon) Arrival Issue

Hi There,
I have successfully installed the plugin and have it communicating with my transit agency (TriMet, https://developer.trimet.org/ - their API is documented here). However, it does not seem to be reporting arrival times properly. Initially, the plugin was not able to operate with the API be following the readme due to an issue with the API key. I appended the API key to the end of the URL as documented by TriMet and that seemed to resolve my API connection error, however, arrival times do not propagate (shows as "-" in HA). I've put my log output and configuration.yaml below:
configuation.yaml:
sensor:
  - platform: gtfs_rt
    trip_update_url: 'http://developer.trimet.org/ws/V1/TripUpdate/appID/18340D52316B36A50DB193CC3/'
    vehicle_position_url: 'http://developer.trimet.org/ws/V1/VehiclePositions/appID/18340D52316B36A50DB193CC3/'
    departures:
    - name: MAX Orange Milwaukie Main St
      route: 290
      stopid: 13718
      icon: mdi:bus

HA log output (too large for github): https://sanmane.s3.us-west-2.amazonaws.com/ha-logs/ha-log-april11.log
I attempted to run the test python file but ran into errors with several modules. Let me know if I can provide any additional information to help with this issue. I appreciate your work on this integration, GTFS is quite a standard!
For reference, I am running HAOS on Proxmox (i5, 2gb RAM allocated) with version:
Home Assistant 2023.4.2
Supervisor 2023.04.0
Operating System 9.5
Frontend 20230406.1

Hi,
Thank you for contacting me.  Unfortunately, you are experiencing the same issue as reported by @calvinbui here https://github.com/mark1foley/ha-gtfs-rt-v2/issues/11.
The way the integration is currently written it does not work if the transport provider does not provide stop times as part of the realtime data feed.  Unfortunately, under the GTFS realtime standard there is no requirement to provide stop times so some providers (most even?) do but others, like TriMet, do not.  Instead they just provide the delay in seconds, if any, from the schedule and you have to lookup the scheduled stop time in the gtfs.zip file they publish.  The integration currently doesn't have this functionality.
I have been thinking about re-writing it because it is an issue for a lot of people (I think you are the 3rd person that has reported this).  But like most people it's hard to find the time.
Regards,
Mark

This is working for me, only had to do a couple of minor changes to get this working for Trimet:
https://github.com/CDeLeon94/GTFS-V2-Home-Assistant
The person I forked this from already did a lot/most/all of the work for integrating both realtime and static data.
The main change I had to make was to swap a reference from 'short_stop_name' to 'stop_id' because trimet doesn't have 'short_stop_name' defined for the Max lines.


jacocoTestCoverageVerification: The task was not up-to-date because it did not have any declared outputs.

My project has several subprojects, and I run jacocoTestCoverageVerification for each subproject. According to the build scan, this task does cannot be cached, because it does not declare any outputs. Because of this I have to re-run the task for each subproject, which takes a significant amount of time.
Please declare outputs and/or enable build caching for jacocoTestCoverageVerification.
> Task :application:jacocoTestCoverageVerification
Caching disabled for task ':application:jacocoTestCoverageVerification' because:
  Caching has not been enabled for the task
Task ':application:jacocoTestCoverageVerification' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Excluding []
[ant:jacocoReport] Loading execution data file /somewhere/application/build/jacoco/integrationTest.exec
[ant:jacocoReport] Loading execution data file /somewhere/application/build/jacoco/test.exec
[ant:jacocoReport] Writing bundle 'application' with 3 classes

Expected Behavior
Task is only run when necessary, i.e. if the previous run failed (due to lack of code coverage), or if any input changed.
Current Behavior
It is always run.
Your Environment
Gradle 6.8.3
Jacoco 0.8.6

Please unstale this issue. It's a bug, no matter how old it is.

Hi @C-Otto . I'm seeing a different behaviour. The jacocoTestCoverageVerification  task is marked as UP-TO-DATE when running with Gradle 7.4.2 and nothing has changed.
10:48:03: Executing 'jacocoTestCoverageVerification'...

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test UP-TO-DATE
> Task :jacocoTestReport UP-TO-DATE
> Task :jacocoTestCoverageVerification UP-TO-DATE

BUILD SUCCESSFUL in 98ms
5 actionable tasks: 5 up-to-date
10:48:04: Execution finished 'jacocoTestCoverageVerification'.

Could you try 6.8.3? That's the version I used when I opened this issue.

I can reproduce this with 6.8.3, 6.9, 6.9.1, 6.9.2, 7.0, 7.0.1, 7.0.2. It seems to be fixed with 7.1+. The release notes point me to #16939, which is a duplicate of this issue. At least it's fixed :)


Miscellaneous cleanup

Removed .prettierrc. Settings were mostly moved to .editorconfig, but one ended up in eslint.config.mjs. Prettier still takes them into account.
Tweaked some ESLint and EditorConfig settings. The JS settings in .editorconfig now cover TS files and additional JS extensions.
Removed a few unnecessary ESLint disable comments. I used reportUnusedDisableDirectives, but I mostly left anything that would be relevant if the associated rule were enabled. The ones I removed were along the lines of no-unused-vars on a line with no variables.
Modified a type to eliminate a suppressed TypeScript error in adapter.ts.
Fixed a handful of spelling mistakes.
Replaced tabs being used for indentation with spaces. The entire repo is now consistently indented with spaces. I also removed extraneous whitespace at the end of a few lines.

I don't think any of this will really affect the code that ends up in the IPK.

ty do you have code to replace my code and take away users made it?

ty do you have code to replace my code and take away users made it?

Stop. You didn't respond in RootMyTV/RootMyTV.github.io#141 with any evidence or even basic information about your TV, so nobody is inclined to take you seriously. Spamming our other repos is not going to help with that. The opposite, in fact.


Filtering option in Inventory Logs Route

Is your feature request related to a problem? Please describe.
Abel to filter inventory logs in /inventory/logs/{inventory} route
Describe the solution you'd like
Able to filter out inventory logs based on filters like, source player, from inventory, to inventory, after and before time.
I know these things can be done in /logs route however sometimes inventory logs is better in checking inventory movements but because we cant filter out things we have to either scroll multiple pages or kinda struggle in main server logs
Also able to see Item Given action logs in inventory logs page. Right now only Item Moved actions are shows in inventory logs https://i.imgur.com/JwIxwFK.png

No, thats not part of those logs. They just give you a quick overview and if you need more info you use the server logs


Small Login screen

When I bootup Ubuntu 18.04 LTS the xrdp login screen that comes up is very small as well as the fonts.   I know you can customize the size of the dialog, but the fonts etc are still very small in high res.  Is is possible to customize this screen more???

It is possible right now but if someone implement it, login screen can be scaled.

Sorry, not possible. But we accept contributions.


create github action for coverage report (#44)

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@a3b4ae2). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #45   +/-   ##
=======================================
  Coverage        ?   82.58%
=======================================
  Files           ?       74
  Lines           ?     2446
  Branches        ?      218
=======================================
  Hits            ?     2020
  Misses          ?      358
  Partials        ?       68

Flag
Coverage Δ

test-ubuntu-latest-3.8
82.58% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 a3b4ae2...7b5627e. Read the comment docs.


Refactor prop_public_resolvessDomainsCorrectly

Refactor the prop_public_resolvesDomainCorrectly so that it just runs
a single simulation which resolves untill we get the expeted result, instead of
a recursive loop which at each step runs IOSim.

Gave a go at this. There's no straightforward way to do this since it returns a set of SockAddr, I lose the information about the domain. That's why the test needs to run IOSim in order to look at the traces and build back the result domain map. One way to fix this would be to change the type signature to return the successful domain - ip pairs that were resolved.

Managed to do it 😄


gltfTutorial_020_Skins.md typo

gltfTutorial_020_Skins in section The skinning joints and weights says

except the first two vertices are influenced only by joint 0, and the last two vertices are influenced only by joint 1

But the bold part doesn't correspond to data shown:
’’’
Vertex 8:  0, 1, 0, 0,
Vertex 9:  0, 1, 0, 0,
’’’

Sill me, false alarm

If you want to read a looong discussion, uncluding my struggle to describe this as it is now, see https://github.com/KhronosGroup/glTF-Tutorials/pull/64#issuecomment-968287758 ;-)
If you have any idea about how to make this clearer or easier to understand, or avoid the confusion that led to this issue: Feedback is always appreciated.

I think what's not perfectly obvious is that "last two" vertices are only affected by one joint because of 0 weights, but this fact is mentioned only in next section, so linear reading leads to confusion


Update pureconfig-core, ... from 0.17.1 to 0.17.6

About this PR
📦 Updates

com.github.pureconfig:pureconfig-core
com.github.pureconfig:pureconfig-generic

from 0.17.1 to 0.17.6
📜 GitHub Release Notes - Changelog - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.pureconfig" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.github.pureconfig" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #1155.


Searching for subreddit that does not exist, causes a crash (exit code: 1)

Attempting to search for a subreddit name using the "searchSubredditNames" function causes a crash if the "exact" flag is set to true and the query is a string for a subreddit which does not exist. Function call to reproduce:
r.searchSubredditNames({query: 'jkhjkhh', exact: true}).then(console.log);

Expected behaviour based on documentation should be an empty array, but it crashes everything. Setting the exact flag to false and running the same query produces an empty array as expected. Testing was done on latest version from npm: 1.15.2

Thanks for the report. Could you provide more details about the crash? Does a stack trace get printed?

Hello, unfortunately I could not give you further detail. No stack trace gets printed. Try/catch methods do not catch anything, cause of the asynchronous nature of the calls. It just seems to fail after trying to fulfil the promise.

Ran this myself just now. We do get an error returned from Reddit with this. Since you are using exact as a parameter you have to find a subreddit - otherwise 404 will be returned.
For me this is correct behaviour, so I'm closing the issue
StatusCodeError: 404 - {"message":"Not Found","error":404}
    at new StatusCodeError (node_modules/request-promise-core/lib/errors.js:32:15)
    at node_modules/request-promise-core/lib/plumbing.js:97:41
    at tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromiseCtx (node_modules/bluebird/js/release/promise.js:606:10)
    at _drainQueueStep (node_modules/bluebird/js/release/async.js:142:12)
    at _drainQueue (node_modules/bluebird/js/release/async.js:131:9)
    at Async._drainQueues (node_modules/bluebird/js/release/async.js:147:5)
    at Immediate.Async.drainQueues [as _onImmediate] (node_modules/bluebird/js/release/async.js:17:14)

You can handle it quite easily though
try {
  const results = await r.searchSubredditNames({query: 'jkhjkhh', exact: true});
}
catch (error) {
  if (error instanceof StatusCodeError) {
    console.log("handling error");
  }
}


Host File Location Inaccurate

[Enter feedback here]
Hosts file is located in "C:\Windows\System32\drivers\etc".  Article has it in C:\Windows\System32\drivers".

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 81228e08-116d-219f-51e6-fb6ff26960df
Version Independent ID: f17b9169-d343-f296-e194-2ba7c6646ce6
Content: Configure Name Resolution for a Federation Server Proxy in a DNS Zone That Serves Only the Perimeter Network
Content Source: WindowsServerDocs/identity/ad-fs/deployment/Configure-Name-Resolution-for-Federation-Server-Proxy-in-DNS-Zone-Serving-Only-Perimeter-Network.md
Service: windows-server
Sub-service: security
GitHub Login: @billmath
Microsoft Alias: billmath

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Formatting

Reformat all ts files and snippets/ json files with Prettier and add a Github Action to do formatting checks for every PR.

Thanks for this.


App cannot install on Memu and Nox Emulator

Hello,
I tested and cannot install on Memu and Nox Emulator. It said that apk error.
Testing xmrig on Memu and Nox:
CANNOT LINK EXECUTABLE "./libxmrig.so": cannot locate symbol "fgets_unlocked" re
ferenced by "/mnt/runtime/default/emulated/0/Download/daocoin/libxmrig.so"...
Aborted

Its must be installed from Google Play om Android 11+

Memu and Nox is android 7. BTW, when i copied xmrig and test directly. It works.

Memu and Nox is android 7. BTW, when i copied xmrig and test directly. It works.

But the User Interface is React Native that requires Android min. 11