Fixed off by one error when setting totalRequests variable.

When setting the totalRequest flag to some number x the number of requests sent was x + 1.
Fix #21

Thanks @Smileyman5! One-byte patches are the best. We'll take a look.


Error 503 Backend is unhealthy

$ docker run -it alpine sh
/ # apk add --no-cache yarn
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.15/main: temporary error (try again later)
fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.15/community: temporary error (try again later)
ERROR: unable to select packages:
  yarn (no such package):
    required by: world[yarn]
/ #

$ curl -I https://dl-cdn.alpinelinux.org/
HTTP/2 503
server: Varnish
retry-after: 0
content-type: text/html; charset=utf-8
accept-ranges: bytes
date: Tue, 15 Feb 2022 00:51:57 GMT
via: 1.1 varnish
x-served-by: cache-tyo11920-TYO
x-cache: MISS
x-cache-hits: 0
x-timer: S1644886317.416013,VS0,VE233
content-length: 455

The site is down.

same here

same.

Same 😢 🔫

Same

Sammeeee

SAME FOR ME

Same here

list of mirrors here https://github.com/gliderlabs/docker-alpine/issues/132#issuecomment-300865113

this one seems to be up at least http://nl.alpinelinux.org/alpine/

I'm in Docker, how can I use a mirror?

working now for me

thank you. It has been fixed.
$ curl -I https://dl-cdn.alpinelinux.org/
HTTP/1.1 200 OK
Content-Length: 0
Connection: Keep-Alive

HTTP/2 200
server: nginx
content-type: text/html
strict-transport-security: max-age=31536000
x-frame-options: DENY
x-content-type-options: nosniff
fastly-restarts: 1
via: 1.1 varnish, 1.1 varnish
accept-ranges: bytes
date: Tue, 15 Feb 2022 02:27:31 GMT
age: 10
x-served-by: cache-lga21922-LGA, cache-hnd18740-HND
x-cache: MISS, HIT
x-cache-hits: 0, 1
x-timer: S1644892051.185113,VS0,VE0
content-length: 247

$ docker run -it alpine sh
/ # apk add --no-cache yarn
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/8) Installing ca-certificates (20211220-r0)
(2/8) Installing nghttp2-libs (1.43.0-r0)
(3/8) Installing brotli-libs (1.0.9-r5)
(4/8) Installing c-ares (1.17.2-r0)
(5/8) Installing libgcc (10.3.1_git20210424-r2)
(6/8) Installing libstdc++ (10.3.1_git20210424-r2)
(7/8) Installing nodejs (14.19.0-r0)
(8/8) Installing yarn (1.22.10-r0)
Executing busybox-1.33.1-r3.trigger
Executing ca-certificates-20211220-r0.trigger
OK: 49 MiB in 22 packages
/ #

I'm in Docker, how can I use a mirror?

I think I'm writing the URL to this file. maybe.
/ # cat /etc/apk/repositories
https://dl-cdn.alpinelinux.org/alpine/v3.14/main
https://dl-cdn.alpinelinux.org/alpine/v3.14/community
/ #


NetCDF 4.9.0: segmentation fault after repeatedly opening a NetCDF 4 file, reading a vector and closing the file

The julia user @sjdaines  reported this  segmentation fault (https://github.com/Alexander-Barth/NCDatasets.jl/issues/187 ), when repeatedly open a NetCDF 4 file, reading a vector and closing the file. After doing this ~1 000 000 times we have a segmentation fault. For the original use-case, the error occurs much earlier.

the version of the software with which you are encountering an issue

NetCDF 4.9.0 with HDF5 1.12.1 on Linux 5.15.0 with  gcc 5.2.0.

a description of the issue with the steps needed to reproduce it

NetCDF 4.9.0 is compiled with:
./configure --prefix=/workspace/destdir --build=x86_64-linux-musl --host=x86_64-linux-gnu --enable-shared --disable-static --disable-dap-remote-tests --disable-plugins

The segmentation fault can also be reproduced with the following C code:
#include <stdlib.h>
#include <stdio.h>
#include <netcdf.h>
#define FILE_NAME "coords.nc"
#define NX 90
#define ERR(e) {printf("Error: %s\n", nc_strerror(e)); exit(2);}

int main() {
  int ncid, varid;
  float data_in[NX];
  int x, y, retval, niter;

  niter = 0;

  while (1) {
    if (niter % 1000 == 0) {
      printf("niter: %d\n",niter);
    }
    if ((retval = nc_open(FILE_NAME, NC_NOWRITE, &ncid)))
      ERR(retval);

    if ((retval = nc_inq_varid(ncid, "latitude", &varid)))
      ERR(retval);

    if ((retval = nc_get_var_float(ncid, varid, &data_in[0])))
      ERR(retval);

    if ((retval = nc_close(ncid)))
      ERR(retval);

    niter += 1;
  }

  return 0;
}

Compiled with:
gcc -g test_segfault6.c $(nc-config --cflags --libs)

After  niter: 944000, the output is Segmentation fault (core dumped). Running the programm under gdb, we see the following stack trace:
[...]
niter: 944000
niter: 945000

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a991fa in __GI___libc_free (mem=0xffffffff80000400) at malloc.c:3255
3255    malloc.c: No such file or directory.
(gdb)
(gdb) where
#0  0x00007ffff7a991fa in __GI___libc_free (mem=0xffffffff80000400) at malloc.c:3255
#1  0x00007ffff7cef600 in nc4_rec_grp_del () from /workspace/destdir/lib/libnetcdf.so.19
#2  0x00007ffff7cefa2b in nc4_nc4f_list_del () from /workspace/destdir/lib/libnetcdf.so.19
#3  0x00007ffff7c975ee in nc4_close_netcdf4_file () from /workspace/destdir/lib/libnetcdf.so.19
#4  0x00007ffff7c976d5 in nc4_close_hdf5_file () from /workspace/destdir/lib/libnetcdf.so.19
#5  0x00007ffff7c97cd6 in NC4_close () from /workspace/destdir/lib/libnetcdf.so.19
#6  0x00007ffff7c3581a in nc_close () from /workspace/destdir/lib/libnetcdf.so.19
#7  0x0000000000400a42 in main () at test_segfault6.c:28

On a different system with HDF5 1.10.0 this error could not be reproduced (tested up to 5 000 000 iterations).
The NetCDF file is available at:
https://github.com/Alexander-Barth/NCDatasets.jl/files/9393436/coords.zip and contains the following data:
$ ncdump -h -s coords.nc
netcdf coords {
dimensions:
	latitude = 90 ;
	longitude = 144 ;
	bnds = 2 ;
variables:
	float latitude(latitude) ;
		latitude:axis = "Y" ;
		latitude:units = "degrees_north" ;
		latitude:standard_name = "latitude" ;
		latitude:_Storage = "contiguous" ;
		latitude:_Endianness = "little" ;
	float longitude(longitude) ;
		longitude:axis = "X" ;
		longitude:units = "degrees_east" ;
		longitude:standard_name = "longitude" ;
		longitude:_Storage = "contiguous" ;
		longitude:_Endianness = "little" ;

// global attributes:
		:source = "Data from Met Office Unified Model" ;
		:um_version = "11.9" ;
		:Conventions = "CF-1.7" ;
		:_NCProperties = "version=2,netcdf=4.7.4,hdf5=1.12.0," ;
		:_SuperblockVersion = 0 ;
		:_IsNetcdf4 = 1 ;
		:_Format = "netCDF-4" ;
}

Interesting, and thank you for the comprehensive information! I'll set up to replicate this, thanks!

Notes to self:  v4.9.0 w/ HDF5 1.12.2 does not manifest this issue on MacOS M1.  Setting up a 1.12.1 environment.  @Alexander-Barth would it be possible to get the corresponding libnetcdf.settings and libhdf5.settings files from the environment where the issue is being observed?

Also, @Alexander-Barth, on the system that's failing, what happens if you compile and run the program as follows:
$ gcc -g test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer

This makes some assumptions about the capabilities of the underlying compiler/system, and it's possible it will simply fail to compile due to unrecognized arguments.  But if it compiles, does it still fail after iteration 944000 or does it fail sooner?

This is libhdf5.settings (HDF5 is taken from https://anaconda.org/conda-forge/hdf5/1.12.1/download/linux-64/hdf5-1.12.1-nompi_h2750804_103.tar.bz2)
	    SUMMARY OF THE HDF5 CONFIGURATION
	    =================================

General Information:
-------------------
                   HDF5 Version: 1.12.1
                  Configured on: Mon Dec  6 11:34:37 UTC 2021
                  Configured by: conda@52cf20af83a3
                    Host system: x86_64-conda-linux-gnu
              Uname information: Linux 52cf20af83a3 5.11.0-1021-azure #22~20.04.1-Ubuntu SMP Fri Oct 29 01:11:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
                       Byte sex: little-endian
             Installation point: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_

Compiling Options:
------------------
                     Build Mode: production
              Debugging Symbols: no
                        Asserts: no
                      Profiling: no
             Optimization Level: high

Linking Options:
----------------
                      Libraries: static, shared
  Statically Linked Executables:
                        LDFLAGS: -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib -Wl,-rpath-link,/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib -L/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib
                     H5_LDFLAGS:
                     AM_LDFLAGS:  -L/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib
                Extra libraries: -lcrypto -lcurl -lrt -lpthread -lz -ldl -lm
                       Archiver: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_build_env/bin/x86_64-conda-linux-gnu-ar
                       AR_FLAGS: cr
                         Ranlib: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_build_env/bin/x86_64-conda-linux-gnu-ranlib

Languages:
----------
                              C: yes
                     C Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_build_env/bin/x86_64-conda-linux-gnu-cc
                       CPPFLAGS: -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include
                    H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L   -DNDEBUG -UH5_DEBUG_API
                    AM_CPPFLAGS:  -I/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include
                        C Flags: -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/work=/usr/local/src/conda/hdf5_split-1.12.1 -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_=/usr/local/src/conda-prefix
                     H5 C Flags:  -std=c99  -Wall -Wcast-qual -Wconversion -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wno-c++-compat -Wno-format-nonliteral -Wshadow -Wundef -Wwrite-strings -pedantic -Wlarger-than=2560 -Wlogical-op -Wframe-larger-than=16384 -Wpacked-bitfield-compat -Wsync-nand -Wstrict-overflow=5 -Wno-unsuffixed-float-constants -Wdouble-promotion -Wtrampolines -Wstack-usage=8192 -Wmaybe-uninitialized -Wdate-time -Warray-bounds=2 -Wc99-c11-compat -Wduplicated-cond -Whsa -Wnormalized -Wnull-dereference -Wunused-const-variable -Walloca -Walloc-zero -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=1 -Wrestrict -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2 -Wattribute-alias=2 -Wmissing-profile -Wc11-c2x-compat -fstdarg-opt  -s -Wno-aggregate-return -Wno-inline -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-overlength-strings -Wno-jump-misses-init -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=pure -Wno-suggest-attribute=format -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc  -Wbad-function-cast -Wimplicit-function-declaration -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-sign -Wpointer-to-int-cast -Wredundant-decls -Wstrict-prototypes -Wswitch -Wunused-function -Wunused-variable -Wunused-parameter -Wcast-align -Wunused-but-set-variable -Wformat -Wincompatible-pointer-types -Wshadow -Wcast-function-type -Wmaybe-uninitialized -O3
                     AM C Flags:
               Shared C Library: yes
               Static C Library: yes

                        Fortran: yes
               Fortran Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_build_env/bin/x86_64-conda-linux-gnu-gfortran ( GNU Fortran (GCC) 9.4.0)
                  Fortran Flags:
               H5 Fortran Flags:  -std=f2008  -Waliasing -Wall -Wcharacter-truncation -Wextra -Wimplicit-interface -Wsurprising -Wunderflow -pedantic -Warray-temporaries -Wintrinsics-std -Wimplicit-procedure -Wreal-q-constant -Wfunction-elimination -Wrealloc-lhs -Wrealloc-lhs-all -Wno-c-binding-type -Wuse-without-only -Winteger-division -Wfrontend-loop-interchange   -s -O3
               AM Fortran Flags:
         Shared Fortran Library: yes
         Static Fortran Library: yes

                            C++: yes
                   C++ Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_build_env/bin/x86_64-conda-linux-gnu-c++
                      C++ Flags: -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/work=/usr/local/src/conda/hdf5_split-1.12.1 -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1638790369387/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_=/usr/local/src/conda-prefix
                   H5 C++ Flags:   -Wall -Wcast-qual -Wconversion -Wctor-dtor-privacy -Weffc++ -Wextra -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wno-format-nonliteral -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wreorder -Wshadow -Wsign-promo -Wundef -Wwrite-strings -pedantic -Wlarger-than=2560 -Wlogical-op -Wframe-larger-than=16384 -Wpacked-bitfield-compat -Wsync-nand -Wstrict-overflow=5 -Wdouble-promotion -Wtrampolines -Wstack-usage=8192 -Wmaybe-uninitialized -Wdate-time -Wopenmp-simd -Warray-bounds=2 -Wduplicated-cond -Whsa -Wnormalized -Wnull-dereference -Wunused-const-variable -Walloca -Walloc-zero -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=1 -Wrestrict -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2 -Wattribute-alias=2 -Wmissing-profile -Wno-deprecated-copy -fstdarg-opt  -s  -Wcast-align -Wmissing-declarations -Wpacked -Wredundant-decls -Wswitch -Wunused-but-set-variable -Wunused-function -Wunused-variable -Wunused-parameter -Wshadow -O3
                   AM C++ Flags:  -DOLD_HEADER_FILENAME -DHDF_NO_NAMESPACE -DNO_STATIC_CAST
             Shared C++ Library: yes
             Static C++ Library: yes

                           Java: no

Features:
---------
                   Parallel HDF5: no
Parallel Filtered Dataset Writes: no
              Large Parallel I/O: no
              High-level library: yes
                Build HDF5 Tests: yes
                Build HDF5 Tools: yes
                    Threadsafety: yes (recursive RW locks: no)
             Default API mapping: v112
  With deprecated public symbols: yes
          I/O filters (external): deflate(zlib)
                             MPE: no
                   Map (H5M) API: no
                      Direct VFD: yes
                      Mirror VFD: no
              (Read-Only) S3 VFD: yes
            (Read-Only) HDFS VFD: no
                         dmalloc: no
  Packages w/ extra debug output: none
                     API tracing: no
            Using memory checker: yes
 Memory allocation sanity checks: no
          Function stack tracing: no
                Use file locking: best-effort
       Strict file format checks: no
    Optimization instrumentation: no

This is libnetcdf.settings
# NetCDF C Configuration Summary
==============================

# General
-------
NetCDF Version:         4.9.0
Dispatch Version:       5
Configured On:
Host System:            x86_64-pc-linux-gnu
Build Directory:        /workspace/srcdir/netcdf-c-4.9.0
Install Prefix:         /workspace/destdir
Plugin Install Prefix:  N.A.

# Compiling Options
-----------------
C Compiler:             /opt/bin/x86_64-linux-gnu-libgfortran3-cxx11/cc
CFLAGS:                 -std=c99 -fno-strict-aliasing
CPPFLAGS:               -I/workspace/destdir/include
LDFLAGS:                -L/workspace/destdir/lib
AM_CFLAGS:
AM_CPPFLAGS:
AM_LDFLAGS:
Shared Library:         yes
Static Library:         no
Extra libraries:        -lhdf5_hl -lhdf5 -lm -lz -ldl -lxml2 -lcurl
XML Parser:             libxml2

# Features
--------
NetCDF-2 API:           yes
HDF4 Support:           no
HDF5 Support:           yes
NetCDF-4 API:           yes
NC-4 Parallel Support:  no
PnetCDF Support:        no
DAP2 Support:           yes
DAP4 Support:           yes
Byte-Range Support:     no
Diskless Support:       yes
MMap Support:           no
JNA Support:            no
CDF5 Support:           yes
ERANGE Fill Support:    no
Relaxed Boundary Check: yes
Parallel Filters:       yes
NCZarr Support:         yes
Multi-Filter Support:   yes
Quantization:           yes
Logging:                no
SZIP Write Support:     no
Standard Filters:       deflate bz2
ZSTD Support:           no
Benchmarks:             no

Interestingly with -fsanitize=address -fno-omit-frame-pointer the code fails right-away:
sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # gcc  test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer
sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # ./a.out
==729==AddressSanitizer CHECK failed: /workspace/srcdir/gcc-5.2.0/libsanitizer/asan/asan_rtl.cc:556 "((!asan_init_is_running && "ASan init calls itself!")) != (0)" (0x0, 0x0)
    <empty stack>

I am rerunning this test case with gcc 12.1 and NetCDF compiled with -g which gives a more complete stack trace and line numbers:
sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # gcc -g  test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer
sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # ./a.out
niter: 0
AddressSanitizer:DEADLYSIGNAL
=================================================================
==598==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x7fa903fc92f6 bp 0x7fffe290f440 sp 0x7fffe290ebd8 T0)
==598==The signal is caused by a READ memory access.
==598==Hint: address points to the zero page.
    #0 0x7fa903fc92f6 in __sanitizer::internal_strlen(char const*) /workspace/srcdir/gcc-12.1.0/libsanitizer/sanitizer_common/sanitizer_libc.cpp:167
    #1 0x7fa903f68c70 in __interceptor_strdup /workspace/srcdir/gcc-12.1.0/libsanitizer/asan/asan_interceptors.cpp:435
    #2 0x7fa903d6a3ef in NCDISPATCH_initialize /workspace/srcdir/netcdf-c-4.9.0/libdispatch/ddispatch.c:85
    #3 0x7fa903d5ded9 in nc_initialize /workspace/srcdir/netcdf-c-4.9.0/liblib/nc_initialize.c:90
    #4 0x7fa903d622cd in NC_open /workspace/srcdir/netcdf-c-4.9.0/libdispatch/dfile.c:1982
    #5 0x7fa903d616c1 in nc_open /workspace/srcdir/netcdf-c-4.9.0/libdispatch/dfile.c:662
    #6 0x401303 in main /workspace/srcdir/netcdf-c-4.9.0/test_segfault6.c:19
    #7 0x7fa903b55156 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #8 0x7fa903b55207 in __libc_start_main_impl ../csu/libc-start.c:409
    #9 0x401138  (/workspace/srcdir/netcdf-c-4.9.0/a.out+0x401138)

sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # gcc --version
x86_64-linux-gnu-gcc (GCC) 12.1.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The failure in strdup starts to resemble another issue (possibly related) reported here:

https://github.com/JuliaPackaging/Yggdrasil/pull/5319#issuecomment-1221042734
in particular https://github.com/JuliaPackaging/Yggdrasil/pull/5319#issuecomment-1221149904

@sjdaines also reported an error with classical NetCDF files:
https://github.com/Alexander-Barth/NCDatasets.jl/issues/187

Interesting, thank you.  I will continue working on duplicating this; I am unable thus far to replicate the error on MacOS or Linux, using the .nc and C code provided, with or without memory sanitizing.  I'll take a closer look at the .settings files provided when I get in to the office.

Surprisingly, if netcdf is compiled without -std=c99 (add in the past because of variable declaration within a function body, but no longer necessary in NetCDF 4.9.0), we do no longer have this failure right at the beginning:
sandbox:${WORKSPACE}/srcdir/netcdf-c-4.9.0 # gcc -g  test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer && ./a.out
niter: 0
niter: 1000
niter: 2000
^C

I am making the long test now.

No problem looking into this; we have a long list of things to address but it comes down more to resource management than anything else; we will get to everything in time XD.  One hopes.
The Sanitizer is great (I was aware of it, but thanks to @edwardhartnett for bringing it into our regular toolbox), it helps flag memory management issues the moment they occur, not when they eventually become problematic.  I confess I'm really curious why this is occurring on your system and not on mine; my next step will be to test using the conda-packaged HDF5 instead of the version I compile myself.
The only downside to running with the sanitizer is the (to be expected) additional overhead incurred; it changed the 1,000,000 iteration run I was doing from a 2 minute test to a 16 minute test, last night.

Frustratingly, adding -std=c99 to my local netcdf-c build doesn't trigger the error in my environment, either. But, continuing to try to track this down.

If it is helpful, setting up a sandbox with gcc 12.0.1 (or other version) and all necessary libraries (HDF5, zlib and libcurl) can be achieved with the following commands on a Linux system. You only need to have git pre-installed (which is likely :-))
Assuming your current directory is empty and writable and that you have about 5 GB in your home partition, one can use:
DIR=$PWD
wget -O - https://julialang-s3.julialang.org/bin/linux/x64/1.8/julia-1.8.0-linux-x86_64.tar.gz | tar -xzf -
$DIR/julia-1.8.0/bin/julia --eval 'using Pkg; Pkg.add("BinaryBuilder")'
git clone https://github.com/JuliaPackaging/Yggdrasil.git
cd $DIR/Yggdrasil/N/NetCDF
sed 's/preferred_gcc_version=v"5"/preferred_gcc_version=v"12"/'  ./build_tarballs.jl >  ./build_tarballs_gcc12.jl
$DIR/julia-1.8.0/bin/julia --color=yes ./build_tarballs_gcc12.jl x86_64-linux-gnu  --debug=end

The warning Warning: Build failed, the following log files were generated can be ignored. I think it is due to the fact that we interrupted the build by requiring a debugging shell with --debug=end. In this shell, NetCDF is already build and installed (using this script: https://github.com/JuliaPackaging/Yggdrasil/blob/master/N/NetCDF/build_tarballs.jl#L30-L80 )
NetCDF is installed in /workspace/destdir.
To reproduce the issue, one can use:
wget -O test_segfault6.c https://dox.ulg.ac.be/index.php/s/QI3R0UKx3QdKBra/download
wget https://github.com/Alexander-Barth/NCDatasets.jl/files/9393436/coords.zip
unzip coords.zip
gcc -g  test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer && ./a.out
# -> should reproduce the error

The folder $DIR/Yggdrasil/N/NetCDF/build/x86_64-linux-gnu/ABCXYZ/srcdir/netcdf-c-4.9.0 on your host
corresponding to the source directory /workspace/srcdir/netcdf-c-4.9.0 in the sandbox where ABCXYZ is a random string.
This is the easiest way to share files between the sandbox and the host.
Use Control-D to exit sandbox.
The sed command is used to change version of the gcc compiler (as gcc 5.2 is a bit old)
Some commands need to download some large files can take a while (for example a couple of minutes). To uninstall run rm -Rf $DIR $HOME/.julia.
In any case, I would completely understand if you do not want to adventure into using unfamiliar tools.

@Alexander-Barth This is great, actually; it will help a lot to be able to replicate the environment.  I will take a look at this tomorrow; my day-to-day machine is ARM, so I will move over to an x86-64 machine to test this out.  I will also try under emulation if it comes down to it.  Thanks!

@Alexander-Barth So, I'm running the scripts you provided above.  First, this is great, I will definitely spend some time unpicking the actual Julia scripts.  Julia is one of those languages that's been on my radar/to-do list, but I haven't had the chance to explore.  But this containerized build system is a big help.
I'm running the provided scripts on my x86_64 dev system, under WSL (if that makes a difference); unfortunately, I'm still not able to reproduce the error.  That doesn't necessarily mean there isn't a problem; after I've let this run for a while just to make sure, I'm going to run it through some additional memory profiling tools.
Do you happen to know how much system RAM is available in the environment where this issue is being observed? What I suspect, at this point, is that something isn't being freed when it should be; if available RAM is relatively low, perhaps we're seeing an out-of-memory issue?
Beyond that, I'm happy to continue helping diagnose this issue, particularly when it's so easy to use the "same" environment as where the issue is being observed.

Ok, I am able to recreate this now, and I have a couple of leads on it.  Thanks!

With some testing, I'm now observing the following:
(where v8.8.8 is a temporary tag I've created in WardF/netcdf-c to test fixes w/ the Julia build system).
sandbox:${WORKSPACE}/srcdir/netcdf-c-8.8.8 # gcc -g  test_segfault6.c $(nc-config --cflags --libs) -fsanitize=address -fno-omit-frame-pointer && ./a.out
niter: 0
AddressSanitizer:DEADLYSIGNAL
=================================================================
==9379==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000050 (pc 0x7fe5a6bbb3af bp 0x7ffdf99395c0 sp 0x7ffdf9939590 T0)
==9379==The signal is caused by a READ memory access.
==9379==Hint: address points to the zero page.
    #0 0x7fe5a6bbb3af in parsepath /workspace/srcdir/netcdf-c-8.8.8/libdispatch/dpathmgr.c:796
    #1 0x7fe5a6bbaabf in NCpathcanonical /workspace/srcdir/netcdf-c-8.8.8/libdispatch/dpathmgr.c:186
    #2 0x7fe5a6baf580 in NCDISPATCH_initialize /workspace/srcdir/netcdf-c-8.8.8/libdispatch/ddispatch.c:95
    #3 0x7fe5a6ba3009 in nc_initialize /workspace/srcdir/netcdf-c-8.8.8/liblib/nc_initialize.c:90
    #4 0x7fe5a6ba73fd in NC_open /workspace/srcdir/netcdf-c-8.8.8/libdispatch/dfile.c:1982
    #5 0x7fe5a6ba67f1 in nc_open /workspace/srcdir/netcdf-c-8.8.8/libdispatch/dfile.c:662
    #6 0x401303 in main /workspace/srcdir/netcdf-c-8.8.8/test_segfault6.c:19
    #7 0x7fe5a699a156 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #8 0x7fe5a699a207 in __libc_start_main_impl ../csu/libc-start.c:409
    #9 0x401138  (/workspace/srcdir/netcdf-c-8.8.8/a.out+0x401138)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /workspace/srcdir/netcdf-c-8.8.8/libdispatch/dpathmgr.c:796 in parsepath
==9379==ABORTING

Running through gdb, I'm observing the following:
(gdb) break dpathmgr.c:796
No source file named dpathmgr.c.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (dpathmgr.c:796) pending.
(gdb) run
Starting program: /workspace/srcdir/netcdf-c-8.8.8/a.out
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
niter: 0

Breakpoint 1, parsepath (inpath=0x619000000580 "/workspace/srcdir/netcdf-c-8.8.8", path=0x7fffffffaf40) at dpathmgr.c:796
796         for(p=tmp1;*p;p++) {if(*p == '\\') *p = '/';}
(gdb) l
791         if((stat = NCpath2utf8(inpath,&tmp1))) goto done;
792     #else
793         tmp1 = strdup(inpath);
794     #endif
795         /* Convert to forward slash to simplify later code */
796         for(p=tmp1;*p;p++) {if(*p == '\\') *p = '/';}
797
798         /* parse all paths to 2 parts:
799             1. drive letter (optional)
800             2. path after drive letter
(gdb) p inpath
$1 = 0x619000000580 "/workspace/srcdir/netcdf-c-8.8.8"
(gdb) p tmp1
$2 = 0x50 <error: Cannot access memory at address 0x50>
(gdb) p *tmp1
Cannot access memory at address 0x50
(gdb)

It appears something unexpected is happening with strdup(); whatever is happening, it does not occur in the WSL-based code.  Investigating further.

Note to self: I've confirmed that removing the -std=c99 corrects the issue observed above.

@Alexander-Barth So, this has been a valuable and interesting exercise.  I believe that the fix you have adopted here, the removal of -std=c99 from CFLAGS, is the correct one, and this issue can be closed.  However, I'll be bookmarking it for reference to the scripts you provided above; thank you once again, very much.
A cursory Google search for "-std=c99" strdup turns up a lot of similar issues/headaches (like this one, for example).  The common solutions appear to be to either replace -std=c99 with -std=gnu99, or to append -D_GNU_SOURCE when invoking gcc.  Since we have a solution that doesn't require changing the netcdf-c code, I'm content to call this a valuable learning experience.
I'll wait to close this issue so that you have a chance to share your thoughts, @Alexander-Barth; feel free to close the issue yourself if you'd like, or I'll address it in the next couple of days.
Thanks again!

OK, this a very interesting find! So strdup is not part of C99 and indeed the compiler emitted a warning which I did not see.
What is surprising, is that according to config.h, strdup is available (but it is not):
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1

Despite the test using the option -std=c99:
configure:22897: checking for strdup
configure:22897: cc -o conftest -std=c99 -fno-strict-aliasing -I/workspace/destdir/include -L/workspace/destdir/lib conftest.c -lxml2 -lcurl  >&5
configure:22897: $? = 0
configure:22897: result: yes

For reference, there is previous discussion about this:
https://github.com/Unidata/netcdf-c/issues/1408
I am closing this issue because because the option is not necessary anymore in NetCDF 4.9.0. After intensive testing by  @sjdaines all reported failure cases are fixed by dropping -std=c99. Thanks a lot to all for your valuable help!!!
(And a learned a lot too; above all that C in really hard :-))

I recall now. It turns out that, as you note, a number of functions like strdup
are not officially part of c99. However it is also the case that, at least for gcc,
the c library actually contains strdup implementation and if you had
extern char* strdup(const char*) to a header, it actually finds it.
If you look at ncconfig.h, you will see a number of declarations
that try to deal with this.


feat: add more lang icons

I don't think this code is used anymore. Maybe I should remove it.

@Jas-SinghFSU sure thing. Also we need to centralize icons and not use them as strings rather use them after importing them from some file . This will make future PRS more easier


OCP Images 4.7 removed?

We started to see 2 problems in our ACM cluster (version  2.4):

~All our ClusterImageSet suddenly started showing up as belonging to the fast channel.~. Updated on 12/9: I am no longer sure that this was a new symptom. It may just have be that we didn't notice we were using the fast subscription since the early days of the serverr.

All OCP 4.7 images disappeared. I see that they were deleted recently (https://github.com/open-cluster-management/acm-hive-openshift-releases/commit/aaddba498685247619842ffeaae2f97d3726667b#diff-68a020ec4c141f79bbc8eebc19c2ad25c9ddcb9d67e876430d1065f569005861) .

Is this an accident, are we pointing at the wrong repo, or is OCP 4.7 actually being recalled from the field?
Output of kubectl get clusterimageset for our cluster, where we used to have only stable images and also have 4.7 images:
NAME                      RELEASE
img4.6.1-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.1-x86_64
img4.6.12-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.12-x86_64
img4.6.13-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.13-x86_64
img4.6.15-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.15-x86_64
img4.6.16-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.16-x86_64
img4.6.17-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.17-x86_64
img4.6.18-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.18-x86_64
img4.6.19-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.19-x86_64
img4.6.20-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.20-x86_64
img4.6.21-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.21-x86_64
img4.6.22-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.22-x86_64
img4.6.23-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.23-x86_64
img4.6.25-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.25-x86_64
img4.6.26-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.26-x86_64
img4.6.27-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.27-x86_64
img4.6.28-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.28-x86_64
img4.6.29-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.29-x86_64
img4.6.3-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.3-x86_64
img4.6.30-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.30-x86_64
img4.6.31-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.31-x86_64
img4.6.32-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.32-x86_64
img4.6.34-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.34-x86_64
img4.6.35-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.35-x86_64
img4.6.36-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.36-x86_64
img4.6.38-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.38-x86_64
img4.6.39-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.39-x86_64
img4.6.4-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.4-x86_64
img4.6.40-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.40-x86_64
img4.6.41-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.41-x86_64
img4.6.42-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.42-x86_64
img4.6.43-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.43-x86_64
img4.6.44-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.44-x86_64
img4.6.45-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.45-x86_64
img4.6.46-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.46-x86_64
img4.6.47-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.47-x86_64
img4.6.48-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.48-x86_64
img4.6.49-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.49-x86_64
img4.6.51-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.6.51-x86_64
img4.6.6-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.6-x86_64
img4.6.8-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.8-x86_64
img4.6.9-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.6.9-x86_64
img4.8.10-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.10-x86_64
img4.8.11-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.11-x86_64
img4.8.12-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.12-x86_64
img4.8.13-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.13-x86_64
img4.8.14-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.14-x86_64
img4.8.15-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.15-x86_64
img4.8.17-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.17-x86_64
img4.8.18-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.18-x86_64
img4.8.19-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.19-x86_64
img4.8.2-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.8.2-x86_64
img4.8.20-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.20-x86_64
img4.8.21-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.21-x86_64
img4.8.22-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.8.22-x86_64
img4.8.3-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.8.3-x86_64
img4.8.4-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.8.4-x86_64
img4.8.5-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.8.5-x86_64
img4.8.9-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.8.9-x86_64
img4.9.0-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.0-x86_64
img4.9.4-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.4-x86_64
img4.9.5-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.5-x86_64
img4.9.6-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.6-x86_64
img4.9.7-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.7-x86_64
img4.9.8-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.8-x86_64
img4.9.9-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.9.9-x86_64

cc @ldpliu

@nastacio In 2.4, ACM do not support ocp 4.7 images any more. So we removed it from clusterimageset. If you want to use it, please use "release" channel. It include all images...
FYI
@showeimer @berenss

Odd, after observing the disappearance of the 4.7 images in our prod server, we created two new ACM 2.4.1 servers (on both OCP 4.6 and OCP 4.8). Both showed 4.7 images right out of the box, and again after running make subscribe-stable.
 make unsubscribe-all
Client Version should be at least 4.4
Client Version: 4.9.10
oc -n hive-clusterimagesets delete -f subscribe/subscription-stable.yaml --ignore-not-found
subscription.apps.open-cluster-management.io "hive-clusterimagesets-subscription-stable-0" deleted
oc -n hive-clusterimagesets delete -f subscribe/subscription-candidate.yaml --ignore-not-found
oc -n hive-clusterimagesets delete -k subscribe/ || true
...

make subscribe-stable
Client Version should be at least 4.4
Client Version: 4.9.10
oc -n hive-clusterimagesets delete clusterimagesets --all
No resources found
oc -n hive-clusterimagesets apply -k subscribe
namespace/hive-clusterimagesets created
application.app.k8s.io/hive-clusterimagesets created
channel.apps.open-cluster-management.io/acm-hive-openshift-releases-chn-0 created
subscription.apps.open-cluster-management.io/hive-clusterimagesets-subscription-fast-0 created
oc -n hive-clusterimagesets apply -f subscribe/subscription-stable.yaml
subscription.apps.open-cluster-management.io/hive-clusterimagesets-subscription-stable-0 created
oc -n hive-clusterimagesets delete -f subscribe/subscription-fast.yaml --ignore-not-found
subscription.apps.open-cluster-management.io "hive-clusterimagesets-subscription-fast-0" deleted
oc -n hive-clusterimagesets delete -f subscribe/subscription-candidate.yaml --ignore-not-found

oc get ClusterImageSet | grep 4.7
img4.7.0-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.0-x86_64
img4.7.1-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.1-x86_64
img4.7.11-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.11-x86_64
img4.7.12-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.12-x86_64
img4.7.13-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.13-x86_64
img4.7.16-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.16-x86_64
img4.7.18-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.18-x86_64
img4.7.19-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.19-x86_64
img4.7.2-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.2-x86_64
img4.7.21-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.21-x86_64
img4.7.22-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.22-x86_64
img4.7.23-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.23-x86_64
img4.7.24-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.24-x86_64
img4.7.28-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.28-x86_64
img4.7.29-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.29-x86_64
img4.7.3-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.3-x86_64
img4.7.30-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.30-x86_64
img4.7.31-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.31-x86_64
img4.7.32-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.32-x86_64
img4.7.33-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.33-x86_64
img4.7.34-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.34-x86_64
img4.7.36-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.36-x86_64
img4.7.37-x86-64-appsub   quay.io/openshift-release-dev/ocp-release:4.7.37-x86_64
img4.7.4-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.4-x86_64
img4.7.5-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.5-x86_64
img4.7.6-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.6-x86_64
img4.7.7-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.7-x86_64
img4.7.8-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.8-x86_64
img4.7.9-x86-64-appsub    quay.io/openshift-release-dev/ocp-release:4.7.9-x86_64
(failed reverse-i-search)`Ima37': oc get Cluster^CageSet | grep 4.7
root@277d8c9376ea:/tmp/acm-hive-openshift-releases# oc get ClusterImageSet img4.7.37-x86-64-appsub -o yaml
apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
  annotations:
    apps.open-cluster-management.io/hosting-deployable: hive-clusterimagesets/acm-hive-openshift-releases-chn-0-ClusterImageSet-img4.7.37-x86-64-appsub
    apps.open-cluster-management.io/hosting-subscription: hive-clusterimagesets/hive-clusterimagesets-subscription-stable-0
    apps.open-cluster-management.io/reconcile-option: merge
    apps.open-cluster-management.io/sync-source: subgbk8s-hive-clusterimagesets/hive-clusterimagesets-subscription-stable-0
  creationTimestamp: "2021-12-09T14:19:13Z"
  generation: 1
  labels:
    channel: stable
    visible: "true"
  name: img4.7.37-x86-64-appsub
  resourceVersion: "21689677"
  uid: 882f33f7-871d-4ba9-a484-5436e564f8dd
spec:
  releaseImage: quay.io/openshift-release-dev/ocp-release:4.7.37-x86_64

@nastacio please review:  https://access.redhat.com/articles/6218901

@nastacio please review: https://access.redhat.com/articles/6218901

That is a great resource ,thank you.
That said, it says RHACM hub is not supported on OCP 4.7. It does not say RHACM does not support OCP 4.7 when creating new managed clusters.

@nastacio Thank you for your feedback.
There are 0 references to 4.7 on the page. That should be well interpreted that it is not included on the support matrix.

@nastacio Thank you for your feedback. There are 0 references to 4.7 on the page. That should be well interpreted that it is not included on the support matrix.

@berenss understood. On second analysis, I agree, "creation" goes under "management" in table "Supported platforms for Red Hat Advanced Cluster Management for Kubernetes".
That said, it is quite confusing that following instructions from the docs to run make subscribe-stable ends up making OCP 4.7 images available without any warning about them being unsupported by RHACM. The same could be said about the UI subsequently showing 4.7 images alongside 4.6/4.8 images without any qualification about those not being supported.
If anything, docs/UI/tooling probably would benefit from adapting to the support matrix, such as placing warnings on the UI when users choose 4.7 images, maybe not including them in make subscribe-stable, etc.

Absolutely - we had similar feedback a few weeks ago. @showeimer what action are we taking either for console or for doc?
I'm aware that by default we will be showing quite a large set of images just after the instantiation of the hub (install). usually within about 15 minutes the subscription does kick-in and provide the proper curated list. @ldpliu correct?

Currentlly, user should switch to the right branch to run the command like make subscribe-stable, I think we need to enhance the doc about this. And if user run the command, it will kick-in within 1h.

Absolutely - we had similar feedback a few weeks ago. @showeimer what action are we taking either for console or for doc?
I'm aware that by default we will be showing quite a large set of images just after the instantiation of the hub (install). usually within about 15 minutes the subscription does kick-in and provide the proper curated list. @ldpliu correct?

Currentlly, user should switch to the right branch to run the command like make subscribe-stable, I think we need to enhance the doc about this. And if user run the command, it will kick-in within 1h.

With regards to Doc, are we referring to this page?
https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.4/html/clusters/managing-your-clusters#release-images

With regards to Doc, are we referring to this page? https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.4/html/clusters/managing-your-clusters#release-images

Yes.

Create and doc issue to trace this.
https://github.com/stolostron/backlog/issues/19235


onReachTop is not being called

onReachTop modifier is not being called, opposing to onReachBottom which is weird.
BUG REPRODUCTION:
struct ContentView: View {
    var body: some View {
        LegacyScrollView {
            ForEach(0..<100) {_ in
                RoundedRectangle(cornerRadius: 10, style: .continuous)
                    .frame(height: 60)
                    .foregroundColor(.blue)
            }
        }
        .onScroll({ scrollView in
            print("ON SCROLL: \(scrollView.contentOffset)")
        })
        .onReachBottom({ scrollView in
            print("ON BOTTOM: \(scrollView.contentOffset)")
        })
        .onReachTop({ scrollView in
            print("ON TOP: \(scrollView.contentOffset)")
        })
        .onGestureShouldBegin { pan, scrollView in
            print("ON GESTURE: \(scrollView.contentOffset)")
            return pan.translation(in: scrollView).y < 0
        }
    }
}

true, I haven't noticed that before,
version 2.0.1 should fix this issue, onReachTop should now work the same way that onReachBottom does


Inline errors for toggles

As far as I can tell, master is missing inline errors for toggles.
I wrote a quick fix so that I can use this library on a project, but it's not pull-worthy: https://github.com/coshx/twitter_bootstrap_form_for/commit/36ca5dbae52da7a9df59f364092f05dc5441c0ee
If I understood the reason for the toggle abstraction, I'd try to come up with a real fix.

I'll commit a fix tomorrow morning. Thanks for the report and code!

"Tomorrow morning" was perhaps a bit ambitious. I hope you'll accept "Today Evening".

Hm. This actually is somewhat of an issue. Twitter Bootstrap only styles errors with a red highlight if wrapped with a div having a class "clearfix".
Another issue is the radio buttons — they differ from checkboxes, in that the whole group should be highlighted as invalid. With checkboxes, only one ought to be. Right now I'm handling them in a toggles block, but they would have to be separated out into two separate components.
I'm not sure what to do about this.

The reason for the TOGGLES abstraction is because the code to generate a list of checkboxes and radio buttons has been identical... so far, at least. With radio buttons, it makes sense to wrap the <ul> with an error div, but not so much with checkboxes. I could separate them out and have separate form.checkboxes and form.radio_buttons blocks to handle the special casing between the two, but I'm honestly not sure how to handle errored checkboxes. Twitter Bootstrap has no examples of that, and I suspect the issue simply hasn't come up for them.

Any further ideas on this issue? I'm in a holding pattern until I have a better idea of how to solve it.

Thanks for looking in to this!  Checkboxes are important also.  When I figure out a longer term solution for my project, I'll share it, but it might be a couple weeks.

I'll hold off on anything for the time being.

I'm gravitating towards not supporting these. My suspicion is that having errors on checkboxes or radio buttons is probably just bad UI. In the classic example of "You must agree to the terms and conditions...", the appropriate way to handle it is how Github does: "By clicking on 'Create an account' below, you are agreeing...".
Is this a showstopper for anyone?
I'm open to counter arguments (hence leaving this bug open for comment), but given Twitter Bootstrap's lack of support or guidance for this, plus my own predilections, I'm leaning towards not supporting this behavior.

Seems reasonable to me.

I object on the basis of consistency :)
Seriously, if we can't get inline errors for all the standard inputs, I'd rather none at all.  Let's not deceive people migrating from eg. formtastic by claiming to support inline errors.
I agree the terms and conditions checkbox case is marginal, but what about these, not uncommon, cases?

you have n checkboxes, at least x of which, but not more than y, must be checked for the form to validate.

you have a yes and a no radio button, the form is valid if either yes or no is selected, but invalid if neither is selected.

I just played around with errors for checkboxes and radio buttons on the latest Bootstrap examples available. It looks like the only styling that works is to add an "error" class to the <div class="clearfix"> that surrounds the entire list of checkboxes and radio buttons. I wasn't able to get appropriate error styling of any kind from any other combination of classes on various elements.
This now causes a problem. The toggles method is responsible for emitting this div, but to give it a class="error", it would need to know the attributes on the object that are exposed through the inputs inside of it.
I could conceivably split out toggles into two methods: check_boxes, and radio_buttons. Converting my example from the README:
/ group of radio buttons
= user.radio_buttons :email, 'Email Preferences' do
  = user.radio_button :email, 'HTML Email', :html, :checked => true
  = user.radio_button :email, 'Plain Text', :plain

This would work fine. The radio_buttons method could check for the presence of an error on the email attribute, and do the right thing. But checkboxes...
/ group of checkboxes
= user.check_boxes $WHAT_GOES_HERE, 'Agreements' do
  = user.check_box :agree,   'I agree to the abusive Terms and Conditions'
  = user.check_box :spam,    'I agree to receive all sorts of spam'
  = user.check_box :spammer, 'I agree to let the site spam others through my Twitter account'

The checkbox group encompasses multiple attributes. I could specify all the attributes as an array passed to the check_boxes method, but this is non-DRY and will surely lead to bugs where some invalid checkbox attribute isn't included in the list.
I could conceivably support the radio_buttons approach now, and punt on checkbox errors until the answer becomes clearer (or Twitter Bootstrap explicitly supports such a use). I suspect the "you must choose one of these radio buttons, but neither should be selected by default" is much more prevalent than "you have #{n} checkboxes, of which some number and/or combination must be checked".

I like that idea a lot, very pragmatic.

I would argue that those are really three separate checkboxes with independent errors. I'd probably render them as such by using 3 user.toggles (or user.check_boxes under this proposal) without the group having a label.
In my experience, at least, the much more likely use case for multiple checkboxes is when they are mapped to a single field.
/ group of checkboxes
= user.check_boxes :roles 'Roles' do
  = user.check_box :roles,   'Administrator'
  = user.check_box :roles,   'Moderator'
  = user.check_box :roles,   'User'

In this case, it'd work just like the radio button example, right? FWIW, I couldn't get this arrangement to be marked up correctly with current version last night, so I had to work around it. Clicking the labels for the independent checkboxes always selected the first checkbox because the checkboxes all have the same name. Checkboxes should probably be wrapped by the label tag instead. I ended up doing:
= f.toggles 'Roles' do
  %label
     %li= check_box_tag "user[roles][]", 'Administrator'
   %label
      %li= check_box_tag "user[roles][]", 'Moderator'
   %label
      %li= check_box_tag "user[roles][]", 'Moderator'
= f.hidden_field_tag 'user[roles][]'

I considered opening it as a separate issue, but if you're consiering overhauling the checkbox code here anyway...

From the Rails documentation, you probably need to be using check_box_tag for array-type checkboxes anyway.

Ok. I plan on doing as I said above: support this for radio buttons, but not currently for checkboxes. Will try to get a patch out this weekend.

This still seems to be open and is causing me problems. I made a branch and fixed it for check_boxes only like so:
https://github.com/lukesaunders/twitter_bootstrap_form_for/commit/61230f9f5a875a1e0ad423238d90647096000926
The clearfix does cause some margin but I think it looks fine. I have a screenshot here:
![Errors]http://lukesaunderspublic.s3.amazonaws.com/bootstrap_cb_error.png)
Format:

Fair enough. Issue a pull request and I'll merge it in.

Done. Happy to help with something less hacky if you prefer.

2.0 is going to be released soon. Kind of in a holding pattern until it comes out.

Makes sense, thanks.
On Tue, Jan 31, 2012 at 8:56 PM, Stephen Touset
<EMAIL_ADDRESS>wrote:

2.0 is going to be released soon. Kind of in a holding pattern until it comes out.

Reply to this email directly or view it on GitHub:
https://github.com/stouset/twitter_bootstrap_form_for/issues/9#issuecomment-3747826


A simple demo for CL method

@ffeng1996 the current codes are based on OpenLORIS, but I prefer to move it to benchmarks and replace with some simple dataset as our demo code, such as MNIST. It is easy to other members trying the CL methods

@ffeng1996 add qiliu or chuanlin here if you think they are fine

@llzlcl Chuanlin

yeah, add them already


Infinite Scroll & Virtualized Lists

Needs

windowing lol
lazy loading / pagination / infinite scroll
List needs auto size to fill parent
Window scrolling - maybe? Since this is an app we could just scroll with in a section
No need for grids

Options

react-virtualized
react-window + helper libraries
react-window with hook for scrolling (prebuilt or custom)

react-infinite-scroll-hook uses intervals to check for more should be loaded 👎
I'd rather use a hook based on IntersectionObserver to be more performant. We already have react-intersection-observer imported, but maybe this doesn't fit the need.

Note to self/dev to use feed role
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Feed_Role

Some can try and pick this up. It's obviously not a priority enough for me.

@CarsonF are there any parts of this that are functioning and we can merge in? If not, what are we waiting for before this is complete?


[SPARK-29444][FOLLOWUP] add doc for ignoreNullFields in json generating

What changes were proposed in this pull request?
Add description for ignoreNullFields, which is commited in #26098 , in DataFrameWriter and readwriter.py.
Enable user to use ignoreNullFields in pyspark.
Does this PR introduce any user-facing change?
No
How was this patch tested?
run unit tests

cc @HyukjinKwon @cloud-fan

Can one of the admins verify this patch?

ok to test

Test build #112543 has started for PR 26227 at commit 41384d4.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17507/
Test PASSed.

Test build #112543 has finished for PR 26227 at commit 41384d4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112543/
Test PASSed.

Merged build finished. Test PASSed.

Test build #112600 has started for PR 26227 at commit 40bb515.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112600/
Test PASSed.


added _links property support in projects api

_links added projects API, below is the example for API response
 "_links": {         "self": "http://gitlab.com/api/v4/projects/153",         "issues": "http://gitlab.com/api/v4/projects/153/issues",         "merge_requests": "http://gitlab.com/api/v4/projects/153/merge_requests",         "repo_branches": "http://gitlab.com/api/v4/projects/153/repository/branches",         "labels": "http://gitlab.com/api/v4/projects/153/labels",         "events": "http://gitlab.com/api/v4/projects/153/events",         "members": "http://gitlab.com/api/v4/projects/153/members"     },

updated with comments

Thanks @etsrepo! LGTM!


fc输出的8个值是四个顶点坐标？而不是变换矩阵的8个参数？

四点对和八个参数之间是可以相互转换的吧

because it is not stable to directly compute homography matrix

hi @lhaippp, is there any materials or papers that explain this conclusion?

hi @lhaippp, is there any materials or papers that explain this conclusion?

yes, check it in "Multi-view geometry".


docs: improve documentation

Description
This PR makes some small improvements to the documentation of the library.

Pull Request Test Coverage Report for Build 967501871

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.632%

Totals

Change from base Build 967313516:
0.0%

Covered Lines:
1321

Relevant Lines:
1348

💛  - Coveralls

Good catches 🙇


As a user, I want to filter items on their metadata

enable filtering based on:

[X] location
[ ] year
[ ] subject
[ ] producer / creator

added location filtering https://github.com/beeldengeluid/MediaScape-kickoff/commit/b525806d9cb42fe7352ec367567b61657aad0950


Error 404 updating

Using this snippet:
from geoip2fast import GeoIP2Fast
G = GeoIP2Fast()
G.update_file('geoip2fast.dat.gz',verbose=True)
G.reload_data(verbose=True)

This is the result:
- Opening URL https://github.com/rabuchaim/geoip2fast/releases/download/LATEST/geoip2fast.dat.gz
- Error downloading file: HTTP Error 404: Not Found - https://github.com/rabuchaim/geoip2fast/releases/download/LATEST/geoip2fast.dat.gz
- Error downloading file: HTTP Error 404: Not Found - https://github.com/rabuchaim/geoip2fast/releases/download/LATEST/geoip2fast.dat.gz
GeoIP2Fast v1.2.2 is ready! geoip2fast.dat.gz loaded with 973.060 networks in 0.24206 seconds and using 9.78 MiB.

https://github.com/rabuchaim/geoip2fast/releases/download/LATEST/geoip2fast.dat.gz  <-404

Yeah, it looks like there are no files in the release LATEST tag?
https://github.com/rabuchaim/geoip2fast/releases/tag/LATEST
But I do see they've recently been updated here:
https://github.com/rabuchaim/geoip2fast/tree/main/geoip2fast
So maybe just weren't tagged @rabuchaim ?

Sorry guys!! My GitHub token expired and therefore the automatic release update did not complete.

I have already renewed the token and now it has no expiration date so this will not happen again.
The new releases were generated successfully!

[..]s Ricardo Abuchaim

Ah, yes, this will happen to me soon too. Thanks for the reminder
On Sun, Dec 1, 2024, 05:18 Ricardo Abuchaim @.***>
wrote:

Sorry guys!! My GitHub token expired and therefore the automatic release
update did not complete.
image.png (view on web)
https://github.com/user-attachments/assets/cd26a177-886f-4773-ad01-c41d50ae740e
I have already renewed the token and now it has no expiration date so this
will not happen again.
The new releases were generated successfully!
image.png (view on web)
https://github.com/user-attachments/assets/96b1a127-6d98-4cd8-aaa2-544e9e924fee
[..]s Ricardo Abuchaim
—
Reply to this email directly, view it on GitHub
https://github.com/rabuchaim/geoip2fast/issues/12#issuecomment-2509388611,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZ72K27GR5653MEBFF6HRD2DITTXAVCNFSM6AAAAABSJ4O5SWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBZGM4DQNRRGE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Improving get_menu_item to handle correctly max_depth.

S. a. https://github.com/fulfilio/nereid-cms/pull/5

cherry-picked to develop branch


TLYShyNavBar/TLYShyNavBarManager.h file not found when import it in *-Prefix.pch file

I use the CocoaPods to pod this lib and then i import <TLYShyNavBar/TLYShyNavBarManager.h> in the *-Prefix.pch file => file not found.
Thanks

Sorry, if you are using cocoapods you should:
#import <TLYShyNavBar/TLYShyNavBarManager.h>
I will update the readme. Thanks!


glibc: Clean up cross compilation

Might it be possible to use overrideAttrs or something to make this cleaner still?
testing: http://hydra.nixos.org/eval/1359820

glibcInfo and glibcLocales have their hashes changed. Need to fix that, and then should be good to go.


Training Pointpillar model for my own dataset but get 0 mAP

Is it my training config file wrong?

Can you provide your training log, it contains the training loss and evaluation results

the training log looks like this which seems all 0.

The training dataset is converted to Kitti format and preprocessed by running create_data.py script, like this:

the training config looks like this, I only changed some parameters like class numbers in dataset config file and I keep the class name to Car and didn't modify it.

One thing to mention that my dataset training label don't contain 2D bbox values and all set them to 0, is this affecting training?

Thank you very much!

2D bbox won't affect training, did your training loss converges well? Or check your calib file?

2D bbox won't affect training, did your training loss converges well? Or check your calib file?

Hi, I got 0 mAP results on my custom dataset too. How to check if my calib files is okay?

I want to bump this issue as a 3rd person who has this problem, and provide additional context in the proper format
Describe the bug
mAP is 0. This is because the model is not returning any bounding boxes for this users (as well as my own) custom dataset. I cannot speak for the other user, but I have verified my dataset to be in the correct KITTI format. Validation tools provided with this package demonstrate 3D bboxes in the correct location on the pointcloud. No bboxes are output either when training and validating or when testing.
Reproduction

What command or script did you run?

python tools/test.py configs/pointpillars/pp-custom-tree.py work_dirs/pp-custom-tree/epoch_23.pth --show --show-dir ./out/ --out ./out/test.pkl

Did you make any modifications on the code or config? Did you understand what you have modified?

Yes. A new config was created. However, this is identical to the template config hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.pywith the following exceptions:
pointcloud_range was changed to reflect the range of my pointcloud. The range of my pointcloud is
point_cloud_range=[0, -20, -20, 85, 20, 20,] .
This was changed in all the config files that are referenced by this config file ( hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py as well as
    '../_base_/models/hv_pointpillars_secfpn_kitti.py',     '../_base_/datasets/kitti-3d-3class.py',     '../_base_/schedules/cyclic_40e.py', '../_base_/default_runtime.py'
In the _base_/model config, Anchor3DRangeGenerator was changed to these values as well to reflect the new required range.

What dataset did you use?
A custom dataset, that was verified to work with the visualization tools
Environment

Please run python mmdet3d/utils/collect_env.py to collect necessary environment infomation and paste it here.

Error traceback
Here is what is output by the above test.py call
[                                                  ] 0/6, elapsed: 0s, ETA:####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>                                          ] 1/6, 0.0 task/s, elapsed: 34s, ETA:   169s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>>>>>>>>>                                  ] 2/6, 0.1 task/s, elapsed: 35s, ETA:    71s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>>>>>>>>>>>>>>>>>>                         ] 3/6, 0.1 task/s, elapsed: 37s, ETA:    37s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                 ] 4/6, 0.1 task/s, elapsed: 38s, ETA:    19s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>         ] 5/6, 0.1 task/s, elapsed: 40s, ETA:     8s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 6/6, 0.1 task/s, elapsed: 41s, ETA:     0s(mmcv)

Here is what is output when I modify mmdet3d/apis/test.py to print the result after line 39
Use load_from_local loader
[                                                  ] 0/6, elapsed: 0s, ETA:####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>                                          ] 1/6, 0.3 task/s, elapsed: 4s, ETA:    19s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>>>>>>>>>                                  ] 2/6, 0.4 task/s, elapsed: 5s, ETA:    11s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>>>>>>>>>>>>>>>>>>                         ] 3/6, 0.4 task/s, elapsed: 7s, ETA:     7s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                 ] 4/6, 0.5 task/s, elapsed: 8s, ETA:     4s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>         ] 5/6, 0.5 task/s, elapsed: 10s, ETA:     2s####### Printing bbox_results from voxelnet.py ######

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
######################################

 vvvvvvvvvvResult of single_gpu_test directly: vvvvvvvvvvvv

[{'boxes_3d': LiDARInstance3DBoxes(
    tensor([], size=(0, 7))), 'scores_3d': tensor([]), 'labels_3d': tensor([], dtype=torch.int64)}]
^^^^^^^^^^^^^^^

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 6/6, 0.6 task/s, elapsed: 11s, ETA:     0s

As discussed, no boxes are drawn! However, Open3D loads and displays the pointclouds no problem; they look correct placing.
Please advise on further steps. Thanks!!

I have the same problem with non bbox data as @walliampeace mentioned on this.
I understood @24spiders means this problem is due to absence of bbox data. Is it right?
If I shouldn't write bbox data as "0 0 0 0", what value will be good?

Did you finally solve it?

Hello, I encountered the same situation as you. During the training process, it seems that the loss is also calculated while training. But the result is always 0 during verification.


ctx.query_devices() always =0 on Android

build with cmake.
CMAKE_TOOLCHAIN_FILE  is  android-ndk-r17c/build/cmake/android.toolchain.cmake.
FORCE_LIBUVC = TRUE.
i get the includes&librealsense2.a and BUILD my application SUCCESSFUL with the lib.
but the ctx.query_devices() always =0 when the apk starts.
what the causal factors are? THANK YOU...

@calipos What's your output of "adb shell lsusb"? And which SDK version are you using?

@calipos Could you please update so that we can look into it further? Thanks!

@RealSenseCustomerSupport   Thanks for your advice！I finally realised i lacked access permissions...

@calipos Thanks for the update! Will close the issue accordingly.


reference index in AvgMax.Calc() for debugging overflow..

Codecov Report
Patch coverage: 88.88% and no project coverage change.

Comparison is base (4b3d273) 39.25% compared to head (4211932) 39.25%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #186   +/-   ##
=======================================
  Coverage   39.25%   39.25%
=======================================
  Files          53       53
  Lines       10285    10285
=======================================
  Hits         4037     4037
  Misses       6012     6012
  Partials      236      236

Impacted Files
Coverage Δ

axon/layer_compute.go
42.35% <66.66%> (ø)

axon/avgmax.go
87.87% <83.33%> (ø)

axon/pool.go
90.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


fix(material/progress-bar): fix screenreader not reading aria-label

Fixes issue with NVDA/FIreFox not reading out aria-label (when set)
Fixes https://github.com/angular/components/issues/15017
Note that this does not fix the issue for JAWS/FireFox (https://github.com/FreedomScientific/VFO-standards-support/issues/354)

I tested this in the dev app and the value updates fine but for some reason the unit test is failing, any ideas?

Commenting here for posterity: Annie and I chatted about this change and we're going to look into changing to a solution that will let people keep using the actual ARIA attributes rather than introducing new properties (which we can then apply to other components)

Update:
Instead of adding an accessible label we have decided to simply set tabindex to -1 for aria-label to work with most screen reader/ browser combos. (Note that there is a known issue with JAWS/FireFox.)

added comments to explain change and note about FireFox/JAWS issue


fix: default to basic oauth_type if undefined to handle upgrade scenario for some add-ons

Jira: https://jira.splunk.com/browse/ADDON-39022

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

v1.8.1
GitHub release

Your semantic-release bot :package::rocket:


Comment in middle of if statement creates "unexpected end of scope" error

If I have the following if statement:
       if ((longVariableX .neq. longVariableY) .and. ! ensure X != Y
      &    (longVariableZ .eq. longVariableX)) ! ensure Z == X

I get an error for it's respective subroutine saying there's an "Unexpected end of scope" error.
Removing the first comment eliminates the error. ie:
       if ((longVariableX .neq. longVariableY) .and.
      &    (longVariableZ .eq. longVariableX)) ! ensure Z == X

will not cause an error.

Thanks for the report. However, I think this is technically invalid? As far as I know, trailing line comments are only allowed in free-form Fortran.
There is an "intersection" style that places ampersands at the start and end of files as below, but other than that I don't think this is technically allowed.
       if ((longVariableX .neq. longVariableY) .and.  & ! ensure X != Y
      &    (longVariableZ .eq. longVariableX)) ! ensure Z == X

I can certainly add support for trailing line comments in fixed-form code, but I prefer to limit extensions like that to widely supported ones. Do you know if most compliers (ie. GNU, Intel, Cray, etc.) support this style without complaining?

trailing line comments are only allowed in free-form Fortran.

Does this only support fixed-form? My code base is a weird mix of "interpreted as free-form but written in fixed-form (sort of)" so being able to do both would be quite nice.

Do you know if most compliers (ie. GNU, Intel, Cray, etc.) support this style without complaining?

The offending code has been compiled on several dozen HPC machines, so I'd imagine that it would work with all of them. That said, I can only vouch for Intel and GNU compilers.


Documentation structure for 1.0.0

~About~

~Feature overview~
~What can you use osBrain for?~
~Performance~

~Introduction~

~Installation~
~Hello world~
~Agents and Proxies~
~The name server~

~Basic communication patterns~

~Push pull pattern~

~Example~
~List of handlers~

~Request reply pattern~

~Example~
~Yield vs. return (reply early)~

~Publish subscribe pattern~

~Example~
~Filtering~

~Other considerations~

~Clients versus servers~
~Adding new methods~
~Lambdas~
~Shutting down~
~OOP~

Other patterns? (i.e.: stream)

...

~Timers~

~Repeated actions~
~Delayed actions~
~Closing timers (#38, #22)~

~Transport protocol (#37, #25)~

~Introduction~
~Global configuration~
~Per-agent configuration~
~Per socket configuration~

Serialization

Introduction
Global configuration
Per-agent configuration
Per socket configuration

~Advanced proxy handling~

~Understanding proxies better~
~Executing unsafe calls~

Distributed systems (#4)

Accessing agents from another terminal through proxies
Example of distributed systems in the documentation

~Security~
~Developers~

~Workflow~
~Installing dependencies~
~Running the tests~
~Generating documentation~

~API~
~Software license and disclaimer~

Closed in favor of #156.


[nrf fromlist] Share MCUboot mode to app and use it in MCUmgr for basic DirectXIP support

Three Four commits:
1) introducing Kconfig options that allow to inform application regarding MCUboot mode the application will be boot with;
2) disabling MCUmgr image management when MCUboot has been configured for single application mode;
3) disabling setting of image state, to confirm or test, when MCUboot has been configured for DirectXIP
4) commit form additional PR (https://github.com/zephyrproject-rtos/zephyr/pull/57794) that corrects image list for DirectXIP

Can be changed to fromtree's

Hi @nordicjm
@de-nordic has taken a day off today. Should I update the commits to fromtree or you are going to do it?
Hopefully we can merge it today :)

Hi @nordicjm
Updated commits to fromtree. Please review


"Unknown license URL 'null'" when POM only includes license name

I have a reference to mockito-kotlin 3.2.0 in my project, which has the following in its POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!-- ...snip... -->
  <licenses>
    <license>
      <name>MIT</name>
    </license>
  </licenses>
</project>

This causes licensee to fail with this error message:
> Task :app:licensee FAILED
org.mockito.kotlin:mockito-kotlin:3.2.0
 - ERROR: Unknown license URL 'null' is NOT allowed

In this case, I'd expect licensee to use the <name> element and not attempt to match on the non-existent URL.

Yep, falling back matching the name to a SPDX identifier in this case seems like the appropriate thing to do.
Will fix this week. For now you can add an exclude using the dependency coordinates.


Sub-packages aren't ordered properly

For example, the following should be accepted, but isn't.
from collections import namedtuple
from collections.abc import Mapping
from decimal import Decimal

Fixed.


Add logCaptureThreadReleased flag

Why are the changes needed?

isInterrupted is always false if some InterruptedException are throwed. So we should use a new flag to check if log capture thread is released.
How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #985 (9dd4290) into master (d704e4d) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

:exclamation: Current head 9dd4290 differs from pull request most recent head 463a996. Consider uploading reports for the commit 463a996 to get more accurate results

@@             Coverage Diff              @@
##             master     #985      +/-   ##
============================================
- Coverage     80.06%   80.04%   -0.03%
  Complexity       11       11
============================================
  Files           151      151
  Lines          5484     5487       +3
  Branches        639      639
============================================
+ Hits           4391     4392       +1
- Misses          713      716       +3
+ Partials        380      379       -1

Impacted Files
Coverage Δ

...n/scala/org/apache/kyuubi/engine/ProcBuilder.scala
90.90% <100.00%> (+0.36%)
:arrow_up:

.../scala/org/apache/kyuubi/server/KyuubiServer.scala
51.21% <0.00%> (-2.44%)
:arrow_down:

...org/apache/kyuubi/ha/client/ServiceDiscovery.scala
45.52% <0.00%> (-0.82%)
:arrow_down:

Continue to review full report at Codecov.

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

all test passed with three times, it's not flaky now cc @yaooqinn @pan3793

Thanks, merging to master/v1.3


VC: migrate from vcctl to kubectl-vc

kubectl vc: implement create command
remove vcctl and update document
remove command delete, because it can be done by straight kubectl

Signed-off-by: zhuangqh<EMAIL_ADDRESS>link #1118
@charleszheng44 @salaxander

/LGTM


Arabic language support

All varieties of Arabic combined are spoken by perhaps as many as 422 million speakers (native and non-native) in the Arab world, making it the fifth most spoken language in the world. (Wikipedia)
Related: https://github.com/quickwit-oss/tantivy/issues/1416

Of course we'd love to have Arabic supported in tantivy! (I am not sure what was the point of the wikipedia quote !?)
tantivy approach here is to make it possible to implement tokenizers as an external crate.
This is a way for us to make the project as light as possible, and also avoid making uneducated choices on which tokenizer is
the best on behalf of the user.
@Hadryan if you (or anyone) would like to contribute a tokenizer for Arabic and Farsi, you can have a look at what such a crate looks like for Japanese https://github.com/lindera-morphology/lindera-tantivy.
You can also join us on discord if you need help.
I'd be happy to add a link from tantivy's readme to your tokenizer like it is done for other language.
I am not closing this ticket right away, mostly to see if people want to comment and offer to collaborate on building such a tokenizer.

Does this document indicate that Arabic is now supported?
https://docs.rs/tantivy/latest/tantivy/tokenizer/enum.Language.html#variant.Arabic

That's for stemming. It is listed there because the underlying library supports arabic stemming, but  we don't have a tokenizer for it.

Silly question, but isn't tokenizing just splitting by space (in most cases, at least)? I tested with some Arabic and everything seemed to work out of the box.

Yes, splitting by whitespace will cover most cases. Not covered cases would e.g. compound words or stemming


Notes timeline Scrolling

Closes #455
Causes #459

Some really weird behavior when notes next to edge of notes timeline are dragged either left or right.
In this image if I drag the 3rd pink note starting from the left it disappears. If I drag the 1st pink note to the right it scrolls the notes timeline to the left a bit and stops after I drag it a distance. This is more noticeable when zoomed in closer to the notes timeline like in my image

Sometimes dragging to the right with a note can mess up the offset from cursor to note in the notes timeline. In the image I scrolled a bit to the right with the selected note and am still dragging. Dragging any of the other notes on that timeline would also have the same offset problem

Sometimes dragging to the right with a note can mess up the offset from cursor to note in the notes timeline. In the image I scrolled a bit to the right with the selected note and am still dragging. Dragging any of the other notes on that timeline would also have the same offset problem

I fixed this bug (has to do with stories with offset) in the latest commit. Could you check to see if it's resolved?

Sometimes dragging to the right with a note can mess up the offset from cursor to note in the notes timeline. In the image I scrolled a bit to the right with the selected note and am still dragging. Dragging any of the other notes on that timeline would also have the same offset problem

I fixed this bug (has to do with stories with offset) in the latest commit. Could you check to see if it's resolved?

Yea this is fixed now 👌

Some really weird behavior when notes next to edge of notes timeline are dragged either left or right.
In this image if I drag the 3rd pink note starting from the left it disappears. If I drag the 1st pink note to the right it scrolls the notes timeline to the left a bit and stops after I drag it a distance. This is more noticeable when zoomed in closer to the notes timeline like in my image

I can't seem to reproduce the note disappearing issue. Maybe that's fixed with the latest commit?
Regarding the second scenario you mentioned, yes that occurs because I only look at whether or not your mouse position is nearest the first/last tick. I can improve it by adding logic to take into account cursor direction. Will address in next commit.

Some really weird behavior when notes next to edge of notes timeline are dragged either left or right.
In this image if I drag the 3rd pink note starting from the left it disappears. If I drag the 1st pink note to the right it scrolls the notes timeline to the left a bit and stops after I drag it a distance. This is more noticeable when zoomed in closer to the notes timeline like in my image

I can't seem to reproduce the note disappearing issue. Maybe that's fixed with the latest commit?
Regarding the second scenario you mentioned, yes that occurs because I only look at whether or not your mouse position is nearest the first/last tick. I can improve it by adding logic to take into account cursor direction. Will address in next commit.

Yea it seems like the disappearing bug was fixed by the last commit

The scrolling is harder to control the more zoomed in the notes timeline is. It's really hard to be precise with note time placement with really close zooms. Osu! stable uses some kind of system where the scroll distance scales with how zoomed out it is, I think that would make the scrolling easier to use

The scrolling is harder to control the more zoomed in the notes timeline is. It's really hard to be precise with note time placement with really close zooms. Osu! stable uses some kind of system where the scroll distance scales with how zoomed out it is, I think that would make the scrolling easier to use

This is a good point. This happens because the scrolling is done every time OnToolDrag is called. So if the mouse moves more (which is the case when the timeline is more zoomed in), then it will scroll more. I'll have to think of how to change this to make it easier to control.


PowerBI cannot show compound types

We are investigating issues with compound types (object, array), that they cannot be displayed correctly within PowerBI (printing Error).

A closer look into this show that PowerBI cannot to read and convert its values to the CLR type System.Int32[] since this is not supported--> in case its an Integer-Array in CrateDB.

However, using Postgresql as backend DB this work and it seems that compound types like Arrays are not binary streamed. It looks like they are streamed as text (String support as pgodbc does).
From pgodbc FAQ:

4.2) What data types does the driver support?
...
There is partial support for all other data types. Examples of these: point, circle, box and arrays. String support only is provided for these non-standard types. In other words, they are returned as SQL_VARCHAR and can be displayed and updated like any other data type.

That's what I get with Npgsql --> Postgresql:

Is there something you know @roji  in Npgsql where we need to hook-in from the Crate-Npgsql Plugin to override its Array Handling that we could achieve the same behavior as with Postgresql?

I'd guess that the CrateDB DatabaseInfoFactory somehow doesn't set up array types correctly... Getting a full exception (by trying to use arrays in code) would help pinpoint it.

@roji okay I got new findings. It seems that PowerBI --> Crate runs the query:
select "$Table"."arr" as "arr"
from "doc"."t" "$Table"
limit 1000

whereas PowerBI --> Postgres runs:
select cast("$Table"."arr" as varchar) as "arr"
from "public"."t" "$Table"
limit 1000

Hi there,
apologies for resuming this very old conversation, and also for not reading about the details at all. I am just coming here for spring cleaning purposes, and wanted to mention that in 2024, we have https://github.com/crate/cratedb-tableau-connector, courtesy of @surister.
Maybe this can make a difference on the topics outlined here?
With kind regards,
Andreas.


Saving and spawning trains

It is possible to store any train with the properties that I set it?
And then the stored train spawn on the train spawner?
I was looking on a wiki, but I did not find the answer.

Yes, you would use the command

/train save mytrain

And can then spawn the train using:

[train]
spawn
mytrain

In addition to this basic mechanic, you can also store trains temporarily into something called 'train chests'. Use /train chest mytrain to get the train you saved as an item. With this item you can click on rails to spawn the train there. By right-clicking on a train with the chest, you can store it in the item (it despawns the train)
Saved trains are written to SavedTrainProperties.yml.

Nice thanks.


CAP backend notification integration

Can we use this plugins for pure backend notifications (ServiceNow, Microsoft Teams)
as per your API documentation it looks related to only SAP Build Work Zone notifications?
thanks

Hi @agiguere ,
This plugin integrates CAP with SAP Build Work Zone notifications.
If you need to integrate with SAP Alert Notification service in BTP, you can do it by following the steps described in the CAP Guide for Consuming Services
https://cap.cloud.sap/docs/guides/using-services
Use the API documented here for the service
https://api.sap.com/package/AlertNotification/rest
Here is an small code snippet example to push an event
const alert = await cds.connect.to('Cloud.Foundry.Producer.API')
const res = await alert.post('/',
{
"eventType": "NotWorkingExternalRecommendationService",
"eventTimestamp":<PHONE_NUMBER>,
"resource": {
"resourceName": "web-shop",
"resourceType": "app",
"tags": {
"env": "prod"
}
},
"severity": "FATAL",
"category": "ALERT",
"subject": "AA",
"body": "External dependency showing recommendations does not respond on time. Stop some clients to reduce the load.",
"tags": {
"ans:correlationId": "30118",
"ans:status": "CREATE_OR_UPDATE",
"customTag": "42"
}
})
You can test it in a hybrid approach, using a destination and alert notification service in your BTP subaccount.

thanks Martin for this clear answer, we will follow and test this approach
alex


Switch to Serverless framework

Switch to using sls instead of zappa for deployment. sls is now
very mature and the industry standard, whereas zappa now seems to be
relatively unmaintained.
See README.md for the main differences.
Switch to Pipenv for dependency management.

This is now deployed in prod and working :+1:


Check if a binding is active?

Hello,
I need to check whether a binding with a label is active or not.
I can't find a way to do this.
Thanks.

Save the disposable from the binding...
let disposable = name.bindTo(nameLabel.bnd_text)

... it will be disposed when the binding is destroyed.
if disposable.isDisposed {
  print("Binding inactive");
} else {
  print("Binding active");
}

Why do you need this anyway?


chore: add basic watch mode

Adds npm run watch to watch files and test files and run test
Adds npm run watch:dtslint to do the same while iterating on types
Fixes two tests that were polluting global state

We probably should have done this forever ago. I mean... we had something once upon a time, but we removed it, I'm not sure why, and never put it back. haha.

It's worth noting that I very specifically installed<EMAIL_ADDRESS>because the latest version of nodemon will not install on any OS but Mac OSX for whatever reason. I'm on Ubuntu (via WSL, but I don't think that makes a difference given the bug reports I've seen)


chore: Update dependency versions

This PR focuses on bumping some non-breaking dependency versions. This gets rid of some issues like crypto-js' Critical Severity

Thanks for sharing this PR! We will check and take it forward


fix: remove build of separate effective binary

They are not used and thus only waste resources

/approve


Updating for Beta 1 release

Repeating the BETA note on the release notes page because PivNet links directly here, and want to ensure this is surfaced well. Updating release notes for today's BETA 1 release.

Thanks!