Session reconnect gives black screen until screen changes

This is xrdp v0.9.16, xorgxrdp v*.16, Linux, Guacamole, Firefox client, with initial-program (single application, not desktop) set.
When reconnecting to a session by reloading the browser tab, while not moving the mouse the screen remains black. Only when the mouse is moved AND some GUI element is hovered that triggers a "screen change", for example an input element that changes its appearance on hover, or the mouse cursor changing to the text input cursor, the screen goes from black to showing the actual program. If no such alement exists, e.g. when some modal dialog is blocking the rest of the UI, the black screen cannot be cured.
Can you reproduce this with a more simple setup? If not, where else would you report this?

I've had a play with this, and I 'think' I can see what's happening here.
When you hit refresh, guacamole starts a new connection to xrdp. However, the previous connection isn't killed, as it doesn't look like tomcat is closing it promptly.
I've run a simple xterm from guacamole. While it's running, I've got the following connection to port 3389 on my xrdp host (IP addresses removed):-
$ ss 'sport = 3389'
Netid    State    Recv-Q     Send-Q                  Local Address:Port                            Peer Address:Port     Process
tcp      ESTAB    0          0              [<host-address>]:ms-wbt-server         [<guac-address>]:38502

When I hit refresh on firefox, I get a second xrdp connection, but I get a black screen. The first connection is still active :-
$ ss 'sport = 3389'
Netid    State    Recv-Q     Send-Q                  Local Address:Port                            Peer Address:Port     Process
tcp      ESTAB    0          0              [<host-address>]:ms-wbt-server         [<guac-address>]:38506
tcp      ESTAB    0          0              [<host-address>]:ms-wbt-server         [<guac-address>]:38502

After around 10 seconds, tomcat closes the connection and the new connection sequence is able to complete. The delay is down to xrdp being unable to connect to xrdp-chansrv, as it's already occupied.
So it looks to me like the problem is tomcat connection pooling. You should be able to reproduce what I've done above to confirm this.
A workaround on our side could be to run a session without xrdp-chansrv, but we don't currently support that. You'd lose a bit of functionality that way.

Ok thanks. Could you also see the "only mouse triggers session takeover"?

Here's my connections:
Initial Connection:
# ss 'sport = 3389'
Netid                     State                       Recv-Q                       Send-Q                                              Local Address:Port                                             Peer Address:Port
tcp                       ESTAB                       0                            0                                                       [<host-address>]:3389                                                [<host-address>]:58700

Shortly after F5 refresh
# ss 'sport = 3389'
Netid                     State                       Recv-Q                       Send-Q                                              Local Address:Port                                             Peer Address:Port
tcp                       ESTAB                       0                            0                                                       [<host-address>]:3389                                                [<host-address>]:58700
tcp                       ESTAB                       0                            0                                                       [<host-address>]:3389                                                [<host-address>]:58720

About 3 seconds after refresh
# ss 'sport = 3389'
Netid                     State                       Recv-Q                       Send-Q                                              Local Address:Port                                             Peer Address:Port
tcp                       ESTAB                       0                            0                                                       [<host-address>]:3389                                                [<host-address>]:58720

So to me, the problem looks like there is some refresh screen trigger missing after reconnection. At the moment, it's only triggered on "screen content changed".

Nice work. If you're seeing the problem on a browser close and reconnect, there's something else going on here.
Can you post a bit more detail about your VNC server and Linux installation?
I think the next step is to run your application in a 'normal' VNC session (i.e. not started by sesman) so we can connect to it from both xrdp/guacamole and a vnc viewer and see what happens. I'm out of time today, but I can give you a hand with setting that up if you need it.

Setup of server1:
ubuntu 18.04 <- x.org <- xorgxrdp <- xrdp <- guacamole
Client:
guacamole's html5-client
There is no VNC anywhere. I tried to login to RDP from server1 to server1 with remmina, but that didn't work.
/var/log/xrdp.log with "Xorg" selected in the ugly GUI at login:
[20210810-10:40:40] [INFO ] connecting to sesman ip <IP_ADDRESS> port 3350
[20210810-10:40:40] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20210810-10:40:40] [INFO ] sesman connect ok
[20210810-10:40:40] [INFO ] sending login info to session manager, please wait...
[20210810-10:40:42] [INFO ] xrdp_wm_log_msg: login failed for display 0
[20210810-10:40:42] [INFO ] login failed for display 0

with "Xvnc" (does that even make sense?):
[20210810-10:43:31] [INFO ] connecting to sesman ip <IP_ADDRESS> port 3350
[20210810-10:43:31] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20210810-10:43:31] [INFO ] sesman connect ok
[20210810-10:43:31] [INFO ] sending login info to session manager, please wait...
[20210810-10:43:33] [INFO ] xrdp_wm_log_msg: login failed for display 0
[20210810-10:43:33] [INFO ] login failed for display 0

with "neutrinordp-any":
[20210810-10:44:33] [ERROR] xrdp_wm_log_msg: error loading libxrdpneutrinordp.so specified in xrdp.ini, please add a valid entry like lib=libxrdp-vnc.so or similar
[20210810-10:44:33] [INFO ] error loading libxrdpneutrinordp.so specified in xrdp.ini, p
[20210810-10:44:33] [INFO ] lease add a valid entry like lib=libxrdp-vnc.so or similar
[20210810-10:44:33] [ERROR] Failure setting up module

You said without sesman, but looking at the logs, it seems involved. The last log suggests adding a lib= entry, however I wonder why guacamole doesn't need that.

Sorry about the confusion. I've made an assumption which isn't true in your case.
xrdp supports two back-end X servers with these two modules:-

Xorg supports a standard Xorg X server with an additional plug-in which is used to provide RDP compatibility.
Xvnc uses a VNC server (by default TigerVNC on 16.04) with xrdp providing a conversion between the VNC and RDP protocols.

Both modules support most use-cases. The Xorg module can generally provide better performance, but sometimes this requires more work to achieve.
I'd assumed you'd be using the Xvnc module. It's easier to debug in situations like this, as you can use a VNC client to work out where the issue lies. You can also use the Xvnc module to start a new session (using sesman), or to connect to a VNC session which has been started in another manner.
if you don't need the session management in sesman, you don't even need to use xrdp. Guacamole is capable of connecting directly to a VNC server.
I suppose the first question to ask is do you need session management for your use-case?
Assuming you do need session management, It seems strange that you're not able to log in using remmina. The error you're getting is saying that the username and password aren't working. However, exactly the same process is being used for authentication in both cases. I think using remmina is a good idea, as we can then discount Guacamole as causing your problem.
One possibility is keyboard mapping. The characters in your password may not be working for you. You can use the username box to see whether this is the case or not.
Also, is the application you're starting a proprietary one, or is it generally available? One thing I've seen in the past with proprietary apps is that they don't cope with expose events well, and if this is the case might benefit from backing-store being enabled on the X server.

So we've got a problem starting a full session. We could try to solve that, but there's not much point.
In Remmina, on the Advanced tab, you should be able to set the startup program.

If you set that to whatever Guacamole is using, you should be able to reproduce logging in with Guacamole. That's worth a go.

Same blue-green screen when I choose "Xorg" from the dropdown list having set startup program und startup path.
xrdp.log
[20210811-09:47:14] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20210811-09:47:14] [INFO ] sesman connect ok
[20210811-09:47:14] [INFO ] sending login info to session manager, please wait...
[20210811-09:47:14] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20210811-09:47:14] [INFO ] login successful for display 10
[20210811-09:47:14] [INFO ] loaded module 'libxup.so' ok, interface size 10288, version 4
[20210811-09:47:14] [INFO ] started connecting
[20210811-09:47:14] [INFO ] lib_mod_connect: connecting via UNIX socket
[20210811-09:47:14] [INFO ] lib_mod_log_peer: xrdp_pid=27409 connected to X11rdp_pid=13615 X11rdp_uid=1023 X11rdp_gid=1024 client_ip=<IP_ADDRESS> client_port=54306
[20210811-09:47:14] [INFO ] connected ok

.xorgxrdp.10.log
[ 88005.901] rdpClientConGotConnection:
[ 88005.901] rdpClientConGotConnection: g_sck_accept ok new_sck 7
[ 88005.901] rdpClientConGetConnection: idle_disconnect_timeout set to non-positive value, idle timer turned off
[ 88005.901] rdpAddClientConToDev: adding first clientCon 0x5584187b4350
[ 88005.909] rdpClientConProcessMsgVersion: version 0 0 0 1
[ 88005.909] rdpClientConProcessScreenSizeMsg: set width 1280 height 1024 bpp 24
[ 88005.910] rdpClientConProcessScreenSizeMsg: shmemid 6127629 shmemptr 0x7faa2bb00000
[ 88005.910] rdpClientConProcessMsgClientInput: invalidate x 0 y 0 cx 1280 cy 1024
[ 88005.918] KbdSync: toggling num lock
[ 88005.918] rdpClientConProcessMsgClientInfo:
[ 88005.918]   got client info bytes 7064
[ 88005.918]   jpeg support 0
[ 88005.918]   offscreen support 0
[ 88005.918]   offscreen size 0
[ 88005.918]   offscreen entries 0
[ 88005.918]   client can not do offscreen to offscreen blits
[ 88005.918]   client can do new(color) cursor
[ 88005.918]   client can not do multimon
[ 88005.918] rdpRRSetRdpOutputs: numCrtcs 1 numOutputs 1 monitorCount 0
[ 88005.918] rdpRRSetRdpOutputs: update output 0 left 0 top 0 width 1280 height 1024
[ 88005.918] rdpRRUpdateOutput:
[ 88005.918] rdpLoadLayout: keylayout 0x00000407 variant  display 10
[ 88005.918] rdpkeybChangeKeyboardControl:
[ 88005.918] rdpkeybChangeKeyboardControl: autoRepeat on
[ 88005.919] rdpkeybChangeKeyboardControl:
[ 88005.919] rdpkeybChangeKeyboardControl: autoRepeat on
[ 88005.919] rdpkeybChangeKeyboardControl:
[ 88005.919] rdpkeybChangeKeyboardControl: autoRepeat on
[ 88005.919] rdpkeybChangeKeyboardControl:
[ 88005.919] rdpkeybChangeKeyboardControl: autoRepeat on
[ 88006.018] rdpInDeferredRepeatCallback:
[ 88006.018] rdpkeybChangeKeyboardControl:
[ 88006.018] rdpkeybChangeKeyboardControl: autoRepeat off
[ 88006.019] rdpInDeferredRepeatCallback:
[ 88006.019] rdpkeybChangeKeyboardControl:
[ 88006.019] rdpkeybChangeKeyboardControl: autoRepeat off
[ 88006.019] rdpInDeferredRepeatCallback:
[ 88006.019] rdpkeybChangeKeyboardControl:
[ 88006.019] rdpkeybChangeKeyboardControl: autoRepeat off
[ 88006.019] rdpInDeferredRepeatCallback:
[ 88006.019] rdpkeybChangeKeyboardControl:
[ 88006.019] rdpkeybChangeKeyboardControl: autoRepeat off

Is choosing "Xorg" correct for my setup? Shouldn't I choose "neutrinordp-any"? And if so, would I need to set a lib= as suggested in the error message from https://github.com/neutrinolabs/xrdp/issues/1964#issuecomment-895849032 ?

Hi @saddy001
Something occurred to me last night. I was about to post another idea for you (below), but your post came in first. I'll address yours first.
The purpose of neutrinordp-any is to allow xrdp to function as a proxy for other RDP servers (normally Windows machines). To use it, you need to build the libxrdpneutrinordp.so module which isn't provided by default. Since it's not available, you'll get the error messages in https://github.com/neutrinolabs/xrdp/issues/1964#issuecomment-895849032 if you try to use it.
I suspect the blue screen is resulting as xrdp on your system has gotten a bit confused, probably as a result of the things I've been asking you to try. The number in square brackets on each line in .xorgxdp.10.log is the number of seconds since the X server was started. That X server has been running for a day now. I suggest you stop the xrdp service, kill any outstanding Xorg processes, and restart the xrdp service.
The thing that occurred to me last night was I remembered #1906. I'm wondering if your problem is another manifestation of this fault. It sounds like it might be.
We can rule #1906 out by setting the session depth to 24 bit in Guacamole:-

Sorry this is coming across in a bit of a confusing order. It entirely up to you of course, but I'd suggest ruling out the colour depth first.

Nope, didn't change anything ;-)
I also tried changing the resize method (pretty new?) but it's the same either.
Thanks for you investigation. Since I believe to have a workaround and it's a minor bug, you can low-prioritize the issue or even close and try to fix it during a later feature implementation.

Well it bothers me that we're not actually able to work out where the fault actually lies. At the moment it could be Guacamole, xrdp, xorgxrdp, or even your application expose event processing.
I'd like to get that far at least, if you're able and willing to do so.
Can you post the xrdp.log after a successful connection from Guacamole, and also your xrdp.ini? I think it might be worth switching over to the Xvnc backend to see what happens. If you provide that info, I'll give you all the steps you need to try that.

Successful login from guac with screen appearing instantly:
[20210811-12:41:40] [INFO ] Socket 12: AF_INET connection received from <IP_ADDRESS> port 54822
[20210811-12:41:40] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20210811-12:41:40] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20210811-12:41:40] [INFO ] Connected client computer name: Guacamole RDP
[20210811-12:41:40] [WARN ] Received [MS-RDPBCGR] TS_UD_HEADER type 0xc006 is unknown (ignored)
[20210811-12:41:40] [WARN ] Received [MS-RDPBCGR] TS_UD_HEADER type 0xc00a is unknown (ignored)
[20210811-12:41:40] [INFO ] xrdp_load_keyboard_layout: keyboard_type [4] keyboard_subtype [0]
[20210811-12:41:40] [INFO ] xrdp_load_keyboard_layout: model [] variant [] layout [de] options []
[20210811-12:41:40] [INFO ] TLS connection established from <IP_ADDRESS> port 54822: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384
[20210811-12:41:40] [INFO ] xrdp_caps_process_pointer: client supports new(color) cursor
[20210811-12:41:40] [INFO ] xrdp_process_offscreen_bmpcache: support level 1 cache size 7864320 MB cache entries 2000
[20210811-12:41:40] [WARN ] Client Capability: not enough orders supported by client, client wants off screen bitmap but offscreen bitmaps disabled
[20210811-12:41:40] [INFO ] Loading keymap file /etc/xrdp/km-00000407.ini
[20210811-12:41:40] [WARN ] local keymap file for 0x00000407 found and doesn't match built in keymap, using local keymap file
[20210811-12:41:40] [INFO ] connecting to sesman ip <IP_ADDRESS> port 3350
[20210811-12:41:40] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20210811-12:41:40] [INFO ] sesman connect ok
[20210811-12:41:40] [INFO ] sending login info to session manager, please wait...
[20210811-12:41:40] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20210811-12:41:40] [INFO ] login successful for display 10
[20210811-12:41:41] [INFO ] loaded module 'libxup.so' ok, interface size 10288, version 4
[20210811-12:41:41] [INFO ] started connecting
[20210811-12:41:41] [INFO ] lib_mod_connect: connecting via UNIX socket
[20210811-12:41:41] [INFO ] lib_mod_log_peer: xrdp_pid=29200 connected to X11rdp_pid=29230 X11rdp_uid=1023 X11rdp_gid=1024 client_ip=<IP_ADDRESS> client_port=54822
[20210811-12:41:41] [INFO ] connected ok

/etc/xrdp/xrdp.ini (it's the default that comes with xrdp)
[Globals]
; xrdp.ini file version number
ini_version=1

; fork a new process for each incoming connection
fork=true

; ports to listen on, number alone means listen on all interfaces
; <IP_ADDRESS> or :: if ipv6 is configured
; space between multiple occurrences
; ALL specified interfaces must be UP when xrdp starts, otherwise xrdp will fail to start
;
; Examples:
;   port=3389
;   port=unix://./tmp/xrdp.socket
;   port=tcp://.:3389                           <IP_ADDRESS>:3389
;   port=tcp://:3389                            *:3389
;   port=tcp://<any ipv4 format addr>:3389      <IP_ADDRESS>:3389
;   port=tcp6://.:3389                          ::1:3389
;   port=tcp6://:3389                           *:3389
;   port=tcp6://{<any ipv6 format addr>}:3389   {FC00:0:0:0:0:0:0:1}:3389
;   port=vsock://<cid>:<port>
port=3389

; 'port' above should be connected to with vsock instead of tcp
; use this only with number alone in port above
; prefer use vsock://<cid>:<port> above
use_vsock=false

; regulate if the listening socket use socket option tcp_nodelay
; no buffering will be performed in the TCP stack
tcp_nodelay=true

; regulate if the listening socket use socket option keepalive
; if the network connection disappear without close messages the connection will be closed
tcp_keepalive=true

; set tcp send/recv buffer (for experts)
#tcp_send_buffer_bytes=32768
#tcp_recv_buffer_bytes=32768

; security layer can be 'tls', 'rdp' or 'negotiate'
; for client compatible layer
security_layer=negotiate

; minimum security level allowed for client for classic RDP encryption
; use tls_ciphers to configure TLS encryption
; can be 'none', 'low', 'medium', 'high', 'fips'
crypt_level=high

; X.509 certificate and private key
; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
certificate=
key_file=

; set SSL protocols
; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'
ssl_protocols=TLSv1.2, TLSv1.3
; set TLS cipher suites
#tls_ciphers=HIGH

; concats the domain name to the user if set for authentication with the separator
; for example when the server is multi homed with SSSd
#domain_user_separator=@

; Section name to use for automatic login if the client sends username
; and password. If empty, the domain name sent by the client is used.
; If empty and no domain name is given, the first suitable section in
; this file will be used.
autorun=

allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
#hidelogwindow=true
max_bpp=32
new_cursors=true
; fastpath - can be 'input', 'output', 'both', 'none'
use_fastpath=both
; when true, userid/password *must* be passed on cmd line
#require_credentials=true
; when true, the userid will be used to try to authenticate
#enable_token_login=true
; You can set the PAM error text in a gateway setup (MAX 256 chars)
#pamerrortxt=change your password according to policy at http://url

;
; colors used by windows in RGB format
;
blue=009cb5
grey=dedede
#black=000000
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72

;
; configure login screen
;

; Login Screen Window Title
#ls_title=My Login Title

; top level window background color in RGB format
ls_top_window_bg_color=009cb5

; width and height of login screen
ls_width=350
ls_height=430

; login screen background color in RGB format
ls_bg_color=dedede

; optional background image filename (bmp format).
#ls_background_image=

; logo
; full path to bmp-file or file in shared folder
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50

; for positioning labels such as username, password etc
ls_label_x_pos=30
ls_label_width=65

; for positioning text and combo boxes next to above labels
ls_input_x_pos=110
ls_input_width=210

; y pos for first label and combo box
ls_input_y_pos=220

; OK button
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30

; Cancel button
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30

[Logging]
; Note: Log levels can be any of: core, error, warning, info, debug, or trace
LogFile=xrdp.log
LogLevel=INFO
EnableSyslog=true
#SyslogLevel=INFO
#EnableConsole=false
#ConsoleLevel=INFO
#EnableProcessId=false

[LoggingPerLogger]
; Note: per logger configuration is only used in XRDP_DEBUG builds of XRDP.
#xrdp.c=INFO
#main()=INFO

[Channels]
; Channel names not listed here will be blocked by XRDP.
; You can block any channel by setting its value to false.
; IMPORTANT! All channels are not supported in all use
; cases even if you set all values to true.
; You can override these settings on each session type
; These settings are only used if allow_channels=true
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true

; for debugging xrdp, in section xrdp1, change port=-1 to this:
#port=/tmp/.xrdp/xrdp_display_10

;
; Session types
;

; Some session types such as Xorg, X11rdp and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=<IP_ADDRESS>
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=<IP_ADDRESS>
port=-1
#xserverbpp=24
#delay_ms=2000
; Disable requested encodings to support buggy VNC servers
; (1 = ExtendedDesktopSize)
#disabled_encodings_mask=0
; Use this to connect to a chansrv instance created outside of sesman
; (e.g. as part of an x11vnc console session). Replace '0' with the
; display number of the session
#chansrvport=DISPLAY(0)

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=<IP_ADDRESS>
#delay_ms=2000

[neutrinordp-any]
name=neutrinordp-any
lib=libxrdpneutrinordp.so
ip=ask
port=ask3389
username=ask
password=ask
; Currently NeutrinoRDP doesn't support dynamic resizing. Uncomment
; this line if you're using a client which does.
#enable_dynamic_resizing=false

; You can override the common channel settings for each session type
#channel.rdpdr=true
#channel.rdpsnd=true
#channel.drdynvc=true
#channel.cliprdr=true
#channel.rail=true
#channel.xrdpvr=true

As I said I wouldn't like to make breaking changes (Xvnc) to the system as it runs fine.

Thanks,
Looking at the log file, you're using the Xorg backend :-
[20210811-12:41:41] [INFO ] loaded module 'libxup.so' ok, interface size 10288, version 4

So we can try the VNC backend if you're willing. I understand that this must be possible to back out. I suggest you read the whole of this message and then make a decision as to whether you want to go further with this.
I note that you're using Ubuntu 16.04. This is out of standard support but in extended support. I don't know what the status of the mirrors are for it.
First thing is to see if you've got a VNC server installed. This can be done with this command:-
Xvnc --help

If you get some sort of output a VNC server is installed. If you get command not found, one isn't.
If no VNC server is installed, you can install one with sudo apt install tigervnc-standalone-server. This may or may not work, depending on whether your mirrors are still carrying 16.04. If they are, tigervnc-standalone-server will be installed, plus any dependent packages. Make a note of all the packages that are installed.
Once the VNC server is installed, swap over to using it as follows:-

Copy /etc/xrdp/xrdp.ini to /etc/xrdp/xrdp.ini.sav
Edit /etc/xrdp/xrdp.ini and use # characters to comment out these lines:-#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=<IP_ADDRESS>
#port=-1
#code=20

The next stanza should be [Xvnc], and Guacamole will default to using this
Restart the xrdp service

Try to connect from Guacamole and see what happens.
To revert:-

Copy /etc/xrdp/xrdp.ini.sav to /etc/xrdp/xrdp.ini
Restart the xrdp service
Use sudo apt remove tigervnc-standalone-server to remove the VNC server (if you installed it)
Use sudo apt remove ... to remove any additional packages that were installed along with the VNC server.

Identifying the faulty component is definitely progress. Thanks for making the changes.
I'm sure we can get the VNC colours sorted out, but if the performance is worse there's little point. Let's discount that option.
Having a look through the xorgxrdp issues and PRs, I've come across neutrinolabs/xorgxrdp#186. This could well be DAMAGE related.
Looking at your previous posts, you're more than capable of compiling xorgxrdp. Would you like to try J's PR? Let me know if you need a hand.

I used the branch https://github.com/jsorg71/xorgxrdp/tree/damage which fixes this issue. Idle and busy network load is the same for xorgxrdp v*.16 and the branch.

That's great news - thanks for sticking with my blundering about, and I'm glad we found a solution to your problem. Also, thanks for the interesting discussion.
I see you've added a comment to the PR which should close this issue automatically when it gets merged.

I ran into this issue and I've found a different way to reproduce it.
I set up a fresh ubuntu 20.04 vm, cloned the latest xrdp and xorgxrdp from github, built and installed them, and got it all working as expected using the Xorg backend.
I connected using xfreerdp running on the same vm and established a session.  It's important that the session be completely static with nothing changing, not even a blinking cursor.  In my case, I'm using
xfreerdp ... /shell:"/usr/bin/google-chrome about.google" (i know, using chrome is a bit overkill, but...)
So far so good.  Everything working as expected.
Now, without closing the first session, in another terminal I run the same xfreerdp command to steal the session from the first xfreerdp instance.  Sometimes it works but usually I get a black screen instead of chrome and it does not show the chrome window until I move the mouse cursor over it.
Doing a bit of a manual bisect, I traced the problem to this commit: https://github.com/neutrinolabs/xorgxrdp/commit/aff6ef80c917e764acc65d741a29ebf9740adafd
In particular it's the
if (clientCon->shmemstatus == SHM_UNINITIALIZED || clientCon->shmemstatus == SHM_RESIZING) {   ...   return 0; }
at line 2465+ in rdpClientCon.c.  It seems that, when stealing a session, most of the time shmemstatus is SHM_RESIZING on the very first call to rdpDeferredUpdateCallback and so it skips it.
I don't understand xorgxrdp well enough to know how to fix this correctly so I'll leave that to the experts.

I wrote that line, though I wouldn't necessarily call myself an expert. I'm closer to a devoted fan who has debugged XRDP with lots of blood, sweat, and tears.
The reason for that fix is due to the need for the memory buffer status to be consistent with what's in it. Without this, resize-on-the-fly is unstable with xorgxrdp.
If you remove that line, does this issue go away? I'd be surprised if it does, because SHM_RESIZING means that nothing has initialized the shared memory buffer yet.
I'm happy to work through this with you, however.

Also interesting: What does the damage branch do differently to shmemstatus

It does not crash if I comment out that line and the problem does go away.  But I agree with you that that line is necessary.
I did a little more digging and I think I see what's going on.  According to the xorg log, things are happening in this order:

rdpClientConProcessScreenSizeMsg is setting shmemstatus to SHM_RESIZING and allocating some shared memory
rdpDeferredUpdateCallback is called but exits early because of shmemstatus
rdpClientConProcessMsgClientInfo is then called, which reallocates the shared memory only if RFX or H264 are active, and then sets shmemstatus appropriately
since the screen is static, no further updates are sent to the client until client input is received

Because I'm not using RFX or H264, the shared memory allocated in rdpClientConProcessScreenSizeMsg is sufficient and the check in rdpDeferredUpdateCallback is not necessary.  But I don't think that will be the case if either of RFX or H264 are active.
So, I propose that we leave your commit intact and just invalidate the entire screen at the end of rdpClientConProcessMsgClientInfo:
rdpClientConAddDirtyScreen(dev, clientCon, 0, 0, clientCon->rdp_width, clientCon->rdp_height);

That seems to take care of the black screen problem for me but I don't know if it will have unintended side effects.
@saddy001, the damage branch does not include the commit in question so it does not even have the shmemstatus variable.

I think that fix is reasonable. Invalidate is a pretty benign operation, and is called frequently throughout xorgxrdp. I struggle to think of any reason this might be bad. Submit a PR and you'll get my approval, and excellent work!
The damage branch is interesting. It shouldn't be necessary since, in theory, all xorg drawing calls are supposed to be intercepted by xorgxrdp and then processed. The fact that damage is necessary is a bug because it means something is not intercepted that should be, unless damage IS the necessary way to intercept certain calls, which would be unfortunate.
I worry about damage causing performance issues, and I need to test that. I hope to get to that soon.
Also: If you're interested in how resize-on-the-fly works with the in progress hardware accelerated egfx branch, check these out:
https://github.com/jsorg71/xrdp/commit/3b45cddca0342aa8068962efd0b42463c398db7b
https://github.com/jsorg71/xrdp/pull/6


"Add to Cart button" in wish list page

Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Currently, only remove button exists in list. "Add to cart" might be useful because user need not the following procedure: 1) click the each item -> 2) Add to cart -> 3) Return to Wish list
Describe alternatives you've considered
Two possible approaches seems to be available here to solve this problem.

New button here
No. | SKU | Name | Price | Action

Action column can contain + button and x button:
+ (Copy) : Copy to Cart, and the item still exists in wishlist
+ (Move) : Move to Cart, and the item is deleted from wishlist
x : Remove button
Customers' favorites shopping item list can be managed with these three buttons because wishlist can be favorites list for now with these three buttons.

New button here
No. | SKU | Name | Price | Add to Card |  Remove

I think solution 1 is better and flexible for future extendability, but it might retuire a little more work than solution 2.
Additional context

it appears in premium version :)

Oh, I see. Can I ask the other differences of features between 2 versions?

S-Cart is free with foundation construction and basic functions. Users will customize their own requirements.
The premium version is also built using s-cart/core. However, the template and functions will be better improved.


Remove -ms/-o-box-shadow and -ms/-o-box-sizing

IE and Opera supported the nonprefixed box-shadow and box-sizing properties since they implemented them.

Nice find. Thanks.


adding config for NCI

Description
Distinguishing config.json for NCI and docker versions
Checklist
Please confirm that this pull request has done the following:

[ ] Verify that wrfout files are created on test domain

Notes

Test of adding comment with gh-cli

Merging and updating docs in #13


TOML node type sections

We probably support this in TOML
[tabulatedratingcurve]
static = "path/to/some/file.arrow"

I assumed we had TabulatedRatingCurve (the node type) as a section name, but we use this, extracted from all the schemas:
julia> Ribasim.nodetypes
10-element Vector{Symbol}:
 :tabulatedratingcurve
 :linearresistance
 :basin
 :fractionalflow
 :control
 :levelboundary
 :pump
 :flowboundary
 :manningresistance
 :terminal

I'd like to avoid this spelling since it is hard to read, and use flow_boundary for instances, and FlowBoundary for the type.
However we cannot use capitals or underscores in the Legolas schema names, so I'm not sure how to fix this. It's hard to automatically go from flowboundary to FlowBoundary (or flow_boundary).
https://github.com/Deltares/Ribasim/blob/15f4499a955378fa82f7c13e8049cb8d62f0b834/core/src/validation.jl#L2

However we cannot use capitals or underscores in the Legolas schema names

That is unfortunate, I wonder what made them disallow underscores.
If they allow uppercase letters, it should still be easy to transform names automatically

I wouldn't say it is that urgent, though it's a breaking change so best not to wait too long either.

This could be partially backwards compatible:
[tabulatedratingcurve] could be aliased ([TabulatedRatingCurve])
static = "path/to/some/file.arrow"

However, should static then also be Static?

I don't think it is important to be backwards compatible, since it's not used yet. And static can IMO stay lowercase.


When examining a deep JSON structure it would be useful to allow a "re-run" and stay on the item

When a script outputs a JSON structure, Xplore presents top level attributes in Name/Type/Value list - allowing items to be selected.
It is possible to navigate to a deep item to view.
If "Run" is selected the navigation starts again at the top.
It would be useful to be able "Re-run" the script and "stay" on the item you were previously viewing and get a refreshed update - rather than having to renavigate.
This is (possibly) linked #61

It's a good point and something I occasionally come across myself.

Navigation has been improved with the updates for #61


fix: Break word when line overflows

When a word is too big to fit in a line in HTML and PDF outputs, break the word.
Fixes #687

Code is fine, maybe change commit message to "when line overflows" instead of "when the overlap" for clarity?

I have updated the commit message.


Update community.py

member invite link fix
double check behind me to make sure I didn't mess something up with it please

Hey Mori, at first glance I'm wondering if you meant to keep /community/join/ after cURL on line 283? 293 looks good, but 283 is missing that path.
My family is arriving soon so I can't build and check this weekend, but can Monday.

That seems like a mistake, I added that back in, let me know if it seems okay when you're able to check on it


Cross build some projects to scala.js

This PR adds cross building to js to most modules (Only interpreters can't be converted due to the contextual dependency)
I changed the dir where srcs are located as it is what the scala.js plugin expects.
Another change is that URL isn't avilable for js, I changed the CellEncoder/CellDecder for URL to URI. It is possible to restore the URL one for jvm only. Let me know if you prefer it
This complicates a bit the build but I'm glad that most modules can be converted.
I've tested running the xml module on the browser already
Fixes #58

Note that I try to run all tests in both platforms but leaving the ones that need files to run on the JVM only

I included the suggested changes

I just published a 0.8.0-SNAPSHOT with this PR merged, if you want to give it a try.

I can't find it any repo, should it be in sonatype snapshots?

That's where I pushed it :thinking: I don't know if it needs some time to replicate for the snaphsots repo as well, but I also cannot find it on sonatype snapshots repo. I will wait a few hours to see if it appears, and if not I'll have another look tomorrow.

Ok, I found it, I made a typo in SNAPSHOT so it was published to a staging repo, waiting to be released. Now it should be there for you to test.

Thanks now I got it and it is working fine on my cross compiled project

Happy to read that!


Neovim freezes when adding headings to large org files

Describe the bug
My main org file is 1026 lines (currently) and 11297 words. I noticed that when attempting to add third level headings on a particular task Neovim would completely freeze (it won't accept any terminal input; had to kill the process). Experimenting further with the file, I discovered that if I wait long enough, I get a message about redrawtime being exceeded (I don't have the specific error at hand, sorry). Further typing around the asterisk will produce another freeze.
Steps to reproduce

Open this anonymized version of my todo.org file
The problem specifically occurred at line 520, so 520G
Insert a new line with o
Type an asterisk

Expected behavior
Neovim shouldn't freeze when adding headlines.
Emacs functionality
No response
Minimal init.lua
-- Set Leader:
vim.g.mapleader = " "
local nvim_root = '/tmp/nvim_orgmode'
local lazy_root = nvim_root .. '/lazy'
local lazypath = lazy_root .. '/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
  root = lazy_root,
  lockfile = nvim_root .. '/lazy.json',
  spec = {
    {
      "nvim-orgmode/orgmode",
      config = function(_, opts)
        require("orgmode").setup_ts_grammar()
        require("nvim-treesitter.configs").setup({
          highlight = {
            enable = true,
            additional_vim_regex_highlighting = { "org" },
          },
          ensure_installed = { "org" },
        })
        require("orgmode").setup(opts)
      end,
      dependencies = {
        {
          "nvim-treesitter/nvim-treesitter",
        },
      },
    },
  },
})
-- # vim:ts=2:sw=2:sts=2:expandtab

Screenshots and recordings
No response
OS / Distro
Arch linux
Neovim version/commit
NVIM v0.10.0-dev-684e930
Additional context
Another thing to note, I tried this project's minimal_init.lua file. Doing so doesn't produce the error, but when I use that file (nvim -u ./minimal_init.lua todo.org), folding is disabled because foldexpr is set to 0 and none of the maps I would expect in orgmode appear to be working (I tried >> on a headline and C-<space on a checkbox, neither work).  In the minimal init I supplied, foldexpr is set to nvim_treesitter#foldexpr() as one would expect.
This makes me think there's something going on with treesitter's fold function, but I'm not sure if that's the case or even how to debug it. I've tried disabling foldexpr with my minimal init file, and the problem persists.

Hi,
The problem appears because adding a * at that line actually switches ~500 lines to a drawer because some of the lines above and below are not properly parsed. That switch re-parses all the markup again and that causes the freeze.
Thanks for reporting. I'll let you know once this is fixed.

This issue should be fixed now. Just pull the latest master and do :TSUpdate org to fetch the latest tree-sitter grammar.


$Content.Parse breaks [embed] shortcode.

When using .Parse in a template, to parse for example BBCodes, (giving the BBCodeParser as the to-use parser), the embed shortcode isn't parsed anymore.
Also, it's entirely XML escaped, I guess that's on purpose? If so, may I ask why?

This remembers me of the 2.x era ;)

It looks like a relic from 2.x :D

Delete .parse?
Make sure parse returns a HTMLText object and the shortcode will be parsed and it will be escaped appropriately... I hope

It's the DBText.Parse() method, which is a relic, that should be moved to the Forum module, since it's the only module that actively uses it.
Also, it relies on the very outdated BBCodeParser.

Then we know what to do

Will try to address in #5653

Fixed with https://github.com/silverstripe/silverstripe-framework/pull/5653 :D


Fix examples on macOS

While working on https://github.com/dimforge/bevy_rapier/pull/10 I discovered that the examples crashed on macOS due to the chosen Msaa setting. This default should be safer (and works on macOS for me).

Unless I am mistaken, this PR is a subset of #10 which has been merged. So we can close this one.
Thanks!


checking for the typeof value for being an object is not sufficient

null also is of type object. this will result in an application crash e.g. when the eq-helper is called without an key.

Obsoleted by #107 changing the check.


Updated ListTile layout

Updated ListTile's layout to match the current Material spec: https://material.io/design/components/lists.html#specs
Unless textScaleFactor causes the layout to overflow,  the title and subtitle baselines are now located per the spec. Similarly the height of the tile and the layout of the title/subtitle relative to the leading widget are as specified.
Added a contentPadding parameter to ListTileTheme and ListTile to enable overriding the default 16dps padding on the tile's left and right .

(modulo nits)


When creating a generic container that is hosted on http it shows https in the end of the flow

Description
The links to the CoreX port and start shell command are starting with https. However, they are listening on HTTP.
Steps to reproduce
Deploy a flist with CoreX enabled

Thank for reporting

fixed in #786

Commit_ID 38e429f9e1071e0cde795c99824018059cf031fa , Branch development


Arbitrary json structure, not just tables!

dat doesn't have to have a flat schema. It may be able to handle json objects of arbitrary structure as "rows". hard to visualize/transform to csv (flattening json is easy one way, not back), but there are ways to handle that.
The hard part is figuring out how to version/interleave the changes. https://github.com/joshdata/jot might solve most of it.
irc discussion for context
22:18 <jbenet> ogd: omg max, i just realized that dat doesn't have to have a flat schema. It should totally be able to handle json objects of arbitrary structure. hard to visualize/transform to csv, but there are ways to handle that.
22:19 <jbenet> this would make dat so much more powerful
22:19 <jbenet> or.. does it already do this and I just didn't see it before?
22:22 <•ogd> jbenet: you can just put a json object in a cell
22:23 <jbenet> ogd: but that's not versioned smartly
22:23 <jbenet> it would version the whole object, not the individual updates to the structure.
22:23 <•ogd> jbenet: right. its unclear if the complexity tradeoffs are worth it
22:23 <jbenet> and the jot thing would close the loop here
22:24 <jbenet> OT is the right way to do versioning
22:24 <jbenet> that module is awesome (the idea at least, not sure whether it works)
22:24 <•ogd> yea
22:25 <•ogd> levelgraph kind of does this
22:26 <jbenet> jot + dat handling arbitrary json = http://i.imgur.com/EMrknJP.gif
22:26 <•ogd> lol
22:27 <•ogd> jbenet: i had a similar idea a couple months ago when working with geojson which is usually pretty nested
22:27 <jbenet> i'll make an issue, we can revisit this later.
22:27 <jbenet> it's not critical for release one,
22:27 <•ogd> jbenet: the idea is that you can flatten json into flat k/v pairs
22:27 <•ogd> jbenet: i was thinking it would be cool to be able to get this query syntax http://npmjs.org/json-select but straight from leveldb
22:28 <jbenet> yeah, you can certainly go one way (back is not so easy, unless you control the input too.)
22:28 <jbenet> we totally should be able to. protobuf-select :)

i think this is supported now


Restore all windows after "Close All Windows" is triggered if configured

VSCode Version: 1.13.1
ProductName: Mac OS X
ProductVersion: 10.12.5
BuildVersion: 16F73

"window.reopenFolders": "all"

Is not working properly, because if I close all VS Code windows and I open again VS Code I get empty window, I call it untitled project, because there's nothing.

On Linux Ubuntu everything was OK, if I close VS Code with my for e.g. folder 'test' and I open again VS Code, VS Code remembers it and opens my folder 'test', but on Mac something is wrong, because if I close my for e.g. folder 'test' and open again VS Code, VS Code doesn't remembers it and opens untitled project.

Okey, I get it, if I close VS Code with cmd + Q when it remembers my last folders, but if close it just with X it doesn't so I don't know if it's still a problem or no.

Hi @bpasero , I guess that this is the same as when we right click the icon and select "Close all Windows" in Issue #207. Same problem with window.restoreWindows": "all" in insiders build.

I would argue that "Close All Windows" should not restore the windows because you are actually closing all of them. In the same way if you close a single window we would never restore it.
If you use File > Exit the windows will restore properly and that is the intent of the window.reopenWindows setting.

Ok, I can see your concern but actually I don't close vscode that way :) Perhaps it's possible to add a configuration option, to restore the windows, if I choose "close all windows" from the  windows taskbar.

I don't close vscode that way :)

This. I wasn't even aware that there was such an opinion, plus the fact that it behaves differently than when we directly close the window is weird.
When I have a single window I close it by pressing the X button. When I enable the "restore tabs" behaviour all editors and browsers that I can think of restore all tabs. When dealing with "Close All Windows" I would expect the same behaviour.

Not sure if it is the same problem but I can reproduce the problem under Linux (Gnome):

Version 1.16.1
Commit 27492b6bf3acb0775d82d2f87b25a93490673c6d
Date 2017-09-14T16:26:20.018Z
Shell 1.7.3
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

I have configured:
"window.restoreWindows" : "one"
But I get an empty window when I reopen FROM DASH BAR. If I open VS Code through app search (Windows Key) everything is properly restored


Close all folders and subfolders on a single click

It would be nice if there was a button or a command that would close all opened folders and subfolders in a workspace. I have multiple large projects and sometimes I want to close all of the folders and subfolders that were opened during the development in a single click. Because right now, I have to close every single subfolder in the tree in order to close all of the subfolders and folders.
Example:

You have opened multiple folders and subfolders in your workspace during the development. And now you want to close them all at once so that no folder or subfolder is opened. Like you just started a new project with multiple folders and subfolders and none of them were opened previously.
You have a button or a command that will close all of the opened folders and subfolders.

Before

After

is "After" what you are trying to achieve? if so I think you want this button,

OMG yes! I had no idea that there is already a button for my issue! Thanks!


[zh]Resync pod-lifecycle.md

Resync page content/zh-cn/docs/concepts/workloads/pods/pod-lifecycle.md
Remove extra spaces
Add a space between Chinese and English: gRPC 健康检查

/lgtm

/retest

/lgtm
/approve


Slack is out of date

Issue description
master has 3.2.1. Slack has 3.3.1.
Also not sure who the maintainer is (if there is one), but... if you are the maintainer, maintain it. There is no point in putting your name somewhere, if you don't.

I honestly would have thought that @r-ryantm would have got this https://repology.org/metapackage/slack/versions

@worldofpeace I'd be happy to have nixpkgs-update/r-ryantm upgrade nonfree packages, but they don't appear in https://nixos.org/nixpkgs/packages-unstable.json.gz so Repology doesn't pick them up. You can also see how your Repology link isn't tracking nixpkgs/nixpkgs-unstable for Slack.
Here is the issue tracking this problem: https://github.com/NixOS/nixpkgs/issues/17126

@ryantm Thanks for the info :+1:


Can't Login after update Serene from 2.9.21 to 3.5.5

Hi @volkanceylan
I was using Serene with .NET Core 1.1 and update it to 2.0
When i try to log in application its just refreshing the page, not error in navigator console or in application,
do u have any idea how to solve this ?
Thanks

did u check the changelog?
there were some breaking changes...

No i didn't, where i can check this ? @ga5tan

Closing due to inactivity.

i have port my project and its working now,
consider fixing this, if every time I upgrade I have to migrate the project, it becomes unfeasible

lol dude, consider upgrading your project more often and reading changelog.
breaking change most of the time means, there was no way around it to make it backward compatible...


netrw does not show directory contents

Describe the bug
When opening a directory with netrw with netrw_liststyle=3 and netrw_list_hide='^\..*', the directory listing contains only the current directory, and it is not possible to navigate into it.
To Reproduce

Start vim with this minimal vimrc file:

set nocompatible
let g:netrw_liststyle=3
let g:netrw_list_hide='^\..*'

Open the current directory with netrw (:e .)
Now the directory list contains only ../ and currentdir/. It's not possible to open currentdir/, it loops back to the same directory listing.

Expected behavior
The file/directory browser lists all files and directories in the current directory.
Environment:

Vim version 8.2.0368-1
netrw version v169
OS: Debian unstable

Additional context
The same behavior already exists in version 8.1.2136-1, but not yet in 8.1.0875-5 (from Debian stable).
I reported the bug already to the Debian BTS: https://bugs.debian.org/942549

The backslash in the pattern was essentially being ignored by the filter() command.  I've now "escape()"d it, so please try netrw v170a from my website.

On Wed, Mar 11, 2020 at 06:34:56PM -0700, cecamp wrote:

The backslash in the pattern was essentially being ignored by the filter() command.  I've now "escape()"d it, so please try netrw v170a from my website.

Thanks, I can confirm that the new version fixes it for me.


sign net46\Microsoft.TestPlatform.Build.dll

@Faizan2304,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Stats stopped updating

My stats stopped updating for some time now. My user name is didierj.

Same issues: #1326 #1330

This was caused by the queue for the background jobs being backed up. I've let @jhoffner know about this yesterday and he increased the number of servers processing the jobs. It may take some time to catch up.

Closing this as the queue is no longer backed up.


How to implement without Maven?

Hi, I'm trying to implement this on my console application, a project without Maven. I downloaded all the dependencies from the JARs files, but when it compiles I get a lot of errors.
In ListUtil class, fullList method, I get an error saying that the getCursor() is not implemented. This call is from ListResponse.
Other case that happened is on the Pushbullet class on gson property. It gave this error:
The constructor PushbulletContainerPostProcessor(Pushbullet) is undefined
Could you help me?

I had to do this as well. I got everything from this site http://mvnrepository.com/artifact/com.github.sheigutn/pushbullet-java-8/1.3.4
Just go through all the dependencies recursively and download all their dependencies and so on until you reach ones with no dependencies. You get about 23 jars including pushbullet-java-8. Then just all those jars to your build path.
You only really need the dependencies in the compile and provided dependencies sections that are not marked optional, but it's worth considering optional ones and the ones in the testing dependencies section.
My libraries folder for my project looks a bit like this:

avalon-framework-4.1.5.jar
avalon-logkit-2.2.1.jar
commons-codec-1.10.jar
commons-logging-1.2.jar
geronimo-jms_1.1_spec-1.1.1.jar
gson-2.6.2.jar
gson-fire-1.5.1.jar
hamcrest-core-1.3.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
httpmime-4.5.2.jar
javax.mail-api-1.5.5.jar
javax.servlet-api-3.1.0.jar
javax.websocket-api-1.1.jar
log4j-api-2.5.jar
log4j-core-2.5.jar
mockito-core-1.10.19.jar
objenesis-2.2.jar
org.osgi.core-6.0.0.jar
pushbullet-java-8-1.3.4.jar
twitter4j-core-4.0.4.jar
twitter4j-stream-4.0.4.jar
tyrus-standalone-client-1.12.jar

It's not worked. :disappointed:
Even downloading the JARs dependencies, when compiled throws the same error.

I've just compiled a version with all the dependencies. Download it here.

Now it works! Thanks!


[Event Request] Report 7391 - OnInsertPurchaseReturnOrderLine

Hi Team,
In Report 7391 we need possibility to have our additional checks . Having event in the trigger OnPostDataItem, would be a perfect solution :

[IntegrationEvent(false, false)]
local procedure OnInsertPurchaseReturnOrderLine(var PurchaseLineTemp: Record "Purchase Line"; var PurchaseHeader: Record "Purchase Header"; var PurchaseLine: Record "Purchase Line"; var SetBinCodeToPurchReturnOrder: Boolean; DestinationType2: Option MovementWorksheet,WhseInternalPutawayHeader,ItemJournalLine,TransferHeader,InternalMovementHeader,,,,,,,,,,,PurchReturnHeader)

Hi @MantasGurinas . Please clarify parameters, looks like they have been taken from other place.

Hi @MantasGurinas , any update from your side?

Hi @RomanZanizdra , it looks like it was a mistake. I'm closing this issue until we fix the issue.


Can't run VS address sanitizer on Windows-2022 runner

Description
(Initially posted in the community discussions, but then I found this repo and thought an issue here might be better.)
I'm having trouble running an executable compiled with Visual Studio with Address Sanitizer enabled, on the Windows runners.
Here's a minimal repro: https://github.com/Reedbeta/gha-asan-test
This is VS's canned hello-world app, which I've modified by enabling ASan in the Debug configuration.
Now, running ASan requires clang_rt.asan_dynamic-x86_64.dll to be on the PATH. This will be the case when running through a VS developer command prompt, so in my GHA setup I've used the setup-msvc-dev action to do this.
I've verified that the clang ASan DLL is present in the expected directory on the runner, i.e. C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.37.32822\bin\HostX64\x64, and I've verified that directory is on the PATH, e.g. I can invoke cl.exe and it's found.
However, running my hello-world app with ASan on the Windows runner fails immediately with no output and an exit code -1073741502, which maps to 0xc0000142 which is STATUS_DLL_INIT_FAILED.
I cannot reproduce this on my own machine (Windows 11 10.0.22621.2715, VS Community 17.7.3, same toolchain version 14.37.32822). For me, the app runs without error.
Platforms affected

[ ] Azure DevOps
[X] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
Image: windows-2022
Version: 20231115.2.0
Failed run: https://github.com/Reedbeta/gha-asan-test/actions/runs/6997736159/job/19035042249
Is it regression?
Unknown
Expected behavior
Executables compiled with ASan should run successfully.
Actual behavior
The executable fails with exit code -1073741502.
Repro steps
Fork https://github.com/Reedbeta/gha-asan-test and run the "Build and Test" action.

hello, @Reedbeta , I'm a bit confused with the whole idea. You use https://github.com/marketplace/actions/setup-msvc-developer-command-prompt and probably issue should be reported there. What do you think ?

also, I've added
    - name: check PATH
      run: |
        ${env:PATH}.Split(';').Where({ $_ -like '*Hostx64*' }) | gci -filter '*asan*'
      shell: pwsh

and libs are in the PATH:
https://github.com/ilia-shipitsin/gha-asan-test/actions/runs/7004748447/job/19053131076

Hi @ilia-shipitsin, thanks for taking a look. I don't think the setup-msvc-dev action has anything to do with this, I just used it to get the proper directory on PATH. We can try another method of adding the directory to the PATH (not using the action) if you like - but, as you verified, the ASan component is installed and DLLs are indeed present on the PATH. Also note the error code for a missing DLL is a different one, STATUS_DLL_NOT_FOUND, while here I'm getting STATUS_DLL_INIT_FAILED.
So this seems to be some other issue or incompatibility with the runner configuration. After some googling I found this thread which sounds like similar symptoms, but it was marked fixed more than two years ago.

maybe you will find useful to upload a binary via artifacts and investigate it locally

also, we installed VS 17.8.1 (the latest one available), are you running the same locally ?

@Reedbeta
I enabled user dump collection
https://github.com/ilia-shipitsin/gha-asan-test/blob/main/.github/workflows/build.yml#L22-L54
here's dump: https://github.com/ilia-shipitsin/gha-asan-test/actions/runs/7008887175
windbg says there's something wrong with ASAN. looks like VS regression (?!)
*** WARNING: Check Image - Checksum mismatch - Dump: 0x37ae17, File: 0x37f596 - C:\ProgramData\Dbg\sym\KERNELBASE.dll\7472090C36f000\KERNELBASE.dll
*** WARNING: Unable to verify checksum for ConsoleApplication1.exe

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 250

    Key  : Analysis.Elapsed.mSec
    Value: 3820

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 3

    Key  : Analysis.IO.Write.Mb
    Value: 21

    Key  : Analysis.Init.CPU.mSec
    Value: 93

    Key  : Analysis.Init.Elapsed.mSec
    Value: 11130

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 76

    Key  : Failure.Bucket
    Value: BREAKPOINT_80000003_clang_rt.asan_dynamic-x86_64.dll!__interception::InterceptionFailed

    Key  : Failure.Hash
    Value: {41579315-1333-eda9-0c4d-516f537fd2e8}

    Key  : Timeline.OS.Boot.DeltaSec
    Value: 349

    Key  : Timeline.Process.Start.DeltaSec
    Value: 3

    Key  : WER.OS.Branch
    Value: fe_release

    Key  : WER.OS.Version
    Value: 10.0.20348.1

FILE_IN_CAB:  ConsoleApplication1.exe.8100.dmp

NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

APPLICATION_VERIFIER_FLAGS:  0

CONTEXT:  (.ecxr)
rax=0000000000000000 rbx=00007ff846b7f801 rcx=f0d1ac4a12e10000
rdx=0000000000000000 rsi=00007ff846b7f850 rdi=0000000000000000
rip=00007ff87be09f62 rsp=00000042e5deea18 rbp=0000000000000000
 r8=000000000000005a  r9=000000000000005b r10=0000000000000069
r11=00000042e5deea00 r12=00007ff84136347c r13=00007ff8414035a0
r14=00007ff842206a48 r15=0000000000000000
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
KERNELBASE!wil::details::DebugBreak+0x2:
00007ff8`7be09f62 cc              int     3
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ff87be09f62 (KERNELBASE!wil::details::DebugBreak+0x0000000000000002)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]:<PHONE_NUMBER>000000

PROCESS_NAME:  ConsoleApplication1.exe

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

 Also, we do not run e2e asan tests assuming those are run on the VS side

Thanks for getting the crash dump and callstack, that's helpful. It looks like this is a very similar failure to the ones reported previously here and here. I suspect an incompatibility with the version of ASan and the version of Windows on the runner, or some other software on the runner. It probably needs to be addressed with either VS or LLVM.

Hey @Reedbeta and @ilia-shipitsin, it looks like all of the links to the failures above have Visual Studio 17.7 and not 17.8 (the path shows 14.37.32822 which is a 17.7 distribution).
Is the latest Visual Studio version (linked here actually correct?

@zacklj89 , image version and included software should be correct

according to those numbers, I assume we hit a regression on 17.8.0 (but I might be wrong).
also, I tried to build&run manually on the most recent image (not released yet, but planned soon) which is shipped with 17.8.1, as for manual run there were no failure

@uNetworkingAB could you link to one of the linker errors? Also, which image and Visual Studio version are you using?

Hello,
Same problem here, CTest and ASAN return a 0xc0000142) all others workflows works ( Ubuntu, Clang and GCC sanitizer, MSVC without ASAN). Works fine on my windows 11 machine and I'm not able to reproduce it locally.
The job (Exit code 0xc0000142) :

1: Test command: D:\a\core\core\target\test\Debug\test_core.exe "--gtest_output=xml:test_core_report.xml" "--extra-verbose" "--gtest_break_on_failure"
1: Working Directory: D:/a/core/core/target/test
1: Test timeout computed to be: 10000000
1/1 Test #1: core .............................Exit code 0xc0000142
***Exception:   1.63 sec

Something is wrong with windows-latest

I have the exact same problem. Suddenly all my msvc asan builds on gh actions started failing with this dll error. I can't reproduce it locally on Windows 11 with 17.8.0
@Reedbeta why close the issue?

Closed it because based on the conversation it didn't seem like the github team was going to investigate or try to address this here. 🤷🏻♂ I guess I'll reopen it since a lot of people are hitting this.

Hey @Reedbeta and @iboB! Very sorry to see this bug bothering you again.
Since we are talking about Windows images, and the release of the new version has just been completed, could you check the situation at the current moment and indicate on which version the problem is repeated/not repeated. In more detail, I need you to run your pipeline again with the build that returned or is returning an error, check the version of the image and send it here, ideally along with a link to unsuccessful runs, if there are any.

@erik-bershel, yes. Still fails. Repro from seconds ago: https://github.com/iboB/actions-msvc-asan-bug/actions/runs/7218137272/job/19675605146#step:6:60

exited with code -1073741502

There's still something wrong though.
If you see my link above, you'll notice that both vcvars and cmake set the paths and toolchain to 14.37.32822, which admittedly is not the latest version on that machine as it also has 14.38.33130.
The thing is that for some reason cmake just refuses to select 14.38.33130.
I'm still not sure what's the problem here, but something is not right

For future ref: I was finally able to make it work with the Ninja generator. The Visual Studio 17 2022 simply refuses to select the proper toolchain

Yeah, I can't get it to work either, with -T v143,version=14.38.33130. CMake doesn't find that version. In fact, I tried the older 14.37.32822 and CMake can't find that with it explicitly specified, either. The same command line syntax works fine for me locally.
Something seems messed up with either the VS installation or CMake installation on this image.

Seeing the same with just cmake ..; cmake --build . --config Debug, implicit msbuild, and a configuration that worked on older images.

@fredemmott see my example, I don't even use anything other than the simplest clang++ use

Update: with the latest runner image, windows-2022 version 20240108.1.0, using the setup-msvc-dev action with the 14.38.33180 toolchain explicitly selected (as suggested here), my app is able to run in ASan.
    - name: Setup MSVC dev command prompt
      uses: TheMrMilchmann/setup-msvc-dev@v3
      with:
        arch: x64
        toolset: 14.38.33130

Curiously CMake (with the VS2022 generator) is still saying The CXX compiler identification is MSVC 19.37.32826.1 – which doesn't even match any of the toolchain versions listed on the machine (14.37.32822 is there but there is no 32826??), so I have no idea where it's getting that number – but nonetheless ASan builds and runs for me with this where it doesn't otherwise.
Also in case it's useful for anyone, here's a snippet to list the installed MSVC toolchains on the machine. Maybe someone can figure out how to wire this into setup-msvc-dev so that it always selects the latest installed one.
    - name: List installed MSVC toolchains
      run: Get-ChildItem -Path "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC" -Name

Hello can you please be more specific on what exactly you did to make it work? Sorry I don't understand what you did to fix the problem. I have LINK : fatal error LNK1104: cannot open file 'clang_rt.asan_static_runtime_thunk-x86_64.lib'

The linker is trying to link the library file that does not exist in the filesystem. Interesting, isn't it? setup-msvc actions do not help of course. Any MSVC expert around maybe? ;-)
LINK : fatal error LNK1104: cannot open file 'clang_rt.asan_dbg_dynamic_runtime_thunk-x86_64.lib'

Existing similar files:
2024-06-14T22:15:41.0864272Z ##[group]Run Get-ChildItem -Path C:\ -Filter "clang_rt.asan*" -Recurse | Select-Object -ExpandProperty FullName
2024-06-14T22:15:41.0865441Z Get-ChildItem -Path C:\ -Filter "clang_rt.asan*" -Recurse | Select-Object -ExpandProperty FullName
2024-06-14T22:15:41.0901155Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
2024-06-14T22:15:41.0901666Z ##[endgroup]
2024-06-14T22:36:30.2131212Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_cxx-x86_64.lib
2024-06-14T22:36:30.2136406Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_dll_thunk-x86_64.lib
2024-06-14T22:36:30.2138850Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
2024-06-14T22:36:30.2140824Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_dynamic-x86_64.dll
2024-06-14T22:36:30.2142941Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_dynamic-x86_64.lib
2024-06-14T22:36:30.2145107Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan_static-x86_64.lib
2024-06-14T22:36:30.2146986Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan-preinit-x86_64.lib
2024-06-14T22:36:30.2149227Z C:\Program Files\LLVM\lib\clang\18\lib\windows\clang_rt.asan-x86_64.lib
2024-06-14T22:42:56.4732216Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_cxx-i386.lib
2024-06-14T22:42:56.4734004Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_dll_thunk-i386.lib
2024-06-14T22:42:56.4735802Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_dynamic_runtime_thunk-i386.lib
2024-06-14T22:42:56.4737332Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_dynamic-i386.dll
2024-06-14T22:42:56.4739548Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_dynamic-i386.lib
2024-06-14T22:42:56.4741624Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan_static-i386.lib
2024-06-14T22:42:56.4743302Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan-i386.lib
2024-06-14T22:42:56.4746154Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\lib\clang\17\lib\windows\clang_rt.asan-preinit-i386.lib
2024-06-14T22:42:57.0543603Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_cxx-x86_64.lib
2024-06-14T22:42:57.0545346Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_dll_thunk-x86_64.lib
2024-06-14T22:42:57.0547124Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
2024-06-14T22:42:57.0549119Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_dynamic-x86_64.dll
2024-06-14T22:42:57.0550863Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_dynamic-x86_64.lib
2024-06-14T22:42:57.0552530Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan_static-x86_64.lib
2024-06-14T22:42:57.0554257Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan-preinit-x86_64.lib
2024-06-14T22:42:57.0555827Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\lib\clang\17\lib\windows\clang_rt.asan-x86_64.lib
2024-06-14T22:42:57.5171414Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x86\clang_rt.asan_dynamic-i386.dll
2024-06-14T22:42:58.1608915Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\clang_rt.asan_dynamic-i386.dll
2024-06-14T22:43:00.5545228Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan_cxx-i386.lib
2024-06-14T22:43:00.5547151Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan_dll_thunk-i386.lib
2024-06-14T22:43:00.5548821Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan_dynamic_runtime_thunk-i386.lib
2024-06-14T22:43:00.5551247Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan_dynamic-i386.lib
2024-06-14T22:43:00.5553142Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan-i386.lib
2024-06-14T22:43:00.5554438Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\lib\x86\clang_rt.asan-preinit-i386.lib
2024-06-14T22:43:04.2076952Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\clang_rt.asan_dbg_dynamic-x86_64.dll
2024-06-14T22:43:04.2080130Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\clang_rt.asan_dbg_dynamic-x86_64.pdb
2024-06-14T22:43:04.2082940Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\clang_rt.asan_dynamic-x86_64.dll
2024-06-14T22:43:04.2085529Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\clang_rt.asan_dynamic-x86_64.pdb
2024-06-14T22:43:04.2784561Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x86\clang_rt.asan_dbg_dynamic-i386.dll
2024-06-14T22:43:04.2787776Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x86\clang_rt.asan_dbg_dynamic-i386.pdb
2024-06-14T22:43:04.2790435Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x86\clang_rt.asan_dynamic-i386.dll
2024-06-14T22:43:04.2792046Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x86\clang_rt.asan_dynamic-i386.pdb
2024-06-14T22:43:04.5766026Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64\clang_rt.asan_dbg_dynamic-x86_64.dll
2024-06-14T22:43:04.5768541Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64\clang_rt.asan_dbg_dynamic-x86_64.pdb
2024-06-14T22:43:04.5770557Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64\clang_rt.asan_dynamic-x86_64.dll
2024-06-14T22:43:04.5772005Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64\clang_rt.asan_dynamic-x86_64.pdb
2024-06-14T22:43:04.6062687Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x86\clang_rt.asan_dbg_dynamic-i386.dll
2024-06-14T22:43:04.6065569Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x86\clang_rt.asan_dbg_dynamic-i386.pdb
2024-06-14T22:43:04.6067894Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x86\clang_rt.asan_dynamic-i386.dll
2024-06-14T22:43:04.6070539Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x86\clang_rt.asan_dynamic-i386.pdb
2024-06-14T22:43:08.0072211Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\clang_rt.asan_dbg_dynamic-x86_64.lib
2024-06-14T22:43:08.0074572Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
2024-06-14T22:43:08.0077012Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\clang_rt.asan_dynamic-x86_64.lib
2024-06-14T22:43:08.0078733Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\clang_rt.asan_static_runtime_thunk-x86_64.lib
2024-06-14T22:43:08.0937433Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\onecore\clang_rt.asan_dbg_dynamic-x86_64.lib
2024-06-14T22:43:08.0939876Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\onecore\clang_rt.asan_dynamic_runtime_thunk-x86_64.lib
2024-06-14T22:43:08.0942175Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\onecore\clang_rt.asan_dynamic-x86_64.lib
2024-06-14T22:43:08.0943657Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x64\onecore\clang_rt.asan_static_runtime_thunk-x86_64.lib
2024-06-14T22:43:08.2415578Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\clang_rt.asan_dbg_dynamic-i386.lib
2024-06-14T22:43:08.2417840Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\clang_rt.asan_dynamic_runtime_thunk-i386.lib
2024-06-14T22:43:08.2419415Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\clang_rt.asan_dynamic-i386.lib
2024-06-14T22:43:08.2420966Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\clang_rt.asan_static_runtime_thunk-i386.lib
2024-06-14T22:43:08.3020172Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\onecore\clang_rt.asan_dbg_dynamic-i386.lib
2024-06-14T22:43:08.3022837Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\onecore\clang_rt.asan_dynamic_runtime_thunk-i386.lib
2024-06-14T22:43:08.3025174Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\onecore\clang_rt.asan_dynamic-i386.lib
2024-06-14T22:43:08.3027734Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\lib\x86\onecore\clang_rt.asan_static_runtime_thunk-i386.lib

i'm newbie with sanitizer, I'm having a lot of problems with this, I simply want to debug my project with sanatize and I can't
i compile with my Makefile with clang++ -fsanatize=address main.cpp -o app.exe -g, run the exe, and nothing happens.
my file has literally a heap allocation with no delete.
i'm on windows

Setting env variable ASAN_WIN_CONTINUE_ON_INTERCEPTION_FAILURE=1 helps with this issue (at least for me).
In my case, it seems ASAN is unable to wrap memmove function during startup. But ignoring this failure seems to not break anything critical for me.


Allows WebSocket servers to easily override default HTTP behavior.

Here's the deal:

You serve HTTP requests by overriding serve() on NanoHTTPD.
NanoWebSocketServer (we should call it NanoWSD, as in WebSocket Daemon, btw ... if nothing else, it's consistent with NanoHTTPD) handles upgrade requests by overriding serve(), and if a request isn't a ws upgrade request it returns the default serve() from NanoHTTPD, which defaults to a 404 http response.

Which leads to the following problem:
If you want a webserver to handle both HTTP and WS, your only solution would be to override the serve() method in NanoWSD (yes I'm already calling it that, I really like it :p ), because you can no longer reach into NanoHTTPD.serve(), and then copy 90% of the code from NanoWSD.serve() into MyWebServer.serve(), which is really bad and just plain wrong in OOP.
Of course you could just have NanoHTTPD running in one port and NanoWSD in another, but that has it's own issues:

You may be unable to bind more than one port, which keeps you from running both servers.
1.1) If there are SRV records pointing a domain name to a specific port on a server you don't own, the above applies.
You have 2 servers running instead of 1, which means double the threads, double the memory used, double everything... and I really like to obsess over performance and memory footprints.
I like to complain over little things... and that's an issue because you'll be seeing me more often from now on :p

@elonen what do say about the name? I am ok with NanoWSD

Yes, I like it too.


Local install using skaffold on MacOS

Following this guide and using minikube as suggested here, I have issues to run skaffold dev on hlf-k8s and backend. For frontend, I got the expected lines in the terminal.
For hlf-k8s, orderer, org 1 and org 2 are deployed and then I got these warnings:
WARN[0051] error adding label to runtime object: patching resource org-1/network-org-1-peer-1-hlf-k8s-hook-desinstall-chaincode: jobs.batch "network-org-1-peer-1-hlf-k8s-hook-desinstall-chaincode" not found
WARN[0057] error adding label to runtime object: patching resource org-2/network-org-2-peer-1-hlf-k8s-hook-cleanup: jobs.batch "network-org-2-peer-1-hlf-k8s-hook-cleanup" not found
WARN[0058] error adding label to runtime object: patching resource org-2/network-org-2-peer-1-hlf-k8s-hook-desinstall-chaincode: jobs.batch "network-org-2-peer-1-hlf-k8s-hook-desinstall-chaincode" not found
Watching for changes...

followed by several lines [DEBUG] and [INFO] finishing by:
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] tar: Removing leading `/' from member names
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-idcert created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-idkey created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-cacert created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-tls created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-client-tls created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-tlsrootcert created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-client-tlsrootcert created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-admincert created
[network-org-2-peer-1-hlf-k8s-bootstrap-peer-4qp64 fabric-tools] secret/hlf-adminkey created

and after stoping the process with ctrl+c:
Cleaning up...
Error: jobs.batch "network-orderer-hlf-k8s-hook-cleanup" already exists
Error: jobs.batch "network-org-1-peer-1-hlf-k8s-hook-cleanup" already exists
release "network-org-2-peer-1" deleted

For the backend, I got these kind of lines over and over:
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] INFO - 2020-01-03 15:41:52,296 - events.apps - Retry to connect the event application to the ledger
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] ERROR - 2020-01-03 15:41:53,307 - events.apps - <_MultiThreadedRendezvous of RPC that terminated with:
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	status = StatusCode.UNAVAILABLE
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	details = "failed to connect to all addresses"
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	debug_error_string = "{"created":"@1578066113.307234644","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3941,"referenced_errors":[{"created":"@1578066113.307230733","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":393,"grpc_status":14}]}"
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] >
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] Traceback (most recent call last):
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/src/app/events/apps.py", line 150, in ready
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     with get_hfc() as (loop, client):
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/local/lib/python3.6/contextlib.py", line 81, in __enter__
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     return next(self.gen)
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/src/app/substrapp/ledger_utils.py", line 122, in get_hfc
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     loop, client = LEDGER['hfc']()
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/src/app/backend/settings/deps/ledger.py", line 62, in get_hfc_client
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     decode=True
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/local/lib/python3.6/asyncio/base_events.py", line 488, in run_until_complete
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     return future.result()
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/local/lib/python3.6/site-packages/hfc/fabric/client.py", line 1844, in query_channels
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     res = await asyncio.gather(*responses)
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]   File "/usr/local/lib/python3.6/site-packages/aiogrpc/channel.py", line 40, in __call__
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend]     return await fut
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	status = StatusCode.UNAVAILABLE
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	details = "failed to connect to all addresses"
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] 	debug_error_string = "{"created":"@1578066113.307234644","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3941,"referenced_errors":[{"created":"@1578066113.307230733","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":393,"grpc_status":14}]}"
[backend-org-1-substra-backend-server-cdc97b8db-d2l79 substra-backend] >

I tried with minikube v1.5.1 and v1.6.0 and helm v2.16.1.

Hello and thanks for opening the issue.
 I suggest you cleanup your environment using kubectl delete ns orderer org-1 org2 (That should get rid of everything left if any). And start skaffold dev again.
The warnings coming from Skaffold and from some of the first jobs are expected as they are trying to reach services that are not running yet (it takes a few minutes for everything to start).
If you still have issues, could you show us the status of the various jobs and pod running and ideally a pastebin (or similar) link to the full logs.

Hello,
thank you for your help ! I reset everything and finally managed to get expected lines for backend and frontend but I still have problems with hlf-k8s.
Now it seems stuck after these lines:
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:23.763 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:23.770 UTC [cli.common] readBlock -> INFO 002 Received block: 3
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:23.772 UTC [cli.common] readBlock -> INFO 003 Received block: 1
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:23.772 UTC [channelCmd] fetch -> INFO 004 Retrieving last config block: 1
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:24.022 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] go package net: GODEBUG setting forcing use of Go's resolver
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:24.099 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
[network-org-1-peer-1-hlf-k8s-add-org-mychannel-myorg2-g6bz7 fabric-tools] 2020-01-07 14:38:24.115 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
[network-org-2-peer-1-hlf-k8s-channel-join-0-lgtw7 fabric-tools] 2020-01-07 14:38:25.592 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
[network-org-2-peer-1-hlf-k8s-channel-join-0-lgtw7 fabric-tools] 2020-01-07 14:38:25.598 UTC [cli.common] readBlock -> INFO 002 Received block: 0
[network-org-2-peer-1-hlf-k8s-channel-join-0-lgtw7 fabric-tools] 2020-01-07 14:38:25.652 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
[network-org-2-peer-1-hlf-k8s-channel-join-0-lgtw7 fabric-tools] 2020-01-07 14:38:25.683 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel

Do you have any idea why it doesn't go any further?
Thanks

Hello @celinejacques, thanks for opening this issue.
That's the expected behaviour. It looks like that the hyperledger network has been started successfully.

Great then !
I was expecting the line given in the readme:
[network-org-2-peer-1-hlf-k8s-chaincode-install-0-4bdd4 fabric-tools] 2019-11-14 09:14:52.070 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" >

Perfect if there is the expected behaviour, I can move forward!
Thanks for your help

It's not deterministic, some jobs run in parallel so you can't really know from the order of the logs. If all the Jobs have run successfully then yes you are good to go ;)


Incorrect BitVector width in SMT2 code produced by yosys

Version
Yosys 0.37 (git sha1 a5c7f69ed8f, gcc 13.2.1 -march=x86-64 -mtune=generic -O2 -fno-plt -fexceptions -fstack-clash-protection -fcf-protection -ffile-prefix-map=/build/yosys/src=/usr/src/debug/yosys -fPIC -Os)
Also confirmed on Yosys 0.38+113 (git sha1 91fbd5898, clang++ 16.0.6 -fPIC -Os)
On which OS did this happen?
Linux
Reproduction Steps
The bug can be reproduced using the following example module: TwoBufferExample.zip.

Within yosys, I load the Verilog file using read_verilog TwoBuffer.v.
I apply proc to to the loaded modules.
Using write_smt2 TwoBuffer.smt2, I generate a SMT2 description of the modules.

Expected Behavior
The SMT2 description generated by yosys should contain correct type annotations, such that a solver like z3 can interpret it without any errors. For the given example, the declaration of |TwoBuffer#4| (representing r1.o within the TwoBuffer module) should have a result type of (_ BitVec 32). A full version of the expected SMT2 output can be found in the linked example.
Actual Behavior
The SMT2 description generated by yosys contains an incorrect bitwidth for the o wire in cell \r1 within the TwoBuffer module. In the declaration of function |TwoBuffer#4|, the produced result type is (_ BitVec 1) instead of the expected (_ BitVec 32). When interpreting that SMT2 output with z3, the following error appears.
(error "line 68 column 68: Sorts (_ BitVec 1) and (_ BitVec 32) are incompatible")

A full version of the actual SMT2 output can be found in the linked example.

Thank you for the quick and helpful response! I'm fairly new to Verilog and circuit verification, so that's actually a misunderstanding on my side. Also thank you for the remark on notation!

so writing r2.i and r1.o doesn't actually reference those signals from the other module. Instead, it implicitly creates new nets (an unfortunate feature of verilog), which are defaulted to a width of 1 here.

That sounds like a Yosys bug, because the Verilog standard doesn't say we should be creating implicit wires for identifiers which look like hierarchical references, so we should error out on those occurrences, I think.


backport: bitcoin#12134, #18426, #18534, #18828, #18864, #19153, #19201, #19205, #19560, #19813, #19859, partial #20354, #20955, #22442, #22790

Issue being fixed or feature implemented
That's the last batch of backports from bitcoin v20. Beside that there's some related backports from other versions and related fixes.
Note for reviewer: please, notice, that some particular commits are not dashified because later on theirs code is changed or removed in next backports of this PR. But final version of all changes is dashified (except wallet_upgradewallet.py that was backported some time ago in past and it still doesn't work).
What was done?
Backports:

Merge bitcoin/bitcoin#12134
Merge bitcoin/bitcoin#18426
Merge bitcoin/bitcoin#18534
Merge bitcoin/bitcoin#18828
Merge bitcoin/bitcoin#19201
Merge bitcoin/bitcoin#19153
Merge bitcoin/bitcoin#18864
Merge bitcoin/bitcoin#19205
Merge bitcoin/bitcoin#19560
Merge bitcoin/bitcoin#19813
Merge bitcoin/bitcoin#19859
Merge bitcoin/bitcoin#20955
Merge bitcoin/bitcoin#22442
partial Merge bitcoin/bitcoin#20354
Merge bitcoin/bitcoin#22790

Missing changes from other backports that were done before:

bitcoin/bitcoin#18067
bitcoin/bitcoin#18253
bitcoin/bitcoin#18774
bitcoin/bitcoin#18873
bitcoin/bitcoin#20034

All these backports are bringing next changes:

new functional test mempool_compatibility.py
new functional test feature_backwards_compatibility.py
enables backported before functional test wallet_upgradewallet.py
utility script test/get_previous_releases.py to get binaries with previous version

Although, wallet_upgradewallet.py is disabled intentionally - it's not adopted for dash specific so far as HD wallets are not enabled by default atm.
How Has This Been Tested?
Run unit/functional tests.
Beside that tested new functional script. Steps to do it:
$ test/get_previous_releases.py -b v19.3.0 v18.2.2 v<IP_ADDRESS> v<IP_ADDRESS> v<IP_ADDRESS>
$ test/functional/test_runner.py feature_backwards_compatibility.py mempool_compatibility.py wallet_upgradewallet.py
feature_backwards_compatibility.py | ✓ Passed  | 15 s
mempool_compatibility.py           | ✓ Passed  | 4 s
wallet_upgradewallet.py            | ○ Skipped | 1 s
ALL                                | ✓ Passed  | 20 s (accumulated)

Breaking Changes
N/A
Checklist:

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added or updated relevant unit/integration/functional/e2e tests
[x] I have made corresponding changes to the documentation
[x] I have assigned this pull request to a milestone

samettek approved these changes

little too early, it was not ready for review yet

LGTM, will utACK after https://github.com/dashpay/dash/pull/5490 merge

This pull request has conflicts, please rebase.

LGTM, will utACK after https://github.com/dashpay/dash/pull/5490 merge

rebased to top of develop

maybe also ad2ab002a9 cause why having unused files/hashes listed there? (I know they have it in bitcoin but it makes no sense to me and we are dashifying the list anyway)

@knst knst force-pushed the bc-bp-v20-missing-8v2 branch from 03ed63d to f78bde4

applied suggestions and removed one commits that should not belong to this PR https://github.com/dashpay/dash/commit/62019974f47c34174a8f506cde1ac126707f465e

maybe also https://github.com/dashpay/dash/commit/ad2ab002a970bf225da85c0c21bd3af63609b3c8 cause why having unused files/hashes listed there? (I know they have it in bitcoin but it makes no sense to me and we are dashifying the list anyway)

I made this list not based on list of files, that bitcoin used, but based on list of hashes that we provide with each release, for example for version 19.3.0 I used this list of hashes:  https://github.com/dashpay/dash/releases/download/v19.3.0/SHA256SUMS.asc
a4b555b47f5f9a5a01fc5d3b543731088bd10a65dd7fa81fb552818146e424b5  dashcore-19.3.0-aarch64-linux-gnu.tar.gz
531bb188c1aea808ef6f3533d71182a51958136f6e43d9fcadaef1a5fcdd0468  dashcore-19.3.0-osx.dmg
1b4673a2bd71f9f2b593c2d71386e60f4744b59b57142707f0045ed49c92024b  dashcore-19.3.0-osx64.tar.gz
d23cd59ab3a230ebb9bd34fa6329e0d157ecfdbd133f171dfdfa08039d0b3983  dashcore-19.3.0-riscv64-linux-gnu.tar.gz
b5c1860440f97dbb79b1d79bcc48fb2dcc7f0915dd0c4f9fc77aba9cab0294f3  dashcore-19.3.0-win64-setup.exe
8a288189bd4b7c23bb1f917256290dd606d9d47a533dcede0c6190a8f4722e1a  dashcore-19.3.0-win64.zip
c2f3ff5631094abe16af8e476d1197be8685ee20601deda5cad0c34fc879c3de  dashcore-19.3.0-x86_64-linux-gnu.tar.gz
b4bb6bec21213e47586607657e69b0a53905e3c32e2e8e650e93db54dce572d8  dashcore-19.3.0.tar.gz

Instead choosing which exactly files is used for which version I just included all of them for any possible further changes and whatever new file would be required by further changes in related scripts. So, I don't feel like removing some hashes from list is "dashyfication", it's more for me as an extra step of clean-up used data.
@UdjinM6 , please, tell me if you still want me to remove all hashes that are not used.

@PastaPastaPasta when merging this PR, please, include this text to merge-commit message (all a PR description):

All these backports are bringing next changes:

new functional test mempool_compatibility.py
new functional test feature_backwards_compatibility.py
enables backported before functional test wallet_upgradewallet.py
utility script test/get_previous_releases.py to get binaries with previous version

Although, wallet_upgradewallet.py is disabled intentionally - it's not adopted for dash specific so far as HD wallets are not enabled by default atm.
Steps to run new functional tests locally:
$ test/get_previous_releases.py -b v19.3.0 v18.2.2 v<IP_ADDRESS> v<IP_ADDRESS> v<IP_ADDRESS>
$ test/functional/test_runner.py feature_backwards_compatibility.py mempool_compatibility.py wallet_upgradewallet.py
feature_backwards_compatibility.py | ✓ Passed  | 15 s
mempool_compatibility.py           | ✓ Passed  | 4 s
wallet_upgradewallet.py            | ○ Skipped | 1 s
ALL                                | ✓ Passed  | 20 s (accumulated)

@knst knst force-pushed the bc-bp-v20-missing-8v2 branch from f78bde4 to 59d64a9

and
@knst knst force-pushed the bc-bp-v20-missing-8v2 branch from 59d64a9 to 582f1d4
to rebased on top of newer commit in develop


Allow dependently-typed object method declarations and fix subtyping

Purpose
This PR

allows dependently-typed object method declarations. Any class or object constructor that references/includes the type has to have an external implementation. Fixes https://github.com/ballerina-platform/ballerina-lang/issues/26430.

type Foo object {
    public function get(typedesc<anydata> td) returns td|error;
};

class Bar {
    *Foo;

    public function get(typedesc<anydata> td) returns td|error = external;
}

Fixes subtyping for objects with dependently-typed methods. Fixes https://github.com/ballerina-platform/ballerina-lang/issues/26584.

The following is now allowed.
public class Foo {
    public function get(typedesc<anydata> td) returns td|error = external;
}

public class Bar {
    public function get(typedesc<anydata> td) returns td|error = external;
}

public function main() {
    Foo f = new Bar();
}

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Shouldn't the following work?
public function main() {
    Person p = new Employee("Pubudu", "Fernando");
    string s = p.getFullName(string);
}

class Person {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<anydata> td)  returns td = external;
}

class Employee {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<any> dt)  returns int = external;
}

Shouldn't the following work?
public function main() {
    Person p = new Employee("Pubudu", "Fernando");
    string s = p.getFullName(string);
}

class Person {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<anydata> td)  returns td = external;
}

class Employee {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<any> dt)  returns int = external;
}

If we allow this, at runtime when we call p.getFullName(string), what gets called is Employee.getFullName which returns an int. So where the user expects a string, he will get an int, so this cannot be allowed.
https://github.com/ballerina-platform/ballerina-spec/issues/633 discusses most of the scenarios related to this.

Shouldn't the following work?
public function main() {
    Person p = new Employee("Pubudu", "Fernando");
    string s = p.getFullName(string);
}

class Person {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<anydata> td)  returns td = external;
}

class Employee {
    string fname;
    string lname;

    function init(string fname, string lname) {
        self.lname = lname;
        self.fname = fname;
    }

    function getFullName(typedesc<any> dt)  returns int = external;
}

If we allow this, at runtime when we call p.getFullName(string), what gets called is Employee.getFullName which returns an int. So where the user expects a string, he will get an int, so this cannot be allowed.
https://github.com/ballerina-platform/ballerina-spec/issues/633 discusses most of the scenarios related to this.


Copy latest Fluent operator image

What this PR does / why we need it:
Copy latest Fluent operator image
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
@vlvasilev @nickytd

/kind enhancement
/approve