freerdp-shadow-cli: authentication issues with mstsc

Describe the bug
I am using freerdp-shadow-cli to implement a RDP shadow server under Linux (I am using X11). I am trying to connect from a Windows 10 machine by using the stock RDP client (mstsc.exe 10.0.19041.3636). Both computers are in the same LAN..
I am using the following command line to start the server as a regular user
`$ freerdp-shadow-cli /sec:nla /sam-file:/etc/freerdp/SAM /port:9833  /log-level:TRACE
Sometimes I am able to connect from the client but I noticed the reported error indicated in the title of this issue. Other times instead the client cannot connect because the process is closed during evaluation of connection quality, in that case the error is the following:
Because of a protocol error, this session will be disconnected. Please try connecting to the remote computer again.
I don't know if this client error is related to the server error because the invalid TPKT header error always appears in the server log even when the connection is successful.
I have also tried running remmina, based on freerdp2, from a Linux virtual machine (Ubuntu 22.04.3 LTS) installed on the same Windows machine used for the tests. In this case I don't see the same error in the server so I guess there is some incompatibility with the Microsoft client. Moreover the connection is reliably established and I don't get problems as reported above with the Windows client.
To Reproduce
Steps to reproduce the behavior:

start the server as indicated above on the Linux machine
use the windows RDP client to connect to the server (accept the invalid certificate)

Expected behavior
I expect to connect to the server without problems with the Windows client (every time I try).
Screenshots
non applicable
Application details

FreeRDP version 3.0.0
freerdp-shadow-cli /buildconfig
[12:33:04:919] [24727:00006097] [INFO][com.freerdp.server.shadow] - [shadow_server_command_line_status_print]: Build configuration: BUILD_TESTING=OFF WINPR_HAVE_AIO_H=1 WINPR_HAVE_EXECINFO_BACKTRACE=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS_FD=1 WINPR_HAVE_EXECINFO_HEADER=1 WINPR_HAVE_FCNTL_H=1 WINPR_HAVE_GETLOGIN_R=1 WINPR_HAVE_GETPWUID_R=1 WINPR_HAVE_INTTYPES_H=1 WINPR_HAVE_POLL_H=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 WINPR_HAVE_STDBOOL_H=1 WINPR_HAVE_STDINT_H=1 WINPR_HAVE_STRNDUP=1 WINPR_HAVE_SYSLOG_H=1 WINPR_HAVE_SYS_EVENTFD_H=1 WINPR_HAVE_SYS_FILIO_H= WINPR_HAVE_SYS_SELECT_H=1 WINPR_HAVE_SYS_SOCKIO_H= WINPR_HAVE_SYS_TIMERFD_H=1 WINPR_HAVE_TM_GMTOFF=1 WINPR_HAVE_UNISTD_H=1 WINPR_HAVE_UNWIND_H=1 WITH_AAD=OFF WITH_ADD_PLUGIN_TO_RPATH=OFF WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=OFF WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CLIENT_SDL=ON WITH_CLIENT_SDL_AVAILABLE=1 WITH_CUPS=ON WITH_DEBUG_ALL=ON WITH_DEBUG_CAPABILITIES=ON WITH_DEBUG_CERTIFICATE=ON WITH_DEBUG_CHANNELS=ON WITH_DEBUG_CLIPRDR=ON WITH_DEBUG_CODECS=ON WITH_DEBUG_DVC=ON WITH_DEBUG_EVENTS=OFF WITH_DEBUG_KBD=ON WITH_DEBUG_LICENSE=ON WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=ON WITH_DEBUG_NLA=ON WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=ON WITH_DEBUG_RDP=ON WITH_DEBUG_RDPDR=ON WITH_DEBUG_RDPEI=ON WITH_DEBUG_RDPGFX=ON WITH_DEBUG_REDIR=ON WITH_DEBUG_RFX=ON WITH_DEBUG_RINGBUFFER=ON WITH_DEBUG_SCARD=ON WITH_DEBUG_SCHANNEL=OFF WITH_DEBUG_SDL_EVENTS=OFF WITH_DEBUG_SDL_KBD_EVENTS=OFF WITH_DEBUG_SND=ON WITH_DEBUG_SVC=ON WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=ON WITH_DEBUG_TRANSPORT=ON WITH_DEBUG_TSG=ON WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=ON WITH_DEBUG_X11=ON WITH_DEBUG_X11_LOCAL_MOVESIZE=ON WITH_DEBUG_XV=ON WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_DSP_FFMPEG_AVAILABLE=1 WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=ON WITH_FREERDP_DEPRECATED=OFF WITH_FREERDP_DEPRECATED_COMMANDLINE=OFF WITH_FUSE=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSTREAMER_1_0=ON WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_INTERNAL_RC4=OFF WITH_IPP=OFF WITH_JPEG=ON WITH_KRB5=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_LODEPNG=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=OFF WITH_MBEDTLS=OFF WITH_NATIVE_SSPI=OFF WITH_NEON=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSSL=ON WITH_OPUS=OFF WITH_OSS=OFF WITH_PCSC=OFF WITH_PKCS11=OFF WITH_PLATFORM_SERVER=ON WITH_POLL=ON WITH_PROFILER=OFF WITH_PROXY=ON WITH_PROXY_APP=ON WITH_PROXY_EMULATE_SMARTCARD=OFF WITH_PROXY_MODULES=ON WITH_PULSE=ON WITH_RDTK=ON WITH_SAMPLE=ON WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_EMULATE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SMARTCARD_PCSC=ON WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=ON WITH_SYSTEMD=OFF WITH_THIRD_PARTY=OFF WITH_UNICODE_BUILTIN=OFF WITH_URIPARSER=OFF WITH_VAAPI=OFF WITH_VAAPI_AVAILABLE=1 WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_VERBOSE_WINPR_ASSERT=ON WITH_VIDEO_FFMPEG=ON WITH_VIDEO_FFMPEG_AVAILABLE=1 WITH_WAYLAND=ON WITH_WEBVIEW=OFF WITH_WINPR_DEPRECATED=OFF WITH_WINPR_TOOLS=ON WITH_WIN_CONSOLE=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XV=ON
Build type:          RelWithDebInfo
CFLAGS:              -march=core2 -O2 -pipe -Wall -Wpedantic -Wno-padded -Wno-cast-align -Wno-declaration-after-statement -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -fno-omit-frame-pointer
Compiler:            GNU, 12.3.1
Target architecture: x64
OS version server side: Gentoo Linux
OS version client side: Windows 10 Pro 22H2 19045.3693
Here are the two log outputs when the connection is or is not successfully established between the Windows RDP client and the Freerdp shadow server.

Environment (please complete the following information):

OS: Linux
Version/Distribution: Gentoo
Architecture: amd64

Additional context
nothing

I have just tested with freerdp-2.11.1 and it works as expected so the problems here described are not present. It's definitely a regression!

@efferre79

the Received invalid TPKT header length message is due to a protocol violation (or just wrongly documented?) in info packet, not related to your issues.
so you build shadow from 2.11.1 and it works with mstsc or you connect with  xfreerdp?
from your logs I can see that sometimes authentication fails at negotiation stage, but need to check what is going on.

1. the `Received invalid TPKT header length` message is due to a protocol violation (or just wrongly documented?) in info packet, not related to your issues.

Yes, that seems the case. For version 2.11.1 I noticed that kind of error is not present

2. so you build shadow from `2.11.1` and it works with `mstsc` or you connect with  `xfreerdp`?

Yes, I confirm I tested shadow server 2.11.1 against mstsc too. In that case I don't see the Received invalid TPKT header length error messages and the connection tries are reliable (N tries => N successful connections)

3. from your logs I can see that sometimes authentication fails at negotiation stage, but need to check what is going on.

If you mean the errors after BIO_read returned a system error 104, those are also available with version 2.11.1 and not only with the latest 3.0.0

ok, I can not reproduce this. only thing I found is a bug in error handling when X11 is not available fixed with https://github.com/FreeRDP/FreeRDP/pull/9661
what did I do:

create SAM file with winpr-hash  -u user -d domain -p pwd -v1 -f sam >SAM
run Xephyr :23 -screen 1280x768
run DISPLAY=:23 xterm&
run DISPLAY-:23 openbox&
run DISPLAY=:23 /tmp/xxx/bin/freerdp-shadow-cli /sec:nla /sam-file:SAM /port:3333
connect with mstsc  from (win 10 22H2)
repeat (15x)

I never had a failed connection, even tried to do some invalid auth in between.
freerdp-shadow-cli /buildconfig
```
freerdp-shadow-cli /buildconfig
[19:24:06:446] [820885:000c8695] [INFO][com.freerdp.server.shadow] - [shadow_server_command_line_status_print]: Build configuration: BUILD_TESTING=ON WINPR_HAVE_AIO_H=1 WINPR_HAVE_EXECINFO_BACKTRACE=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS_FD=1 WINPR_HAVE_EXECINFO_HEADER=1 WINPR_HAVE_FCNTL_H=1 WINPR_HAVE_GETLOGIN_R=1 WINPR_HAVE_GETPWUID_R=1 WINPR_HAVE_INTTYPES_H=1 WINPR_HAVE_POLL_H=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 WINPR_HAVE_STDBOOL_H=1 WINPR_HAVE_STDINT_H=1 WINPR_HAVE_STRNDUP=1 WINPR_HAVE_SYSLOG_H=1 WINPR_HAVE_SYS_EVENTFD_H=1 WINPR_HAVE_SYS_FILIO_H= WINPR_HAVE_SYS_SELECT_H=1 WINPR_HAVE_SYS_SOCKIO_H= WINPR_HAVE_SYS_TIMERFD_H=1 WINPR_HAVE_TM_GMTOFF=1 WINPR_HAVE_UNISTD_H=1 WINPR_HAVE_UNWIND_H=1 WITH_AAD=ON WITH_ADD_PLUGIN_TO_RPATH=OFF WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CLIENT_SDL=ON WITH_CLIENT_SDL_AVAILABLE=1 WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_CODECS=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_EVENTS=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SCHANNEL=OFF WITH_DEBUG_SDL_EVENTS=OFF WITH_DEBUG_SDL_KBD_EVENTS=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_DSP_FFMPEG_AVAILABLE=1 WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=ON WITH_FREERDP_DEPRECATED=OFF WITH_FREERDP_DEPRECATED_COMMANDLINE=OFF WITH_FUSE=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_ICU=OFF WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_INTERNAL_RC4=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_KRB5=ON WITH_KRB5_NO_NTLM_FALLBACK=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_LODEPNG=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_NATIVE_SSPI=OFF WITH_OPAQUE_SETTINGS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSC_PKCS11_LINKED=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OPUS=OFF WITH_OSS=ON WITH_PAM=ON WITH_PCSC=ON WITH_PKCS11=ON WITH_PLATFORM_SERVER=ON WITH_POLL=ON WITH_PROFILER=OFF WITH_PROXY=ON WITH_PROXY_APP=ON WITH_PROXY_EMULATE_SMARTCARD=OFF WITH_PROXY_MODULES=ON WITH_PULSE=OFF WITH_RDTK=ON WITH_SAMPLE=ON WITH_SANITIZE_ADDRESS=ON WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=0 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=0 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_EMULATE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SMARTCARD_PCSC=ON WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=ON WITH_SYSTEMD=ON WITH_THIRD_PARTY=OFF WITH_UNICODE_BUILTIN=OFF WITH_URIPARSER=ON WITH_VAAPI=OFF WITH_VAAPI_AVAILABLE=1 WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=0 WITH_VERBOSE_WINPR_ASSERT=ON WITH_VIDEO_FFMPEG=ON WITH_VIDEO_FFMPEG_AVAILABLE=1 WITH_WAYLAND=OFF WITH_WEBVIEW=OFF WITH_WEBVIEW_QT=OFF WITH_WINPR_DEPRECATED=OFF WITH_WINPR_TOOLS=ON WITH_WIN_CONSOLE=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XDAMAGE=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XTEST=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          Debug
CFLAGS:               -Wall -Wpedantic -Wno-padded -Wno-cast-align -Wno-declaration-after-statement -fPIC -Wall -Wimplicit-function-declaration -Wredundant-decls -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope
Compiler:            GNU, 13.2.1
Target architecture: x64
```

@efferre79 maybe try a build without all the debug options (they slow down the whole thing a lot and are disabled for that reason), maybe that is killing the connection?
I can not find anything unusual in the logs other than that

I don't think it's really an authentication issue (even if there is an error in the log), in fact with version 2.11.1 the connection is reliably done but I can still see the authentication errors in the log.
I am using mstsc with the default options. If I pass the wrong password on purpose then the connection is closed with an authentication error. If the credentials are correct, what happens is that I got authenticated but the connection is closed later when mstsc tries to optimize the connection (estimating connection quality message with wait bar).
The problem is visible only with freerdp 3.0.0 and not 2.11.1 so something is changed in the code for sure.
I have added to my xorg-server Xephyr support and tried as indicated in your test. In this case with freerdp 3.0.0 I don't see the same connection problems, here is the log (also in this log there is the TKIP error message and the authentication errors noise but I inserted the credentials correctly at first try)
I don't know what is the difference between my x11 server (version 21.1.9) and the Xephyr one, the major difference is that the first one is using three real monitors. I have a screen size of 3840 x 1024 and I passed that value to Xephyr session and that works. What I noticed is that I can see the whole screen size for Xephyr while with x11 I can see only one monitor. Even if I use the option /monitors:0,1,2 with freerdp-shadow-cli I still see only one.
BTW: Is there a way to log mstsc activity?

from your logs I can see that sometimes authentication fails at negotiation stage, but need to check what is going on.

mstsc has the habit to connect twice. First the authentication fails, then it connects again (I also know this behaviour from g-r-d). It might be the case, that mstsc sends the users actual local credentials first, don't know. Anyway not that important here.
@efferre79 What is the value of the preferred colour depth in mstsc? When you set it to '32-bit', will mstsc still show the protocol error message?

@efferre79 What is the value of the preferred colour depth in mstsc? When you set it to '32-bit', will mstsc still show the protocol error message?

I am using the default Highest quality 32 bit mode. I have just tested the other options 24, 16, 15 bit modes with the same result. I have also tried removing all the checkmarks in the Experience -> Performance tab of mstsc options but nothing changes in the result.
In my opinion it is very strange that with the default mstsc options, it works as expected with freerdp 2.11.1 while doesn't with latest 3.0.0.

This is the error I get most of the times:

@efferre79 did you try a build without the overwhelming debug logs?
we´ve added quite a lot of normal logging to the library and the debug logs are deactivated by default for a reason.
it is also strange that I can not see anything suspicious in the logs, so could you create a clean log of a failing connection and upload that here?

@efferre79 I´ve fixed an issue with https://github.com/FreeRDP/FreeRDP/pull/9665 that might be the reason for your issues. can you give that branch a try?

@efferre79 did you try a build without the overwhelming debug logs? we´ve added quite a lot of normal logging to the library and the debug logs are deactivated by default for a reason. it is also strange that I can not see anything suspicious in the logs, so could you create a clean log of a failing connection and upload that here?

I added the debug info after facing the problem :-) Anyway, here is the version 3.0.0 log when compiled without debugging, same problem

@efferre79 I´ve fixed an issue with #9665 that might be the reason for your issues. can you give that branch a try?

I have tried that branch compiling without debug info
[12:02:43:239] [10210:000027e2] [INFO][com.freerdp.server.shadow] - [shadow_server_command_line_status_print]: FreeRDP version 3.0.1-dev0 (git f09cd41f5)

[12:02:19:587] [10177:000027c1] [INFO][com.freerdp.server.shadow] - [shadow_server_command_line_status_print]: Build configuration: BUILD_TESTING=OFF WINPR_HAVE_AIO_H=1 WINPR_HAVE_EXECINFO_BACKTRACE=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS_FD=1 WINPR_HAVE_EXECINFO_HEADER=1 WINPR_HAVE_FCNTL_H=1 WINPR_HAVE_GETLOGIN_R=1 WINPR_HAVE_GETPWUID_R=1 WINPR_HAVE_INTTYPES_H=1 WINPR_HAVE_POLL_H=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 WINPR_HAVE_STDBOOL_H=1 WINPR_HAVE_STDINT_H=1 WINPR_HAVE_STRNDUP=1 WINPR_HAVE_SYSLOG_H=1 WINPR_HAVE_SYS_EVENTFD_H=1 WINPR_HAVE_SYS_FILIO_H= WINPR_HAVE_SYS_SELECT_H=1 WINPR_HAVE_SYS_SOCKIO_H= WINPR_HAVE_SYS_TIMERFD_H=1 WINPR_HAVE_TM_GMTOFF=1 WINPR_HAVE_UNISTD_H=1 WINPR_HAVE_UNWIND_H=1 WITH_AAD=OFF WITH_ADD_PLUGIN_TO_RPATH=OFF WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=OFF WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CLIENT_SDL=ON WITH_CLIENT_SDL_AVAILABLE=1 WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_CODECS=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_EVENTS=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SCHANNEL=OFF WITH_DEBUG_SDL_EVENTS=OFF WITH_DEBUG_SDL_KBD_EVENTS=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_DSP_FFMPEG_AVAILABLE=1 WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=ON WITH_FREERDP_DEPRECATED=OFF WITH_FREERDP_DEPRECATED_COMMANDLINE=OFF WITH_FUSE=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSTREAMER_1_0=ON WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_INTERNAL_RC4=OFF WITH_IPP=OFF WITH_JPEG=ON WITH_KRB5=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_LODEPNG=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=OFF WITH_MBEDTLS=OFF WITH_NATIVE_SSPI=OFF WITH_NEON=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSSL=ON WITH_OPUS=OFF WITH_OSS=OFF WITH_PCSC=OFF WITH_PKCS11=OFF WITH_PLATFORM_SERVER=ON WITH_POLL=ON WITH_PROFILER=OFF WITH_PROXY=ON WITH_PROXY_APP=ON WITH_PROXY_EMULATE_SMARTCARD=OFF WITH_PROXY_MODULES=ON WITH_PULSE=ON WITH_RDTK=ON WITH_SAMPLE=ON WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_EMULATE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SMARTCARD_PCSC=ON WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=ON WITH_SYSTEMD=OFF WITH_THIRD_PARTY=OFF WITH_UNICODE_BUILTIN=OFF WITH_URIPARSER=OFF WITH_VAAPI=OFF WITH_VAAPI_AVAILABLE=1 WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_VERBOSE_WINPR_ASSERT=ON WITH_VIDEO_FFMPEG=ON WITH_VIDEO_FFMPEG_AVAILABLE=1 WITH_WAYLAND=ON WITH_WEBVIEW=OFF WITH_WINPR_DEPRECATED=OFF WITH_WINPR_TOOLS=ON WITH_WIN_CONSOLE=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XV=ON
Build type:          Release
CFLAGS:              -march=core2 -O2 -pipe -Wall -Wpedantic -Wno-padded -Wno-cast-align -Wno-declaration-after-statement -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -fno-omit-frame-pointer
Compiler:            GNU, 12.3.1
Target architecture: x64

The problem is still present :-(

Tested with latest commit from master FreeRDP version 3.0.1-dev0 (git 6c2698058), unfortunately this issue is not solved :-( Please reopen it.
I have tried further debugging the problem by bisecting git code. Unfortunately many commits don't compile or the compiled binary crashes or has issues so it's hard to find the problem without having a deep knowledge of the software code. Up to now I have been able to define the following commits:
good: 4d885e3a6efd0c45cb5760cb486961b35f21c080
bad: 39210d1efdb639d23efccd28523c16e45e2b6de9

There are only 736 commits. With the good commit it is possible to get a connection to the shadow server but there is no image of the remote desktop (I think it's fine because not implemented at the time of that commit). With the bad commit I can replicate the issue described here (protocol error). With the inner commits it's possible to face other problems (e.g. SAM lookup with empty domain, various asserts in winpr/libwinpr/sspi/sspi_winpr.c, etc) which are not related to the issue.
With the first commit after good I get the following error:
[12:05:32:237] [4470:4506] [ERROR][com.freerdp.core.peer] - peer_recv_callback_internal: CONNECTION_STATE_CAPABILITIES_EXCHANGE - peer_recv_pdu() fail
[12:05:32:237] [4470:4506] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
[12:05:32:237] [4470:4506] [ERROR][com.freerdp.client.shadow] - Failed to check FreeRDP file descriptor

so maybe someone can tell me which other commit fixes this.
To simplify the testing with the Windows RDP client I have written a command script test_rdp.bat. It must be configured with the remote host info and with the number of tries to do. The software cannot distinguish the kind of errors from mstsc.exe so its behavior must be supervised, eventually it makes life easier with repetitive tries.

@akallabeth please reopen this issue
I have finally tracked down to the first bad commit. I tested the inner commits described above by adding the  39210d1efdb639d23efccd28523c16e45e2b6de9 commit to avoid connection failures due to SAM lookup error with empty domain. Said that I get:
$ git bisect start
status: waiting for both good and bad commits
$ git bisect good 34f44ce4a184a2edaa586545cb20b152c859c891
status: waiting for bad commit, 1 good commit known
$ git bisect bad d6ab9d5f63df87bb2bf1195ec85d3d8b5095f887
d6ab9d5f63df87bb2bf1195ec85d3d8b5095f887 is the first bad commit
commit d6ab9d5f63df87bb2bf1195ec85d3d8b5095f887
Author: Armin Novak<EMAIL_ADDRESS>Date:   Sun Dec 18 17:23:14 2022 +0100

    [server,shadow] abort connection if a resize fails

    The shadow server tries to resize the client to use a compatible
    resolution. If that fails, e.g. if there is another resize request after
    the disconnect/reconnect sequence, abort the connection.

 include/freerdp/server/shadow.h |  4 ++
 server/shadow/shadow_client.c   | 83 +++++++++++++++++++++++++++++++----------
 2 files changed, 68 insertions(+), 19 deletions(-)

With the good commit the connection is successfully established but I cannot see any image of the remote server. With the bad commit I can see the image of the remote server but the connection is later aborted by the server itself. So at least we know the source of protocol error.

d6ab9d5f63df87bb2bf1195ec85d3d8b5095f887 is the first bad commit

Looking through the changes of that commit, I would say the shadow_send_desktop_resize() call in the conditional path of if (shadow_client_recalc_desktop_size(client)) should be changed to if (shadow_send_desktop_resize(client)) return FALSE;.
At least that part looks wrong, and I would have guessed that this would be (at least part of) the issue. It seems though on current master that was already changed.
One other thing, that looks sus to me is the shadow_reset_desktop_resize() procedure in that commit. The reactivation sequence is not instant, there are some PDUs that are reexchanged. So, I don't see, that this procedure has any meaningful impact.

Looking through the changes of that commit, I would say the shadow_send_desktop_resize() call in the conditional path of if (shadow_client_recalc_desktop_size(client)) should be changed to if (shadow_send_desktop_resize(client)) return FALSE;.
At least that part looks wrong, and I would have guessed that this would be (at least part of) the issue. It seems though on current master that this was already changed.

@pnowack I have tried to apply the following patch on top of d6ab9d5:
diff --git a/server/shadow/shadow_client.c b/server/shadow/shadow_client.c
index f4c41461d..23477928e 100644
--- a/server/shadow/shadow_client.c
+++ b/server/shadow/shadow_client.c
@@ -484,8 +484,8 @@ static BOOL shadow_client_post_connect(freerdp_peer* peer)
 	/* Resize client if necessary */
 	if (shadow_client_recalc_desktop_size(client))
 	{
-		shadow_send_desktop_resize(client);
-		return FALSE;
+		if(shadow_send_desktop_resize(client))
+			return FALSE;
 	}

 	shadow_reset_desktop_resize(client);

as you suggested but I obtained the same behavior.

tested this morning with FreeRDP version 3.1.1-dev0 (git f6a208f75), the problem is still present

@efferre79 could you create new logs? we´ve fixed a few things and added new log messages, so that might give us a lead on what is broken when run on your setup. (can´t reproduce here :/)

@akallabeth here is the log obtained with FreeRDP version 3.1.1-dev0 (git af9e74273)

@efferre79 you might want to retry with https://github.com/FreeRDP/FreeRDP/pull/9751 applied. This fixes broken message handling of the server in a deactivate/reactivate sequence. (that is what happens on desktop resize)

@akallabeth  I have tested FreeRDP version 3.1.1-dev0 (git d1a159c48), now it is way better, I could successfully connect for 50 times in a row. But sometimes the problem still shows up, maybe there is a limit case not covered by the code. Here is attached the logging of last bad event I achieved.

@efferre79 good to know.
I´d try a build with less debug flags now, specifically WITH_DEBUG_RINGBUFFER and WITH_DEBUG_NLA (you should change your passwords, with WITH_DEBUG_NEGO enabled you might be able to reconstruct it from the logs)

@efferre79 also, created https://github.com/FreeRDP/FreeRDP/pull/9757 to add some debug log entries for gfx cache import offer and reply (that is the last relevant entry in your log, so maybe something is off with that)

@akallabeth I have reduced the debug flags as suggested, waiting for the merge of #9757 to retest again. The password is a dummy one for these tests so no problem.

@akallabeth Here is the latest log obtained with #9757 included and the problem is visible.
I have discovered an interesting way to replicate deterministically the problem. I have a parallel x11vnc session opened at the same time between the client and server PCs. If I interact with the remote desktop via vnc (e.g. by scrolling a window with the mouse wheel) when the RDP client is trying to establish the connection then the error is likely to appear. If I leave the vnc connection open but in background (window minimized), then I don't see any problem with the connection of the RDP client.
I guess that the RDP server is starting to get some data from the X11 server when the connection is going to be established but the working condition changes if the mouse is moved via vnc. And this later causes the problem. Next week I can verify if the same problem if repeatable when I move the real mouse on the server.
To clarify, when I discovered and opened this issue I was not using in parallel vnc to connect to the remote server.

this sounds like a different issue now, you get past the login correct?
(also, I specifically mentioned disabling WITH_DEBUG_RINGBUFFER these messages are really useless ;))
I assume mstsc is still very unspecific in its error message? (if there is one at all?)

(also, I specifically mentioned disabling WITH_DEBUG_RINGBUFFER these messages are really useless ;))

oops, I misread your suggestion and left enabled only those flags :-D Now I have removed only those two flags, here is the log. In the log now there are some lines you don't expect (from x11_shadow_input_keyboard_event) because I have patched the source to debug keystrokes transmitted to the server.
I think that the login phase has been always passed, when the problem shows up I have the impression to see for a fraction of second the remote display and then the connection is closed with the reported error. I don't know if the problem is the same but I still get the error described above.
BTW now I am able to replicate quite easily (100% of tries) the problem, it is sufficient to try connecting to the remote desktop where there is an application actively changing the screen image (e.g. an application in a console which is continuously writing to its stdout, I use cat /dev/random in a terminal). I can even replicate by using Xephyr as you suggested here where the xterm command is replaced with
DISPLAY=:23 xterm -e cat /dev/random &

@akallabeth were you able to reproduce with Xephyr?
Today I have tested again freerdp updated to latest commit from master. For each test I have started again the server and done a single connection from the client. Here are the logs of the successful and unsuccessful connections. The latter has been achieved with the trick explained above using /dev/random.
I stripped the logs, hacked the pointers to be identical between the two sessions and reordered the lines to simplify a diff comparison. I noticed a missing call to nego_read_request_token_or_cookie() and missing input events from the unsuccessful connection, moreover avc444_compress() complains about unchanged luma or chroma frames in the unsuccessful connection. Then there are some differences close to the end. I hope there is some interesting evidence for who understands the protocol.

@efferre79 sorry, did not have time, hope next week.

@efferre79 ok, I found your issue.
Basically it boils down to:

The [MS-RDPEGFX]  channel requires to exchange capablilities on startup
The server must wait for the client to respond
We do not do that and expect the exchange to be finished before we send the first resetGraphics, SurfaceCommand, ...

so, renaming the issue and checking how I can fix this.

@efferre79 ok, looks like I nailed the issue.
It was indeed a (sometimes) premature graphics update that broke the connection as the client did not yet send the capability response message.
at least in my tests there were no failed connection attempts after that.
thank you for the nice test setup description you gave (the DISPLAY=:23 xterm -e cat /dev/random & was hammering out graphics updates and therefore triggering this really often)

@akallabeth tested, now looks good! thanks!


Remove tetragon.enableCiliumAPI configuration option

Pod.Labels field got deprecated in v0.11 ^1, so we can stop setting the
field in main branch. This means that Tetragon no longer depends on
the Cilium state, so we don't have to synchronize it anymore. This patch
removes tetragon.enableCiliumAPI Helm value and deletes packages related
to Cilium state synchronization.
Signed-off-by: Michi Mutsuzaki<EMAIL_ADDRESS>

Hey, should we merge that (once it's rebased)? It's still in draft for now.

Should we close this one now that https://github.com/cilium/tetragon/pull/1541 was merged? maybe it was missing the:

and deletes packages related to Cilium state synchronization.

yeah this one is a much bigger change since it actually deletes pkd/oldhubble and such. let's close it for now, i'll reopen it when we are ready to delete these cilium-related packages 💣


Module pattern fv 48

refactored map.js and hydrograph.js to use module patterns. Expecting some more refactoring. Just submitted this pull request to get some feedback of the implementation thus far.
Also created floodviz_onready.js to call these modules. Notice in floodviz_onready.js that I globally defined the specific figures we were creating (map_figure and hydro_figure). This was needed in this iteration for the cross figure interactions (see self.mouseover in hydrograph.js).

Only looked at hydrograph.js. Basic idea is right. Added a few other comments.


VS Code Unable to install Extensions

VSCode Version: Code 1.12.2 (19222cdc84ce72202478ba1cec5cb557b71163de, 2017-05-10T13:20:36.315Z)
OS Version: Windows_NT ia32 10.0.10586
Extensions:
|Extension|Author|Version|
|---|---|---|
|python|donjayamanne|0.6.0|
|beautify|HookyQR|1.0.2|
|vscode-JS-CSS-HTML-formatter|lonefy|0.2.2|;

Can search but not download or install any extension. The problem has been going on for some weeks now. When clicked on install the 'Installing' replaces 'Install' with a dark green background and that is all, It stays that way. This is happening with any extension that I am trying to install.

Please Guide.

If you delete the ~/.vscode/extensions folder (first back it up!). Can you then install extensions?


ACS Common - Dispatcher Flush Not working

Required Information

[ ] AEM Version is <IP_ADDRESS>
[ ] ACS AEM Commons Version:
[ ] Reproducible on Latest? yes

Dispatcher cache should get cleared, but its not working in Production environment. In lower Environment (like stage) it is working fine. It should clear the mentioned path cache.
When trying to clear dispatcher cache, we are getting error. We have 2 dispatchers which has been setup correctly in dispatcher flush configuration. When selecting invalidate cache and providing the required path which needs to be cleared, we are getting error message "An error occurred during replication. Possible issues include invalid flush path or lack or active dispatcher flush agents. Please review your Dispatcher Flush agent logs to ensure all replication requests were successfully processed."
In replication agent (author) getting below error message:
Error while sending request: Java.net.ConnectException: Connection timed out (Connection timed out)
Its working fine lower environment like in stage, it is working fine and cache is getting cleared.
Checked dispatcher IPs configured in dispatcher flush and they are correct.
Steps to Reproduce
Starting from a vanilla instance of AEM at the above version, describe in explicit steps how to reproduce. Link to
any supporting assets, e.g. content packages, below

Error_Details.docx

Can anyone suggest what could be the issue here and how to get this ACS Common Dispatcher flush work in this case. Thanks in advance

I assume youre triggering this from AEM Author? Can you test the flush against the AEM flush agents youre targeting, and make sure they can test OK using the AEM's replication agent UI?
Based on the error, it seems like either

Your flush agents aren't pointing to the right host/IPs
Something is blocking this traffic between this AEM and the Dispatcher

You do have to configure Dispatcher to allow flushing from specific IPs, but i dont think you get this error (maybe tho - its been a while).


merge from arlac77/npm-package-template-esm-only

package.json

chore(scripts): cover@#overwrite c8 -x 'tests/**/*.mjs' --temp-directory build/tmp ava && c8 report -r lcov -o build/coverage --temp-directory build/tmp
chore(scripts): posttest@markdown-doctest

Coverage remained the same at 76.225% when pulling 88b403b48bfcc9aa8fb66c4442ba8f4ac6a11968 on npm-template-sync/1 into 82c4cf6aa7b281dc5dd88d84cd900450b9dc833c on master.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add async TCP echo example

Motivation
We introduced new async APIs to our bootstraps that make it easy to use NIO from Swift Concurrency. We should provide examples showing how to use those new APIs. In the future, we want to make those examples the primary ones and remove the non-async based ones.
Modification
This PR introduces two new targets: NIOTCPEchoServer and NIOTCPEchoClient. Both targets are executable and provide either the server or client piece of the example.
Result
New and shiny async example

@weissi I updated this PR to use your newly landed singletons.


Ability to specify response code?

Many thanks for such a great tool!
Apologies if I've overlooked in the docs but is there a way to specify a response code when requesting a mock?  For example, if I want to get back an HTTP 403, is there a request header or something I could add to force this response?

same question here, bumping


relates to #178: int test improvements for update commands

What this PR does:
Improves integration tests for the update commands. Left over from the #236

[x] correct split in integration tests between findOneAndUpdate, updateOne and updateMany
[x] added assertions for the errors
[x] added more status assertions
[x] added more checks in updateMany
[x] improved readability
[x] removed unnecessary annotations & order, fixed delete docs from collection on after each
[ ] validation cases

@amorton The spec here does not mention anything about the status.moreData:
https://github.com/stargate/jsonapi/blob/main/docs/jsonapi-spec.textile?plain=1#L615-L661
Currently:

the updateOne never returns moreData flag
the updateMany returns moreData=true in case there is more data that matches the filter

LGTM


[a11y] Navigation between internal hyperlinks

OS: Windows 10
Assistive technology: NVDA 2018.1.1
When click on a link in the text the focus doesn't change, so NVDA remains to the origin content.

Thank you for reporting the bug.
When you say "click", do you mean "mouse click" or keyboard-activated hyperlink? (e.g. tab + enter key user interaction)

Related issue: https://github.com/readium/readium-desktop/issues/156

TODO: fix in navigator (force keyboard focus via HTML / web API), so assigned to me.

Dear Daniel,
we tested both (click and tab+enter) and found the same problem.

This is the default Electron v3 Chromium behaviour, we will need to find a workaround in r2-navigator-js.
There is no proper keyboard focus on non-focusable elements inside EPUB documents. Some screen readers pick-up the URL hash fragment identifier redirection (window location), others don't. The same problem exists on the web with vertically-scrolling documents, the only difference here is that we apply CSS columns to layout the reflowable markup content.

Would it be solved when we move to Electron 5 (you say default Electron 3 behavior, is there an implicit notion of change?).
Shouldn't we move this issue to the navigator repo?

I have not tried this particular use-case yet (i.e. screen readers following the window.location hash fragment identifier in scroll/paginated HTML documents inside iframe/webview)
Yes, this is purely a r2-navigator-js issue.


Implement save/save as to PancakeBot project file - [4]

Will either be a direct .svg file with headers to ensure not any SVG can be imported
OR, will be a .pbp(Pancake Bot Project) file. Again, just an SVG file in disguise.
Will need to be able to embed overlay image file (hidden)
Should include all details to make sure OS specific preview of file renders as it would in the program (include griddle background, proper stroke colors, etc)

I ran into some issues saving out an SVG file, but l gave the paper.js native JSON export a try and it seems to work great! Nearly automatic input & output, and custom data storage available in the actual objects that will be reinstated on import.
I've adjusted image import to not link, but to actually embed the full image in the output JSON as a data URI. This imports, exports, and embeds perfectly, though the file size suffers a bit.
On the ~6yr old Macbook I test on, I'm seeing some huge slowdowns during file read/writes that I can't quite explain (though the files read/write just fine. If you see any issues around this let me know and I can look int them more.


Project overview page

Added the project overview page layout.
Modifying the redux selectors turned out to be a bigger task, so the project summaries are missing some data.
I am planning on creating a separate for the redux modifications. However, I can draft this pr if the page is too incomplete for merging!

Added the three dot menu

the "delete roadmap" link inside it will look and behave as its supposed to once href is provided

Added default project 💚 although it's not used yet. I think we should add a default project boolean value to roadmap model.

the client list is empty until the project is opened once. Is this a limitation of the current data model?

Yes. I got that fixed, but I will submit it in a different pr to keep this simple.
Added all of the requested fixes.
About the "AddButton" component:

figma had differing default colors for it (grey in overview page, green otherwise). I went with green as it is more distinct from the disabled color.
It's a mix between Juho's and my implementations
Currently the button itself is quite small, but it will stretch to fit the container it's inside of. This does leave some responsibility for the user to remember to use it inside a styled div.
Does anyone know how to override the material ui styles without adding !importart to scss?

Does anyone know how to override the material ui styles without adding !importart to scss?

I used <StylesProvider injectFirst> to override material ui tooltip styling with our figma design in task tables, seemed to work fine.
https://material-ui.com/styles/advanced/#injectfirst


Should SA1623 trigger on public getter, protected setter?

Below is an example of the issue.
        private int count;
        /// <summary>
        /// Gets item count.
        /// </summary>
        // SA1623: The property's documentation summary text should begin with: 'Gets or sets'
        public int CountNotFromInterface
        {
            get
            {
                return count;
            }

            protected set
            {
                count = value;
            }
        }

It seems the expected documentation would not reference a protected setter?

Closed, as per the docs: Whenever the set accessor has protected or protected internal access, it should be referenced in the documentation. A protected or protected internal set accessor can always been seen by a class inheriting from the class containing the property.


Fix #350.

#350
cc @victorhurdugaci

Looks good. Make sure that repos can be still built with this and then :shipit:


Error building docker with Shopify Sarama

I'm building docker image with Shopify Sarama library. When install Sarama on golang:1.13 base image it giving me following error. I have tried with different based image versions(1.17, 1.16, 1.9 etc), but same error. Previously this image building was working fine. This error occurred when I have updated the docker version of the Mac. Currently I'm using Docker v20.10.8
 => ERROR [4/9] RUN go get github.com/Shopify/sarama                                                                                134.1s
------
 > [4/9] RUN go get github.com/Shopify/sarama:
#7 133.3 # github.com/Shopify/sarama
#7 133.3 src/github.com/Shopify/sarama/config.go:678:37: undefined: io.Discard
#7 133.3 src/github.com/Shopify/sarama/decompress.go:43:10: undefined: io.ReadAll
#7 133.3 src/github.com/Shopify/sarama/decompress.go:55:10: undefined: io.ReadAll
#7 133.3 src/github.com/Shopify/sarama/sarama.go:89:29: undefined: io.Discard

Following is the Dockerfile
FROM golang:1.13

MAINTAINER Eranga Bandara<EMAIL_ADDRESS>
# install dependencies
RUN go get gopkg.in/mgo.v2
RUN	go get github.com/gorilla/mux
RUN go get github.com/Shopify/sarama
RUN go get github.com/wvanbergen/kafka/consumergroup
RUN go get github.com/gorilla/handlers

# copy app
ADD . /app
WORKDIR /app

# build
RUN go build -o build/gateway src/*.go

# server running port
EXPOSE 8751

# .keys volume
VOLUME ["/app/.keys"]

ENTRYPOINT ["/app/docker-entrypoint.sh"]

HI @erangaeb  I am experiencing the same issue , was working fine with version v1.29.1 and below, but its failing with the latest version v1.30.0 of Sarama
if you update your DockerFile
RUN go get<EMAIL_ADDRESS>it should work
not sure why the new version is failing...

This error is because Sarama is tracking against supported versions of the Go toolchain + library (1.16.x+1.17.x) and so we've applied the changes necessary for the deprecation of ioutil that happened in Go 1.16 https://golang.org/doc/go1.16#ioutil
If you update your Dockerfile to be FROM golang:1.16 then your problem should go away.

Updating go version to 1.16 worked for me

Closing as fixed


Fix encrypted features preparation

This PR fixes an issue with responses containing encryptedFeatures.
With encryption enabled, the list of features is empty inside the FeaturesViewModel.
We had the same issue with Swift library (empty list of features when using encryption) but with a different fix.
https://github.com/growthbook/growthbook-swift/pull/55
The problem can be reproduced by checking for the existence of decoded features in all FeaturesViewModelTests.
To pass the tests again I added a check if the list of unencrypted features isEmpty to enable the path for encrypted features in this case.
The problem was that after decrypting encryptedFeatures, the FeaturesFlowDelegate.featuresAPIModelSuccessfully was not being invoked, which resulted in an empty FeaturesDataModel.features.

That was a bug. Thank you for fixing it!


Parallel scenario run

Investigate ability to run scenarios with NUnit ParallelScope.Children

Blocked by https://github.com/techtalk/SpecFlow/issues/894


Make position independent code flag optional for static libraries

Have updated compile options to be private rather than public.
Have added a new cmake option, allowing the PIC argument to be included when building a static library.
It's set to OFF by default, such that shared libraries will build with PIC enabled and static without.
Have removed the banner from the README indicating that PIC is always enabled.
Have snuck in a correction to the isotp_config.h file. I meant to keep the ISO_TP_FRAME_PADDING line for reference. But forgot to remove the 0xAA from the end of the line, which may lead to future confusion. I can split this out if you'd prefer.

Closes #25


chore: merge master into develop

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1346 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #1346   +/-   ##
========================================
  Coverage    94.41%   94.41%
========================================
  Files           78       78
  Lines         4529     4529
  Branches       903      903
========================================
  Hits          4276     4276
  Misses         119      119
  Partials       134      134

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 34ac03e...674c67c. Read the comment docs.


Feature image sets

Description
Adding Image-sets to stage, changing the image table to the image-sets table, adding image-sets details, version tab and package table to details.
Ticket # https://issues.redhat.com/browse/THEEDGE-2
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update

Checklist:

[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] I run npm run lint:js:fix to check that my code is properly formatted

Codecov Report

Merging #253 (f7de796) into master (e3a5fec) will increase coverage by 1.65%.
The diff coverage is 27.33%.

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


New Tab Background & Videos Picture-in-picture

Hi! I can't fix to show picture-in-picture popup on videos like youtube and can't fix new tab custom wallpaper. Can u help me? Thx!

The urlbar has a pip button. if you don't see it, search for and remove .pip-wrapper in userContent.css.
For wallpaper, please refer to the README.


ER_ACCESS_DENIED_ERROR on Amazon RDS, from a remote host

Hi, I'm trying to connect to a remote MySQL instance on Amazon RDS from a remote host, that is also on Amazon.
I get the error message:
ER_ACCESS_DENIED_ERROR: Access denied for user<EMAIL_ADDRESS>What is very weird is that I can successfully run the same code from my local computer, with same credentials exactly and it works.
It is also possible to connect from the command line.
I don't have any idea how to solve this issue, any help ?

I'm using this module successfully on Amazon AWS. Would you mind sharing your JS code for establishing connection? Also make sure you have a proper security group configured for the inbout traffic.

Below is the piece of code that works for me:
'use strict';

// TODO Set connectionLimit as an environment variable `RDS_POOL_CONNECTION_LIMIT`.
module.exports = require('mysql').createPool({
  connectionLimit: 10,
  host: process.env.RDS_HOSTNAME,
  user: process.env.RDS_USERNAME,
  password: process.env.RDS_PASSWORD,
  port: process.env.RDS_PORT,
  database: process.env.RDS_DB_NAME
});

"Access denied for user" is a message from mysql server, so there is tcp connection - it's definitely not a firewall/security group issue.
@cyberjoac make sure that 1) integration_test user is allowed to connect from ec2-xx-xx-xx-xxx.us-west-2.compute.amazonaws.com 2) db used (it's part of permissions same way as host) is allowed 3) auth plugin / old_auth vs mysql_42 configured

var execsql = require('execsql'),
    config = require('../../../../config/config'),
    dbConfig = {
        host: 'aws-mysql.xxxxxxxxxxxxxxx.us-west-2.rds.amazonaws.com',
        port: 3306,
        user: 'integration_test',
        password: 'integration_test'
    },
'''
This is the connection string I am using...
Inbound rules are working fine.

I allowed connection from % which is supposed to mean 'all hosts', isn't it ?
I allowed the db...

Should I mention as well that my node code for connecting to MySql is running inside Docker.
And it's not working as well on my local environment, while running inside Docker...
Should I open any ports ?

@cyberjoac Can you try specifying the database name explicitly, i.e. the database property in your connection config object?

And I'm also using execsql,
I found that the issue is happening only with execsql, which is a wrapper of mysql.
It seems the issue is coming from there.
Source code is here: https://github.com/node-fun/execsql/blob/master/index.js
Now I'll solve the issue by using directly mysql but I would be happy to understand what is it that execsql is doing wrong...
Sorry to have bothered you anyway..

This is just a guess but the problem is likely with the code below--the port and database parameters are not being passed through when creating the connection.  These may be needed for RDS.
exports.config = function (options) {
_.extend(config, _.pick(options, ['host', 'user', 'password']));
conn = mysql.createConnection(config);
conn.connect();

@cyberjoac if you remove the use of the execsql module and use this module directly and it works, then you may want to report the issue there. I think @femto113 is right on what the issue would be if it works with this module but not execsql.

can any body help me how to solve the same problem , but i am able to login into the mysql , but when i try to run the application using "node app.js" , it shows the below error ?...


Don't escape command parameters

Description:
This removes parameter escaping from media_player.squeezebox_call_method since it is not only unnecessary using jsonrpc but also broke the feature.
Example to reproduce fixed issue
Service media_player.squeezebox_call_method
Parameters:
entity_id:
  - media_player.schreibtisch
command: show
parameters:
  - line1:20 °C

Without this change, the Squeezebox will display 20%20%C2%B0C.
After applying the commit, the same command results in the display of the expected 20 °C
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist

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

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

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

[ ] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hi @Hypfer,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!


Possible dependency issues with updates to Pandas 2.0 and Shapely 2.0 etc.

I went through the updates and collected some changes that seem they may be relevant to STARE.
Dependency Updates

Name
Version

astropy
5.2.2

cartopy
0.21.1

gdal
3.6.3

geopandas
0.12.2

geopandas-base
0.12.2

geos
3.11.2

h5py
3.8.0

hdf4
4.2.15

hdf5
1.12.2

hdfeos2
2.20

matplotlib
3.7.1

numpy
1.24.2

pandas
2.0.0

proj
9.1.1

pygeos
0.14

pyhdf
0.10.5

pyproj
3.5.0

pyshp
2.3.1

pytest
7.3.1

python
3.11.3

shapely
2.0.1

STARE
Installs

pystare
0.8.12 STARE

staremaster
0.0.4  STARE

starepandas
0.6.6  STARE

Notes:
GeoPandas, PyGEOS and Shapely 2.0

GeoPandas has deprecated support for the PyGEOS backend in favor of Shapely 2.0 (which has merged with PyGEOS).

Control this with the directive geopandas.options.use_pygeos = True/False
Setting an environment variable USE_PYGEOS=0/1.

PyGEOS was merged with Shapely in December 2021 and has been released as part of Shapely 2.0.
Migrating to Shapely 2.0: This is a major release with a refactor of the internals with considerable performance improvements and with several breaking changes.

Geometry objects have become immutable.

In-place changes to coordinates are no longer allowed.
Assigning custom attributes are no longer allowed.

Multi-part geometries (MultiPoint, MultiLineString, MultiPolygon and GeometryCollection) are no longer be list-like 'sequences' (length, iterable, indexable).

So for some mp = MultiPoint object you can no longer use operations such as for part in mp:, mp[1], len(mp) or list(mp) etc.
Instead you have to use the geoms property of mp. For example, for part in mp.geoms:, mp.geoms[1], len(mp.geoms) or list(mp.geoms) etc.

Interoperability with NumPy

Shapely provides an interface to access coordinates as NumPy arrays.

For example line = LineString then line_coords = np.asarray(line) or line_coords = np.array(line.coords)

Consistent creation of empty geometries

Shapely nows consistently gives an empty geometry object of the correct type, instead of using an empty GeometryCollection as a generic empty geometry object.

Deprecated Functionality

The empty() method on a geometry object is deprecated.
The shapely.ops.cascaded_union function is deprecated. Use shapely.ops.unary_union instead.

Pandas 2.0

Pandas 2.0 key changes.

Pandas 2.0 has adopted Apache Arrow as a backend (columnar memory format) rather than using Numpy.

Arrow allows for vast improvements when operating on string-columns over Numpy.

Previously, columns with strings were case as having the object dtype as required by numpy.
Now, you can use dtype="string", dtype=pd.StringDtype() or .astype("string") to create a string-based column.

A PyArrow-backed column can be requested specifically by casting to or specifying a column's dtype as f"{dtype}[pyarrow]", e.g. "int64[pyarrow]" for an integer column.

Alternatively, a PyArrow dtype can be created dtype = pandas.ArrowDtype(pyarrow.int64)

Representation of "Missing values" (None)

Previously, pandas used numpy nan to represent missing values, but because nan are np.float64 any numeric column with missing values was converted to np.float64.
With Arrow, missing values can be represented with a python None, which preserves the column's data-type.

Index can now hold numpy numeric dtypes.

This allows operations to create indexes with lower bit sizes (e.g. 16-bit indexes).

Index set operations Index.union(), Index.intersection(), Index.difference(), and Index.symmetric_difference() now support sort=True.
Copy-on-Write (CoW).

This is a way to deal with inconsistencies in pandas indexing operations.

A 'copy' of a DataFrame means that modifications to the parent or child DataFrame (the copy) are not shared.
A 'view' of a DataFrame means that modifications affect both the parent and child DataFrames.

Previously, some pandas operations returned a copy, while others returned a view.

This led to unwanted and difficult to detect side effects.
With CoW child DataFrame/Series always behaves as view (i.e, no extra memory usage, a lazy copy) until we modify either the parent/child, at which point the child is converted to a copy (deferred memory use).
This ensures that pandas DataFrames/Series can only be modified directly rather than inheriting changes via a view dependency.

Thus pandas now issues warnings/errors for inplace updates a view dependency.

This provides a significant performance improvement compared to the regular execution.
Thus, accessing a single column of a DataFrame as a Series (e.g. df["col"]) now always returns a new object.

Copy-on-Write can be enabled through pd.set_option("mode.copy_on_write", True) or pd.options.mode.copy_on_write = True
The inplace and copy keywords will eventually be deprecated and then removed.

Non-nanosecond resolution in Timestamps.

date_range() and timedelta_range() now support a unit keyword ("s", "ms", "us", or "ns") to specify the desired resolution of the output index.
DatetimeIndex.as_unit() and TimedeltaIndex.as_unit() convert to different resolutions ("s", "ms", "us", or "ns").

DataFrame.to_json() now supports a mode keyword with supported inputs 'w' and 'a'.

Backwards incompatible API changes.

Construction with datetime64 or timedelta64 dtype with unsupported resolution.

Previously, Series or DataFrame constructed with a "datetime64" or "timedelta64" dtype with unsupported resolution (i.e. anything other than "ns", say dtype="datetime64[s]") results in a nanosecond dtype anyway dtype: datetime64[ns].

Now dtype="datetime64[s]" works as expected.

UTC and fixed-offset timezones default to standard-library tzinfo objects

Previously, the default tzinfo object used to represent UTC was pytz.UTC.

Now pandas defaults to datetime.timezone.utc.

Similarly, for timezones represent fixed UTC offsets, we use datetime.timezone objects instead of pytz.FixedOffset objects.

Empty DataFrames/Series will now default to have a RangeIndex
Increased minimum versions for dependencies

pytest (dev) 7.0.0, python-dateutil 2.8.2, matplotlib 3.6.1, xarray 0.21.0

Datetimes are now parsed with a consistent format

In the past, to_datetime() guessed the format for each element independently.
Now parsing will use a consistent format, determined by the first non-NA value (unless the user specifies a format, in which case that is used).

Pandas uses SQLAlchemy, which has also undergone a major update (version 2.0+), as a consquence the previous pandas syntax for performing SQL IO, particularly in DataFrame.to_sql and pd.read_sql (via pd.read_sql_query and pd.read_sql_table) is no longer compatible with the new SQLAlchemy syntax.

The upgrade to SQLAlchemy 2.0+ syntax is not backwards compatible.
Migrating to SQLAlchemy 2.0

Other Changes

Installing optional dependencies with pip extras.

When installing pandas using pip, sets of optional dependencies can also be installed by specifying extras.
pip install "pandas[performance, aws]>=2.0.0"
The available extras, found in the installation guide, are [all, performance, computation, fss, aws, gcp, excel, parquet, feather, hdf5, spss, postgresql, mysql, sql-other, html, xml, plot, output_formatting, clipboard, compression, test].

I set

pandas>=2.0.0
geopandas>=0.13.0,
shapely>=2.0.0
all tests (including notebooks pass). I think we are safe.


Added support for Number objects.

Closes #10

You have some extra parents in your tests.


Update archiver.py

fixed errors = 0 not being defined in the right line, it was inside the if MULTITHREAD and now it is outside. If multithread is false, errors was not defined so this change was necessary.

Ah thank you, i must have missed that while trying to make the ratelimiting work while preserving all the features. I'll merge it right away.


[Feature request] Have a command to rename an existing API and code consuming it

What is the best approach to rename an API / CRD + operator's code ?

I have generated the code of my first API using this command operator-sdk new spring-boot-operator --api-version=springboot.snowdrop.me/v1alpha1 --kind=SpringBoot,
developed the code of the operator and
now I would like to rename the API to pkg/apis/component/v1alpha1 + CRD + ... files

+1, I found it to be very hard to manually do this after it was generated using sdk.

@cmoulliard you can for now just do a sed to rename it in the code. As far as I am aware there is no command for that in the operator-sdk. But if you can change the title of this to turn this question into a feature request instead?

Title renamed.

I'd be also interested in this.

I also ran into this went wanting to change the Group and Version of my operator's CRD  operator-framework/operator-marketplace#139. It is also preferable to be able to handle both versions in the same operator allowing code to be shared.

I'm unsure if the SDK should support rewriting/renaming an existing API and all the associated manifest and controller files that are using that API.
It's much cleaner(although more painful) in my opinion to define a new type and controller and copy over the reconcile loop for the new type.
In any case this isn't on our radar at the moment (and why this was ignored for so long) so proposals are appreciated if this seems to be a common workflow.

Met this problem too.


Small improvements libmachine

Small improvements to make libmachine a bit easier to use.
See https://github.com/dgageot/docker-machine-daemon

Cool to see a Docker Machine daemon program, it's something that @ehazlett and I always discussed but never quite got to.
LGTM


Remove aws.sdk property

Note: This needs to be rebased against the v6 branch.
The aws.sdk property was introduced several years ago to offer a convenient way for callbacks using function serialization to get ahold of the AWS SDK which is available within the Lambda runtime.
However, the AWS SDK v2 that was exposed here is being deprecated, and has been emitted a deprecation warning for some time for anyone using this via Pulumi.
The AWS SDK v3 doesn't expose a monolithic module we can expose here - providing instead many separate SDKs for each service.
So we expect the best path is to drop this from the AWS provider in the upcoming major version release.
Users who were using it in <6.0.0 versions will need to move to using @aws-sdk/client-s3 or similar libraries directly.
Fixes #2568

Hi @catmeme. Sorry for the confusion. We called it out in the migration guide. I see that the migration guide isn't linked super clearly in the blog post. I'm going to see if we can update the blog post to make it clearer where the migration guide is.


Fix Deprecation warnings on ActionBar.setNavigationMode

Probably related to a refactor on #5.

Fixed in #512


Document is missing for building sequence of transforms

When we click at the below link at the top level readme page,

It takes to the correct link, but looks like the document is missing there

Please fix the link or add the missing document.

What page did you find this on?

On the top readme page. Added it here as well.

@daw3rd, @Bytes-Explorer is this done? Can we remove it?

Yes, thank you


[iam-user] This object has no argument, nested block, or exported attribute named "password".

Description
When using "terraform-aws-modules/iam/aws//modules/iam-user" with create_iam_user_login_profile = false, terraform fails with the following error:
│ Error: Unsupported attribute
│
│   on .terraform/modules/iam_user/modules/iam-user/outputs.tf line 33, in output "iam_user_login_profile_password":
│   33:   value       = try(aws_iam_user_login_profile.this[0].password, "")
│
│ This object has no argument, nested block, or exported attribute named "password".

Rolling back to 4.16.0 seems to fix the issue.
Versions

Module version [Required]: 4.17.1 (~> 4.17)

Terraform version:

Terraform v1.1.7
on darwin_arm64

Provider version(s):

+ provider registry.terraform.io/hashicorp/archive v2.2.0
+ provider registry.terraform.io/hashicorp/aws v3.75.1
+ provider registry.terraform.io/hashicorp/kubernetes v2.9.0
+ provider registry.terraform.io/hashicorp/tls v3.1.0

Reproduction Code [Required]

Steps to reproduce the behavior:
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.4"
    }
  }
  required_version = ">= 1.0"
}

provider "aws" {
  region = "eu-west-1"
}

module "iam_user" {
  source  = "terraform-aws-modules/iam/aws//modules/iam-user"
  version = "~> 4.17"

  name          = "example.iam-user"
  force_destroy = true

  create_iam_user_login_profile = false
}

terraform init
terraform plan --target=module.iam_user

Expected behavior
IAM User should be created as expected without a login profile.

Looks like it's only available with AWS Provider v4

v3.75.1 Docs
v4.1.0 Docs

But it has been added as there was setup done towards 4.x provider https://github.com/terraform-aws-modules/terraform-aws-iam/compare/v4.16.0...v4.17.1

Yes, in the issue above I'm using AWS Provider v3.75.1 which doesn't have the password attribute.
If I upgrade to >= v4.1.0 then the module executes exactly as expected. Unfortunately I'm not able to migrate to AWS 4.x just yet.
It's odd that the try() block fails 🤔
I'd think the try() block would try and just return "" if there's an error 🤔

This issue has been resolved in version 4.17.2 :tada:

pleasedontfailmenow(tryharder(try(var.sensitive)))


Docs: Configuration of Gradle when using logging and ShadowJar plugin

What were you searching in the docs?
I have been using the logging component of Powertools together with the com.github.johnrengelman.shadow plugin for Gradle. I've also configured log4j2 to use the provided JSON format.
When running the Lambda Function I got errors from the logging system about the output pattern (many lines like ERROR StatusLogger Unrecognized format specifier [d]). The strange thing has been that the errors related to a pattern that I didn't configure.
I have searching the documentation mentioning something like that.
Is this related to an existing documentation section?
https://docs.powertools.aws.dev/lambda/java/core/logging/#initialization
How can we improve?
When using the ShadowJar plugin and configuring the logging component as described in https://docs.powertools.aws.dev/lambda/java/core/logging/#initialization you also have to configure a transformer for the ShadowJar plugin:
tasks.named<ShadowJar>("shadowJar") {
    transform(Log4j2PluginsCacheFileTransformer::class.java)
}

Unfortunately this solution is not easy to find since the error is not pointing in that direction.
Got a suggestion in mind?
Not yet. I wanted to first document this finding in case someone else is having this issue.
Acknowledgment

[X] I understand the final update might be different from my proposed suggestion, or refused.

Hey @roamingthings thanks for raising this!
I believe we have a bit of a gap in our gradle documentation and setup instructions. We've started to address this, recently added a gradle example and fixed up the SAM template for Java 17.
If you have an idea of how we could document this that'd be great, and certainly it's something we should add to our gradle example.

I came across this when combining Powertools with the default Micronaut 4 project template.

Adding it to the Gradle example would be a good start. However, at least I have only been looking at the documentation. Maybe it fits the Install section?

@jeromevdl / @mriccia what do you think? You mentioned how shade works is a function of deployment - e.g. SAM doesn't use it. Not sure what we should do here.

@jeromevdl / @mriccia what do you think? You mentioned how shade works is a function of deployment - e.g. SAM doesn't use it. Not sure what we should do here.

The AWS Lambda documentation instructs to create a shaded jar for maven and .zip file for gradle. I am curious why this is so.
I have used shaded jar built with gradle to deploy with SAM, skipping the sam build step.
Spring Cloud Function documentation also instructs to created a shaded jar with gradle to deploy an AWS Lambda function

This text found on Best practices for working with AWS Lambda functions confuses me even more

Reduce the time it takes Lambda to unpack deployment packages authored in Java by putting your dependency .jar files in a separate /lib directory. This is faster than putting all your function’s code in a single jar with a large number of .class files. See Deploy Java Lambda functions with .zip or JAR file archives for instructions.

I don't remember where I saw that but shaded jar are actually faster than zip with lib folder.
But there is a problem with Multi-Release Jars when using shading: https://awstip.com/packaging-deploying-java11-based-lambda-functions-19c456e062a9.
Anyway, not sure what was the initial question? Our documentation does not specify how to actually build a package. Is it not enough to reference the official AWS doc? If we start to document maven, gradle, using SAM or not, using shade or assembly or whatnot, plus the differences between java 8 and others (because of aspectj), we'll have tens of tabs in the documentation. We already have 4 :(
Also, I think we discussed that already, but should we remove the maven-shade-plugin configuration from our SAM examples, as SAM is not using it and it can be misleading?

My initial suggestion has been to add the gradle specific configuration to the doc. But you're right, that this has already been discussed so I will close this issue now.


Trigger backoff via E_FIN_FAILED

A consumer can become overwhelmed with messages such that when it's completing them they have already server-side timed out. In this case the client thinks it's ok and keeps FIN'ing messages and getting more and may never be able to work off it's backlog (this situation is worse the higher max-in-flight used).
go-nsq could use the presense of E_FIN_FAILED to trigger backoff just like failing processing in the handler would. This will trigger RDY changes such that message flow drops off so the consumer can recover.

this is a great idea :+1:


add parse form feature

When request method is POST, and Content-Type": "application/x-www-form-urlencoded, and size is less than 1000, try parsing the form.
{
  "level": "debug",
  "time": "2020-09-15T16:45:26.460-0400",
  "msg": "debugging request",
  "request_id": "1d0235b2-09b7-414a-9196-b62a4db1df1f",
  "direction": "incoming",
  "tag": "workshop",
  "method": "POST",
  "proto": "HTTP/2.0",
  "host": "localhost:8443",
  "uri": "/auth/register",
  "remote_addr_port": "<IP_ADDRESS>:58446",
  "remote_addr": "<IP_ADDRESS>",
  "remote_port": 58446,
  "content_length": 89,
  "cookie_count": 0,
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36",
  "referer": "https://localhost:8443/auth/register",
  "cookies": [],
  "query_params": {},
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "en-US,en;q=0.9",
    "Cache-Control": "max-age=0",
    "Content-Length": "89",
    "Content-Type": "application/x-www-form-urlencoded",
    "Origin": "https://localhost:8443",
    "Referer": "https://localhost:8443/auth/register",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-User": "?1",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
  }
}

done.


Add Sentry environments based on Node runtime environment

Problem
In Sentry we can't easily filter between issues affecting Staging and those on Production, as they are all under "admin".
Solution
The Sentry SDK allows different environments to be configured.
We could use process.env.NODE_ENV to create different admin Sentry environments (eg. admin - production), which will then show up in the Sentry UI and allow easy filtering.
We could also provide the release version number (docs), which is taken from process.env.npm_package_version

@warrensearle Please could you check if this was deployed? (I think it was)


Lost funds when testing ChannelAcceptor of lnd

I wrote a simple script to reject mobile wallets using ChannelAcceptor API of LND. I tried to open a channel from my BLW to the LND instance several times, and when the script was crashing, the opening failed (due to timeout, I guess). Eventually I managed to fix it to not crash. To my surprise, BLW still sent the money to some 3... address, while opening no channel (it's not listed in BLW nor in LND). It currently shows zero balance.
I killed the script in order to not cause loss of funds of someone else. I'm not sure if I should publish it. I can send it directly over e-mail.

I've published the code as private repository and sent you an invite.

This is strange because 3... address does not have anything to do with channels. Opening procedure itself is designed such that channel gets saved to db first, then funding gets spent. Are you absolutely sure this is not some unrelated spend? Can you reproduce this, say, on testnet?

Damn, shit, the website containing the QR code for LN URI also had a QR code for off-lightning donation and I didn't notice I accidentally scanned that one. Sorry for false alarm.


isValidNumber issue

I am trying to validate a U.S. phone number but I am getting a false positive.
validatePhoneNumber("3108920")

private boolean validatePhoneNumber(String phoneNumber){
        PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
        try {
            Phonenumber.PhoneNumber usNumberProto = phoneUtil.parse(phoneNumber, "US");            //with default country
            boolean isValid = phoneUtil.isValidNumber(usNumberProto);
            return isValid;
        } catch (NumberParseException e) {
            Timber.e("NumberParseException was thrown: " + e.toString());
        }
        return false;
    }

the call to
PhoneNumberUtil.isValidNumber()
gets a regionCode
String regionCode = getRegionCodeForNumber(number);
However, this regionCode is different than the default region code i passed into
Phonenumber.PhoneNumber usNumberProto = phoneUtil.parse(phoneNumber, "US");
Why is that?

Are you getting true or false as the result of your overall function?

(Just FYI, this does look like something more appropriate to discuss on the discussion
group rather than to file directly as an issue, unless you really are getting true for isValidNumber above)

I am getting true as the result of the overall function.  Internally, this
String regionCode = getRegionCodeForNumber(number)
returns CA and not US.

Aha! Yes indeed that is a valid Canadian number. We use the region code you provide to change it into E164 format, (+13108920) and then this is a valid Canadian number, so we tell you it's valid.
There is another function, isValidNumberForRegion, where you can ask if it's a valid US number, and we'd say no. However, using this function is usually not recommended (read the Java doc for more info).

Also note if you passed in the number +41789223696, with region code US, we'd ignore the region code you provided, and say it's valid, because it is a valid Swiss number - and we know that it's supposed to be interpreted that way because it has a leading + sign. The region code you pass in when parsing is just a recommendation for us to use if it's not clear.

(more info in the javadoc for parse)

I'll close this as it's not an issue with the library. Don't forget you can always join
the discussion
group if you'd
like to discuss this further.

Thanks for clearing this all up and being so responsive.

The second param of this function :
phoneUtil.parse()
is a default region.  This essentially looks like a country code.  Is there a recommended way of determining the country code of an Android device that works across various Android versions and devices?

Can you post this on the discussion list? This is a great qn and maybe other library users have some experience about this.


max_batches None leading to a full validation loop when val_percent_check is set

When I set val_percent_check, the value max_batches is None. Thus, at this line the validation loop continues to run till the full validation batch is done. I don't know why it should happen, but I see there is a check for None, so consider adding this line before:
if not max_batches:
    max_batches = self.nb_val_batches

When you set nb_val_batches, this line calculates the nb_val_batches:
        self.nb_val_batches = int(self.nb_val_batches * self.val_percent_check)

If fast_dev_run is turned on, nb_val_batches = 1.  Otherwise, it uses whatever it calculated.
            max_batches = self.nb_val_batches if not self.fast_dev_run else 1
            for ds_i, dataloader in enumerate(self.val_dataloader):
                val_out_metrics = self.validate(self.model, dataloader, max_batches, ds_i)

So, max_batches is never none.
(because it is set here).
But I do think there were recent fixes made on master. Install the master version?
also cleaned that  up a bit

See #163

@koustuvsinha merged into master. try again? if it's none it's for another reason now. we can reopen if it continues


Optimizes memory instance creation

some tests started failing, so this is wip

this is actually trying to violate the Wasm spec! Closing :D


Add Ruby Module.

Ruby is a popular language, and has a number of tools in its ecosystem which support it.
RVM
The most popular tool is RVM which lets you manage a multiplicity of ruby interperters on your system in the event that you have a bunch of different projects each requiring their own interpreter. If you have RVM installed, this module sets it up for you.
Bundler
Lots of handly aliases for working with bundler which, is basically a requirement for doing any sort of Ruby development.

@ericbn @Eriner This seems ready for merge. Thoughts?

I'm not opposed to the content, but we do need to work out the loading mechanism first, and I don't know if this belongs in the main repo. Most of the modules are utilities and convenience functions that impact almost all users (prompt, archive functions, git). Some of the modules in the repo (pacman, fasd, etc) I would ultimately like to remove from the core repo and move them into their own repos, providing we have some way of loading external modules. The PR looks good, but we need some more discussion and implementation around the ideas mentioned above before we decide how to handle this.

@Eriner Does that mean we need to start repos like homebrew on our own and request the organization zimfw to import it?

@cowboyd, we're moving to a new plugin mechanism (currently on the develop branch) where modules are separate repos. Are you willing to maintain a ruby module in the zimfw organization (in a GitHub zimfw/ruby repository)?

Closing this in favor of https://github.com/zimfw/ruby


Extend SFTP Provider for retrieving new Vendor Files

Extend SFTP to support downloading MARC and other files from a vendor.
From the Vendor Management App, retrieves connection details using the Organization's interface Okapi endpoint.
From Vendor data processing details requirement document, we need to be able to do the following:

Get list of files for given directory

Check to see if the file has already been processed (may require a REST API call to the Vendor Management App)
File may have a  date (@ahafele confirm?) to indicate that it should be skipped in favor of other files in that directory
For some vendors, check the existence of corresponding files before retrieving the target file
Select file based on regex for filename format sometimes there are multiple kinds of files in one directory (maybe push into a different XCOMs for processing by download tasks (i.e. some vendor files are PDFs and would not be loaded into FOLIO as bib records but would need to move to a different server mount)

ii. I think we only look at the date in the filename for marcit and we are not sure that is still needed. I can't think of why we would need to do that still but I will confirm.
iii. Sure, right now we only need this for 1 vendor - GOBI. Order files are built as each order comes in and we know they are done by the existence of a count file. Current processing looks for this corresponding .cnt first then ftps the .ord file.

Questions:

Where is the FTP info for a vendor retrieved from?
What is the given directory?
How do we know if a file has already been processed?
How do we know what the corresponding file is?
Where does regex for filename come from?

More questions:

Is there existing code that we can look at?
Where can we get credentials for vendors to try this out?

More questions:
1. Is there existing code that we can look at?

https://drive.google.com/drive/folders/1hzgitvzgtyeaI-7-W0RNILwFCWySHC57?usp=share_link
2. Where can we get credentials for vendors to try this out?
GOBI is the exemplar vendor right now. details are here - https://docs.google.com/document/d/11JzLJb9kbW4u3dDLZ9_oFtsRtmnPkl0laS4zigQh5X0/edit#bookmark=id.8gbz5q30ybkw
Waiting on approval from Darsi to hit the other vendors' ftp.
Credentials will be stored in Organizations/interfaces.

@jermnelson could you address the other questions.

storytime notes

we want to harvest gobi once a week (e.g. every saturday)
we want file names that fit e.g. some glob or regex from some vendor's FTP site.
download all files that match the regex.
users need to enter or select already entered regex from data mgmt app.
app tells airflow DAG to go harvest e.g. latest file that matches that pattern.
airflow SFTP Provider is what goes and fetches files.

More possibilities for tracking what's been retrieved:

Airflow queries its task execution history for what's been obtained.
Mentioned above also, Airflow looks at shared mount to see what files are already there, since we have a requirement to keep the downloaded MARC files for at least 90 days.

possibly helpful for this ticket: https://github.com/sul-dlss/FOLIO-Project-Stanford/wiki/Vendor-Management---FOLIO---Airflow-Interaction-Diagram

I'm going to start with the simplest possible Task.
Given the inputs:

organization id
interface id
file pattern
remote directory

Get the FTP credentials from the directory.
FTP to the remote server.
Change to the directory.
Download all files that satisfy the pattern. Files will be downloaded to <shared mount>/files/<organization id>/<YYYY-MM-DD>/.

This has been supplanted by other tickets.


file is encrypted or is not a database

I'm using SQLite in my project and getting this error:
EXC_BAD_INSTRUCTION

And the console prints:
fatal error: 'try!' expression unexpectedly raised an error: file is encrypted or is not a database: file /Library/Caches/com.apple.xbs/Sources/swiftlang_PONDEROSA/swiftlang_PONDEROSA-7<IP_ADDRESS>/src/swift/stdlib/public/core/ErrorType.swift, line 50

In Statement.swift, on this line of code:
try! connection.check(sqlite3_prepare_v2(connection.handle, SQL, -1, &handle, nil))

I've tried:

cleaning project
removing SQLite and running git submodule update --init
switch the branch of SQLite to swift-2

Also the project runs fine on my colleagues computer and he didn't have to do any of this.

Are you running SQLCipher? Are you using an encrypted database and running a statement before running Connection.key()?

This was actually an issue with the filePath used being damaged or invalid.
db = try Connection(filePath, readonly: true)

Works after switching filePath.

Glad you were able to resolve! Is this safe to close out now?

Yes, thanks for your help.


chore(Blog): update “2021-11-05-hello”

Automatically generated by Netlify CMS

👷 Deploy Preview for musing-bhabha-bc9764 processing.
🔨 Explore the source changes: dd2a7b2d1d96f8e60ca97442d89da01f12f2f428
🔍 Inspect the deploy log: https://app.netlify.com/sites/musing-bhabha-bc9764/deploys/618515c66650270008f47044


Add warning that legacy libs icuuc and icuin must come before umbrella libs.

Also, a newline was needed between the first and second items in a numbered list.

@rohanp-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Closing PR for internal review.


[useQuery] Doesn't return data if there is an error

This may sound normal.. if there's an error we don't need the data right?
In my case the returning JSON has errors and a data response. I'm using errors for:
1) Alerting that the query they have attempted includes a field they do not have authorization to use (using the Authorization decorator on the server)
2) That one of the particular values isn't correctly formed to match the schema
Example Result:
{
	"errors": [{
			"message": "Value is not a valid postal code: 1234",
			"locations": [{
					"line": 7,
					"column": 5
				}
			],
			"path": [
				"results",
				4,
				"postcode"
			]
		}, {
			"message": "You do not meet the requirements to query this field.",
			"locations": [{
					"line": 7,
					"column": 5
				}
			],
			"path": [
				"results",
				13,
				"ipaddress"
			]
		}
	],
	"data": {
		"results": [{
				"id": "DDFC423E-F36B-1410-8841-004B4332510D",
				"name": "The Name of Something",
				"address": "Some Address",
				"town": "It's Town",
				"isPublished": false,
			},
			{ .... }
		]
	}
}

So is there a way to get the data results even if there is an error?

I think you have to set up error policy on your query.

Awesome thanks :)


Move Frontend to Subdomain

Hey there! I am new to Docker and Traefik, so thanks for bearing with me. Is it possible to move the frontend application to a subdomain rather than the main domain when deploying with Docker Swarm to an AWS EC2? Where would that be defined?
Thanks!

Look at the docker-compse.yml
Specifically the frontend service:
https://github.com/tiangolo/full-stack-fastapi-postgresql/blob/490c554e23343eec0736b06e59b2108fdd057fdc/{{cookiecutter.project_slug}}/docker-compose.yml#L181-L192
Currently the rule is to route to /, what you want is Host(.${DOMAIN?Variable not set}) where <frontend> would be your subdomain.
And when you're at it, you might also want to change the api routing here:
https://github.com/tiangolo/full-stack-fastapi-postgresql/blob/490c554e23343eec0736b06e59b2108fdd057fdc/{{cookiecutter.project_slug}}/docker-compose.yml#L140-L161
You then need to configure your frontend to use this new domain:
https://github.com/tiangolo/full-stack-fastapi-postgresql/blob/490c554e23343eec0736b06e59b2108fdd057fdc/{{cookiecutter.project_slug}}/frontend/.env#L1-L10
For reference look here: https://docs.traefik.io/routing/providers/docker/
I don't have any knowledge on AWS and therefore I can't help you there.

Thanks so much!! I'll try this out and reopen if it doesn't work in production.

Thanks for the help @Biskit1943! 🚀
And thanks for coming back to close the issue @dhruv4 ☕

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


Wrong cursor used in notebook output

Testing #174637
Have the following notebook cell
for i in range(1000):
    print(i)

Notice that the output is the text editor.
Cursor should be an editor cursor, and not the default cursor.

Thanks for the fix. Works nicely -> verified


moveit_msgs: 2.1.0-1 in 'galactic/distribution.yaml' [bloom]

Increasing version of package(s) in repository moveit_msgs to 2.1.0-1:

upstream repository: https://github.com/ros-planning/moveit_msgs.git
release repository: https://github.com/moveit/moveit_msgs-release.git
distro file: galactic/distribution.yaml
bloom version: 0.10.7
previous version for package: null

moveit_msgs
* Sync with master branch up to 460caab <https://github.com/ros-planning/moveit_msgs/commit/460caab755cfe018ad07effd7dd808127a7e5c61> (#120 <https://github.com/ros-planning/moveit_msgs/issues/120>)
* Enable CI on Rolling, Galactic (#117 <https://github.com/ros-planning/moveit_msgs/issues/117>)
* Pre-release testing workflow for ROS 2 (#118 <https://github.com/ros-planning/moveit_msgs/issues/118>)
* Contributors: Jafar Abdi, Henning Kayser, Tyler Weaver, Vatan Aksoy Tezer

@henningkayser unfortunately a previous release that has been merged has caused file conflicts that you'll have to resolve.

@henningkayser unfortunately a previous release that has been merged has caused file conflicts that you'll have to resolve.

sounds familiar, I'll get it done


Card: GT - Framed

Adding file for Framed

Marking Framed

(It's been a while, I hope I haven't forgotten something basic.
I added the card-title to the prompt-title because Gomorra Gaming Commission has shown that players don't know what is happening when the prompt first shows up)

I added the card-title to the prompt-title because Gomorra Gaming Commission has shown that players don't know what is happening when the prompt first shows up

There is no need to add Framed to the prompt title if you have source: this. That will cause that the source card title will appear as a prompt title (text on top of prompt separated by a line). I see that there is no source: this in Gomorra Gaming Commission so that is why the card title is missing.


[WIP] Support subservices

Changes
Support subservices
This PR uses a custom modified OpenAPI spec to showcase the final results.
Tests

[ ] make test passing
[ ] make fmt applied
[ ] relevant integration tests applied

Codecov Report
Attention: 38 lines in your changes are missing coverage. Please review.

Comparison is base (af9e1a1) 18.59% compared to head (8c1db3e) 18.64%.
Report is 1 commits behind head on main.

Files
Patch %
Lines

openapi/code/package.go
55.76%
22 Missing and 1 partial :warning:

openapi/code/service.go
0.00%
10 Missing :warning:

openapi/code/load.go
0.00%
5 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #826      +/-   ##
==========================================
+ Coverage   18.59%   18.64%   +0.05%
==========================================
  Files         117      117
  Lines       21769    21825      +56
==========================================
+ Hits         4048     4070      +22
- Misses      17470    17505      +35
+ Partials      251      250       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Document parameters from YAML file required by generate_parameter_library

This proposal outlines the creation of a feature to parse the .yaml file required by the generate_parameter_library (if the package uses it) and generate a page with a table or bullet points that describe the parameters necessary for the package. The generate_parameter_library sets specific requirements for the fields in the .yaml file, making it easier to translate to a .rst file with parameter descriptions, including details such as description, default_value, and values validation.

Can you point to any examples where someone has take this yaml file, and generated such a page?
Can you point to a few packages that are actually using this file?

Hello @rkent , I don't have an example now. I was documenting a package that I am working on and thought that this feature would be very valuable. About the packages that use the generate_parameter_library, almost all (if not all) ros2_controllers use it. Here is the file used by the diff_drive_controller.

I did a quick scan of rolling, found 'generate_parameter_library(' in CMakeLists.txt for these packages:
generate_parameter_library used in <ur_controllers>
generate_parameter_library used in <control_toolbox>
generate_parameter_library used in <moveit_servo>
generate_parameter_library used in <moveit_planners_stomp>
generate_parameter_library used in <pilz_industrial_motion_planner>
generate_parameter_library used in <moveit_resources_prbt_ikfast_manipulator_plugin>
generate_parameter_library used in <pick_ik>
generate_parameter_library used in <tricycle_steering_controller>
generate_parameter_library used in <gripper_controllers>
generate_parameter_library used in <range_sensor_broadcaster>
generate_parameter_library used in <pid_controller>
generate_parameter_library used in <tricycle_controller>
generate_parameter_library used in <diff_drive_controller>
generate_parameter_library used in <force_torque_sensor_broadcaster>
generate_parameter_library used in <joint_trajectory_controller>
generate_parameter_library used in <imu_sensor_broadcaster>
generate_parameter_library used in <admittance_controller>
generate_parameter_library used in <steering_controllers_library>
generate_parameter_library used in <parallel_gripper_controller>
generate_parameter_library used in <joint_state_broadcaster>
generate_parameter_library used in <forward_command_controller>
generate_parameter_library used in <bicycle_steering_controller>
generate_parameter_library used in <ackermann_steering_controller>
generate_parameter_library used in <trac_ik_kinematics_plugin>
generate_parameter_library used in <generate_parameter_library_example>
It would not be hard to located generate_parameter_library in CMakeLists.txt, extract the name and parameters, then display the raw text of the yaml file (with a little bit of text highlighting). Not saying I will do it, but is not a big job maybe a few hours of work. Don't know if the powers-that-be would support that or not.

Looks like they implemented this feature there. In this case it would only be up to integration


UDP Log plugin add datatypes from schemas

https://konghq.atlassian.net/browse/DOCS-1396 epic to add datatypes to plugins beyond the few template-autogenerated parameters. I'm not logging Jira subtickets because it's a lot of overhead.
Schema links:
https://github.com/Kong/kong-ee/blob/master/kong/plugins/udp-log/schema.lua
https://github.com/Kong/kong/blob/master/kong/db/schema/typedefs.lua (host and port)
Direct review link:
https://deploy-preview-2629--kongdocs.netlify.app/hub/kong-inc/udp-log/

LGTM

Thank you @murillopaula and @Bradamant3


Fix to ignore tables without a pgschema_name parameter

Merging the PR after testing that this is not causing any breakage in the other parts of the code.


Script to update the dependency

Can one of the admins verify this patch?

@sudhirverma thanks for PR :) , little description would be great ;)


[EventRequest] GenJnlPostLine.Codeunit.al (codeunit 12 "Gen. Jnl.-Post Line")

Hi MS,
Please help us in migrating our verticalized solution by adding below events in GenJnlPostLine.Codeunit.al codeunit.
Standard Code

Modified Code

Event Signature

Thanks
SUD

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Hi There,
I missed something in this event request. Actually i am using this event with IncludeSender property Yes.
And now this property is deprecated in coming versions. So can you please suggest us a replacement for that.
I can share piece of code we are using with that reference of Object with IncludeSender.
CustLedgEntry."Journal Batch Name" := "Journal Batch Name";
CustLedgEntry."Reason Code" := "Reason Code";
CustLedgEntry."Entry No." := Sender.GetNextEntryNo(); //NextEntryNo;
CustLedgEntry."Transaction No." := Sender.GetNextTransactionNo(); //NextTransactionNo;
CustLedgEntry."User ID" := USERID;
CustLedgEntry."Bal. Account Type" := "Bal. Account Type";
CustLedgEntry."Bal. Account No." := "Bal. Account No.";
In Above piece of code Sender is reference that we are getting from published event.

Please create a new request for setting the IncludeSender property to True.  Don't forget to mention the precise name of the object and the event. Please always put all details in text instead of screenshots.