Errors when decoding gzip with many short reads and occasional harvesting of the output buffer

Hi, I've been playing around with the library and come across a strange problem (which could be entirely due to me holding it wrong). It came up in the context of using the gzip decoder during some buffered I/O, I've tried to replicate the conditions in the following C program below (please excuse the whacky constants and sloppy coding while I was trying to get to a minimal example).
The rough conditions for this error are (a) there are short reads, and (b) the destination buffer is sometimes emptied and sometimes not. In the example below, I decode 5 bytes at a time, and on every 3rd loop empty the destination buffer to the console. The decoding runs off the rails and gets the wrong answer (and a bad checksum error at the end). If I empty the destination buffer on every loop instead (or simply reset dst.meta = {0} on every loop), the decode runs correctly. Alternatively, if I leave the destination buffer alone, letting it fill up, the decode runs correctly.
Perhaps I am misunderstanding something about the contract to do with coroutine suspension: is the caller allowed to modify the dst buffer after a short read? My assumption was that while a coroutine was not running, the caller is free to compact buffers as they please. My other assumption was that after a coroutine suspends, it has given away the right to access any of the bytes in the dst buffer again.
Cheers,
Joel
#include <stdint.h>
#include <stdio.h>
#define WUFFS_IMPLEMENTATION
#include "wuffs-v0.3.c"

// First 50 Fibonacci numbers, gzipped using Python's gzip module.
uint8_t inbuf[183] = {
  0x1f, 0x8b, 0x08, 0x00, 0x07, 0x22, 0x16, 0x61, 0x02, 0xff, 0x15, 0x8f, 0xc1, 0x11, 0x00, 0x31, 0x08, 0x02, 0xff, 0x54, 0x23, 0x6a, 0x44, 0xfb, 0x6f,
  0xec, 0xb8, 0xc9, 0xcb, 0x59, 0x09, 0x6b, 0x80, 0x7e, 0x89, 0xc2, 0xc3, 0x82, 0x85, 0x24, 0xaa, 0xf1, 0x3c, 0x1d, 0xd8, 0x8d, 0xac, 0x42, 0x49, 0x18,
  0x06, 0x6e, 0x05, 0xbe, 0x13, 0xf2, 0x6d, 0xa3, 0xb9, 0xc4, 0x68, 0x1e, 0x18, 0xd7, 0x03, 0x4a, 0xf4, 0x57, 0x3b, 0x4f, 0xe8, 0xa9, 0x59, 0xe8, 0x45,
  0x9a, 0x26, 0xeb, 0x0a, 0xbc, 0x71, 0x02, 0x45, 0xad, 0xd7, 0x1e, 0x3b, 0xf3, 0xb0, 0x95, 0xd1, 0xe1, 0xde, 0x9e, 0x9c, 0x73, 0xb9, 0xb6, 0xe2, 0x50,
  0x2f, 0xfb, 0x69, 0xf1, 0x14, 0xb9, 0x2e, 0xbd, 0x4c, 0xf5, 0x5f, 0xd4, 0x57, 0x61, 0x88, 0x6c, 0x9a, 0x53, 0xa8, 0x8b, 0x5d, 0x3a, 0x3a, 0xe5, 0xc8,
  0xad, 0x35, 0xc2, 0xca, 0xc6, 0xde, 0x9e, 0xf7, 0x36, 0xd8, 0x96, 0x1a, 0x9d, 0x0b, 0x6f, 0xd0, 0x66, 0xd7, 0x5d, 0x82, 0x4c, 0x62, 0xe5, 0xf3, 0xe8,
  0xfa, 0x0b, 0x8b, 0x59, 0x64, 0x6b, 0x8a, 0xf4, 0x84, 0x3c, 0xd9, 0xfc, 0x85, 0x0a, 0xbd, 0xa1, 0x67, 0x3f, 0x0d, 0x24, 0xad, 0xda, 0xd2, 0x87, 0x0f,
  0x12, 0x69, 0x4a, 0xa8, 0x3b, 0x01, 0x00, 0x00,
};
wuffs_base__io_buffer src = {
  .data = {
    .ptr = inbuf,
    .len = sizeof(inbuf),
  },
  .meta = {0}
};

// "Infinite" output buffer (we won't use much of it).
uint8_t outbuf[10 * 1024] = {0};
wuffs_base__io_buffer dst = {
  .data = {
    .ptr = outbuf,
    .len = sizeof(outbuf),
  },
  .meta = {0}
};

int main(void) {
  uint8_t workbuf[1];
  wuffs_base__status status;

  // Init decoder
  wuffs_gzip__decoder dec;
  status = wuffs_gzip__decoder__initialize(&dec, sizeof dec, WUFFS_VERSION, 0);
  if (!wuffs_base__status__is_ok(&status)) {
    printf("Could not init decoder: %s\n", status.repr);
    return 1;
  }

  // Decode 5 bytes at a time. On every third loop, print the output and empty the dst buffer.
  for (int i = 0; i < sizeof(inbuf); i += 5) {
    if (i >= sizeof(inbuf)) {
      i = sizeof(inbuf);
      src.meta.closed = 1;
    }

    src.meta.wi = i;
    status = wuffs_gzip__decoder__transform_io(&dec, &dst, &src, (wuffs_base__slice_u8){.ptr = workbuf, .len = sizeof(workbuf)});
    if (status.repr != wuffs_base__suspension__short_read) {
      printf("Expecting a short read, was %s\n", status.repr);
      return 1;
    }

    // Change to i % 5 == 0 to have things run correctly.
    if (i % 15 == 0) {
      fwrite(dst.data.ptr + dst.meta.ri, sizeof(uint8_t), dst.meta.wi - dst.meta.ri, stdout);
      dst.meta.ri = dst.meta.wi;
      wuffs_base__io_buffer__compact(&dst);
    }
  }

  // Check whether decoding was successful.
  src.meta.wi = sizeof(inbuf);
  status = wuffs_gzip__decoder__transform_io(&dec, &dst, &src, (wuffs_base__slice_u8){.ptr = workbuf, .len = sizeof(workbuf)});
  if (status.repr != NULL) {
    printf("Decode unsuccessful: %s\n", status.repr);
    return 1;
  }

  return 0;
}

You're not holding it wrong. Thanks for the great repro!


unspent

Please help me.
If i cant get unspent list,How do I construct the input?

Do you want to create raw transactions?
If so, here is an example:
https://github.com/OmniLayer/omnicore/wiki/Use-the-raw-transaction-API-to-create-a-Simple-Send-transaction


pod geos error

the config.log below is:
configure:3545: gcc -V >&5
clang: error: argument to '-V' is missing (expected 1 value)
clang: error: no input files
configure:3556: $? = 1
configure:3545: gcc -qversion >&5
clang: error: unknown argument: '-qversion'
clang: error: no input files
configure:3556: $? = 1
configure:3576: checking whether the C compiler works
configure:3598: gcc  /usr/local/opt/libxml2/include /usr/local/opt/libxml2/lib conftest.c  >&5
ld: can't map file, errno=22 file '/usr/local/opt/libxml2/lib' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Hi @badmonkeyemail,
If you look at the second last line of the log you posted above, ld: can't map file, errno=22 file '/usr/local/opt/libxml2/lib' for architecture x86_64 it looks to be an issue with libxml2
Please share the whole log, if possible as it will make it easier to understand where the problem is

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.69.  Invocation command line was
$ ./configure
---------
Platform.
---------
hostname = zhanghaoxi.siweidg.com
uname -m = x86_64
uname -r = 16.6.0
uname -s = Darwin
uname -v = Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64
/usr/bin/uname -p = i386
/bin/uname -X     = unknown
/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64
Kernel configured for up to 4 processors.
4 processors are physically available.
4 processors are logically available.
Processor type: x86_64h (Intel x86-64h Haswell)
Processors active: 0 1 2 3
Primary memory available: 8.00 gigabytes
Default processor set: 318 tasks, 1396 threads, 4 processors
Load average: 1.78, Mach factor: 2.20
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown
PATH: /Users/siweidg/.rvm/gems/ruby-2.2.2/bin
PATH: /Users/siweidg/.rvm/gems/ruby-2.2.2@global/bin
PATH: /Users/siweidg/.rvm/rubies/ruby-2.2.2/bin
PATH: /Users/siweidg/.rvm/bin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /Library/Frameworks/Mono.framework/Versions/Current/Commands
-----------
Core tests.
-----------
configure:2510: checking build system type
configure:2524: result: x86_64-apple-darwin16.6.0
configure:2544: checking host system type
configure:2557: result: x86_64-apple-darwin16.6.0
configure:2577: checking target system type
configure:2590: result: x86_64-apple-darwin16.6.0
configure:2652: checking for a BSD-compatible install
configure:2720: result: /usr/local/bin/ginstall -c
configure:2731: checking whether build environment is sane
configure:2786: result: yes
configure:2937: checking for a thread-safe mkdir -p
configure:2976: result: /usr/local/bin/gmkdir -p
configure:2983: checking for gawk
configure:3013: result: no
configure:2983: checking for mawk
configure:3013: result: no
configure:2983: checking for nawk
configure:3013: result: no
configure:2983: checking for awk
configure:2999: found /usr/bin/awk
configure:3010: result: awk
configure:3021: checking whether make sets $(MAKE)
configure:3043: result: yes
configure:3072: checking whether make supports nested variables
configure:3089: result: yes
configure:3208: checking whether to enable maintainer-specific portions of Makefiles
configure:3217: result: no
configure:3280: checking for gcc
configure:3296: found /usr/bin/gcc
configure:3307: result: gcc
configure:3536: checking for C compiler version
configure:3545: gcc --version >&5
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
configure:3556: $? = 0
configure:3545: gcc -v >&5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
configure:3556: $? = 0
configure:3545: gcc -V >&5
clang: error: argument to '-V' is missing (expected 1 value)
clang: error: no input files
configure:3556: $? = 1
configure:3545: gcc -qversion >&5
clang: error: unknown argument: '-qversion'
clang: error: no input files
configure:3556: $? = 1
configure:3576: checking whether the C compiler works
configure:3598: gcc  /usr/local/opt/libxml2/include /usr/local/opt/libxml2/lib conftest.c  >&5
ld: can't map file, errno=22 file '/usr/local/opt/libxml2/lib' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:3602: $? = 1
configure:3640: result: no
configure: failed program was:
| /* confdefs.h /
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| / end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:3645: error: in /Users/siweidg/Library/Caches/CocoaPods/Pods/Release/geos/3.5.0-e96c6': configure:3647: error: C compiler cannot create executables See config.log' for more details
----------------
Cache variables.
----------------
ac_cv_build=x86_64-apple-darwin16.6.0
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=/usr/local/opt/libxml2/include
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=/usr/local/opt/libxml2/lib
ac_cv_env_LIBS_set=set
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=x86_64-apple-darwin16.6.0
ac_cv_path_install='/usr/local/bin/ginstall -c'
ac_cv_path_mkdir=/usr/local/bin/gmkdir
ac_cv_prog_AWK=awk
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_make_make_set=yes
ac_cv_target=x86_64-apple-darwin16.6.0
am_cv_make_support_nested_variables=yes
-----------------
Output variables.
 And if possible, to create a sample project that I could clone and look at the issue.

Hi @vfn,
Thank you for your reply.
I used the geoswift project, and I deleted GEOSwift.xcworkspace file because it's error:
diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
my podfile is
Uncomment this line to define a global platform for your project
platform :ios, ’10.0’
use_frameworks!
target 'GEOSwift' do
pod 'GEOSwift'
pod 'geos'
pod 'CocoaLumberjack'
end
target 'GEOSwiftTests' do
pod 'GEOSwift'
pod 'geos'
pod 'CocoaLumberjack'
end
Thank you for your help.

Hi @badmonkeyemail, I don't believe that deleting GEOSwift.xcworkspace was the correct action. The error message clearly stated what was the issue:
diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
You should first run pod install and then you can try to build the project again.
If that doesn't solve your problem, please create a sample project and share the URL here.
Thanks!

Hi @vfn ,
I upload my project. https://github.com/badmonkeyemail/test-geoswift
Please help.
Thank you.

@badmonkeyemail, Thank you for creating the repo. I cloned it and it worked just fine on my machine. After cloning, I run pod install, and then opened GEOSwift.xcworkspace. The project builds with no issues. ¯_(ツ)_/¯

Hi @vfn , it's too strange! What should I do? I guess the problem is maybe my environment or setting. This is parameters of my mac:
mac 10.12.5
Xcode 8.3.2 (8E2002)
gcc-4.9 (Homebrew GCC 4.9.4) 4.9.4
--- I don't use clang，because https://svn.osgeo.org/geos/trunk/INSTALL said "OS/X 10.6, compile with gcc-4.0 rather than the default gcc that comes with XCode.  CC=gcc-4.0 CXX=g++-4.0 ./configure" ,
and I used clang at first but it's still error.
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
gem 2.6.7
pod 1.2.1
Homebrew 1.2.3
libxml2 2.9.4_3
Anything wrong?
Thanks.

@badmonkeyemail I can't see anything wrong with your setup. Could you explain what you are trying to do? Are you trying to integrate GEOSwift into an existing project or are you planing to do some development on the GEOSwift code itself?

@vfn , My app need to draw vector data and my render engine supports geometry object. For simple vector data, like 'Polygon((0 0, 10 0, 10 10, 0 10, 0 0))', is ok, but same special complex data, which has a hole in the polygon or multi features, displays wrong. So I need geoSwift to parse vector data to correct geometry object. Is there anything else I can do without geoSwift?

@badmonkeyemail, could you try cloning the GEOSwift repo again? Then on terminal, type pod install and the proceed to open the GEOSwift.xcworkspace file.
Let me know it the pod will fail to build. if it fails, please create a repo and push this new project

Hi @vfn , I think the problem is about configure geos, the log said,
configure:3545: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin16/4.9.4/lto-wrapper
Target: x86_64-apple-darwin16
Configured with: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_gcc49/gcc49/work/gcc-4.9.4/configure --prefix=/opt/local --build=x86_64-apple-darwin16 --enable-languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc49 --includedir=/opt/local/include/gcc49 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.9 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.9 --with-gxx-include-dir=/opt/local/include/gcc49/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-isl=/opt/local --disable-isl-version-check --with-cloog=/opt/local --disable-cloog-version-check --enable-stage1-checking --disable-multilib --enable-lto --enable-libstdcxx-time --with-build-config=bootstrap-debug --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --with-pkgversion='MacPorts gcc49 4.9.4_1' --with-build-config=bootstrap-debug
Thread model: posix
gcc version 4.9.4 (MacPorts gcc49 4.9.4_1)
configure:3556: $? = 0
configure:3545: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3556: $? = 1
configure:3545: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3556: $? = 1
configure:3576: checking whether the C compiler works
configure:3598: gcc  /usr/local/opt/libxml2/include /usr/local/opt/libxml2/lib conftest.c  >&5
ld: can't map file, errno=22 file '/usr/local/opt/libxml2/include' for architecture x86_64
collect2: error: ld returned 1 exit status
configure:3602: $? = 1
configure:3640: result: no
configure: failed program was:
| /* confdefs.h /
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| / end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:3645: error: in `/Users/siweidg/Library/Caches/CocoaPods/Pods/Release/geos/3.5.0-e96c6':
configure:3647: error: C compiler cannot create executables
There were three error bothered me, they caused geos compilation terminated.
gcc: error: unrecognized command line option '-V'
gcc: error: unrecognized command line option '-qversion'
ld: can't map file, errno=22 file '/usr/local/opt/libxml2/include' for architecture x86_64
Anyway, thank you a lof, I will try again.

Hi @vfn , My friend compiled it okey. I feel very sad. Your project has no problem, its my  fault.
I will colse it, and thanks your help again.

@badmonkeyemail no problems! Please consider creating a pull request with your changes once you've finished them.


Fix babel vulnerability

A new "critical severity" vulnerability was identified recently for @babel/traverse. More details are in https://github.com/advisories/GHSA-67hx-6x53-jw92. Since your repository is using this package, kindly fix it at the earliest.

fixed

It looks like there are some typescript dependencies that are using the old version.

thanks for resolving


pkg_tar ignores package_dir for symlinks

Pretty much what the title says. The package_dir attribute becomes self.directory in build_tar.py, but it is not taken into account when archiving symlinks (and pretty much anything that is not a file, see normpath vs Tarfile.normalize_path). Is this intentional?

Can you provide a reproduction highlighting the issue.

Fixed by 637. 🎉

Fixed by #637. 🎉


Update to ignore focus on blur if the focus target is a toggle

Potential fix for #215 where the blur/focus behaviour is ignored if the focus target is a toggle.
Previous implementation was looking for the focus target to be inside the toggling node, which sometimes the toggle button wouldn't be.
Makes version 1.0.0-alpha.12+ compatible with the standard UI pattern

@sarah-storm I though this rang a bell... I changed the implementation of closeOnBlur in response to this issue in the modal navigation on the Patterns repo - https://github.com/stormid/ui-patterns/issues/19#issuecomment-963209360.
The bug you identified trumps that issue though and I think that we should merge this fix.


Removed nodegit dependency

This made git clone crazy... I recomend to you to remove the node_modules folder altogether from the git history.
https://help.github.com/articles/remove-sensitive-data/

I was almost sure I added that to git ignore

It's added to .gitignore, but seems you added the files before. Please clen
them, it adds 5mb of useless download.
El 22/11/2015 03:17, "Lite McFish"<EMAIL_ADDRESS>escribió:

I was almost sure I added that to git ignore
—
Reply to this email directly or view it on GitHub
https://github.com/lite20/ngit/pull/1#issuecomment-158701350.


Add lambert azimuthal equal area coord_system

Depends on https://github.com/SciTools/iris-test-data/pull/37 and https://github.com/SciTools/cartopy/pull/619

:+1: Now it just needs a new Cartopy release...

It probably also needs an entry to the what's new.

It probably also needs an entry to the what's new.

Yes, good point. :+1:

"

@bjlittle , this is the pull request I was talking about that is now needed.

Failing because of this:
ERROR: test_365_calendar (iris.tests.unit.fileformats.pp_rules.test_convert.TestLBTIM)
but I didn't touch that area of code :confused:

That failure was fixed in #2144, targeted at the v1.10.x branch. This change needs to make its way onto master, and then you can rebase onto that to get passing tests here (or we can trust that this feature doesn't cause the failure). There is another test failure too (an error actually), not sure what that one is caused by.

I am going to add a test for the coordinate units discussed in this comment (I'm hoping that's not a controversial change), and then rebase.

@bjlittle The tests are now passing and the static method is working correctly.

Hi @lbdreyer
i'm afraid something has occurred on master such that your branch now has conflicts
please rebase and fix so we can see a plausible change with test results
are you still waiting on a cartopy release for this to be able to work properly?
mark

@marqh
I have rebased and the tests are passing again.

are you still waiting on a cartopy release for this to be able to work properly?

No, the change that this required was in the Cartopy 0.14 release

@lbdreyer Great work! Thanks :+1:


ngrx/store-log-monitor has incorrect peer dependency "<EMAIL_ADDRESS>

I've got  a warning:
$yarn
yarn install v0.24.6
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "<EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>[4/4] 📃  Building fresh packages...
success Saved lockfile.
it's not really important? or someone forget to update to @angular/core 4?

@webmobiles switch to https://github.com/ngrx/store-devtools


Fix files that import logrus multiple times.

Description

Just a small cleanup: we had files that were importing logrus more than once with different aliases.
Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

TBD

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

Gentle ping @fasaxc , this would be nice to get in

/merge-when-ready

OK, I will merge the pull request when it's ready, leave the commits as is when I merge it, and leave the branch after I've merged it.

Removing "merge-when-ready" label due to new commits

/merge-when-ready

OK, I will merge the pull request when it's ready, leave the commits as is when I merge it, and leave the branch after I've merged it.


Support for Terasic De10-Nano Kit

For a full list of currently supported board variants, protocols and their status check the new altera-socfpga.md page.

Merged as one commit, thanks!

missed to add the id for it also in types.hpp?

sorry the full path is  api/mraa/types.h

It's there: MRAA_ALTERA_SOCFPGA = 15,       /** < Terasic DE-Nano-SoC Board */


Use in Angular Nativescript App

Hi I wish to use this plugin in my angular app, not sure where I should start, is there a straight-forward way to make this happen ?
Cheers !

Hi, is this plugin still maintained?

I use this in an Angular app. It works like every other NativeScript project.
import { registerElement } from "@nativescript/angular";
import { WearOsLayout } from "nativescript-wear-os";
registerElement("WearOsLayout", () => WearOsLayout);


pr-pull: allow to specify tap

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

This PR makes it possible to specify the tap, different than default homebrew/core.
cc @jonchang

Thanks again @dawidd6!


Windows Installer script

[ ] Create an installer script that installs the software/dependencies on Windows
[ ] Create a script that runs the program on Windows
[ ] Test these scripts on Windows

Pretty sure I have the correct scripts on branch 43, need Sid to test on Windows if testing before presentation; I could probably test at some point using some sort of VM


Fix/radio button group errors

At the moment, when a checkbox or radio input in a fieldset with an error gets focus, there is nothing that announces the error message if a keyboard user is just tabbing through the interactive elements of a form.
This PR changes how the error message and the radio button and checkbox groups are rendered to make sure that aria-describedby and aria-invalid are added to the inputs, programatically linking the error message to the inputs.
This means that the group error message is announced when an input in a group with an error gets focus.  This was discussed in the accessibility working group as part of @danielnissenbaum's discussion about error summaries and the screen reader journey from error to input.
Using https://russmaxdesign.github.io/accessible-forms/fieldset-error04.html for testing, this seems to be the pattern that work best across the different screen readers.
Interested to know what others think and this isn't something that gov.uk do in their design system.

I like the approach in the example test case. When I tried locally on MacBook with Voiceover on Chrome though, I get a different output:

(Tested on: https://6724b6aad0918e2b286cb947--citizens-advice-design-system.netlify.app/examples/radio_group/error/)
What I hear:

Option 1 Select an option, invalid data, Radio button. 1 of 2. Example radio group, group

I found this a bit confusing because the error message came after the label so it almost sounded like part of the label.
I think what is described on the example site, where the error message is the last thing the user hears for the field, could sound better.
What is described in the test case for Voiceover on Chrome (expected in our case):

Option 1. Radio button. 1 of 2.  Example radio group, Group. [Pause] Select an option.

I thought that there is something to do with the order of our error summary (unlikely but I had no other ideas), but then realised that the example site gives me the same output so it could be that my VoiceOver is set up differently.

(Tested on: https://russmaxdesign.github.io/accessible-forms/fieldset-error04.html )
Also an alternative approach (not sure if it's a good one) could be appending the error message as part of the label somehow, maybe hiding it, although that would have its own accessibility issues (i.e > Option 1  invalid data, Radio button. 1 of 2. Example radio group Select an option, group
All of this with the big caveat that I'm not a screenreader user so I'm not sure what the best practice is - interested to hear what other people think.


[Bug]: FIX THE OVER WRITE ISSUE

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?

its in multiple pages
Add Screenshots
No response
What browsers are you seeing the problem on?
Firefox, Chrome
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC contributor
[X] I want to work on this issue
[X] I'm willing to provide further clarification or assistance if needed.

assigned already


How about giving variable a  access modifier?

Now when I generate injections, variables are using default access modifier. I think sometimes  we want private and public.Is that Ok?

You can't use private modifiers with ButterKnife field.s

thx


chunks storing in 2 locations

For some reason, chunk files are being stored in 2 locations,  /chunks and also in /tmp.  So if I upload a 2GB file, it ends up taking 4GB on the server.
I cannot figure out why the chunks are being written to /tmp.   Any ideas?
Josh

This library is no longer maintained. Please see the notice in the readme


Fix ability to have false positives specs #trivial

✨ 💖
Notice when running the specs:
WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives,
since literally any other error would cause the expectation to pass, including those raised
by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are
intending to test may not even get reached. Instead consider using `expect {}.not_to raise_error`
or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by
setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`.

Heh, Circle - works for me 👍

Fixed!

well, not fixed, but I rebuilt - same same


Page links are not working

Kudos on the client but I wanted you to know that page links are not working.
Example:
hkkr.in/32773517

Brings me to this repo

👀 good catch, I made a lot of changes to the project recently and forgot to test that lol, let me check it out

Alright fixed. It was a problem with the fact that I didn't check if the query had an ID as a parameter before redirecting


[FLINK-34245][python] Fix config retrieval logic from nested YAML in pyflink_gateway_server with flattened keys.

What is the purpose of the change
Fix wrong logic in pyflink_gateway_server that using flattened key to get value from a nested standard yaml.
Verifying this change
Locally tested CassandraSinkTest.test_cassandra_sink with JDK17 and confirmed it passed.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@flinkbot run azure


Add LEAP to apprenticeships

Thanks so much for contributing changes to the apprenticeships repo! 🎉

As a reviewer, it is appreciated that you added a useful title/description to your PR. 😊


No public method to query all flags.

spring-cloud-azure-feature-management.
There is no public method to query all flags in the latest version.
Your Environment
Version used: 1.2.1
Spring boot: 2.2.0.RELEASE
SDK version: 11

Hi @lisaguthrie! Thanks for the hint, anyways our current limitation is "impose" by some company internal rules, so we will not be able to connect to the App Config anyways. Cheers!


Add arm64 Docker image

Description
This picks back up the work from #311 to build multi-arch Docker images (amd64 and arm64).
In addition to adding new Makefile targets, this PR updates the pr-validation GitHub workflow to also build an arm64 image, and adds a job to the release workflow to build and push a multi-arch image to quay.io. (I also noticed that tests are running with Go 1.16 but releases are being built with Go 1.15, so I also updated that.)
I don’t have any insight into what went wrong with the earlier PR / what it did to openshift-ci, but hopefully we can get arm64 images merged for real. 😄 Happy to keep workshopping this PR.
Relevant issues/tickets
Requested in: grafana-operator/grafana-operator#277 (“ARM support”)
Not all the platforms requested there are supported, as the registry.access.redhat.com/ubi8/ubi-minimal:8.4 base image only has amd64, arm64, ppc64le, and s390x architectures available.
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist

[ ] This change requires a documentation update
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added a test case that will be used to verify my changes
[ ] Verified independently on a cluster by reviewer

Verification steps
With a suitable Linux host that has Docker and qemu configured to work together, run:
❯ make -j2 docker-build-multi

❯ docker run --rm -i --platform linux/amd64 quay.io/integreatly/grafana-operator:latest-amd64
2021-08-19T21:10:58.669Z	ERROR	failed to get watch namespace	{"error": "WATCH_NAMESPACE must be set"}

❯ docker run --rm -i --platform linux/arm64 quay.io/integreatly/grafana-operator:latest-arm64
2021-08-19T21:12:21.909Z	ERROR	failed to get watch namespace	{"error": "WATCH_NAMESPACE must be set"}

(docker buildx build --load cannot be used with a multi-arch image, so there are separate Makefile targets to build each arch without pushing them for testing, and then to combine them in a manifest.)

Hi @NissesSenap, I pushed an update that silences the Hadolint warning, and runs a registry within GitHub CI so docker/build-push-action can be used to build grafana-operator images for testing. I also got rid of the non-buildx targets from the Makefile that used docker manifest manually.

@silverlyra thanks for fighting with this PR.
Since I have to approve the github action run everytime you update the PR I would recommend that you create a PR against your own repository with something random on the branch that you are working on.
This way you won't have to wait for me to push approve run just to see if the CI passed or not.

I would recommend that you create a PR against your own repository

Appreciate the suggestion, @NissesSenap! It did take a few more rounds, but I’ve got the workflow working now in my fork. 🎉 Next time you ▶ run the workflow here, 🤞 it should work.
Apparently what it took was:

create the builder in docker/setup-buildx-action with network=host, so that
docker/build-push-action can push to the registry service at localhost
but have trivy pull from registry (not localhost), because trivy runs in a Docker container, on the same Docker network as the registry
and set TRIVY_NON_SSL so it pulls from http://registry:5000 instead of https://registry:5000

😅

Can also verify that the images are built and pushed to quay! (from my own fork)

@HubertStefanski excited to see the release workflow is also working! I’ve made the edits you requested. :shipit:


header and proposition were a bit out of alignment

Before

After

Own up. You didn't actually change anything, did you?


[17.06] Docker user iptables changelog addintion

Signed-off-by: Trapier Marshall<EMAIL_ADDRESS>Please do not send pull requests to this docker/docker-ce repository.
We do, however, take contributions gladly.
See https://github.com/docker/docker-ce/blob/master/CONTRIBUTING.md
Thanks!

Submitted per pull-request request https://github.com/moby/moby/issues/23987#issuecomment-318174400

LGTM ping @thaJeztah

we need to back port this to "master", and cherry-pick into 17.07 probably


Citation

Hi,
Thanks for this library.
How do you prefer it to be cited from a scientific article?
See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files

Oh cool! Please use my full name (Adrian Garcia Badaracco) and “Pydantic” as the institution. Cc @stsievert if you would like to be cited as well.


Project & release process improvements

We have fallen behind with the release process, expecting that people will simply point to current master. That’s not a good solution, but it had to be expected since the release process was too cumbersome for us to run often, as needed. This changeset attempts to automate the process as much as possible, so a new release (including CocoaPods) can be minted in two or three simple command-line steps:
$ bundle exec fastlane release # produce a patch release
$ git push --follow-tags # publish the release on GitHub
$ bundle exec fastlane trunk # publish the release on CocoaPods

Hopefully this will lower the bar on releases so that we’ll get back on the tracks.

The Travis error is due to Bundler version mismatch, I’m trying to figure it out.


Discovery using Kubernetes

Description
I'm trying to get Discovery to work on a Kubernetes environment using a LoadBalancer and the Kubernetes NAT manager. And i'm experiencing multiple issues with this. So now i'm wondering if i'm doing something wrong or that it wasn't the intention to use Discovery in this way. I know the documentation says that there are limitations, but i was trying to see if i can work around those and maybe propose fixes for them.
I'm setting up my nodes using Pulumi scripts. I also have dns enabled and my nodes are accessible via a dns name.
What i do to test this.

I set up a "external" node on AWS or Azure without a bootnode or a static-node.
I set up a second node on AWS or Azure

using the genesis of the first node
and added the first node as a bootnode using a dns-based e-node uri.

How i set up a node:

I first deploy my node using exec /opt/besu/bin/besu --config-file=/etc/besu/config.toml --p2p-host=\${POD_IP} --Xdns-enabled=true --Xdns-update-enabled=true --nat-method NONE
In the config.toml i have p2p-enabled set to true and discovery-enabled set to true and a few other configs, i don't give it any bootnodes yet.
I have port 30303 configured for discovery and rlpx.
I also set up my load balancer with a dns attached to it and which exposes the 30303  as a TCP port connected to the rlpx port.  And 40404 as a UDP port linked to the discovery port of my pod.
I have a dns name attached to my load balancer.
From the moment my load balancer becomes available (so the dns resolves) i reload my deployment and start up the node with /opt/besu/bin/besu --config-file=/etc/besu/config.toml --p2p-host=\${POD_IP} --Xdns-enabled=true --Xdns-update-enabled=true --nat-method KUBERNETES --Xnat-method-fallback-enabled=false --Xnat-kube-service-name=THE_SERVICE_NAME --bootnodes  BOOTNODE_A, BOOTNODE_B

Things i already figured out:

The reason why i first boot without a nat-method and only from the moment my load-balancer is up-and-running with nat-method KUBERNETES and the bootnodes is because i don't want the node to start talking to the bootnodes when it doesn't have it's correct configuration. If it also starts discovery without the KUBERNETES NAT configuration it will start communicating with the other nodes and they will add the node to the bonding nodes cache. From the moment this happens the other nodes will never talk to my node on the right discovery port. By waiting and only start communicating with the other nodes from the moment it knows it's own discovery port from the load balancer "everything" should work out fine.
There was also some issue in the PING packet that it didn't take the NAT port mapping into account, but this should be fixed by this PR 6578.

Issues i'm now still experiencing:
I have been testing this on both Azure and on AWS, because GKE doesn't support these kind of mixed-loadbalancers right now.

On Azure most of it seems to work, i only have an issue with the messages being sent after the initial PING. So my fix in PR 6578 will fix that the receiving node knows which ip and port it needs to connect to to communicate back to my node. But the subsequent messages don't send a From field in the PacketData and because of this the PeerDiscoveryAgent#deriveHost will use the source host and source port, which will break PeerDiscoveryController#resolvePeer, because the node will be found but the endpoint will not match. I tried this by disabling this filter and then everything works out correctly. I don't know if removing this filter is a good idea, but maybe we need to add a From endpoint to the other PacketData as well, so that this will indeed match.
On AWS i have another issue. I have the feeling the LoadBalancers on AWS work a bit differently, they are assigned a DNS name in stead of an external-ip. And what i see happening is that the PING packet from my node will reach the external node. But when the external node PONG's back, using the right ip and port from the From endpoint in the packetData, it doesn't always reach my node. My guess is that the ip address of the load balancer is shared ... and it doesn't always know how to direct the traffic. I sometimes saw that after a few attempts the PONG packet is received, but it's definitely not always the case. I don't know how i can solve this, the only "valable" solution i can think of is using the dns names here as well. Because i use a dns-based e-node url in the bootnodes configuration to connect to the external node and that seems to always work correctly, i always see the PING's reaching that external node. But my node will identify itself in the From field of the PingPacketData using the ip-address and the port mappings it found in the Kubernetes NAT manager. And i don't think this ip-address is good to direct the traffic to. Maybe a xdns flag to set the hostname of the node or somekind of a Fixed NAT manager using DNS'ses would be a good solution for my use-cases? I think an xdns flag would make most sense, wdyt?

Possible fixes:

Implement an xdns-domain-name feature which you can use to register the domain name of your node, so that we use this in discovery. This will help with the AWS feature load balancer issue.
Keep sending the From data in the PacketData so that it never falls-back to the source of the packet.

Keep sending the From data in the PacketData so that it never falls-back to the source of the packet.

I don't think we need to do this for every type of packet, but only the ones where you are the initiator. So i think PING, ENR_REQUEST and FIND_NEIGHBOURS?

Would be good to get some feedback, so maybe i can try to implement those changes ... but i'm not familiar enough with all of the code to make sure it are acceptable solutions.

Maybe in stead of xdns-domain-name we should allow p2p-host to be a domain-name if xdns-enabled=true?

Hi @daanporon I think this is a really good idea. For AWS though, you don't specifically need a loadbalancer and can skip that part out. I've got a PR https://github.com/hyperledger/besu-docs/pull/1597 here you can use which makes use of ec2 instances directly to establish connectivity. Haven't found an equivalent for Azure yet so this would be a good solution. @matkt is the best person to ask about the NAT manager

We now also did something similar, using NodePorts services and using the ip address of the nodes where are containers are hosted on. Tested this in AWS and GKE and seemed to work find. We are using kubectl get nodes to fetch the external ip of the node, which can be used generically across cloud providers.

Good to hear @daanporon ! I''m working on some charts for besu and teku that can be used with the above implementation that I'll make available soon. nodeport is fine too for one/few nodes, but if you have many you can't reuse the same service across host nodes as there is port contention. I've used the clusterip to overcome that and kept the RBAC of the pods to absolute least privileges. Either way though am happy you have a working solution :)

@joshuafernandes where you able to get it working without the PR i did here? https://github.com/hyperledger/besu/pull/6578
Because i can only get it to work if i patch my Besu network i'm connecting to. Because if i don't do this it will try to send the PONG data to the wrong port and possible IP, which wasn't opened on my Kubernetes cluster.

Hi @daanporon I wound up just keeping it simple and using an external service to return the IP https://github.com/Consensys/ethereum-helm-charts/blob/main/charts/ethereum-helm-charts/charts/elc/templates/besu/statefulset.yml#L66 We bind directly to the host node's IP and steps to get things setup on the infra side are here https://besu.hyperledger.org/public-networks/tutorials/kubernetes

@joshuafernandes thanks for the info.
But when i do it without my PR this is what i get in the Discovery:
{"timestamp":"2024-10-02T15:53:11,827","container":"besuext3-2d115-85f89944f5-964xm","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":"<<< Sending PING  packet to peer 0x9b3ad5a3cacbde8d... (enode://9b3ad5a3cacbde8dcbc9fdc2b65c3f385eb090072e188703b31f87b5e5861c6d4cca8ab533244ccb146b9d0d03adf5e1986e766571b9d9120dd72a8cfc97f026@besu2n1-ad3fcp.eks-europe.settlemint.com:30303?discport=40404): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=32121, getTcpPort=32121}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1727884451, enrSeq=1}, hash=0x310b8ca2a44da2ab0f19fb5b41e371e8284a2e27465afe132892b719693c4a92, signature=Signature{r=73342533977326160852079819223326206838892280234718810659182595173972798500692, s=22444311287919848097964272487698101412464938386867503414858089001605218581011, recId=0}, publicKey=0x595c79faba483dcf2da91ec0536700d3910bf153d64261342d4e1930ae72c6e734ed4a7ecbc8f952707be806b8d36ea4ad1eb644d2c480b6693738d0e861d685}","throwable":""}
besu {"timestamp":"2024-10-02T15:53:11,830","container":"besu2n1-ad3fc-69987cdcf5-k6q7t","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":">>> Received PING  packet from peer 0x595c79faba483dcf... (enode://595c79faba483dcf2da91ec0536700d3910bf153d64261342d4e1930ae72c6e734ed4a7ecbc8f952707be806b8d36ea4ad1eb644d2c480b6693738d0e861d685@<IP_ADDRESS>:32121?discport=23368): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=32121, getTcpPort=32121}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1727884451, enrSeq=1}, hash=0x310b8ca2a44da2ab0f19fb5b41e371e8284a2e27465afe132892b719693c4a92, signature=Signature{r=73342533977326160852079819223326206838892280234718810659182595173972798500692, s=22444311287919848097964272487698101412464938386867503414858089001605218581011, recId=0}, publicKey=0x595c79faba483dcf2da91ec0536700d3910bf153d64261342d4e1930ae72c6e734ed4a7ecbc8f952707be806b8d36ea4ad1eb644d2c480b6693738d0e861d685}","throwable":""}
besu {"timestamp":"2024-10-02T15:53:11,831","container":"besu2n1-ad3fc-69987cdcf5-k6q7t","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":"<<< Sending PONG  packet to peer 0x595c79faba483dcf... (enode://595c79faba483dcf2da91ec0536700d3910bf153d64261342d4e1930ae72c6e734ed4a7ecbc8f952707be806b8d36ea4ad1eb644d2c480b6693738d0e861d685@<IP_ADDRESS>:32121?discport=23368): Packet{type=PONG, data=PongPacketData{to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=23368, getTcpPort=32121}, pingHash=0x310b8ca2a44da2ab0f19fb5b41e371e8284a2e27465afe132892b719693c4a92, expiration=1727884451, enrSeq=3}, hash=0x271729bd37760ca895763d8687e84a3e42b55f237d97fad74f636fe6e9e05f42, signature=Signature{r=60379507063500248740920135202759482721427338158934194692136448824387918154297, s=46674126191128631764147601574979409134210343449732478861601636960807766581287, recId=0}, publicKey=0x9b3ad5a3cacbde8dcbc9fdc2b65c3f385eb090072e188703b31f87b5e5861c6d4cca8ab533244ccb146b9d0d03adf5e1986e766571b9d9120dd72a8cfc97f026}","throwable":""}
as you can see it uses then a different discport then the one that was advertised in the FROM. But there is no NodePort or anything configured for that Port, it's also not whitelisted in the firewall or anything. So in this case how can the external node contact my node in my Kubernetes environment. The fix in PR https://github.com/hyperledger/besu/pull/6578, solves this by using the discport from the packet.

I'm still not sure how this can work. Because if you see, this is the communication i get using NodePorts on the current stable besu release:
besu {"timestamp":"2024-10-04T09:07:29,904","container":"besu5npn1-01375-5bb9db8d9f-gnwnw","level":"INFO","thread":"main","class":"DefaultP2PNetwork","message":"Enode URL enode://ae75ff2eb7855dae17bf837c8537159495231c504942c0450924de56bd9643b16ff9caec0a10982057614f794e56d3c04ba5e879b9aca32f95712a5eb3e9ad09@<IP_ADDRESS>:32130","throwable":""}

besu {"timestamp":"2024-10-04T09:07:29,994","container":"besu5npn1-01375-5bb9db8d9f-gnwnw","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":"<<< Sending PING  packet to peer 0xab1636f5735f155c... (enode://ab1636f5735f155c0ea032a926bb2dd0030df383ebc545deeefc25782e4c69d6d4edb5684df16b377dcd50171028e0bb8be19fe4cea8392e44435f7ee9ba5fc8@besu5n1-36bb5p.eks-europe.settlemint.com:30303?discport=40404): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=32130, getTcpPort=32130}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1728032909, enrSeq=1}, hash=0x3a1f4c6c7abb1583d22b028d812b31f0d21cc8413850baf744f526470ac5a4c7, signature=Signature{r=79301454547643036649981252443536507601482132134448579096296194526647061090041, s=43816660833750126562122072462348771578582935481220187846693421630451543337435, recId=0}, publicKey=0xae75ff2eb7855dae17bf837c8537159495231c504942c0450924de56bd9643b16ff9caec0a10982057614f794e56d3c04ba5e879b9aca32f95712a5eb3e9ad09}","throwable":""}

besu {"timestamp":"2024-10-04T09:07:30,441","container":"besu5n1-36bb5-d58f6868-nthr9","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":">>> Received PING  packet from peer 0xae75ff2eb7855dae... (enode://ae75ff2eb7855dae17bf837c8537159495231c504942c0450924de56bd9643b16ff9caec0a10982057614f794e56d3c04ba5e879b9aca32f95712a5eb3e9ad09@<IP_ADDRESS>:32130?discport=14553): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=32130, getTcpPort=32130}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1728032909, enrSeq=1}, hash=0x3a1f4c6c7abb1583d22b028d812b31f0d21cc8413850baf744f526470ac5a4c7, signature=Signature{r=79301454547643036649981252443536507601482132134448579096296194526647061090041, s=43816660833750126562122072462348771578582935481220187846693421630451543337435, recId=0}, publicKey=0xae75ff2eb7855dae17bf837c8537159495231c504942c0450924de56bd9643b16ff9caec0a10982057614f794e56d3c04ba5e879b9aca32f95712a5eb3e9ad09}","throwable":""}

besu {"timestamp":"2024-10-04T09:07:30,471","container":"besu5n1-36bb5-d58f6868-nthr9","level":"TRACE","thread":"vert.x-eventloop-thread-0","class":"DiscoveryProtocolLogger","message":"<<< Sending PONG  packet to peer 0xae75ff2eb7855dae... (enode://ae75ff2eb7855dae17bf837c8537159495231c504942c0450924de56bd9643b16ff9caec0a10982057614f794e56d3c04ba5e879b9aca32f95712a5eb3e9ad09@<IP_ADDRESS>:32130?discport=14553): Packet{type=PONG, data=PongPacketData{to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=14553, getTcpPort=32130}, pingHash=0x3a1f4c6c7abb1583d22b028d812b31f0d21cc8413850baf744f526470ac5a4c7, expiration=1728032910, enrSeq=3}, hash=0xc72099a541609ced5cc4ecd529a383c0ee9e43dc5ad0ffdb5a9438f6fdd0b09a, signature=Signature{r=11066360307279832640058640885693309553875085973167258113212992390556650576315, s=31389525697801267030296335889283349481952924453013161562625547003800422495047, recId=0}, publicKey=0xab1636f5735f155c0ea032a926bb2dd0030df383ebc545deeefc25782e4c69d6d4edb5684df16b377dcd50171028e0bb8be19fe4cea8392e44435f7ee9ba5fc8}","throwable":""}

As you can see it isn't using the advertised UDP Port here, it's using the one from the connection. But in my case i didn't open that port in the firewall, so it cannot connect to my node on my Kubernetes environment. This is what my PR is fixing, another example with my PR and the advertised UDP port opened on the firewall:
besu {"timestamp":"2024-10-03T14:08:37,244","container":"besu3npn1-5d8ba-84559f59bf-ndbph","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":"<<< Sending PING  packet to peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@besu3n1-3c094p.eks-europe.settlemint.com:30303?discport=40404): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1727964577, enrSeq=3}, hash=0x8aafc14f2a94f5450437790117428d6e26cc4c60366bbd6b00d5a587e1627bf9, signature=Signature{r=21613984819245652446412272794611917349175691367434421316380350610881204600914, s=34346252345397575908378526518023857623531316063207757552808085299072876158512, recId=1}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:37,745","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":">>> Received PING  packet from peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:31666): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, expiration=1727964577, enrSeq=3}, hash=0x8aafc14f2a94f5450437790117428d6e26cc4c60366bbd6b00d5a587e1627bf9, signature=Signature{r=21613984819245652446412272794611917349175691367434421316380350610881204600914, s=34346252345397575908378526518023857623531316063207757552808085299072876158512, recId=1}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:37,747","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":"<<< Sending PONG  packet to peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:31666): Packet{type=PONG, data=PongPacketData{to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, pingHash=0x8aafc14f2a94f5450437790117428d6e26cc4c60366bbd6b00d5a587e1627bf9, expiration=1727964577, enrSeq=3}, hash=0x05e89854f05fc450241bd5017a4e53569eec9d1c4d52c5df671fa04c7af87312, signature=Signature{r=54013045116450348155882834488072549433794517379861119449233919458872950577054, s=55784129346942186953562773115041573641854757700286365905433551089390144919820, recId=0}, publicKey=0x15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:42,269","container":"besu3npn1-5d8ba-84559f59bf-ndbph","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":">>> Received PONG  packet from peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@<IP_ADDRESS>:47715): Packet{type=PONG, data=PongPacketData{to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, pingHash=0xd019f38d17920f19d9ecd60e2a936ab16cec99d044ba25ddb495757945955f46, expiration=1727964582, enrSeq=3}, hash=0x9c1591e4140ed60d4b8066e6827f30aa2fcb784e57d1e9ee77d343fa638f4b9b, signature=Signature{r=17785939030391684557475502496153583832484851596698797093383015501198293114849, s=25617559921057012432170844301872499027982248231665253708672723028901260650890, recId=1}, publicKey=0x15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:42,275","container":"besu3npn1-5d8ba-84559f59bf-ndbph","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":
"DiscoveryProtocolLogger","message":"<<< Sending ENRREQ packet to peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@besu3n1-3c094p.eks-europe.settlemint.com:30303?discport=40404): Packet{type=ENR_REQUEST, data=ENRRequestPacketData{expiration=1727964582}, hash=0xc5f283e094a08dd600b405fd2750aa4f82f1828f04ceb5410077a477daf91c16, signature=Signature{r=64495488120197147305131926293280176153810319318936811393307381748691035240952, s=3180036167744700803863625742721598557275798091649992309214594256056114751346, recId=0}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:42,279","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":">>> Received ENRREQ packet from peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:33513): Packet{type=ENR_REQUEST, data=ENRRequestPacketData{expiration=1727964582}, hash=0xc5f283e094a08dd600b405fd2750aa4f82f1828f04ceb5410077a477daf91c16, signature=Signature{r=64495488120197147305131926293280176153810319318936811393307381748691035240952, s=3180036167744700803863625742721598557275798091649992309214594256056114751346, recId=0}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:42,747","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":"<<< Sending PING  packet to peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:31666): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, expiration=1727964582, enrSeq=3}, hash=0xb5973fb98e7366954dd0b16c10b1b96d53ea383e5ae3dd80a7e81a847a69e997, signature=Signature{r=15969048044140049528785944722852785498719380679031698921831610135170362781179, s=23715479445748255656450369101853830474610702046088339580440862633939321505219, recId=0}, publicKey=0x15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a}","throwable":""}

besu {"timestamp":"2024-10-03T14:08:42,754","container":"besu3npn1-5d8ba-84559f59bf-ndbph","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":">>> Received PING  packet from peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@<IP_ADDRESS>:30303?discport=47715): Packet{type=PING, data=PingPacketData{from=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=40404, getTcpPort=30303}, to=Endpoint{host='Optional[<IP_ADDRESS>]', udpPort=31666, getTcpPort=31666}, expiration=1727964582, enrSeq=3}, hash=0xb5973fb98e7366954dd0b16c10b1b96d53ea383e5ae3dd80a7e81a847a69e997, signature=Signature{r=15969048044140049528785944722852785498719380679031698921831610135170362781179, s=23715479445748255656450369101853830474610702046088339580440862633939321505219, recId=0}, publicKey=0x15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a}","throwable":""}

4:32
besu {"timestamp":"2024-10-03T14:08:44,282","container":"besu3npn1-5d8ba-84559f59bf-ndbph","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":"<<< Sending ENRREQ packet to peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@besu3n1-3c094p.eks-europe.settlemint.com:30303?discport=40404): Packet{type=ENR_REQUEST, data=ENRRequestPacketData{expiration=1727964584}, hash=0x9ff82492d4fd930a68f12d372b526025ef21cf1b8c00d24a21e1ddc2258325e3, signature=Signature{r=57524016822231109233284507682747708559406206124337964739231663704328679370303, s=15185072012360381790333234176758348689549254803876827525962099980883054014112, recId=0}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}
besu {"timestamp":"2024-10-03T14:08:44,283","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"DiscoveryProtocolLogger","message":">>> Received ENRREQ packet from peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:33513): Packet{type=ENR_REQUEST, data=ENRRequestPacketData{expiration=1727964584}, hash=0x9ff82492d4fd930a68f12d372b526025ef21cf1b8c00d24a21e1ddc2258325e3, signature=Signature{r=57524016822231109233284507682747708559406206124337964739231663704328679370303, s=15185072012360381790333234176758348689549254803876827525962099980883054014112, recId=0}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}
"DiscoveryProtocolLogger","message":"<<< Sending FINDN packet to peer 0x15473523c028c21a... (enode://15473523c028c21aec9441521ba9bd7eb8a2f1fb4f3eca20bcc9167bccad3211a641e845f956f4373690b1f013d6c6dc6b19d6a173a75a89946ba992c2b9376a@besu3n1-3c094p.eks-europe.settlemint.com:30303?discport=40404): Packet{type=FIND_NEIGHBORS, data=FindNeighborsPacketData{expiration=1727965036, target=0xe21cd5320b21ed4f33396cca045777d622e066fc34b77d0e2a341708206a49c87509163b0764407dffba964f99c736e358acb3750df6f0a708eb5ebdba460da4}, hash=0x719a4b8df0948253385b8927066dec21fe52bc9c34dd875f4c0d0e9b911bd2ab, signature=Signature{r=7156302234137472742515450432521136803200741859042142716223911145525463897894, s=448375494327937347011612633599943410879688082217354762138772123812804632750, recId=0}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}
besu {"timestamp":"2024-10-03T14:18:03,457","container":"besu3n1-3c094-d976ddbdc-5dh4r","level":"TRACE","thread":"vert.x-eventloop-thread-1","class":"Di
scoveryProtocolLogger","message":">>> Received FINDN packet from peer 0xcd60b2e724dbff92... (enode://cd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42@<IP_ADDRESS>:33513): Packet{type=FIND_NEIGHBORS, data=FindNeighborsPacketData{expiration=1727965143, target=0x83b9813dd68f18ed2dff5f53de9c29afe54f7eb050f7a3fcb6247cd26d491bec604052d0662cc135783b9174183067715da083d649126af6be80f09e2e493697}, hash=0xef5b1ca8861e3d9a3a91951e14b439a599f7a199c320e6d9b2ead22cc906329a, signature=Signature{r=5930734281918079639373759653370785077540892924311354728672549826080901475091, s=44395098578055939159378944789676415418871700911175744598721702818480945703250, recId=1}, publicKey=0xcd60b2e724dbff92fc93a36fb33437eec8eef2e055aa61b5e7209740d0d8da89e31c7e17139c365defac3f3a07bb89cced90f6e09535d5da48fd83cde19a4a42}","throwable":""}

Our recommendation for this (as per comments on your PR @daanporon ) is to use solutions in place that bypass nat manager for k8s - that's working for us in private, and public networks


Login impossible - no reaction on btn.btn-navbar

when the browser's window is too small, instead of "register / login" a button with two lines is shown: btn.btn-navbar.
clicking that button gives no reaction. neither on firefox 20, nor on mobile safari (ipad + iphone).
with this, logging in on iphone is not possible. on ipad only in horizontal-mode, not vertically.

@portenkirchner @m4rch @xray7224  I can't reproduce this error in the following browsers: defaults Browser(WebKit) in LineageOS/Android, Firefox Mobile, Firefox (Iceweasel) v58 in Gnu/Linux and the default browser in firefoxOS
This error still happens to yours?


Add the possibility to add custom annotations to manager pods via helm chart

What would you like to be added:
I would like to be able to add additional annotations to the pod via the helm chart
Why is this needed:
In order to be able to enable automatic scraping via prometheus (without the CRDs) additional annotations are needed:
        prometheus.io/path: /metrics
        prometheus.io/port: '8080'
        prometheus.io/scrape: 'true'

Could be a potential fix for #663 as well (because port 8080 is the unprotected port for metrics)
Completion requirements:
This enhancement requires the following artifacts:

[ ] Design doc
[ ] API change
[ ] Docs update

The artifacts should be linked in subsequent comments.

/remove-lifecycle stale

/good-first-issue

/assign


Update dev docs

Description of proposed changes

Update documentation and remove a redundant CI job.
Related issue(s)

I thought of these changes while reviewing #200

Checklist

[ ] Checks pass

Thanks that's super useful! @victorlin


Photoswipe lightbox bug in demo

https://alto.ghost.io/style-guide/
If you click on the gallery images (and others) the lightbox isn't triggered. I believe it's supposed to appear with this theme. Console is displaying errors.

Thanks @tdominey, this is now fixed. Re-installing the theme should fix the issue 🙂


freezes at "Compiling..."

⠴ Compiling...

@adardesign Long time, but do you remember what the solution was?

@Eben-Hafkamp , @adardesign , if it is keep saying compiling.... , please update any liquid file and click ctrl + save. Then it will start compiling.

@LuckyGStar That's pretty odd, I'll dig into the module to see if there are any other work arounds. My browser always refreshes before the build tool has finished compiling leading me to manual refreshing after liquid updates.

@Eben-Hafkamp , yeah. I also experienced it when I have been worked with shopify packer. I haven't had a chance to dig into the module of packer yet but seems like it is refreshing browser before the callback of update.

@LuckyGStar My thought exactly, I'll update with a solution if I get a chance to look into it.


feedback_widget: Don't use non-optimal animation properties.

Fixes #25376
Animating box-shadow and top is slow since the browser drops frames when animating them. We can fix it by using will-change property, but it is just better to not animate them and instead use transform.
discussion: https://chat.zulip.org/#narrow/stream/9-issues/topic/topic.20muted.20notification.20issue

before:

after:

I couldn't reproduce this issue in dev, so I didn't manually test the PR.

Merged, thanks @amanagr!


Refactor cobra commands into functional constructors

Blocked by #218 to maintain git file history as much as possible. The diff will be hard to understand until that PR is merged. This change removes package-global variables, updates flag descriptions, addresses lint + staticcheck issues, and moves commands into functional constructors instead of package-level singletons with init function configuration.

LGTM, please merge this


Add support for REFETCH_ALL action type

WordPress should be able to send a webhook to notify the source to REFETCH_ALL. This could be triggered by a button in the WP Admin or by various actions such as database migrations or major plugin updates, etc.
Also see: https://github.com/gatsbyjs/wp-gatsby/issues/58

Thank you for opening this issue. We recently moved this plugin over to the gatsbyjs monorepo and are trying to clean out this issue queue. We documented this feature to look at for a future roadmap item and are going to close this issue out. If you want to add additional visibility to this feature, you can request it at https://portal.gatsbyjs.com/


This supports build for the NXP imx8mm-lpddr4-evk reference platform.

More work is needed to be able to take this out of DEVELOPMENT status

[ ] add Balena website details for this board at given links
[x] "contracts" have not been looked at
[ ] check LED working
[x] check HDMI working
[ ] writing to /dev/ttymxc0 seems to reset the board
[ ] need to check support for secure boot / secure filesystem
[x] need to support image flasher
[ ] CI/CD testing
[x] support WiFi module

Changelog-entry: Add support for NXP imx8mm-lpddr4-evk board

This is building, booting, and onboarding to the Balena cloud now. Could we review into upstream please?

Can one of the admins verify this patch?

hey @ajlennon is the image flasher not supported because there is an alternative provisioning mechanism and is not needed, or is it pending work? If pending, how is the device provisioned initially?

@ajlennon the flasher image is working already, is it not?

@ajlennon the flasher image is working already, is it not?

It was pending - working now in the latest commit to the PR

ok I've squashed those @floion

Thanks @ajlennon this PR needs to be updated again. When you do it from the Github UI you can choose to update it with the rebase option, this makes the ugly merge commit go away.

Thanks @floion - OK just did that

@floion do I need to do something else ?

@balena-ci I self-certify!

@balena-ci I self-certify!

So can this be merged in now @floion or are we waiting for the AutoKit testing before merging?

Superseded by https://github.com/balena-os/balena-fsl-arm/pull/551


Reduce delay before scrobbling a track

By default, the extension requires one to play a song for 240 seconds or 1/2 of a song (whichever comes first) before allowing one to actually scrobble it.
I propose to introduce a new option that would allow users to set custom delays.
For example, personally, I prefer to submit a scrobble after 30 seconds or 1/5 of a song instead.

See patches in #452 where the suggested changes are implemented (along with other stuff.)

@david-sabata can close.

Jan or David, could you please clarify the reason for closing this issue? Has this been implemented already? Any links to the changeset or other confirmation info would be very helpful.

@anthonypetrov ... actually, I'm not 100%. I was scanning through old issues, and I think I may have mistakenly pointed this one out, or perhaps misread it.
@david-sabata  As there is still no way to customise scrobble time, this could probably be reopened.
My bad guys, sorry.
On the subject: is there a rationale for wanting custom scrobble delay, @anthonypetrov?

@janbaykara The rationale is that sometimes you listen to a track somewhere that can't scrobble individual tracks or at all (e.g. a mixtape), or Last.fm is down and your scrobble gets lost, or Last.fm changed their APIs and Last.fm Scrobbler extension for Chrome didn't catch up yet, etc. The main point is: sometimes you have listened to a track but haven't scrobbled it for some reason. Later on, when all is well and the extension is working, and you found the song as an individual track with the right length (rather than mixtape's), you just want to add this track to your library, but not necessarily listen to the whole track, or even just 240 seconds of it. That's when this option comes in handy - just 30 seconds and the track is scrobbled, and then you decide if you want to listen it to the end or just move on.
Another situation that I've encountered is when you come a cross a blog post with a few dozens of tracks, and you don't have time to listen to all of them. Yet, you want to "taste" them and add them to your Last.fm library. That's when I use my 30-seconds patch, too (you can find the patch in a linked issue above). 30 seconds is quite enough to understand how a song sounds, especially if you use the "skip forward" option a few times.
Finally, in the ol' good days when Last.fm was actually a radio, 30 seconds was the minimum track length for Last.fm to scrobble it. I believe they still enforce this limitation on scrobbles.
All in all, I believe that 30 seconds is a reasonable timeout to submit a scrobble. And if this value can be customized, this would even be better since different people may like different timeouts. But again, I'm totally fine if you just accept a one-liner patch from me and hard-code the value to 30 seconds/ 1/5 of a song. For me personally this would work perfectly.
@david-sabata Could you please re-open the issue?

I think it's a bad idea to have customisable listening time until scrobble. Last.fm's guidelines say:

A track should only be scrobbled when the following conditions have been met:

The track must be longer than 30 seconds.
And the track has been played for at least half its duration, or for 4 minutes (whichever occurs earlier.)

Maybe a "force scrobble" button somewhere in the popup/notification?

Your usecase does seem to basically be 'let me scrobble the thing', which could be solved with a 'force scrobble' button. I would recommend that above and beyond a shortened scrobble time.

Yes, the "force scrobble" button would work equally well.

On a second thought, I'd still apply my patch to my own copy of the Scrobbler extension then, because this way I save an extra click when scrobbling tracks. So, while useful for some, myself I'd use this button rather rarely.

@anthonypetrov Fair enough. Thoughts on the quoted LFM guidelines, though?
In any case, the quickest way for your proposed changes to be merged, would be to turn the patch into a PR.

@janbaykara Guidelines are guidelines. They are neither the law nor the rules. If something makes sense (and you can find a few valid use-cases that I've provided above), you can go against the guidelines. Besides, if that was a configurable value, then by default nothing would change for anyone. Only those who need this alternative behavior would tweak that option. So I don't see anything wrong with that.
As for the pull request, yeah, well. I'm unlikely to implement the configuration option myself. I also see that some people oppose the default 30 seconds/ 1/5 of song duration timeout, so my original patch may not work for everyone.
I propose to re-open this issue and keep it open until someone finds time to implement a proper fix.

Personally, I'd rather play by the guidelines. But I understand your case @anthonypetrov and you're right, that config switch (or value) shouldn't cause any harm.
Our important counter-case is that time before scrobbling is time that our users have to correct incorrectly recognized tracks.
As for configuration, how about a single checkbox in a spirit of "I want to scrobble my tracks ASAP"?
If unchecked (=default), the current timing will apply.

As for configuration, how about a single checkbox in a spirit of "I want to scrobble my tracks ASAP"?
If unchecked (=default), the current timing will apply.

Or a percentage slider with minimal value meaning ASAP.

Should we close this? I think following the guidelines is a valid case.

Probably, yes.
I got an idea some time ago to add a hidden (configurable via console) option to resolve this issue.

Hidden description


components.knx - KNXMultiAddressDevice corrections

During the course of debugging some KNX implementations I've noticed and tried to correct a number of basic problems with the components/knx.py file.

The has_attributes was comparing names to addresses
Some errors outside of an except block were using
_LOGGER.except. This will cause an exception itself because there is no
trance context available to the logger
Added alias names for the address and state addresses so that they
can be accessed with the same interface as other XXX_address channels
via value() and set_value()
Added return values for the set_int_value and set_percentage methods
to allow error checking similar to the set_value method
Added the name of the configured object to the log messages to make
them more meaningful (otherwise multiple similar log messages are
received without any hint as to the target device)

Description:
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

@balloob : the travis-ci build fails for py3.6 but it looks like a generic problem with the build. I couldn't see anything specific to my change in there. If there's something I need to do, can you give me a hint please?

You can ignore that one, you're all good 👍  Thanks. Cherry-picking this for 0.48.


Restructure language data

Currently language files are stored in lute/db/demo/, in separate folders language and stories or similar.  With more languages getting added, this should be revised and probably moved, as the data really has to do with languages.
Since it's language data, it makes more sense to store it in lute/language, under something like lute/language/data.  Each lang gets a folder, with .yml file for the language, and stories in .txt files.
Then the current db can load from there.

Launched in 3.3.2.


Resolve ember executable with full path

Closes #392.
Resolve ember executable with full path within node_modules, instead
of depending on the presence of node_modules/.bin.

:clap: Thanks @seanpdoyle


Define authorized IP address ranges in ASA

Is your feature request related to a problem? Please describe.
To secure access to the publicly accessible ASA control plane, we should enable and use authorized IP ranges.
These authorized IP ranges would only allow defined IP address ranges to communicate with the ASA instance CP.
A request made to the ASA instance from an IP address that isn't part of these authorized IP ranges should be  blocked.
Describe the solution you'd like
https://learn.microsoft.com/en-us/azure/aks/api-server-authorized-ip-ranges should be implemented
Describe alternatives you've considered
None
Additional context
see https://learn.microsoft.com/en-us/azure/aks/api-server-authorized-ip-ranges

The concept in AKS is different from that in Azure Spring Apps (ASA).
In AKS you provision an AKS cluster through public ARM endpoint, and then operate the Kubernetes resource through the API server outside of the ARM scope, either publicly or privately. In the referenced documentation, it talks about the IP authorization in the API server, where the client talks to the API server directly.
In ASA all the resource CRUD is done through the public ARM endpoint. Some of the managed components (config server, Eureka, and enterprise tier components) provides data plane APIs but they mainly serves query purpose rather than resource manipulation.
AKS does not authorize the IP ranges for the ARM endpoint calls. We do not authorize the IP ranges from ARM endpoint access. In fact it may be very tricky to implement it in the ARM API flow as the client IPs may be vague after a long chain of web proxies. And if there is any incorrect configuration applied, the user won't be able to manage the whole resource at all  and he/she has to call for support.
We provide limited data plane APIs exposed by the managed components. They are private by default. If these endpoints need IP authorization, we would like to understand more about the user scenarios.


Copied the wrong esqlite commit ID before. Let's try the actual current one.

Coverage increased (+0.3%) to 87.052% when pulling 0d2fd664a8133f6e8759c49e844c7be0c74c5974 on more-new-esqlite into 2173644e61da05ebcf3861bbd60d593fe41cb0a9 on master.


Add plots for Input Forecasted curves: LoadShape, LoadShapePV, LoadShapeCost and Output Curves PLoss, PSubs, PSubsCost

Like this:

Solved by #21 , #23 , #24


feat: Add regexp_split_to_array function

Which issue does this PR close?
Closes #13050 , part of #11946
This PR is draft because of:

missing utf8view support
missing tests
missing user doc

Rationale for this change
Add an additional useful regexp function to datafusion
Details: #11946
What changes are included in this PR?
Code,tests and documentation about regex_split_to_array function
Are these changes tested?
added tests
Are there any user-facing changes?
Yes.

Yeah, I was thinking about this. Should we wait till the stringview prs get merged before proceeding with adding more functions?

Yeah, I was thinking about this. Should we wait till the stringview prs get merged before proceeding with adding more functions?

I can stop working on this and try to tackle another issue if that is the case

My 2 cents is no as most everything now has stringview support even if that feature isn't enabled by default yet.


Stuck in "Data will be loaded" when using SSL

I have OpenSlides 3.4 as docker installed. OpenSlides uses no SSL and the proxy docker image listens on external HTTP port 3000.
Another Docker image "Nginx Proxy Manager" is running which defines a reverse proxy from a domain to unsecure port 3000. The Nginx Proxy Manager provides a SSL certificate and forces a secured connection. Web Sockets are enabled.
This setup worked with OpenSlides 3.3 without problems. Nothing was changed on SSL/Reverse proxy configuration.
However first loading of OpenSlides with SSL was working without problems. But after some refresh the website stucks in "Daten werden geladen. Bitte warten..." mode (= Data will be loaded. Please wait...).
Deleting browser cache does not fix the problem.
When loading the website on another device, it stucks also in this mode.
Sometime randomly it works again.
When connecting without SSL, it works without problems!
On a PC where it randomly worked again, I logged in and just created a new Chat. And suddenly the page loaded on all other devices again. Just like it had cleaned up a lock...
Note:

Exactly this setup works with OpenSlides 3.3.
I use Safari as Browser. But it also happens with Firefox. Mobile Safari sometimes crashes when website is in this [mode.

]

Sometimes this Zombie mode happens (white background, no data,...):

Again: Deleting Browser Cache does not help. But when loading the page on other devices it works. So the client stucks.
But when manually deleting cookies, it works again!

sounds not like an error in OpenSlides but a setup error on your side. Perhaps one of our administrators can help you out:
@gsiv @peb-adr

From what you have written, it is unclear to me whether you have configured OpenSlides for HTTPS or not.  In most cases, you are going to want to use plain HTTP between the reverse proxy and OpenSlides.
For the purpose of debugging the issue, please always access the OpenSlides instance directly (on port 3000), circumventing the reverse proxy.  The problem may very well be Nginx's configuration.  If the problem persists, please share the contents of your .env and/or the generated docker-compose.yml files.
Also, did you check the instance's logs for clues?

@gsiv Before I used OpenSlides without https configured. I wanted exactly that behavior you're describing. An unsecured connection between the reverse proxy and OpenSlides and only the reverse proxy has a SSL certificate.
In this setup I had exactly the problem described above. With OpenSlides 3.3 this setup worked without problems, with OpenSlides 3.4 it doesn't work anymore.
But then @tsiegleauq said:
OpenSlides uses no SSL and the proxy docker image listens on external HTTP port 3000.
might be an issue. This section of the readme:
https://github.com/OpenSlides/OpenSlides/tree/stable/3.4.x#using-https
is mandatory (I should mention this somewhere I suppose). OpenSlides itself needs ssl
So this is the reason why I now also activated HTTPS on the OpenSlides itself.
With the effect that if I access OpenSlides directly without the reverse proxy (internal network) the error is gone, but if I use the reverse proxy the error is still there.
It seems for me an error in the OpenSlides 3.4 implementation.

@gsiv @tsiegleauq
Now I removed the reverse proxy and used directly SSL in OpenSlides.
If I'm logged in with several devices on the same account, sometimes OpenSlides still stucks in "Please wait! Loading data".
This happens for example if I'm logged in with my iPhone and then try to login simultaneously with my Windows PC.
The Windows PC then hangs in  "Please wait! Loading data".
Then I have to do some actions on the iPhone e.g. creating a new chat, editing a page or whatever and then the Please wait loop quits on the the Windows PC!
Any ideas?

The "loading data" spinner is usually an indicator that the client does not reach the stable state (angular appref https://angular.io/api/core/ApplicationRef). Once "stable" was reached, the spinner would disappear. If it's not disappearing, either something in the client (or the browser) is wrong, or the setup hangs somewhere somehow. The former could be confirmed by seeing your browsers console. There should be additional error logging. The later can either be seen in dockers own error log or indicates a faulty setup.
What you describe (spinner -> manual autoupdate-triggering -> spinner disappears) sounds like an error in the integration of the autoupdate service (shot in the blue)
We cannot really debug anymore without seeing your setup.
From what you describe, our own productive setup (that we use for instances hosted over openslides.com) is pretty similar to yours, so I doubt that there is an error in the implementation of OS3.4

OpenSlides3 is no longer maintained.


lvgl/makefile: workaround for lvgl.v8

Summary
lvgl/makefile: workaround for lvgl.v8
Since this change is only merged into the lvgl.v9, let us workaround for v8:
https://github.com/hubbell2019/LVGL/commit/37835260ca30a5b191d8b55d0d2b49892aad7a21
./lvgl/src/core/lv_obj.c:363:25: warning: variable 'x' set but not used [-Wunused-but-set-variable]
363 |         static uint32_t x = 0;
|                         ^
1 warning generated.
CFLAGS += -Wno-unused-but-set-variable
Impact
N/A
Testing
ci-check

let's merge this patch to unblock the ci.


add tox file to run flake and acceptance tests using py.test

tox file added to run syntax check on the code and run acceptance tests using py.test

Can one of the admins verify this patch?

@hayderimran7 thanks!!

really appreciate it!  it also appears that we have some styling issues :)   that will be another PR.


feat(txpool) feed new pending transactions to BestTxns iterator

creating a draft pr for #4045
feel free to close this out in favor of @supernovahs solution, since they had asked to be assigned - mainly would love any feedback as to whether my understanding of the issue was correct, and if not, where I'm thinking about this solution wrong

looks good to me

It would be great to have a test for this basically
get iterator
insert pending
call iterator.next

yep make sense, added in the transaction-pool/tests/it


Fixes #443

The Ctrl+Enter shortcut does not work properly when a non-comment line in a function contains the "#" character.
The problem was that the cleanLine removes everything until the #, the new regex does a lookbehind and lookahead and does not match # within quotes.

The new regex seems to fail with the following example:
f <- function(){
  print("1") # } #
}

    const cleaned = text.replace(/(.*?(?<!").*?(?!").*?)(\#.*)/g, `$1`).trimEnd();

seems to work in the example above, I haven't done any more testing though.

Thanks for looking into this.
Could you add some test cases to /src/test/suite/extensionl.test.ts so that these cases are covered?

@ManuelHentschel your regex actually broke the solution. I chose to ditch regex in general. Perhaps this code would need some reorganisation/rewrite some day.

Thanks for updating the solution! The new solution works nicely. To make it more robust when handling mismatched quotes I'd suggest looking for matching closing quotes (instead of the next quote in general), otherwise e.g. the following function might not behave correctly:
f <- function(){
  print("'#")
}

Thanks for the fix. Using this approach we could also add a check for escaped quotes as e.g. in print("as\"df}"), though this might be a bit more complicated if escaped backslashes are present as e.g. in print("\\").
One problematic case that might be impossible to solve cleanly using the current approach are multiline strings as in
f <- function(){
    a <- "asdf
    qwer" # }
    print(a)
}

I'm not sure to what extent it makes sense to check these cases in typescript, or if it should be better to wait for a solution using R as suggested e.g. here.
If you're tired of this issue, I'd say this PR is already an improvement over the previous solution and could be merged.
On a technical sidenote: when pushing to a public repo, please try to avoid force-pushes, since these make it hard to sync a local repo with GitHub and invalidate linked code references on GitHub. To preserve a clean commit-history in the main branch, we can e.g. use a squash-merge that will condense all commits from this branch into one.

I tested this PR and I believe it is already robust enough for most use cases.
Thanks for your nice work!


Prevent touchmove while swiping, fixes #17

This change is

[ ] Prevent touchmove event while swiping
[ ] Replace getOffsetWidth with _getOffsetWidth since it's a private method

I think I have fixed this issue when the last commit also! Give it a try and let me know!


Align the usage of format.align.

The interpretation given to align was different in decode.cc and in
dec_external_image.cc, leading to potential out-of-bounds writes and
memory corruption.

PTAL, updated code.

LGTM, thanks for the fix!


pocketsphinx plugin: accept language model through MRCPRecog

Originally reported on Google Code with ID 119
The line 352 has the JSGF hardcoded:
http://code.google.com/p/unimrcp/source/browse/trunk/plugins/mrcp-pocketsphinx/src/mrcp_pocketsphinx.c#352

"-jsgf", grammar,"

It would be nice if this plugin accepts not only JSGF but Language Model (LM).

As I'm not a C programmer I just hardcoded a solution (See this thread at unimrcp google
group: https://groups.google.com/forum/#!msg/unimrcp/iOZI1q242g4/qFvSWIuozUcJ)

But it would be nice to use "jsgf" or "lm" configured it in MRCPRecog call.

The variable "grammar" has only the compiled grammar and it (of course) dos not work
as a LM.

Reported by<EMAIL_ADDRESS>on 2011-02-15 18:59:18

This issue relates to the PocketSphinx plugin which is no longer supported.


RandomCharField (UniqueFieldMixin) not compatible with model with CheckConstraint

Hello,
I'm using django Django==2.2.9
I have a model with a RandomCharField and some extra constraint defined.

class MyModel(RandomSlugModel, TimeStampedModel):
    class Meta:
        unique_together = (("remote_field", "user"),)
        constraints = [
            CheckConstraint(
                check=Q(units_sold__lte=F('units_in_item')), name='check_sold',
            ),
            CheckConstraint(
                check=Q(units_reserved__lte=F('units_in_item')), name='check_reserved',
            ),
        ]
    [...]

If I try to save I get the following stack trace :
web_1          |   File "/usr/local/lib/python3.8/site-packages/django_extensions/db/models.py", line 23, in save
web_1          |     super(TimeStampedModel, self).save(**kwargs)
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 740, in save
web_1          |     self.save_base(using=using, force_insert=force_insert,
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 777, in save_base
web_1          |     updated = self._save_table(
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 870, in _save_table
web_1          |     result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 907, in _do_insert
web_1          |     return manager._insert([self], fields=fields, return_id=update_pk,
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
web_1          |     return getattr(self.get_queryset(), name)(*args, **kwargs)
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 1186, in _insert
web_1          |     return query.get_compiler(using=using).execute_sql(return_id)
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1367, in execute_sql
web_1          |     for sql, params in self.as_sql():
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1309, in as_sql
web_1          |     value_rows = [
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1310, in <listcomp>
web_1          |     [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1310, in <listcomp>
web_1          |     [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
web_1          |   File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1261, in pre_save_val
web_1          |     return field.pre_save(obj, add=True)
web_1          |   File "/usr/local/lib/python3.8/site-packages/django_extensions/db/fields/__init__.py", line 387, in pre_save
web_1          |     return self.find_unique(
web_1          |   File "/usr/local/lib/python3.8/site-packages/django_extensions/db/fields/__init__.py", line 74, in find_unique
web_1          |     if self.attname in constraint.fields:
web_1          | AttributeError: 'CheckConstraint' object has no attribute 'fields'

By reading the code at the pointed error ( https://github.com/django-extensions/django-extensions/blob/master/django_extensions/db/fields/init.py#L74 )
I would say it should be changed to :
               if self.attname in constraint.fields:
to
               if hasattr(constraint, 'fields') and self.attname in constraint.fields:
It would help to support all type of constraint and not only the UniqueConstraint one : I think that constraint should be any of BaseConstraint that doesn't define a fields attribute.
Let me know if you need more details or would like a pull request with the suggested change above.
In the meanwhile for those having the same issue a temporary workaround is to define a dummy class that wrap your constraint (in my case the CheckConstraint) and define a fields attribute.

@r3gis3r @trbs I've let myself create a patch for this issue as it also affects my project. Waiting for review on tests as I was not sure how to handle it.

Let me close this ticket as we have a PR now 👍


Beneficiaries array required, with length 1-4

This is the error message coming what to do

Did you select beneficiaries?

Closing as the issue is likely with not selecting beneficiaries.


Fix/convert attention

add 2-head attention concatenation
add layernorm and skip connection to ffn
fix reduction mask

going to leave this as a WIP for now and merge later assuming it fixes the issues we are seeing

Made a couple of changes:

GeLU was not fed in before
the output encoding is to be fed into cosine distance. I don't think it make sense to let them go through an activation.

closing as stale


Fix some typos.

Fix some typos.
https://github.com/k2-fsa/icefall/issues/328#issue-1211934509

Thanks.


Allow multiple extension installs at one time from the CLI

I have an installer that is installing a list of extensions into VS Code via the CLI. Currently, I have to pass in my VSIX's one at a time, in the correct order in case of extension dependencies. It would be nice to be able to pass in a list of VSIX's that would get installed, and would detect dependencies between the extensions to ensure everything is good.
This is for an offline setup for a standardized setup, so installing from the GUI is not an option.

You can use --install-extension EXT1 --install-extension EXT2


⚠ Thumbnails API Endpoint has degraded performance

In 058d979, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1063 ms

Resolved: Thumbnails API Endpoint performance has improved in f9e1781 after 9 minutes.


Synthetic Time Series Generator for pinot-tools

Extends pinot-tools data generator with realistic time series templates considering seasonality,
trends, noise, and major outliers. #5117
Specifically, this adds support for:

seasonal (diurnal) patterns to simulate page views and clicks metrics
spiky (long-tailed) patterns to simulate error metrics
sequential patterns to deterministically populate time stamp columns
string dictionaries to deterministically populate dimension columns
mixture models of the above

Additionally provides two sample configurations "simpleWebsite" and "complexWebsite" which
generate non-dimensional and dimensional examples of time series respectively. Also provides
instructions for generating and loading mock data onto an existing Pinot cluster.

Thank you @mayankshriv for the quick turnaround. I absolutely agree that "pattern" is a better name for this.