Compilation error: "cannot bind packed field" (juce::PixelARGB)

I get the error below when trying to compile on Manjaro Linux (gcc 9.1.0). I remember seeing similar errors, when trying to compile other software using JUCE, that hasn't been updated in a while. The only reference I found for the error message is this old post from the JUCE forums, which mentions a fix but doesn't say what it is and might be only related to OS X PPC:
https://forum.juce.com/t/cannot-bind-packed-field-errors-in-xcode-3/9004
Here is the PKGBUILD script I'm using for compilation: https://gist.github.com/SpotlightKid/201bfa419faa2cb8a80195a8c55b0cbf
[ 44%] Building CXX object CMakeFiles/ensemble_chorus_fl.dir/sources/fl/main.cc.o
In file included from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.h:121,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.cpp:42,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp:9:
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getAlpha()':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:116:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]' to 'juce::uint8&' {aka 'unsigned char&'}
  116 |     forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }
      |                                                                ~~~~~~~~~~~~~^
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getRed()':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:117:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[2]' to 'juce::uint8&' {aka 'unsigned char&'}
  117 |     forcedinline uint8& getRed() noexcept             { return comps [indexR]; }
      |                                                                ~~~~~~~~~~~~~^
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getGreen()':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:118:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[1]' to 'juce::uint8&' {aka 'unsigned char&'}
  118 |     forcedinline uint8& getGreen() noexcept           { return comps [indexG]; }
      |                                                                ~~~~~~~~~~~~~^
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getBlue()':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:119:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[0]' to 'juce::uint8&' {aka 'unsigned char&'}
  119 |     forcedinline uint8& getBlue() noexcept            { return comps [indexB]; }
      |                                                                ~~~~~~~~~~~~~^
In file included from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.h:143,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.cpp:42,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp:9:
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h: In instantiation of 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = true]':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:627:17:   required from 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = true]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2025:57:   required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::SubRectangleIteratorFloat::iterate(Renderer&) const [with Renderer = juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB, true>; SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1591:13:   required from 'void juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with Iterator = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIteratorFloat; DestPixelType = juce::PixelRGB]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2644:67:   required from 'void juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&, juce::PixelARGB, bool) const [with IteratorType = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIteratorFloat]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1896:13:   required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::fillRectWithColour(SavedStateType&, juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1893:14:   required from here
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:713:34: warning: converting a packed 'juce::PixelRGB' pointer (alignment 1) to a 'int' pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
  713 |                             auto d = reinterpret_cast<int*> (dest);
      |                                  ^
In file included from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.h:121,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.cpp:42,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp:9:
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:366:17: note: defined here
  366 | class JUCE_API  PixelRGB
      |                 ^~~~~~~~
In file included from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.h:143,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.cpp:42,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp:9:
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h: In instantiation of 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = false]':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:627:17:   required from 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::handleEdgeTableLine(int, int, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = false]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2025:57:   required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::SubRectangleIteratorFloat::iterate(Renderer&) const [with Renderer = juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB, false>; SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1596:13:   required from 'void juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with Iterator = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIteratorFloat; DestPixelType = juce::PixelRGB]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2644:67:   required from 'void juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&, juce::PixelARGB, bool) const [with IteratorType = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIteratorFloat]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1896:13:   required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::fillRectWithColour(SavedStateType&, juce::Rectangle<float>, juce::PixelARGB) const [with SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1893:14:   required from here
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:713:34: warning: converting a packed 'juce::PixelRGB' pointer (alignment 1) to a 'int' pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
  713 |                             auto d = reinterpret_cast<int*> (dest);
      |                                  ^
In file included from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.h:121,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/juce_graphics.cpp:42,
                 from /home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp:9:
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:366:17: note: defined here
  366 | class JUCE_API  PixelRGB
      |                 ^~~~~~~~
make[2]: *** [CMakeFiles/juce_graphics.dir/build.make:63: CMakeFiles/juce_graphics.dir/sources/plugin/JuceLibraryCode/include_juce_graphics.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:820: CMakeFiles/juce_graphics.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/fl/main.cc: In function 'void handle_signals()':
/home/chris/work/arch/aur/ensemble-chorus-git/src/ensemble-chorus/sources/fl/main.cc:240:10: warning: variable 'success' set but not used [-Wunused-but-set-variable]
  240 |     bool success = false;
      |          ^~~~~~~
[ 46%] Linking CXX executable ensemble_chorus_fl
[ 46%] Built target ensemble_chorus_fl
[ 47%] Linking CXX static library libjuce_core.a
[ 47%] Built target juce_core
make: *** [Makefile:130: all] Error 2

I use the following as a fix in the package adlplug-git.
"juce-gcc9.patch::https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6.patch"
About this software, it's currently as indicated on the label, it's experimental.
The most short term plan, when I get around to it, is to rewrite it in DPF.
Next, I have to apply to it some of my research which 1. change entirely how the modulation is processed 2. implement a better analog fidelity version of the delay line, which is already in string machine.
The new model will allow clock rates greater than nyquist rate, and to reach a lower range of delays for chorus.
So all that being considered, this plugin is going to go through major changes, so don't expect any stability.

Thanks, that patch did the trick.
https://aur.archlinux.org/packages/ensemble-chorus-git/
The plugin seems to work well so far as it is. I like having the possibility of sending my hardware synths through this effect.


memory consumption after error compacting TSM files

Bug report
System info: [Include InfluxDB version 0.13.0, operating system name CentOS 6.5, and other relevant details]
Steps to reproduce:
the influxd will consume all the memory(literally) of the machine it dwells in when this error message shows up:
error compacting TSM files: key 'cpu,async=true#!~#idle' exceeds max index entries: 91761 > 65535

This should be fixed in 1.0beta release.


Update to proxy-verifier-v2.3.1

Proxy Verifier version 2.3.1 actively closes the connection when the
proxy (ATS) returns a response with a "Connection: close" header. This
improves the stability of the cache-request-method AuTest, wherein ATS,
dependent upon packet timing, would sometimes return a "Connection:
close" and follow it with a TCP FIN. The FIN would then be processed by
the Verifier client after request headers were sent, which would
interrupt the traffic flow and cause the test to fail. With Verifier
version 2.3.1, this is avoided by the client actively closing the
connection when ATS returns the intermittent "Connection: close".

Marking this for 9.2.x because it is a test-only change that improves test stability.

@bneradt Do we need this for 9.1.x as well ?

Cherry-picked to v9.2.x

@bneradt Do we need this for 9.1.x as well ?

Yes, that's probably a good idea. That would help the AuTests to run more reliably there.


TencentOpenAPI.framework/TencentOpenAPI, missing required architecture i386

开发环境: Cordova6.3.1
cordova build ios编译错误信息
`ld: warning: ignoring file 亿信天合/Plugins/cordova-plugin-qqsdk/TencentOpenAPI.framework/TencentOpenAPI, missing required architecture i386 in file 亿信天合/Plugins/cordova-plugin-qqsdk/TencentOpenAPI.framework/TencentOpenAPI (3 slices)
Undefined symbols for architecture i386:
"OBJC_CLASS$_QQApiInterface", referenced from:
objc-class-ref in YCQQ.o
"OBJC_CLASS$_QQApiNewsObject", referenced from:
objc-class-ref in YCQQ.o
"OBJC_CLASS$_SendMessageToQQReq", referenced from:
objc-class-ref in YCQQ.o
"OBJC_CLASS$_TencentOAuth", referenced from:
objc-class-ref in YCQQ.o
"_kOPEN_PERMISSION_ADD_ALBUM", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_ADD_ONE_BLOG", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_ADD_SHARE", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_ADD_TOPIC", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_CHECK_PAGE_FANS", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_OTHER_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_SIMPLE_USER_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_USER_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_VIP_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_GET_VIP_RICH_INFO", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_LIST_ALBUM", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
"_kOPEN_PERMISSION_UPLOAD_PIC", referenced from:
-[YCQQ qqLogin:] in YCQQ.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **
The following build commands failed:
Ld build/emulator/亿信天合.app/亿信天合 normal i386
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/junweiren/H5Apps/Iyxth/platforms/ios/cordova/build-debug.xcconfig,-project,亿信天合.xcodeproj,-target,亿信天合,-configuration,Debug,-sdk,iphonesimulator,-destination,platform=iOS Simulator,build,CONFIGURATION_BUILD_DIR=/Users/junweiren/H5Apps/Iyxth/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/junweiren/H5Apps/Iyxth/platforms/ios/build/sharedpch`

cordova build --device


More re-structuring of the file system watching code

The main change is switching to one global VFS root which holds the whole state, while keeping around to VirtualFileSystemServices for changing the global root.
The global root now is of type VfsRootReference, which allows obtaining a read-only view of the VFS via get() and allows changing the VFS via an update() method. The clients of this API do not need to know anything about diff listeners any more, since those are hidden behind VfsRoot.

Let's refactor this way:

Google doc: https://docs.google.com/drawings/d/1ywzPf745ILglz5ZQjkLGdi_rK3ywdosH1ixNwwXUH4w/edit

Replaced by https://github.com/gradle/gradle/pull/13975.


Add MeshConfig upgrade when upgrading a mesh

Description:
This fixes issue #4371. Prior to this fix if there was a change to the envoy sidecar image then this would not get reflected or upgraded in the mesh config. Upon further testing we cannot just patch that in because if there are missing required keys (as indicated by the CRD) then the patch itself will fail (see the Testing done section below on the missing required key error when attempting to patch).
This PR adds the functionality for a complete upgrade of the mesh config by doing two things:

Compare CRD required fields with the current MeshConfig. If there are missing required keys then patch them in.
Compare the envoy sidecar image. If the default has been upgraded between the old and the new version and the user has not modified the default in their mesh config, then upgrade this value.

Testing done:
Integration tests and manual testing.
Prior to this change:
 $ osm version
Version: v0.9.2; Commit: 7df9badece2f251515a2bc5e5ac79438b0c58812; Date: 2021-08-19-21:02

 $ osm install
OSM installed successfully in namespace [osm-system] with mesh name [osm]

 $ git log --oneline -1
8dccabbf (HEAD -> main, upstream/main) injector: rename iptables chains for clarity (#4379)

 $ go run ./cmd/cli mesh upgrade
OSM successfully upgraded mesh [osm] in namespace [osm-system]

Even though the mesh was upgraded, the envoy sidecar image remains the old version in the mesh config:
 $ kubectl get configmap -n osm-system preset-mesh-config -o jsonpath='{.data.preset-mesh-config\.json}' | jq -r '.sidecar.envoyImage'
envoyproxy/envoy-alpine@sha256:6502a637c6c5fba4d03d0672d878d12da4bcc7a0d0fb3f1d506982dde0039abd

 $ kubectl get meshconfig -n osm-system osm-mesh-config -o jsonpath='{.spec.sidecar.envoyImage}'
envoyproxy/envoy-alpine:v1.18.3

If you try to patch that it errors because of a missing key:
 $ kubectl patch meshconfig -n osm-system osm-mesh-config --type=json --patch='[{"op":"replace","path":"/spec/sidecar/envoyImage","value":"envoyproxy/envoy-alpine@sha256:6502a637c6c5fba4d03d0672d878d12da4bcc7a0d0fb3f1d506982dde0039abd"}]'
The MeshConfig "osm-mesh-config" is invalid: spec.certificate.certKeyBitSize: Required value

With this PR:
 $ kubectl get meshconfig -n osm-system osm-mesh-config -o jsonpath='{.spec.sidecar.envoyImage}'
envoyproxy/envoy-alpine@sha256:6502a637c6c5fba4d03d0672d878d12da4bcc7a0d0fb3f1d506982dde0039abd

 $ kubectl get meshconfig -n osm-system osm-mesh-config -o jsonpath='{.spec.certificate.certKeyBitSize}'
2048

Affected area:

Functional Area

Upgrade
[X]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project?

No.

Is this a breaking change?

No.

I know this is still WIP so I haven't taken a close look yet, but a few initial thoughts:
It seems like the simplest solution here would be to default the image name/tag in the injector and leave it empty in the MeshConfig. Then the upgraded injector would implicitly start using its updated default. This was the behavior until #4131. Of the reasons @shashankram describes there, I think the biggest problem with using a default was that the default would be used if there was some error reading the value from the MeshConfig. I'd argue we should fail the injection altogether in that case. Otherwise, I don't see any issues with using a default if no value is specified in the MeshConfig.
Going forward, adding new required fields to the CRD should result in an appropriate version bump for the API (v1alpha1 -> v1alpha2) and we should either have a conversion webhook to handle both versions or force the user to update their MeshConfigs to the new API themselves. That would handle any new required fields, so working around that here doesn't seem worth it to me unless we need this behavior for upgrading v0.9 to v0.11.

I know this is still WIP so I haven't taken a close look yet, but a few initial thoughts:
It seems like the simplest solution here would be to default the image name/tag in the injector and leave it empty in the MeshConfig. Then the upgraded injector would implicitly start using its updated default. This was the behavior until #4131. Of the reasons @shashankram describes there, I think the biggest problem with using a default was that the default would be used if there was some error reading the value from the MeshConfig. I'd argue we should fail the injection altogether in that case. Otherwise, I don't see any issues with using a default if no value is specified in the MeshConfig.
Going forward, adding new required fields to the CRD should result in an appropriate version bump for the API (v1alpha1 -> v1alpha2) and we should either have a conversion webhook to handle both versions or force the user to update their MeshConfigs to the new API themselves. That would handle any new required fields, so working around that here doesn't seem worth it to me unless we need this behavior for upgrading v0.9 to v0.11.

The reason defaults are not to be encoded in the binary is because the image digests are not known. We should avoid going back to encoding defaults in the Go code if possible, and always infer it through the MeshConfig or other means.

The reason defaults are not to be encoded in the binary is because the image digests are not known. We should avoid going back to encoding defaults in the Go code if possible, and always infer it through the MeshConfig or other means.

The default doesn't necessarily have to be a constant in Go. We could pass it on the command line or as an environment variable when the injector starts so it can still be defined once in values.yaml like it is now.

This was a complete rewrite of the original PR, so the first message in this thread is no longer completely relevant.
From the feedback, I refactored this to use environment variables if there is no setting in the MeshConfig for the following images: envoy image, envoy windows image, and the init container image.
The default was also removed from the mesh config CRD, as that would auto-populate the MeshConfig resource with the defaults.
This does not solve the problem with missing required parameters (in the original case, certKeyBitSize) but as @nojnhuh mentioned this is more of a process issue with incrementing the resource version and dealing with the changes through a conversion webhook.

Codecov Report

Merging #4386 (5da4e39) into main (8dccabb) will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #4386      +/-   ##
==========================================
+ Coverage   69.27%   69.32%   +0.05%
==========================================
  Files         212      212
  Lines       14455    14476      +21
==========================================
+ Hits        10013    10035      +22
+ Misses       4390     4389       -1
  Partials       52       52

Flag
Coverage Δ

unittests
69.32% <100.00%> (+0.05%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/configurator/methods.go
73.38% <100.00%> (+2.85%)
:arrow_up:

cmd/cli/namespace_add.go
83.63% <0.00%> (-0.53%)
:arrow_down:

pkg/ticker/ticker.go
87.17% <0.00%> (+3.84%)
: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 8dccabb...5da4e39. Read the comment docs.


[BUG] (?) Hitching in editor

On the latest stable release, I have a lot of trees, and the editor hitches as I move the camera around (but in-game it seems fine). Is this something other people have seen? Should I try a nightly version?

Hang on, my garden is using TRES instead of RES. That might be an issue.

Hang on, my garden is using TRES instead of RES. That might be an issue. Is there an easy way to change which it's using?

Where exactly is it using tres instead of res? I don't think any critical code really depends on res over tres though

On the latest stable release, I have a lot of trees, and the editor hitches as I move the camera around (but in-game it seems fine). Is this something other people have seen? Should I try a nightly version?

You need to provide a bit more info than that.  How many plants are you creating? Are you using scenes or mesh resources in your drawing process? Is there anything of note in the console when hitches occur? Do you have a Minimal Reproduction Project that I can test?

Where exactly is it using tres instead of res? I don't think any critical code really depends on res over tres though
The garden work directory - greenhouse.tres, toolshed.tres. From experience I have learned that for larger/more often accessed files, .res can improve times related to parsing/serializing significantly.
You need to provide a bit more info than that.
Sorry, I wrote this late at night. The scene is rather large, with over a thousand trees with collision nodes spawned. I'm using mesh resources, as far as I know, apart from the collision thing. The console says nothing. I don't have a minimal reproduction project at the moment.

The setup you describe shouldn't cause much hitching.
Currently, the only thing that I know of that may cause these problems is spawning/respawning nodes when an LOD changes. But it usually has to spawn/despawn hundreds of nodes at a time...
Can you please enable the debug draw for your trees (at the top of 3D viewport when a Gardener is selected) and demonstrate the hitching on a video recording? Might be something about your setup that causes this, theoretically.
And/or give me an MRP, whenever you have the time.

Here's a MRP. Just scrolling in and out should show it. Perhaps the problem is that the octree sizes are too big, and so it's not spawning a lot of things.
test.zip

Changing the number of trees per chunk to be smaller did not change hitching.

Can confirm the hitching, but there doesn't seem to be any bug causing this. So far, seems to just be how Godot behaves when adding tens/hundreds of nodes at once in the editor. In-game indeed works fine.
Tried adding nodes with INTERNAL flag, tried not giving an owner, tried naming them manually, doesn't seem to make a difference.
Will investigate further, but it's possible that a proper fix (offloading to threads or something similar) will be delayed for a major version (v2.x.x for example) because this potentially might be a breaking change.

Before you try this: I've done testing when I was working with ProtonScatter, and instantiating a packed scene is much faster than duplicating a tree.
The fact that it's editor-only implies to me that the problem is adding nodes repeatedly to the editor scene tree; so what if you created an orphan node, added the static bodies to that node, and then added the orphan node to the scene, performing the operation all at once?
Should I pursue this avenue?

Hi! Any known workaround for this issue? I have around ~2500 objects placed by gardener overall and it causes significant lags in editor, which makes usage of plugin rather painful

@dreadpon maybe you could add checkbox for turning off processing octrees and/or LODs for objects in editor?

I tried the static bodies node idea I had, but it didn't result in any performance gains. Is it critical that the tree be visible within the editor tree?

@dreadpon maybe you could add checkbox for turning off processing octrees and/or LODs for objects in editor?

Upon profiling the engine, the problem above does not appear to be fixable on my side. It's just a byproduct of updating AABBs, node names, owners and so on.
So an option to selectively stop processing certain features will most likely be the way I'll handle this, yes.


Select and Test CSS Framework

Need to select a CSS framework other than Bootstrap to use

We are using tailwind, I spent the day playing with their layout tools and am comfortable with the framework now


How to create dll for libgit2

I am trying to create bindings for libgit2 using ffigen. I followed the steps mentioned here.
Now to use those bindings I have to create dll in windows. This is where I am getting stuck. I have both cmake and make in my PATH.  I have also created a question on stackoverflow. But I didnt really get any solution.
You can check my repo online or you can clone it using gh repo clone nivekithan/git2dart.
In my repo there will directory called lib2git where I have pasted the contents of include directory of libgit2 ( it only contains .h files not .c files) and also there will be CMakeLists.txt with the following config
cmake_minimum_required(VERSION 3.20.2 FATAL_ERROR)
project(libgit VERSION 1.0.0 LANGUAGES C)
add_library(libgit SHARED git2.h)

set_target_properties(libgit PROPERTIES
    PUBLIC_HEADER git2dart.h
    VERSION {PROJECT_VERSION}
    SOVERSION 1
    LINKER_LANGUAGE C
    OUTPUT_NAME "git2dart"
)

so passing the command cmake .,  gives me this output
 Building for: Visual Studio 16 2019
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.21376.
-- The C compiler identification is MSVC 19.28.29914.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/nivek/Documents/work/git2dart/libgit2

Then passing the command make is giving me this output
make: *** No targets specified and no makefile found.  Stop.

So what I am supposed to do on creating dll file?
Thanks for the help

The default on Windows is that CMake generates a Visual studio project, not a CMake project.
cmake --build . will automatically run the build as well if visual studio is available on your machine.
Alternatively, you could tell CMake to generate a make file instead of visual studio project.


Filename cache maybe?

Hi!
Im not sure is that bug of your plugin, but lets think about this, because my tech-support think that it maybe cache.
Sometimes, when i press Ctrl+S for save and autoupload file via SFTP to server, i get on server file with lowercase filename, but on my PC i have file with uppercase name. Why: if at first time a saved my file with name "class_test.php", so after change name to "Class_test.php" i again get name from first time saving - "class_test.ph".
Try to reproduce the problem like this:

Create a file on your PC with a name beginning with a small letter, such as 'class_test.php'.
Open this file in VS Code.
Save it from VS Code by uploading via FTP.
Delete the created file manually from the server's file manager.
Return to the file opened in the IDE and change the first letter so that the first letter is capitalized, for example 'Class_test.php'.
Save the file from the IDE with a new name.
You will see that the file is saved on the server with the name 'class_test.php' entered for the first time.

Thanks

Using "Upload" from context-menu works fine, Ctrl+S send wrong file.

Thanks for the answer.
Yes, you can do this, but it's not convenient: you have to pick up the mouse, aim at the file, search for the desired item in the context menu. :-)
Is this a program error or a plugin? If in a plugin, is it possible to put in a plan for a fix?

i meet the same problem.

i meet the same problem.

Oh yeah! This is already half the solution. Half - because it saves both versions of the file: both with a capital letter and with a small letter.

Using "Upload" from context-menu works fine, Ctrl+S send wrong file.

Solution find!
{
    "name": "XXX",
    "host": "XXX",
    "protocol": "sftp",
    "port": 22,
    "username": "XXX",
    "password": "XXX",
    "remotePath": "XXX",
    "watcher": {               // add this with below parameters
        "files": "**/*",
        "autoDelete": true,
        "autoUpload": true
    },
    "uploadOnSave": false     // set to false
}


Bug: Navbar picture not in sync with the dark mode toggle

This is a minor UI issue but the dark mode toggle button is not in the same row as the navbar logo. This could be fixed to make the UI better.

I believe this has been resolved by PR #41, so we can close this.


Ubuntu 17.10 bash preinst: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed.

Attempting to dist-upgrade to Ubtuntu 17.10 fails (if bash is not marked for hold - see Issue #1878).
The reason for this appears to be that the deb package's preinst script is actually a binary, and the behaviour is odd:
$ ldd bash_4.4-5ubuntu1_amd64/preinst
        linux-vdso.so.1 =>  (0x00007fffdd9fd000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffe838e0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffe83e00000)
$ ./bash_4.4-5ubuntu1_amd64/preinst
preinst: ../sysdeps/unix/sysv/linux/spawni.c:368: __spawnix: Assertion `ec >= 0' failed.
Aborted (core dumped)
$ strace -vvfFtTs 128 -- ./bash_4.4-5ubuntu1_amd64/preinst
11:18:26 execve("./bash_4.4-5ubuntu1_amd64/preinst", ["./bash_4.4-5ubuntu1_amd64/preinst"], ["LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca"..., "HOSTTYPE=x86_64", "LESSCLOSE=/usr/bin/lesspipe %s %s", "LANG=en_GB.UTF-8", "USER=stuart", "PWD=/home/stuart", "HOME=/home/stuart", "NAME=MacPro", "SHELL=/bin/bash", "TERM=xterm-256color", "SHLVL=1", "LOGNAME=stuart", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/NVIDIA "..., "LESSOPEN=| /usr/bin/lesspipe %s", "_=/usr/bin/strace", "OLDPWD=/home/stuart/bash"]) = 0 <0.001087>
11:18:26 brk(NULL)                      = 0x22a4000 <0.000020>
11:18:26 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000027>
11:18:26 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f04ec690000 <0.000034>
11:18:26 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) <0.000023>
11:18:26 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000184>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=3659174697257185, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=128, st_size=21447, st_atime=2017-10-29T11:06:20+0000.323984500, st_mtime=2017-10-29T11:06:20+0000.324516100, st_ctime=2017-10-29T11:06:20+0000.334001900}) = 0 <0.000024>
11:18:26 mmap(NULL, 21447, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f04ec68a000 <0.000051>
11:18:26 close(3)                       = 0 <0.000016>
11:18:26 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000025>
11:18:26 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000216>
11:18:26 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\22\2\0\0\0\0\0@\0\0\0\0\0\0\0\220\330\35\0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0I\0H\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>832) = 832 <0.000078>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=1970324836996738, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=3832, st_size=1960656, st_atime=2017-10-28T14:53:28+0100, st_mtime=2017-10-11T21:21:40+0100, st_ctime=2017-10-28T14:53:38+0100.698294300}) = 0 <0.000027>
11:18:26 mmap(NULL, 4061792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f04ec020000 <0.000079>
11:18:26 mprotect(0x7f04ec1f6000, 2097152, PROT_NONE) = 0 <0.000025>
11:18:26 mmap(0x7f04ec3f6000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d6000) = 0x7f04ec3f6000 <0.000051>
11:18:26 mmap(0x7f04ec3fc000, 14944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f04ec3fc000 <0.000036>
11:18:26 close(3)                       = 0 <0.000043>
11:18:26 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f04ec680000 <0.000034>
11:18:26 arch_prctl(ARCH_SET_FS, 0x7f04ec680740) = 0 <0.000016>
11:18:26 mprotect(0x7f04ec3f6000, 16384, PROT_READ) = 0 <0.000023>
11:18:26 mprotect(0x602000, 4096, PROT_READ) = 0 <0.000017>
11:18:26 mprotect(0x7f04ec627000, 4096, PROT_READ) = 0 <0.000016>
11:18:26 munmap(0x7f04ec68a000, 21447)  = 0 <0.000062>
11:18:26 access("/bin/sh", X_OK)        = 0 <0.000118>
11:18:26 openat(AT_FDCWD, "/dev/null", O_WRONLY) = 3 <0.000030>
11:18:26 fcntl(3, F_GETFD)              = 0 <0.000019>
11:18:26 fcntl(3, F_SETFD, FD_CLOEXEC)  = 0 <0.000017>
11:18:26 pipe([4, 5])                   = 0 <0.000032>
11:18:26 fcntl(4, F_GETFD)              = 0 <0.000017>
11:18:26 fcntl(4, F_SETFD, FD_CLOEXEC)  = 0 <0.000020>
11:18:26 fcntl(5, F_GETFD)              = 0 <0.000017>
11:18:26 fcntl(5, F_SETFD, FD_CLOEXEC)  = 0 <0.000016>
11:18:26 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=64*1024}) = 0 <0.000015>
11:18:26 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=64*1024}) = 0 <0.000017>
11:18:26 brk(NULL)                      = 0x22a4000 <0.000015>
11:18:26 brk(0x22c5000)                 = 0x22c5000 <0.000038>
11:18:26 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=64*1024}) = 0 <0.000016>
11:18:26 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=64*1024}) = 0 <0.000016>
11:18:26 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f04ec670000 <0.000031>
11:18:26 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 <0.000016>
11:18:26 clone(child_stack=0x7f04ec678ff0, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = 29707 <0.000659>
strace: Process 29707 attached
[pid 29706] 11:18:26 write(2, "preinst: ../sysdeps/unix/sysv/linux/spawni.c:368: __spawnix: Assertion `ec >= 0' failed.\n", 89preinst: ../sysdeps/unix/sysv/linux/spawni.c:368: __spawnix: Assertion `ec >= 0' failed.
 <unfinished ...>
[pid 29707] 11:18:26 rt_sigprocmask(SIG_BLOCK, NULL,  <unfinished ...>
[pid 29706] 11:18:26 <... write resumed> ) = 89 <0.000755>
[pid 29707] 11:18:26 <... rt_sigprocmask resumed> ~[KILL STOP], 8) = 0 <0.000402>
[pid 29706] 11:18:26 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 29707] 11:18:26 rt_sigaction(SIGHUP, NULL,  <unfinished ...>
[pid 29706] 11:18:26 <... mmap resumed> ) = 0x7f04ec660000 <0.000345>
[pid 29707] 11:18:26 <... rt_sigaction resumed> {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fdd05217140}, 8) = 0 <0.000394>
[pid 29706] 11:18:26 rt_sigprocmask(SIG_UNBLOCK, [ABRT],  <unfinished ...>
[pid 29707] 11:18:26 rt_sigaction(SIGHUP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f04ec057140},  <unfinished ...>
[pid 29706] 11:18:26 <... rt_sigprocmask resumed> NULL, 8) = 0 <0.000382>
[pid 29707] 11:18:26 <... rt_sigaction resumed> NULL, 8) = 0 <0.000592>
[pid 29706] 11:18:26 rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], ~[ABRT KILL STOP], 8) = 0 <0.000016>
[pid 29707] 11:18:26 rt_sigaction(SIGINT, NULL,  <unfinished ...>
[pid 29706] 11:18:26 getpid( <unfinished ...>
[pid 29707] 11:18:26 <... rt_sigaction resumed> {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fdd05217140}, 8) = 0 <0.000310>
[pid 29706] 11:18:26 <... getpid resumed> ) = 29706 <0.000578>
[pid 29706] 11:18:26 gettid()           = 29706 <0.000016>
[pid 29706] 11:18:26 tgkill(29706, 29706, SIGABRT) = 0 <0.000016>
[pid 29706] 11:18:26 rt_sigprocmask(SIG_SETMASK, ~[ABRT KILL STOP], NULL, 8) = 0 <0.000016>
[pid 29706] 11:18:26 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=29706, si_uid=1000} ---
[pid 29707] 11:18:26 rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f04ec057140}, NULL, 8) = 0 <0.000030>
[pid 29706] 11:18:26 +++ killed by SIGABRT (core dumped) +++

11:18:26 rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fdd05217140}, 8) = 0 <0.000022>
...
11:18:26 rt_sigaction(SIGRT_32, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f04ec057140}, NULL, 8) = 0 <0.000022>
11:18:26 dup2(5, 1)                     = 1 <0.000026>
11:18:26 dup2(3, 2)                     = 2 <0.000023>
11:18:26 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000021>
11:18:26 execve("/usr/local/sbin/dpkg-query", ["dpkg-query", "-L", "bash"], ["LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca"..., "HOSTTYPE=x86_64", "LESSCLOSE=/usr/bin/lesspipe %s %s", "LANG=en_GB.UTF-8", "USER=stuart", "PWD=/home/stuart", "HOME=/home/stuart", "NAME=MacPro", "SHELL=/bin/bash", "TERM=xterm-256color", "SHLVL=1", "LOGNAME=stuart", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/NVIDIA "..., "LESSOPEN=| /usr/bin/lesspipe %s", "_=/usr/bin/strace", "OLDPWD=/home/stuart/bash"]) = -1 ENOENT (No such file or directory) <0.000036>
11:18:26 execve("/usr/local/bin/dpkg-query", ["dpkg-query", "-L", "bash"], ["LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca"..., "HOSTTYPE=x86_64", "LESSCLOSE=/usr/bin/lesspipe %s %s", "LANG=en_GB.UTF-8", "USER=stuart", "PWD=/home/stuart", "HOME=/home/stuart", "NAME=MacPro", "SHELL=/bin/bash", "TERM=xterm-256color", "SHLVL=1", "LOGNAME=stuart", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/NVIDIA "..., "LESSOPEN=| /usr/bin/lesspipe %s", "_=/usr/bin/strace", "OLDPWD=/home/stuart/bash"]) = -1 ENOENT (No such file or directory) <0.000025>
11:18:26 execve("/usr/sbin/dpkg-query", ["dpkg-query", "-L", "bash"], ["LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca"..., "HOSTTYPE=x86_64", "LESSCLOSE=/usr/bin/lesspipe %s %s", "LANG=en_GB.UTF-8", "USER=stuart", "PWD=/home/stuart", "HOME=/home/stuart", "NAME=MacPro", "SHELL=/bin/bash", "TERM=xterm-256color", "SHLVL=1", "LOGNAME=stuart", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/NVIDIA "..., "LESSOPEN=| /usr/bin/lesspipe %s", "_=/usr/bin/strace", "OLDPWD=/home/stuart/bash"]) = -1 ENOENT (No such file or directory) <0.000058>
11:18:26 execve("/usr/bin/dpkg-query", ["dpkg-query", "-L", "bash"], ["LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca"..., "HOSTTYPE=x86_64", "LESSCLOSE=/usr/bin/lesspipe %s %s", "LANG=en_GB.UTF-8", "USER=stuart", "PWD=/home/stuart", "HOME=/home/stuart", "NAME=MacPro", "SHELL=/bin/bash", "TERM=xterm-256color", "SHLVL=1", "LOGNAME=stuart", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/NVIDIA "..., "LESSOPEN=| /usr/bin/lesspipe %s", "_=/usr/bin/strace", "OLDPWD=/home/stuart/bash"]) = 0 <0.001349>
11:18:26 brk(NULL)                      = 0x7fffc16f2000 <0.000014>
11:18:26 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000026>
11:18:26 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa790710000 <0.000038>
11:18:26 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) <0.000037>
11:18:26 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000224>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=3659174697257185, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=128, st_size=21447, st_atime=2017-10-29T11:06:20+0000.323984500, st_mtime=2017-10-29T11:06:20+0000.324516100, st_ctime=2017-10-29T11:06:20+0000.334001900}) = 0 <0.000026>
11:18:26 mmap(NULL, 21447, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa790713000 <0.000061>
11:18:26 close(3)                       = 0 <0.000022>
11:18:26 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000028>
11:18:26 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000241>
11:18:26 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\22\2\0\0\0\0\0@\0\0\0\0\0\0\0\220\330\35\0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0I\0H\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>832) = 832 <0.000031>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=1970324836996738, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=3832, st_size=1960656, st_atime=2017-10-28T14:53:28+0100, st_mtime=2017-10-11T21:21:40+0100, st_ctime=2017-10-28T14:53:38+0100.698294300}) = 0 <0.000021>
11:18:26 mmap(NULL, 4061792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa790020000 <0.000068>
11:18:26 mprotect(0x7fa7901f6000, 2097152, PROT_NONE) = 0 <0.000023>
11:18:26 mmap(0x7fa7903f6000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d6000) = 0x7fa7903f6000 <0.000049>
11:18:26 mmap(0x7fa7903fc000, 14944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa7903fc000 <0.000031>
11:18:26 close(3)                       = 0 <0.000033>
11:18:26 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa790700000 <0.000026>
11:18:26 arch_prctl(ARCH_SET_FS, 0x7fa790700740) = 0 <0.000013>
11:18:26 mprotect(0x7fa7903f6000, 16384, PROT_READ) = 0 <0.000020>
11:18:26 mprotect(0x7fa790a22000, 8192, PROT_READ) = 0 <0.000019>
11:18:26 mprotect(0x7fa790627000, 4096, PROT_READ) = 0 <0.000018>
11:18:26 munmap(0x7fa790713000, 21447)  = 0 <0.000039>
11:18:26 brk(NULL)                      = 0x7fffc16f2000 <0.000014>
11:18:26 brk(0x7fffc1713000)            = 0x7fffc1713000 <0.000029>
11:18:26 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000183>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=4785074604092159, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=7080, st_size=3624336, st_atime=2017-10-29T10:06:46+0000.614865300, st_mtime=2017-10-29T10:06:59+0000.019886100, st_ctime=2017-10-29T10:06:59+0000.019886100}) = 0 <0.000020>
11:18:26 mmap(NULL, 3624336, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa78fcab000 <0.000068>
11:18:26 close(3)                       = 0 <0.000019>
11:18:26 ioctl(1, TCGETS, 0x7fffc8714d30) = -1 ENOTTY (Inappropriate ioctl for device) <0.000015>
11:18:26 fstat(1, {st_dev=makedev(0, 0), st_ino=22507, st_mode=S_IFIFO|0600, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=0, st_size=0, st_atime=2017-10-29T11:18:26+0000.440393500, st_mtime=2017-10-29T11:18:26+0000.440393500, st_ctime=2017-10-29T11:18:26+0000.440393500}) = 0 <0.000018>
11:18:26 umask(022)                     = 000 <0.000014>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/arch", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000133>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/status", O_RDONLY) = 3 <0.000135>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=3096224743835880, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=1152, st_size=588939, st_atime=2017-10-29T11:06:20+0000.351404900, st_mtime=2017-10-29T11:06:20+0000.354454000, st_ctime=2017-10-29T11:06:20+0000.368232700}) = 0 <0.000021>
11:18:26 mmap(NULL, 589824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa790670000 <0.000028>
11:18:26 read(3, "Package: python-apt-common\nStatus: install ok installed\nPriority: optional\nSection: python\nInstalled-Size: 240\nMaintainer: Ubunt"..., 588939) = 588939 <0.000388>
11:18:26 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4 <0.000206>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=3377699720724535, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=2995, st_atime=2017-10-28T14:53:28+0100, st_mtime=2017-10-11T21:21:40+0100, st_ctime=2017-10-28T15:00:25+0100.451242000}) = 0 <0.000021>
11:18:26 read(4, "# Locale name alias data base.\n# Copyright (C) 1996-2017 Free Software Foundation, Inc.\n#\n# This program is free software; you c"..., 4096) = 2995 <0.000037>
11:18:26 read(4, "", 4096)              = 0 <0.000023>
11:18:26 close(4)                       = 0 <0.000027>
11:18:26 open("/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000025>
11:18:26 open("/usr/share/locale/en_GB.utf8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
11:18:26 open("/usr/share/locale/en_GB/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000022>
11:18:26 open("/usr/share/locale/en.UTF-8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
11:18:26 open("/usr/share/locale/en.utf8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000020>
11:18:26 open("/usr/share/locale/en/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
11:18:26 open("/usr/share/locale-langpack/en_GB.UTF-8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000124>
11:18:26 open("/usr/share/locale-langpack/en_GB.utf8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000112>
11:18:26 open("/usr/share/locale-langpack/en_GB/LC_MESSAGES/dpkg.mo", O_RDONLY) = 4 <0.000142>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=2814749767117197, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=16, st_size=4969, st_atime=2017-10-29T09:59:20+0000, st_mtime=2017-10-12T21:27:16+0100, st_ctime=2017-10-29T09:59:29+0000.707738600}) = 0 <0.000021>
11:18:26 mmap(NULL, 4969, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7fa790717000 <0.000038>
11:18:26 close(4)                       = 0 <0.000014>
11:18:26 open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000116>
11:18:26 open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000110>
11:18:26 open("/usr/share/locale-langpack/en/LC_MESSAGES/dpkg.mo", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000117>
11:18:26 brk(0x7fffc1735000)            = 0x7fffc1735000 <0.000028>
11:18:26 brk(0x7fffc1757000)            = 0x7fffc1757000 <0.000043>
11:18:26 brk(0x7fffc1779000)            = 0x7fffc1779000 <0.000029>
11:18:26 brk(0x7fffc179b000)            = 0x7fffc179b000 <0.000029>
11:18:26 brk(0x7fffc17c5000)            = 0x7fffc17c5000 <0.000028>
11:18:26 brk(0x7fffc17e7000)            = 0x7fffc17e7000 <0.000073>
11:18:26 brk(0x7fffc1808000)            = 0x7fffc1808000 <0.000030>
11:18:26 brk(0x7fffc182a000)            = 0x7fffc182a000 <0.000030>
11:18:26 brk(0x7fffc184c000)            = 0x7fffc184c000 <0.000028>
11:18:26 brk(0x7fffc186e000)            = 0x7fffc186e000 <0.000029>
11:18:26 brk(0x7fffc1890000)            = 0x7fffc1890000 <0.000028>
11:18:26 brk(0x7fffc18b2000)            = 0x7fffc18b2000 <0.000027>
11:18:26 close(3)                       = 0 <0.000055>
11:18:26 munmap(0x7fa790670000, 589824) = 0 <0.000068>
11:18:26 open("/var/lib/dpkg/updates/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 <0.000188>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=562949953469367, st_mode=S_IFDIR|0755, st_nlink=0, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=4096, st_atime=2016-09-13T21:45:09+0100, st_mtime=2017-10-29T11:06:20+0000.392042400, st_ctime=2017-10-29T11:06:20+0000.392042400}) = 0 <0.000021>
11:18:26 getdents(3, [{d_ino=562949953469367, d_off=24, d_reclen=24, d_name=".", d_type=DT_DIR}, {d_ino=562949953469367, d_off=24, d_reclen=24, d_name="..", d_type=DT_DIR}], 32768) = 48 <0.000026>
11:18:26 getdents(3, [], 32768)         = 0 <0.000014>
11:18:26 close(3)                       = 0 <0.000029>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/triggers/File", O_RDONLY) = 3 <0.000145>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=1970324837009548, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=1005, st_atime=2017-10-29T10:17:07+0000.340513900, st_mtime=2017-10-29T10:17:07+0000.340863500, st_ctime=2017-10-29T10:17:07+0000.349776100}) = 0 <0.000019>
11:18:26 read(3, "/usr/lib/mime/packages mime-support/noawait\n/usr/share/applications mime-support/noawait\n/usr/man man-db/noawait\n/usr/share/man "..., 4096) = 1005 <0.000035>
11:18:26 read(3, "", 4096)              = 0 <0.000023>
11:18:26 close(3)                       = 0 <0.000043>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/triggers/Unincorp", O_RDONLY) = 3 <0.000133>
11:18:26 fcntl(3, F_GETFD)              = 0 <0.000013>
11:18:26 fcntl(3, F_SETFD, FD_CLOEXEC)  = 0 <0.000014>
11:18:26 fstat(3, {st_dev=makedev(0, 2), st_ino=4785074604092314, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=0, st_atime=2017-10-29T10:20:31+0000.496540600, st_mtime=2017-10-29T10:20:31+0000.496540600, st_ctime=2017-10-29T10:20:31+0000.506122900}) = 0 <0.000020>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/info/format", O_RDONLY) = 4 <0.000138>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=562949953469823, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=2, st_atime=2016-09-13T21:41:19+0100, st_mtime=2016-09-13T21:41:19+0100, st_ctime=2016-09-13T21:41:19+0100}) = 0 <0.000020>
11:18:26 read(4, "1\n", 4096)           = 2 <0.000036>
11:18:26 close(4)                       = 0 <0.000027>
11:18:26 stat("/var/lib/dpkg/info/format-new", 0x7fffc8714bc0) = -1 ENOENT (No such file or directory) <0.000024>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/info/bash.list", O_RDONLY) = 4 <0.000141>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=1125899906890143, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=970, st_atime=2017-10-28T14:24:27+0100.619688600, st_mtime=2017-10-28T14:24:27+0100.620124500, st_ctime=2017-10-28T14:24:27+0100.628719400}) = 0 <0.000020>
11:18:26 read(4, "/.\n/bin\n/bin/bash\n/etc\n/etc/bash.bashrc\n/etc/skel\n/etc/skel/.bash_logout\n/etc/skel/.bashrc\n/etc/skel/.profile\n/usr\n/usr/bin\n/usr"..., 970) = 970 <0.000037>
11:18:26 close(4)                       = 0 <0.000027>
11:18:26 openat(AT_FDCWD, "/var/lib/dpkg/diversions", O_RDONLY) = 4 <0.000134>
11:18:26 fcntl(4, F_GETFD)              = 0 <0.000013>
11:18:26 fcntl(4, F_SETFD, FD_CLOEXEC)  = 0 <0.000013>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=4222124650777105, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=522, st_atime=2017-10-29T10:20:42+0000.966751500, st_mtime=2017-10-29T10:20:42+0000.967358300, st_ctime=2017-10-29T10:20:42+0000.976647600}) = 0 <0.000020>
11:18:26 fstat(4, {st_dev=makedev(0, 2), st_ino=4222124650777105, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=522, st_atime=2017-10-29T10:20:42+0000.966751500, st_mtime=2017-10-29T10:20:42+0000.967358300, st_ctime=2017-10-29T10:20:42+0000.976647600}) = 0 <0.000018>
11:18:26 read(4, "/usr/bin/pod2latex\n/usr/bin/pod2latex.bundled\nlibpod-latex-perl\n/usr/share/man/man1/pod2latex.1.gz\n/usr/share/man/man1/pod2latex"..., 4096) = 522 <0.000032>
11:18:26 read(4, "", 4096)              = 0 <0.000022>
11:18:26 write(1, "/.\n/bin\n/bin/bash\n/etc\n/etc/bash.bashrc\n/etc/skel\n/etc/skel/.bash_logout\n/etc/skel/.bashrc\n/etc/skel/.profile\n/usr\n/usr/bin\n/usr"..., 970) = -1 EPIPE (Broken pipe) <0.000019>
11:18:26 --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=29707, si_uid=1000} ---
11:18:26 +++ killed by SIGPIPE +++
Aborted (core dumped)

Running under gdb gives no output:
$ gdb ./bash_4.4-5ubuntu1_amd64/preinst
GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./bash_4.4-5ubuntu1_amd64/preinst...done.
(gdb) run
Starting program: /home/stuart/bash_4.4-5ubuntu1_amd64/preinst

Microsoft Windows [Version 10.0.16299.19]

Interestingly enough, I was able to successfully perform the dist-upgrade that jumped me all the way from 16.04 to 17.10 with no upgrades to 16.10 or 17.04 first after performing the dbus commands and regenerating the locale but I get this error that is extremely similar to yours when I try to do a apt-get upgrade. I'm unable to show the output right now but basically there's an error that created by bash_4.4-5ubuntu1_amd64.deb that appears to be generated by dpkg. It appears that the .deb file didn't successfully migrate with the upgrade to 17.10 and is expecting data files from 16.04 that no longer exist. I have done the dpkg --configure -a to no joy. I believe the issue could be corrected by simply replacing the .deb file with an un-corrupted version though how one could go about doing that is the part I'm not entirely sure about. Also, performing an strace literally generates pages upon pages that's too long to place here.

This has the same underlying cause as #1878. This will be fixed in future insider build.

@jstarks Do you know which Insider build it will be released in?

Was this fixed in 17040 ?

Unfortunately it didn’t make 17040. But the changes are staged for the next insiders build (along with some other good fixes).

Windows Insider Build 17046 has improved CLONE_VFORK and CLONE_VM support.

In the spirit of openness and out of genuine interest, could you elaborate on the issue(s) with CLONE_{VFORK,VM} which caused this issue, and what technical fix has been made to address the situation?

The CLONE_VFORK issue is described here. The crux of the CLONE_VM issue is that the building blocks of a process on Windows and Linux are different: on Windows you have a process object which amongst other things is a virtual memory container, and threads that run within this process. On Linux (*note some conjecture here as we can't actually read the Linux source) there is a virtual memory object that can be assigned to processes. So on Linux, CLONE_VM makes a lot of sense: just reference the current VM object and assign it to the cloned process. On Windows however the VM object is the process, so what does it mean to share the VM space? Well, it means that you are running in the same process. So essentially what you get is a Windows thread. Conceptually this is pretty straight-forward, but all of our code was built around trying to map Linux process concepts to NT process concepts, and this did not fit into that model very well (two Linux processes mapping to one NT process). So @jstarks refactored a lot of code so that we ended up with a model where adding this additional capability was straight forward. We like to use equivalent Windows constructs whenever possible because it gives us for free all of the optimizations around scheduling, power, memory usage, etc.

@Brian-Perkins Fantastic explanation - thanks for taking the time to explain things!  I'd assumed that you guys had GPL-licensed source in a separate module ("kernel mode driver"?  I'm not sufficiently familiar with the NT kernel to know how Windows Loadable Kernel Modules work...) using public hooks into the kernel, rather than having to do a black-box reimplementation without having seen the Linux source so that the result doesn't also have to be GPL-licenced 😮

Any chance we could get this bug fix rolled into a cumulative update to 16299? I don't like to run insider on my daily driver but would like Artful.

Both glibc-2.25 and glibc-2.26 have received workarounds for this issue upstream:

https://sourceware.org/bugzilla/show_bug.cgi?id=22273

You can ask your distribution vendor to include the fix for 2.25/2.26, 2.24 doesn't need it.
Debian unstable recently received glibc_2.25-3 which contains the fix as well.

@Nathan-Harris I'm sorry, but it's not likely. The code change to fix this was substantial. Hopefully glibc's workaround can unblock you until the next Windows release.

help!
How do I get past this -
Windows (admin) PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Loading personal and system profiles took 562ms.
PS C:\WINDOWS\system32> cd C:\Users\donofrio\Downloads
PS C:\Users\donofrio\Downloads> .\ubuntu.exe
Installing, this may take a few minutes...
Installation successful!
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: donofrio
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Default UNIX user set to: donofrio
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
donofrio@WSAL0196:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y && sudo sync && sudo sync
[sudo] password for donofrio:
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
.
.
.
Get:26 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [1136 B]
Fetched 16.3 MB in 8s (1942 kB/s)
Reading package lists... Done
W: http: aptMethod::Configuration: could not load seccomp policy: Invalid argument
W: http: aptMethod::Configuration: could not load seccomp policy: Invalid argument
W: store: aptMethod::Configuration: could not load seccomp policy: Invalid argument
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
apport apt apt-utils bind9-host btrfs-progs cryptsetup-bin curl dirmngr dnsutils dpkg
fonts-ubuntu-font-family-console gnupg gnupg-agent isc-dhcp-client libapparmor-perl libapt-pkg5.0 libbind9-160
libcurl3 libgnutls30 libidn2-0 libirs160 libisccc160 libisccfg160 liblwres160 liblxc1 libnss-systemd libpam-systemd
libperl5.26 libpsl5 libsystemd0 nplan perl perl-base python3-apport rsyslog strace systemd ubuntu-server
The following packages will be upgraded:
apparmor at base-files bash bash-completion bsdutils btrfs-tools byobu ca-certificates cloud-guest-utils cloud-init
command-not-found command-not-found-data console-setup console-setup-linux cryptsetup debconf debconf-i18n dh-python
distro-info-data dmeventd dmsetup dnsmasq-base e2fslibs e2fsprogs eatmydata ebtables ethtool fdisk file
friendly-recovery gcc-7-base gcc-8-base geoip-database gettext-base gir1.2-glib-2.0 git git-man gnupg-l10n gpgv
hdparm initramfs-tools initramfs-tools-bin initramfs-tools-core iproute2 isc-dhcp-common iso-codes
keyboard-configuration language-selector-common libapparmor1 libapt-inst2.0 libatm1 libblkid1 libc-bin libc6
libcom-err2 libcomerr2 libcurl3-gnutls libdb5.3 libdevmapper-event1.02.1 libdevmapper1.02.1 libdrm-common libdrm2
libeatmydata1 libelf1 libext2fs2 libfdisk1 libfreetype6 libgcc1 libgcrypt20 libgdbm5 libgirepository-1.0-1
libglib2.0-0 libglib2.0-data libgraphite2-3 libharfbuzz0b libicu60 libidn11 libkeyutils1 liblvm2app2.2
liblvm2cmd2.02 liblz4-1 libmagic-mgc libmagic1 libmount1 libmpdec2 libncurses5 libncursesw5 libnghttp2-14 libnih1
libpam-modules libpam-modules-bin libpam-runtime libpam0g libplymouth4 libpolkit-agent-1-0 libpolkit-backend-1-0
libpolkit-gobject-1-0 libpopt0 libprocps6 libpython3-stdlib libpython3.6 libpython3.6-minimal libpython3.6-stdlib
libseccomp2 libselinux1 libsemanage-common libsemanage1 libslang2 libsmartcols1 libss2 libssl1.0.0 libssl1.1
libstdc++6 libtinfo5 libudev1 libuuid1 libxcb1 locales lshw lvm2 lxcfs lxd lxd-client man-db mawk mdadm mlocate
mount multiarch-support nano ncurses-base ncurses-bin ncurses-term netcat-openbsd open-iscsi open-vm-tools
openssh-client openssh-server openssh-sftp-server openssl pastebinit patch perl-modules-5.26 plymouth
plymouth-theme-ubuntu-text policykit-1 popularity-contest powermgmt-base procps publicsuffix python-apt-common
python3 python3-apt python3-cffi-backend python3-commandnotfound python3-cryptography python3-debconf
python3-distro-info python3-distupgrade python3-distutils python3-gdbm python3-lib2to3 python3-minimal
python3-pkg-resources python3-problem-report python3-serial python3-software-properties python3-update-manager
python3.6 python3.6-minimal rsync sensible-utils snapd software-properties-common sosreport squashfs-tools
ssh-import-id systemd-sysv tcpdump tzdata ubuntu-advantage-tools ubuntu-keyring ubuntu-minimal
ubuntu-release-upgrader-core ubuntu-standard ucf udev unattended-upgrades update-manager-core update-notifier-common
util-linux uuid-runtime vim vim-common vim-runtime vim-tiny vlan wget xdg-user-dirs xfsprogs xxd
202 upgraded, 0 newly installed, 0 to remove and 38 not upgraded.
Need to get 90.0 MB of archives.
After this operation, 18.9 MB of additional disk space will be used.
Get:1 http://security.ubuntu.com/ubuntu bionic-security/main amd64 file amd64 1:5.32-2ubuntu0.1 [22.1 kB]
.
.
.
Get:202 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 vlan amd64 1.9-3.2ubuntu6 [30.7 kB]
Fetched 90.0 MB in 2min 46s (543 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 27025 files and directories currently installed.)
Preparing to unpack .../base-files_10.1ubuntu2_amd64.deb ...
Unpacking base-files (10.1ubuntu2) over (10ubuntu1) ...
Setting up base-files (10.1ubuntu2) ...
Installing new version of config file /etc/issue ...
Installing new version of config file /etc/issue.net ...
Installing new version of config file /etc/lsb-release ...
(Reading database ... 27026 files and directories currently installed.)
Preparing to unpack .../bash_4.4.18-2ubuntu1_amd64.deb ...
preinst: ../sysdeps/unix/sysv/linux/spawni.c:368: __spawnix: Assertion `ec >= 0' failed.
dpkg: error processing archive /var/cache/apt/archives/bash_4.4.18-2ubuntu1_amd64.deb (--unpack):
new bash package pre-installation script subprocess was killed by signal (Aborted), core dumped
dmesg: read kernel buffer failed: Function not implemented
update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode
Errors were encountered while processing:
/var/cache/apt/archives/bash_4.4.18-2ubuntu1_amd64.deb
W: http: aptMethod::Configuration: could not load seccomp policy: Invalid argument
W: http: aptMethod::Configuration: could not load seccomp policy: Invalid argument
E: Sub-process /usr/bin/dpkg returned an error code (1)
donofrio@WSAL0196:~$

You need to hold back bash, see reddit

You need to hold back bash

Yeah, no. It's not just bash or ebtables, or any one particular package. The fix is to upgrade to build 17134, the latest and greatest stable version. As stated above, there is an issue with 16299 and below in support CLONE_VFORK and CLONE_VM. The upgrade does work in this build. That said, if upgrading Windows isn't an option, Ubuntu 18.04 has it's own image on the Microsoft Store for download.

What is weird is on my desktop's at work it's failing but on the work notebooks it's working.  I'll provide bash versions in a few hours (I'm on iirc freenode #windows-subsystem-for-linux #ubuntu-on-windows.)

@lewisdonofrio You sound like you just need to wait for the server install method to become available. Or you can just use https://github.com/Microsoft/WSL-DistroLauncher to compile and build the win32 (or take the extra steps to make it an appx) using the Docker image. Since Canonical hasn't released details on which image they use, this is the default image I'd go with (this would be the case for most distros)

I've used WSL-DL and it didn't "quite do it" for me and I am using the unsquish method from https://github.com/Microsoft/WSL/issues/2618 with the squish file https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.tar.gz then I update/dist-upgrade then I get 201 packages to update and bang 200th package errors ;(

Did you see nay error with ebtables?

Well this is really weird...the notebook that is working has bash 4.4.19(1) and that is the weird thing, it updates fine, no issues with things seg-faulting during updates.  Now the desktops built last few of them, they try to install the (2) version and blow up the whole show...thoughts?  (they were all built with same files from tinyurl.com/donofrioworkdesk (the ppt and the zipfile in downloads dir then rootfs is in downloads dir when done)

@lewisdonofrio Can you post the output of the notebook and the desktop for uname -a ?

Desktop at work having "issues" returns:
Linux WSAL0196 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
inxi -Fxzwrc0 = http://paste.ubuntu.com/p/wkKmn5MFqt/
notebook
Linux LTAL0111 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
inxi -Fzxwrc0 = http://paste.ubuntu.com/p/kkGHZ57hZJ/

anyone else getting weird perms for .cache directory, I have to manually do chown/chgrp -R /home/donofrio/.cache then the many dbus permission notices goes away from the console.  Just figured I'd share.


Database backup Download

#Author: Axx8
#Submit date: 25/02/2022
#Target: https://www.eyoucms.com/
#Version:EyouCMS-V1.5.5-UTF8-SP3_1 (https://www.eyoucms.com/data/sqldata/20211024-190227-1-v1.5.5.sql)
#View version:http://www.target.com/data/conf/version.txt
#Description:The /data/sqldata directory has no access restrictions. You can download it by building an absolute path, in which (20211024-190227-1-v1.5.5. SQL) - (yyyy / DD / h / min / S - backup times - version. SQL) constructs batch fuzzy tests through scripts
#PoC:
Background backup

Path

http://loaclhost/data/sqldata/20211024-190227-1-v1.5.5.sql
Batch fuzz test through script
Eyoucms_Sqldata_Scan.py   Write it yourself

已修复


⚠ V2RAY 🇸🇬 Singapore SGO 1 has degraded performance

In 02b460b, V2RAY 🇸🇬 Singapore SGO 1 (https://sgv-2.openv2ray.com/) experienced degraded performance:

HTTP code: 200
Response time: 13667 ms

Resolved: V2RAY 🇸🇬 Singapore SGO 1 performance has improved in 4e693b2.


Plugin broken in vim 8.1

I'm running vim 8.1-996 and the plugin is returning an error when I try to auto-complete. The problem seems to be use of a: prefixes for the variables inside Complete function. Those prefixed are only meant to be used for the function arguments.  I assume that ViM 8.1 is now more strict about using them and thus returns an E461 error.
Error detected while processing function terraformcomplete#Complete:
line   11:
E461: Illegal variable name: a:res

@barlik thanks, will double check for that

hi, can you pull the change and check now? there might be some issue(it was a quick fix)

@juliosueiras, I confirm that it's fixed now. Thank you for the quick response.

Unrelated question. Have you had any thought about implementing the completion as a language server? Not that I particularly care about other editors, but implementing a language server could get much more people involved with the project and thus everybody benefits.

@barlik no problem, that is a valid question, I am mostly waiting for HCL 2.0 to become GA, since I am definitely planning of create a LSP version of this plugin

That's amazing, I'm looking forward to it. Thanks again for writing this plugin and fixing the problem.


The "pre_generation" in genabout.py should use python's path function to do the update

The "pre_generation" in genabout.py should use python's path function to do the update instead of the string partition.

I believe this can be closed.


Android dialogs: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference

I can't open dialogs on Android with a nng app, I get this everytime:

JS: Error: Uncaught (in promise): Error: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference
JS:     android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154)
JS:     android.app.AlertDialog$Builder.(AlertDialog.java:379)
JS:     com.tns.Runtime.callJSMethodNative(Native Method)

I saw this reported here: https://github.com/NativeScript/NativeScript/pull/1632  but it was closed but I'm still seeing this.
Any thoughts on how to resolve?

I should mention this happens on GenyMotion emulator running Nexus 5 - 5.1.0 - API 22 - 1080x1920.
Not sure if related to emulator environment but very stumped by this.

Chalking this up to strange emulator issue. Nexus 6P virtual device works fine.

This is happening on real device too.

Sometimes I need to stop and restart the emulator to fix it, or rebuild the app entirely (incremental fail)

I am also facing same issue on emulator, any fix available for this?

java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.AlertDialog android.app.AlertDialog$Builder.create()' on a null object reference


Add versioning for webpage and python docs

This adjusts the workflows so that different versions are kept for the webpage and Python docs.
TODO: Add instructions for cleaning up / preparing current Github pages.

Codecov Report

Merging #545 (dc8766f) into main (6eeb593) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #545   +/-   ##
=======================================
  Coverage   63.99%   63.99%
=======================================
  Files          45       45
  Lines        4497     4497
  Branches       58       58
=======================================
  Hits         2878     2878
  Misses       1619     1619

Components
Coverage Δ

apel_plugin
67.47% <ø> (ø)

auditor
82.11% <ø> (ø)

slurm_collector
66.41% <ø> (ø)

slurm_epilog_collector
0.00% <ø> (ø)

htcondor_collector
∅ <ø> (∅)

priority_plugin
37.92% <ø> (ø)


Add the MAP dapp

Since we have a repo for all the dapps, let's move the map here!

Closing to fix my commits typo


symbol-bootasrap run /start　一回の命令では　起動しない事が多い件

symbol-bootasrap run -d / start -d Cases that often do not start with a single command
"symbol-bootstrap start -d" or "symbol-bootstrap run -d"
Does not start with a one-time command
It will start in the 4th time at most

It seems that default timeout value is too short.
https://github.com/nemtech/symbol-bootstrap/blob/e2bb4a10ce8c47ed71082833538e181e1e65d79a/src/service/RunService.ts#L21
The problem can be escaped running with --timeout 600000 (for example 10min.)

I tried it with "--timeout 300000".
"symbol-bootstrap run(or start) -d --timeout 300000"
It seems to start with one command.
I've tried it several times and it all seems to be successful
I can go with this! thanks

Fixed by increasing timeout.

It seems to be good. thanks!


[Only War Enhanced] Add accurate d10s to dmg roll

The accurate d10s were being tracked, but not where you could see
Changes / Comments
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[x] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Phantomjs crashed

Hi there, I am running the testing for grafana which runs a grunt-karma testing task. And I got following error which relates to the karma-phantomjs-launcher. Does anyone have any ideas? Thanks.
   Please read the bug reporting guide at
<http://phantomjs.org/bug-reporting.html> and file a bug report.

06 03 2017 14:46:03.375:DEBUG [launcher]: Process PhantomJS exited with code 0
06 03 2017 14:46:03.375:ERROR [launcher]: Cannot start PhantomJS

06 03 2017 14:46:03.375:DEBUG [temp-dir]: Cleaning temp dir /tmp/karma-79976567
06 03 2017 14:46:03.376:ERROR [launcher]: PhantomJS failed 2 times (cannot start). Giving up.
06 03 2017 14:46:03.377:DEBUG [karma]: Run complete, exiting.
06 03 2017 14:46:03.377:DEBUG [launcher]: Disconnecting all browsers
>> [grunt-notify] growl: Growl not available for your OS.
>> [grunt-notify] IS_WINDOWS: false
>> [grunt-notify] PROGRAM_FILES: undefined
>> [grunt-notify] PROGRAM_FILES_X86: undefined
>> [grunt-notify] fullPathToApplication: false
>> [grunt-notify] snarl: Snarl not available for this OS.
>> [grunt-notify] os: Linux
>> [grunt-notify] version: 4.4.0-47-generic
>> [grunt-notify] IS_MAC: false
>> [grunt-notify] MOUNTAIN_LION: false
>> [grunt-notify] notification_center: Not available for your OS.
>> [grunt-notify] notify-send: notify-send was not found in your path
>> [grunt-notify] os: Linux
>> [grunt-notify] version: 4.4.0-47-generic
>> [grunt-notify] IS_WINDOWS: false
>> [grunt-notify] WINDOWS_8: false
>> [grunt-notify] toaster: Not available for your OS.
>> [no-notifications] title: grafana
>> [no-notifications] message: Task "karma:test" failed.
Warning: Task "karma:test" failed. Use --force to continue.

Aborted due to warnings.

Check node_module phantom/lib and be sure location.js exists. If not do an NPR run install from the phantom folder to create it.
This works for both phantomjs and phantomjs-prebuilt

Thanks @jurrinus, location.js does exist in node_modeule/phantomjs-prebuilt/lib. Btw, I have installed phantomjs globally.


fix the cursor and delete comment

Close the comment and add pointer

@harithzamri Please make the changes in the PR that was opened already.


Ability to update a scratch

We should take advantage of the PATCH functionality we discussed earlier on Discord and allow the owner of a scratch to update the c code, context, and/or compiler configuration. I think this would be as simple as calling the existing PATCH endpoint via a new button that is only enabled for the creator of the scratch.

I know nothing about how to properly implement session-related stuff or cookies, so someone besides me will probably have to help with that aspect. I guess the first person to visit a scratch can "own" it. In the case of creation via permuter, this will be helpful since the only one who knows the slug is the creator, and they'd presumably visit first anyway.


bug: Improper import of not-compiled ethers package

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
@wagmi/core 0.10.9
Current Behavior
When dynamic import()ing @wagmi/core and @wagmi/core/providers/public on a Nextjs app, it tries to resolve the development version of the ethers/lib/utils.js file.
Since that file is not exported by ethers/package.json, the import fails and so does the build

Expected Behavior
The package should not reference files that are not correctly exported by the package and should work when import()ed dynamically
Steps To Reproduce
Create a new Next app with yarn create next-app
yarn install @wagmi/core ethers as per the docs instruction. This behaviour is consistent on both ethers v5 and v6
import("@wagmi/core") on any file and try to load localhost:3000
Link to Minimal Reproducible Example (StackBlitz, CodeSandbox, GitHub repo etc.)
https://github.com/brunocangs/wagmi-import-issue
Anything else?
No response

Are you using ethers v6 or v5?   Wagmi only works with v5.

Wagmi only supports ethers v5.   Run “yarn add ethers@5” and your issue will be fixed

Wagmi only supports ethers v5. Run “yarn add ethers@5” and your issue will be fixed

I see! It actually did work, thank you
Would be nice to update the docs on the setup part

@brunocangs try using viem instead of wagmi/core.   Viem is the latest version of wagmi core in a wag

@brunocangs try using viem instead of wagmi/core. Viem is the latest version of wagmi core in a way


Noop Razor Sdk for non C# projects

https://github.com/aspnet/Razor/issues/2188

Added two integrations tests and an F# test app

🆙 📅


ChatGLM2_AdaLoRA——transformers.ipynb

Very impressive job! After the Google Colab test, need to install one more package to run perfectly.

Thanks！


Fix small error in setting the output filename

The previous method of using strip() had potential of removing letters from the beginning of a filename.  For example, the input file of "p1020440_89.8616_o.jpg" would create an output file named "1020440_89.8616_o.avif" as strip() would match and remove the inital p (based on the search pattern "jpg").
Instead, let's just remove letters based on the length of the file extension.

Great blog post and script, btw!  Helped me save tons of space in my Google Photos.  Appreciate you putting in the time and energy into writing everything up and making it public.


Please fix the date on this page

This content arrived about a week ago, not on 4-19-2017. I'm away from the ability to sign-in & update this. Let's work on a better pull-request process that highlights such an inaccuracy.

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

ID: 46117d19-5003-f697-e266-9404754fc134
Version Independent ID: b6be0cc8-dd53-fc7a-0ffb-a06881e58428
Content: Container Support for non-DX APIs - Windows drivers
Content Source: windows-driver-docs-pr/display/container-non-dx.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @mimisasouvanh
Microsoft Alias: misaso

Date changfed to 4/3/19


Moved variables to _vars.scss file

Hi there! You have a very usefull project and I'm glad to use it!
Today I was trying to calculate the space your hamburger occupy using the project variables, but I stuck on the file importation part.
Instead of import the whole package, I'm importing only the base and the single animation file I want to use.
Since I also need to use the variables on the project, I need to import them too. The problem is that they're inside a file that import the whole project (including the animations that I don't want to load). Since I just want to import the vars, I decide to make this pull request. I think that it makes the code more flexible and improve the separation of concerns.

Hi, thank you for the feedback and opening a PR. Hm, that’s an interesting thought—I was considering these variables are more local or private for this library (with the understanding that there aren’t truly “private” variables in SCSS).
Instead, if you have shared variables for your project, I’d suggest setting shared variables for your project, and then change the value of Hamburgers’ variables to the shared variables. For example:
$shared-layer-spacing: 4px;

$hamburgers-layer-spacing: $shared-layer-spacing;
@import "hamburgers";

$calculated-layer-spacing: $some-other-variable - $shared-layer-spacing;
.el { width: $calculated-layer-spacing; }

That way references to the variable in your project aren’t dependent on Hamburgers, and things won’t break if Hamburgers is ever replace or ripped out.

@jonsuh, the problem is that I don't need to touch the hamburgers variables. I'm not changing anything, I'm using the package spaces, heights, everything, but I need to calculate the space the hamburger is consuming.
Right now, my solution was to copy your vars and put them in a file inside my project so I can make the calculations. But this don't sounds good.

Do you have a repo or sample code you could share with the implementation so I can have a better idea?

I'll create a Gist. Just a couple of moments.

Actually I'm not using the vars anymore, I decide to hard code that height calculated by the browser (54px).


Updated to show an error screen when ssl protocol handshake error is encountered.

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #3548   👈

This comment was auto-generated by Graphite.


add more isXX functions

i want to handle fetch response data auto by Response headers content-type
https://developer.mozilla.org/en-US/docs/Web/API/Response
is there be more funtions to get types like isJson?

No. You can write your own functions that are not methods.


Docs: Adds a figure of the architecture.

Start addressing #59. Feedback is appreciated.

Very nice progress so far! No other comments, the picture is perfect.


Create element without patching

Is there an exposed method to create an element from a virtual node definition, without "patching", i.e. not mounting it to DOM? I know creating a temporary element would probably work but it feels cumbersome since all I want is the generated element.
Desired:
const node = h('div', 'Foobar');
const element = patch.createElement(node);
// element instanceof DOMElement

What probably works right now (haven't tested but should):
const node = h('div', 'Foobar');
const temporary = document.createElement('div');
patch(temporary, node);
const element = temporary.childNodes[0];
temporary.removeChild(element);
// element instanceof DOMElement

I believe there's no such method, but as you suggest, this works:
var vnode = patch(document.createElement('div'), h('div', 'Foobar'))
vnode.elm // <-- there's the DOM element you want

With that in mind you could maybe create a helper to do that
function createElement (vnode) {
  return patch(document.createElement('div'), vnode).elm
}


Image fetching doesn't work correctly

The pattern matching breaks here because user seems to be just a map, not a tuple.

What's your setup? This is working for me.
The pattern match is done by the last pipe operator result:
{_, photo_url} =
      user
      |> Enum.filter(fn {k, _v} -> String.starts_with?(k, "photo_") end)
      |> Enum.sort_by(fn {"photo_" <> size, _v} -> Integer.parse(size) end)
      |> List.last

Since VK has different attributes for images like: photo_50, photo_100 and so on, what we do here is:

Filter only attributes starting with photo_
Sort it by size
Get the biggest as a tuple: {photo_size, photo_url}

Proof:

That's my foolish mistake, I had a quick look and didn't get it correctly. Anyway,  as far as I know, those fields, photo_50, photo_100 and so on should be requested in the users.get request (the fields param) but it doesnt look like they are by default.

You have to configure the non-default fields in your app's settings:
config :ueberauth, Ueberauth,
  providers: [
    vk: { Ueberauth.Strategy.VK, [profile_fields: "photo_100,sex,bdate"] }
  ]

I found a bug you were talking about. If missing any photo_* params the code will fail. Fixed that already. I will push it with other improvements shortly.
Thanks!

Yeah I know, It just should be default if it's always assumed that those fields are present :) And thank you for fixing it so fast :)

Any feedback is welcomed. If everything is cool, I will create a new release.


fix(datepicker): include button and dropdown styles

fix #217

:tada: This PR is included in version 5.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 5.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Question: What's the best way to add multiple languages?

Hi, I am using Hubpress and I was wondering what was the best way to have my blog in two languages?

I have the same question.

At the moment, HubPress is English language only. There is no currently supported way of switching between languages for the user natively.
As users, if this feature was to be scoped and implemented, how would you want to control multi-language posts?


Properly implement column relocation, and use it in RotateEditTask

Please note that this PR is untested as I saw bukkit APIs were added to this fork and decided it wasn't worth the effort of setting it up without some guidance.
Previously RotateEditTask had hard-coded jank throughout the data-converter, this commit aims to fully separate the two.
To do this a new EditTask#actOnColumn api was added, which allows an implementation to output any number of columns at any position.
The cubes output by EditTask#actOnCube will attempt to use a column in their position if it exists.

Force push for rebase onto master

I am planning to merge this upstream at some point.
Let me know if there is anything blocking merge here.
I can set up a bukkit environment and properly test it if that's blocking

I am planning to merge this upstream at some point. Let me know if there is anything blocking merge here.
I can set up a bukkit environment and properly test it if that's blocking

I needed to merge #4 before merging this. I will test this and merge in the next few days.

Will rebase tonight and get back to you 👍

The stacktrace is interesting, assuming my line numbers match that suggests your world is lacking column data in places where there is cube data which should be impossible assuming the world isn't edited externally

The stacktrace is interesting, assuming my line numbers match that suggests your world is lacking column data in places where there is cube data which should be impossible assuming the world isn't edited externally

I cannot edit your branch. I added some small comments in this MR to get the code to run. Please add my changes and I will merge this PR.
With your latest commit and my suggestions, I tested this PR and it works.

Interesting, you should've been able to push to my branch. Ah well, suggestions applied