forward backend add question mark to the end and Erroneous C2

Description
I use the backend API in the forward statement. Everything works fine, but srs adds a ? to the end of the URL. Is that desired?
In my case is a problem, because I forward to a ffmpeg instance, and there I monitor the logging output and cancel processing, when stream URL is not matching.
I get for example this output:
 [rtmp @ 0x559de648ed80] [warning] Unexpected stream my-test-stream?, expecting my-test-stream
 [rtmp @ 0x559de648ed80] Unexpected stream my-test-stream?, expecting my-test-stream

And there is a second issue in combination with ffmpeg, I get there this warnings:
[rtmp @ 0x7f2ed00015c0] Erroneous C2 Message epoch does not match up with C1 epoch
[rtmp @ 0x7f2ed00015c0] Erroneous C2 Message random does not match up

SRS Version: 5.0.139

SRS Config:

listen              1935 1936;
max_connections     200;
daemon              off;
pid                 /usr/local/srs/objs/srs.pid;
srs_log_tank        console; # file;
srs_log_file        /var/log/srs.log;
ff_log_dir          /dev/null;

# can be: verbose, info, trace, warn, error
srs_log_level       error;

vhost __defaultVhost__ {
    enabled             off;
}

vhost srs.example.org {
    enabled             on;

    publish {
        normal_timeout      20000;
    }

    play {
        time_jitter     full;
        mix_correct     on;
    }

    forward {
        enabled on;
        backend http://<IP_ADDRESS>:8085/api/v1/forward;
    }
}

Expect
About the Erroneous C2 ... warning, I don't know if they are harmful. About the question mark it would be nice, if there would be no extra characters on the given URL.

Can you give more detail information? For example, your publish stream command and SRS detail log. I cannot analyze your problem for info currently given.

I'm sorry @chundonglinlin, that I hadn't described the problem better! Yesterday after writing, I also took a closer look at the pull request for this function and realised that I might be using it differently than you had planed:
We have adapted the Go API a little so that it outputs different target URLs depending on the stream name. So the API reads in a JSON file with this format:
{
    "strict": true,
    "proxy": [
        {
            "stream": "test-stream1",
            "urls": [
                "rtmp://<IP_ADDRESS>:1936/live/stream1",
                "rtmp://<IP_ADDRESS>:1937/live/stream2"
            ]
        },
        {
            "stream": "test-stream2",
            "urls": [
                "rtmp://<IP_ADDRESS>:1938/live/stream3",
                "rtmp://<IP_ADDRESS>:1939/live/stream4"
            ]
        }
    ]
}

If desired, I can share the API code.
Now when a stream comes in, for example with the name rtmp://example.org/live/test-stream1, the API returns the corresponding URLs:
"urls": [
        "rtmp://<IP_ADDRESS>:1936/live/stream1",
        "rtmp://<IP_ADDRESS>:1937/live/stream2"
    ]

My streaming command to SRS looks something like this:
ffmpeg -re -i input.mp4 -c:v libx264 -crf 23 -preset ultrafast -f flv rtmp://<IP_ADDRESS>/live/test-stream1

Here is a full trace log, from SRS:
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] XCORE-SRS/5.0.139(Bee)
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] config parse complete
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] write log to console
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] SRS/5.0.139(Bee), MIT
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] authors<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>and https://github.com/ossrs/srs/blob/develop/trunk/AUTHORS.md#contributors
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] cwd=/home/jonathan/DEV/github/srs/trunk, work_dir=./, build: 2023-02-07 08:20:44, configure: --ffmpeg-fit=off --srt=off, uname: Linux jonathan-nix-lan-daswort-media 6.1.9-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Feb  2 00:21:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux, osx: 0, env: 0, pkg:
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] configure detail: --prefix=/usr/local/srs --config=conf/srs.conf --osx=off --hls=on --hds=off --dvr=on --ssl=on --https=on --ssl-1-0=off --ssl-local=off --sys-ssl=off --transcode=on --ingest=on --stat=on --http-callback=on --http-server=on --stream-converter=on --http-api=on --utest=off --cherrypy=off --srt=off --rtc=on --gb28181=off --simulator=off --cxx11=on --cxx14=off --backtrace=on --ffmpeg-fit=off --ffmpeg-opus=off --nasm=on --srtp-nasm=on --clean=on --gperf=off --gmc=off --gmd=off --gmp=off --gcp=off --gprof=off --static=off --shared-st=off --shared-srt=off --shared-ffmpeg=off --log-verbose=off --log-info=off --log-trace=on --log-level_v2=on --gcov=off --apm=off --debug=off --debug-stats=off --cross-build=off --sanitizer=off --sanitizer-static=off --sanitizer-log=off --cygwin64=off --single-thread=off --cc=gcc --cxx=g++ --ar=ar --ld=ld --randlib=randlib
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] srs checking config...
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] ips, iface[0] br0 ipv4 0x11043 <IP_ADDRESS>, iface[1] br0 ipv6 0x11043 fe80::3193:fa18:f987:74e7%br0, iface[2] vnet1 ipv6 0x11043 fe80::fc54:ff:fe89:37b4%vnet1
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] devices, intranet br0 <IP_ADDRESS>, intranet br0 fe80::3193:fa18:f987:74e7%br0, intranet vnet1 fe80::fc54:ff:fe89:37b4%vnet1
[2023-02-08 07:27:12.528][WARN][28110][41mk7240][22] stats network use index=0, ip=<IP_ADDRESS>, ifname=br0
[2023-02-08 07:27:12.528][WARN][28110][41mk7240][22] stats disk not configed, disk iops disabled.
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] write log to console
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] features, rch:on, dash:on, hls:on, hds:off, srt:off, hc:on, ha:on, hs:on, hp:on, dvr:on, trans:on, inge:on, stat:on, sc:on
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] SRS on amd64 x86_64, conf:conf/forward.backend.conf, limit:1000, writev:1024, encoding:little-endian, HZ:100
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] mw sleep:350ms. mr enabled:on, default:0, sleep:350ms
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] gc:on, pq:30000ms, cscc:[0,16), csa:on, tn:on(may hurts performance), ss:auto(guess by merged write)
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] system default latency(ms): mw(0-350) + mr(0-350) + play-queue(0-30000)
[2023-02-08 07:27:12.528][WARN][28110][41mk7240][22] SRS/5.0.139 is not stable
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] write pid=28110 to ./objs/srs.backend.pid success!
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] Thread #1(primordial): init name=srs-master-1, interval=5000ms
[2023-02-08 07:27:12.528][INFO][28110][41mk7240] Pool: Start threads primordial=1, hybrids=1 ok
[2023-02-08 07:27:12.529][INFO][28110][64a9di6g] Thread #2: run with tid=28111, entry=0x2bf3180, label=hybrid, name=srs-hybrid-2
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] fingerprint=41:71:88:52:EB:34:64:EB:28:36:94:D1:22:54:94:9E:4F:11:7B:D8:7C:4F:13:2C:EA:3C:5F:6A:2A:60:50:03
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] CircuitBreaker: enabled=1, high=2x90, critical=1x95, dying=5x99
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] http: root mount to ./objs/nginx/html
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] server main cid=64a9di6g, pid=28110, ppid=21844, asprocess=0
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] RTMP listen at tcp://<IP_ADDRESS>:1935, fd=8
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] signal installed, reload=1, reopen=10, fast_quit=15, grace_quit=3
[2023-02-08 07:27:12.532][INFO][28110][64a9di6g] http: api mount /console to ./objs/nginx/html/console
[2023-02-08 07:27:12.532][INFO][28110][5e0003f3] Hybrid cpu=0.00%,16MB
[2023-02-08 07:27:12.532][WARN][28110][15380459][22] use private address as ip: <IP_ADDRESS>, ifname=br0
[2023-02-08 07:27:12.532][INFO][28110][15380459] Startup query id=vid-436866n, session=vid-32m9ovq, eip=<IP_ADDRESS>, wait=300s
[2023-02-08 07:27:12.532][INFO][28110][599a2m4d] TCP: connection manager run, conns=0
[2023-02-08 07:27:12.532][INFO][28110][6iqdl565] RTC: connection manager run, conns=0
[2023-02-08 07:27:17.529][INFO][28110][5e0003f3] Hybrid cpu=0.00%,16MB
[2023-02-08 07:27:17.534][INFO][28110][41mk7240] Process: cpu=1.00%,16MB, threads=2
[2023-02-08 07:27:22.530][INFO][28110][5e0003f3] Hybrid cpu=0.00%,16MB
[2023-02-08 07:27:22.539][INFO][28110][41mk7240] Process: cpu=0.00%,16MB, threads=2
[2023-02-08 07:27:23.997][INFO][28110][52o5pky0] RTMP client ip=<IP_ADDRESS>:44734, fd=9
[2023-02-08 07:27:23.998][INFO][28110][52o5pky0] complex handshake success
[2023-02-08 07:27:24.039][INFO][28110][52o5pky0] connect app, tcUrl=rtmp://<IP_ADDRESS>:1935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=<IP_ADDRESS>, port=1935, app=live, args=null
[2023-02-08 07:27:24.039][INFO][28110][52o5pky0] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2023-02-08 07:27:24.121][INFO][28110][52o5pky0] client identified, type=fmle-publish, vhost=<IP_ADDRESS>, app=live, stream=test-stream1, param=, duration=0ms
[2023-02-08 07:27:24.121][INFO][28110][52o5pky0] connected stream, tcUrl=rtmp://<IP_ADDRESS>:1935/live, pageUrl=, swfUrl=, schema=rtmp, vhost=__defaultVhost__, port=1935, app=live, stream=test-stream1, param=, args=null
[2023-02-08 07:27:24.121][INFO][28110][52o5pky0] new live source, stream_url=/live/test-stream1
[2023-02-08 07:27:24.121][INFO][28110][52o5pky0] source url=/live/test-stream1, ip=<IP_ADDRESS>, cache=1/2500, is_edge=0, source_id=/
[2023-02-08 07:27:24.204][INFO][28110][52o5pky0] http: on_forward_backend ok, client_id=52o5pky0, url=http://<IP_ADDRESS>:8085/api/v1/forward, request={"action":"on_forward","server_id":"vid-436866n","client_id":"52o5pky0","ip":"<IP_ADDRESS>","vhost":"__defaultVhost__","app":"live","tcUrl":"rtmp://<IP_ADDRESS>:1935/live","stream":"test-stream1","param":""}, response={"code":0,"data":{"urls":["rtmp://<IP_ADDRESS>:1936/live/stream1","rtmp://<IP_ADDRESS>:1937/live/stream2"]}}
[2023-02-08 07:27:24.205][INFO][28110][52o5pky0] ignore disabled exec for vhost=__defaultVhost__
[2023-02-08 07:27:24.205][INFO][28110][52o5pky0] start publish mr=0/350, p1stpt=20000, pnt=5000, tcp_nodelay=0
[2023-02-08 07:27:24.205][INFO][28110][11i67vr1] Forwarder: Start forward <IP_ADDRESS>/live/stream1 of source=[52o5pky0] to <IP_ADDRESS>:1936
[2023-02-08 07:27:24.206][INFO][28110][9kaw86vf] Forwarder: Start forward <IP_ADDRESS>/live/stream2 of source=[52o5pky0] to <IP_ADDRESS>:1937
[2023-02-08 07:27:24.212][INFO][28110][11i67vr1] complex handshake success.
[2023-02-08 07:27:24.212][INFO][28110][11i67vr1] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2023-02-08 07:27:24.213][INFO][28110][9kaw86vf] complex handshake success.
[2023-02-08 07:27:24.213][INFO][28110][9kaw86vf] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2023-02-08 07:27:24.295][INFO][28110][11i67vr1] connected, version=<IP_ADDRESS>, ip=, pid=0, id=0, dsu=1
[2023-02-08 07:27:24.296][INFO][28110][9kaw86vf] connected, version=<IP_ADDRESS>, ip=, pid=0, id=0, dsu=1
[2023-02-08 07:27:24.732][INFO][28110][52o5pky0] got metadata, width=1920, height=1080, vcodec=7, acodec=2
[2023-02-08 07:27:25.873][INFO][28110][52o5pky0] 45B video sh,  codec(7, profile=Baseline, level=4, 1920x1080, 0kbps, 0.0fps, 0.0s)
[2023-02-08 07:27:25.873][INFO][28110][52o5pky0] 385B audio sh, codec(2, 16bits, 2channels, 44100HZ)
[2023-02-08 07:27:27.530][INFO][28110][5e0003f3] Hybrid cpu=0.00%,16MB, cid=7,1, timer=62,0,0, clock=0,48,1,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:39,oth:0,buf:0)
[2023-02-08 07:27:27.544][INFO][28110][41mk7240] Process: cpu=1.00%,17MB, threads=2
[2023-02-08 07:27:31.052][WARN][28110][11i67vr1][4] Forwarder: Ignore error, code=1007(SocketRead)(Socket read data failed) : forward : receive control message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : read
thread [28110][11i67vr1]: do_cycle() [./src/app/srs_app_forward.cpp:235][errno=4]
thread [28110][11i67vr1]: forward() [./src/app/srs_app_forward.cpp:281][errno=4]
thread [28110][11i67vr1]: recv_message() [./src/protocol/srs_protocol_rtmp_stack.cpp:341][errno=4]
thread [28110][11i67vr1]: recv_interlaced_message() [./src/protocol/srs_protocol_rtmp_stack.cpp:792][errno=4]
thread [28110][11i67vr1]: read_basic_header() [./src/protocol/srs_protocol_rtmp_stack.cpp:887][errno=4]
thread [28110][11i67vr1]: grow() [./src/protocol/srs_protocol_stream.cpp:162][errno=4]
thread [28110][11i67vr1]: read() [./src/protocol/srs_protocol_st.cpp:566][errno=4]
[2023-02-08 07:27:31.052][WARN][28110][9kaw86vf][4] Forwarder: Ignore error, code=1007(SocketRead)(Socket read data failed) : forward : receive control message : recv interlaced message : read basic header : basic header requires 1 bytes : read bytes : read
thread [28110][9kaw86vf]: do_cycle() [./src/app/srs_app_forward.cpp:235][errno=4]
thread [28110][9kaw86vf]: forward() [./src/app/srs_app_forward.cpp:281][errno=4]
thread [28110][9kaw86vf]: recv_message() [./src/protocol/srs_protocol_rtmp_stack.cpp:341][errno=4]
thread [28110][9kaw86vf]: recv_interlaced_message() [./src/protocol/srs_protocol_rtmp_stack.cpp:792][errno=4]
thread [28110][9kaw86vf]: read_basic_header() [./src/protocol/srs_protocol_rtmp_stack.cpp:887][errno=4]
thread [28110][9kaw86vf]: grow() [./src/protocol/srs_protocol_stream.cpp:162][errno=4]
thread [28110][9kaw86vf]: read() [./src/protocol/srs_protocol_st.cpp:566][errno=4]
[2023-02-08 07:27:31.052][INFO][28110][52o5pky0] cleanup when unpublish
[2023-02-08 07:27:31.052][INFO][28110][52o5pky0] TCP: before dispose resource(RtmpConn)(0x7fada40318f0), conns=1, zombies=0, ign=0, inz=0, ind=0
[2023-02-08 07:27:31.052][WARN][28110][52o5pky0][4] client disconnect peer. ret=1009
[2023-02-08 07:27:31.052][INFO][28110][599a2m4d] TCP: clear zombies=1 resources, conns=1, removing=0, unsubs=0
[2023-02-08 07:27:31.052][INFO][28110][52o5pky0] TCP: disposing #0 resource(RtmpConn)(0x7fada40318f0), conns=1, disposing=1, zombies=0
[2023-02-08 07:27:32.531][INFO][28110][5e0003f3] Hybrid cpu=1.00%,20MB, cid=7,1, timer=62,0,0, clock=0,48,1,0,0,0,0,0,0, objs=(pkt:0,raw:0,fua:0,msg:39,oth:0,buf:0)
[2023-02-08 07:27:32.549][INFO][28110][41mk7240] Process: cpu=1.00%,20MB, threads=2
^C[2023-02-08 07:27:32.573][INFO][28110][64a9di6g] sig=2, user terminate program, fast quit
[2023-02-08 07:27:33.541][INFO][28110][64a9di6g] cleanup for quit signal fast=1, grace=0
[2023-02-08 07:27:33.549][INFO][28110][41mk7240] quit for thread #2(hybrid) finished

Maybe SRS expects a URL to be specified as a query parameter, but since I don't specify any query parameters, the question mark is appended without any other parameters? Here it would be good if the question mark only appears if a query really follows.
It is also strange that there is no question mark in the trace log. But it does on the receiver side:
[rtmp @ 0x7ffb280015c0] Unexpected stream stream1?, expecting stream1

Can you give destination server log? I found SRS print backend's response right, its forwarders no problem, but you receive socket read error.

I guess you mean a second SRS server as destination? Normally my destination will be a ffmpeg instance in listening mode, but I have change it to a second srs instance to get a trace log:
[2023-02-08 15:50:44.519][Trace][325016][r0e6246z] RTMP client ip=<IP_ADDRESS>:44084, fd=16
[2023-02-08 15:50:44.528][Trace][325016][5xk8ai3a] Hybrid cpu=1.00%,14MB
[2023-02-08 15:50:44.554][Trace][325016][r0e6246z] complex handshake success
[2023-02-08 15:50:44.555][Trace][325016][r0e6246z] connect app, tcUrl=rtmp://example.org/live, pageUrl=, swfUrl=, schema=rtmp, vhost=example.org, port=1935, app=live, args=(obj)
[2023-02-08 15:50:44.555][Trace][325016][r0e6246z] edge-srs ip=<IP_ADDRESS>, version=5.0.139, pid=8014, id=0
[2023-02-08 15:50:44.555][Trace][325016][r0e6246z] protocol in.buffer=0, in.ack=0, out.ack=0, in.chunk=128, out.chunk=128
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] client identified, type=flash-publish, vhost=example.org, app=live, stream=stream1, param=?, duration=0ms
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] connected stream, tcUrl=rtmp://example.org/live, pageUrl=, swfUrl=, schema=rtmp, vhost=example.org, port=1935, app=live, stream=stream1, param=?, args=(obj)
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] new source, stream_url=example.org/live/stream1
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] source url=example.org/live/stream1, ip=<IP_ADDRESS>, cache=1, is_edge=0, source_id=/
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] ignore the disabled transcode: live/stream1
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] ignore disabled exec for vhost=example.org
[2023-02-08 15:50:44.603][Trace][325016][r0e6246z] start publish mr=0/350, p1stpt=20000, pnt=30000, tcp_nodelay=0
[2023-02-08 15:50:45.605][Trace][325016][r0e6246z] got metadata, width=1920, height=1080, vcodec=7, acodec=2
[2023-02-08 15:50:46.606][Trace][325016][r0e6246z] 45B video sh,  codec(7, profile=Baseline, level=4, 1920x1080, 0kbps, 0.0fps, 0.0s)

Interestingly here everything looks good, only param has a question mark. So maybe when streams a forwarded to ffmpeg, ffmpeg will transform the param as url query?
I think the socket read error can be ignore, it looks like they only show up when the connection is close.

Yes, you should show a second server logs, likely a second SRS server or other streaming server as destination. But how can you run ffmpeg as a streaming server? ffserver? You can show your ffmpeg command as server, I test again for your problem.

And I think you can configure forward to destination by comparing destination config with backend config. According to your error logs, you maybe get the same problem.
forward.master.conf
vhost __defaultVhost__ {
    forward {
        enabled on;
        destination <IP_ADDRESS>:19350;
    }
}

forward.backend.conf
vhost __defaultVhost__ {
    forward {
        enabled on;
        backend http://<IP_ADDRESS>:8085/api/v1/forward;
    }
}

But how can you run ffmpeg as a rtmp streaming server?

Yes you can run ffmpeg in listening mode, so it can act as a server, like:
ffmpeg -f live_flv -listen 1 -i rtmp://<IP_ADDRESS>:1936/live/stream -c copy -f null -

I use this for ffplayout to get live ingest to work. And for simple authentication I monitor the logging output for Unexpected stream message, to cancel the process when the stream key don't match.

And I think you can configure forward to destination by comparing destination config with backend config. According to your error logs, you maybe get the same problem.

I have check this and with destination I don't get an question mark at the end, only in backend mode.

I test foward backend by your method, Interestingly here everything looks good,
Start command：

Logs output：

Here are my executive commands:

SRS-backend: listen 1935

./objs/srs -c conf/forward.backend.conf

SRS-slave: listen 29350

./objs/srs -c conf/forward.slave.conf

backend-server: listen 8085

6.0：go run server.go
5.0：python ./server.py 8085

ffmpeg：listen 19350, publish to SRS-slave:29350

ffmpeg -f live_flv -listen 1 -i rtmp://<IP_ADDRESS>:19350/live/stream -c copy -f flv "rtmp://<IP_ADDRESS>:29350/test/teststream"

ffmpeg publish:

ffmpeg -re -i 264_aac.flv -c copy -f flv "rtmp://<IP_ADDRESS>/live/livestream"

Lastly, do you think output errors should fix it?
[rtmp @ 0x5595cebeff80] Erroneous C2 Message epoch does not match up with C1 epoch
[rtmp @ 0x5595cebeff80] Erroneous C2 Message random does not match up
[rtmp @ 0x5595cebeff80] App field don't match up: test <-> live
[rtmp @ 0x5595cebeff80] Unexpected stream teststream?, expecting stream
Input #0, live_flv, from 'rtmp://<IP_ADDRESS>:19350/live/stream':
  Metadata:
    encoder         : Lavf59.16.100
    server          : SRS/6.0.23(Bee)
    server_version  : 6.0.23
  Duration: N/A, start: 0.042000, bitrate: N/A
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp
Output #0, flv, to 'rtmp://<IP_ADDRESS>:29350/test/teststream':
  Metadata:
    server_version  : 6.0.23
    server          : SRS/6.0.23(Bee)
    encoder         : Lavf59.16.100
  Stream #0:0: Video: h264 (High) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 1k tbn
  Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  978 fps= 28 q=-1.0 size=    6838kB time=00:00:40.75 bitrate=1374.6kbits/s speed=1.16x

No is the same problem, as you see in ffmpeg line:
[rtmp @ 0x5595cebeff80] Unexpected stream teststream?, expecting stream

The question mark by teststream? should be not there. At the moment ffmpeg does not really care about streaming address, as long protocol matches everything got excepted. So it only prints a warning.
But in my case as I wrote it is a problem, because I filter for that Unexpected stream messages.

Okey, I will trace ffmpeg rtmppoto.c that when ffmpeg call rtmp_open(), checked rtmp_server_handshake() get a log print, such as,
[rtmp @ 0x560054272f80] Erroneous C2 Message epoch does not match up with C1 epoch
[rtmp @ 0x560054272f80] Erroneous C2 Message random does not match up

And when parse rtmp_parse_result,  you can get a RTMP_PT_INVOKE message for handle_invoke. However found not FCPublish message, maybe detect following logs,
[rtmp @ 0x560054272f80] Unexpected stream teststream?, expecting teststream

You can also trace the entire link by debugging ffmpeg, such function call relation,
--> rtmp_open() --> rtmp_server_handshake()

get_packet() --> rtmp_parse_result() --> handle_invoke() --> send_invoke_response()
rtmp_write() --> rtmp_parse_result() --> handle_invoke() --> send_invoke_response()

Thank for your effort! So you think this issue is related to ffmpeg? Then I need to see, how I will manage the problem.


[Feature Request] Retrieve value from DocValues in nested sub filed.

Is your feature request related to a problem? Please describe
It's is known that we can get value from DocValues. When the document has a high number of fields, and we just want to retrieve one/two field, DocValues performs better than stored fields.
https://sease.io/2020/03/docvalues-vs-stored-fields-apache-solr-features-and-performance-smackdown.html
But DocValues doesn't work in nested sub filed.
Example:
PUT books1
{
    "mappings": {
        "properties":{
            "name":{
                "type":"keyword"
            },
            "details":{
                "type":"nested",
                "properties": {
                    "title":{
                        "type": "keyword"
                    }
                }
            }
        }
    }
}

PUT books1/_doc/0
{
    "details": {
        "title": "title1"
    }
}

GET books1/_search
{
    "stored_fields": "_none_",
    "docvalue_fields":["details.title"]
}

details.title is not in the result.
Describe the solution you'd like
As we have store DocValues for nested sub filed, we should retrieve value from DocValues in nested sub filed when necessary. I'm pleasure to implement it.
Related component
Search:Performance
Describe alternatives you've considered
No response
Additional context
No response

@sandeshkr419, please help check, when nested field contains a lot of sub fields, DocValues makes more sense. This case is very common in our online environment.  If it's worthwhile to implement, and i like have a try.


BUG: showPCB = true  but PCB not at the right height!

@rosenhauer
I'm currently working on a box for a project I'm working on.
YAPPgenerator: Version="v3.0.3 (2024-03-21)";
But with showPCB = true the PCB is not displayed at the correct height.

showPCB = true;
standoffHeight = 4.0;
connectors   = [  [5, 5, 4, 2.5, 6 + 1.25, 4.1, 9, yappDefault, yappAllCorners, yappCoordPCB]  ];

P1Reader2Eth_scad.txt
As a consequence the switch-tubes are also incorrect (to long)!

Also - future request:
I would like the Cap of the push-buttons to be a bit higher so they fall a bit deeper in the lid. With tolerances during printing sometimes the Cap is completely above the lid. No problem for a yappCircle cap but if it had a (f.i.) yappRectangle shape it can turn and then you can not push it anymore.

There was an issue with the PCB thickness being removed from the Connector height and causing it to be off.
But an additional issue is that you used an older definition for the Connectors:
Below is the update to the newest version.
Few changes to note: p(2) = StandHeight is from the coordinate system origin so in the case where yappCoordPCB is specified (new default) it should be set as 0 unless you need to to be different than the PCB position.

//===================================================================
//  *** Connectors ***
//  Standoffs with hole through base and socket in lid for screw type connections.
//-------------------------------------------------------------------
//  Default origin = yappCoordBox: box[0,0,0]
//
//  Parameters:
//   Required:
//    p(0) = posx
//    p(1) = posy
//    p(2) = StandHeight : From specified origin
//    p(3) = screwDiameter
//    p(4) = screwHeadDiameter (don't forget to add extra for the fillet)
//    p(5) = insertDiameter
//    p(6) = outsideDiameter
//   Optional:
//    p(7) = insert Depth : default to entire connector
//    p(8) = PCB Gap : Default if yappCoordPCB then pcbThickness else 0
//    p(9) = filletRadius : Default = 0/Auto(0 = auto size)
//    n(a) = { yappAllCorners, yappFrontLeft | <yappBackLeft> | yappFrontRight | yappBackRight }
//    n(b) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
//    n(c) = { yappNoFillet }
//    n(d) = { yappCountersink }
//    n(e) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
connectors   =
[//  0, 1, 2, 3,     4,      5,   6, 7, ...
  //[5, 5, 4, 2.5, 6 + 1.25, 4.1, 9, yappDefault, yappFrontLeft, yappFrontRight, yappBackLeft, yappBackRight, yappCoordPCB]
//    [5, 5, 4, 2.5, 6 + 1.25, 4.1, 9, yappDefault, yappAllCorners, yappCoordPCB]
    [5, 5, 0, 2.5, 6 + 1.25, 4.1, 9, yappDefault, yappDefault, yappAllCorners]
];

All of the other dimensions seen to be correct to me.  The PCB and tube length appeared wrong before because the connectors were wrong.

On the button pocket depth is the same as the lid thickness.  No matter is the button is to be flush or above the lid.   I'm not sure how there could be that much printing error.

Could this possibly be related to the above issue where the connectors were off by PCB Thickness.

@rosenhauer,
I started from the YAPP_template_v3.scad that is supposed to be up-to-date with the YAPPgenerator_v3.scad.
Thanks for all your great work!


Correct the default of "ess_cert_id_alg" option in the documentation

Targeted at 3.1/3.0 branches
Related with #21794
CLA: trivial

[x] documentation is added or updated

This pull request is ready to merge

Merged to master, 3.1, and 3.0 branches. #21794 will need an update to revert this.


Update frequently-asked-questions-faq.md

Updated link to the Storage Best Practices post in TechCommunity

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

Looks good; we'll merge. Thanks @si-chan.


Investigate web workers for blocking tasks like HUD

Note that webworkers don't have access to the dom so the rendering will stay in the main thread. If there are computations that need to occur e.g. start and end draw locations this can be offloaded.


Cached images and preload

When user views screen with image1, image1 downloads and fades into view.
Navigate away, then again to screen with image1. Image1 is in view already and doesn't need the fade-in animation.
Restart app
When user views screen with image1, image1 fades into view.

If the image is cached already from step 1/2, shouldn't the image not need to download and fade-in again in step 4? Why does it do the fade-in animation again after restarting the app?
Is preload meant to have any effect on the fade-in? When I tried preloading images there was no effect.
My goal is to just remove the fade-in since the image was already downloaded previously and the image should just already be on screen. Is this possible?

@jslok Have you figured anything out related to this?

@wkoutre Unfortunately I have not. Will probably need help to figure it out as I don't know too much about how the cache/preload works.

@jslok Neither do I, to be honest.
When I have time this weekend/next week, I'll be looking into it. Preload seems to work better on simulators than actual devices.
In my app, when a user logs in, I fetch data which include many URI to images (profile pics, favorite pics, etc). I create an array of objects, each with a uri property, then call FastImage.preload with the array as the param.
It doesn't seem to work 100% of the time, though. I'll post back here as I look into it more.

Preload was 100% not working on Android, it has been fixed in the new version. Thank you for the help!

@DylanVann Any news about Image Preload feature on Android?

@DylanVann have any update in android?

@DylanVann the problem is still present. Any update?

@DylanVann @94dado @Donhv @jslok @cyclops24 @wkoutre
Anyone figure this out?


implementation of a finite MPS class

Hey @Thenerdstation, this is good from my side

removed the import

sorry, had forgotten about your earlier comments. Fixed this


Update package version

3.1.1-alpha.1 (2023-11-01)
Bug Fixes

audio-annotator-react: packages start version with 1.2.0 (b365329)
audio-annotator-react: simplify audio and video tool config interfaces (db1f8df)
audio-annotator-react: update<EMAIL_ADDRESS>(715976d)
audio-annotator-react: update deps (8dd8129)
audio-annotator-react: update toolbar style (727b2ef)
audio-react: packages start version with 1.2.0 (67d1a1f)
audio-react: packages start version with 1.2.0 (076f962)
audio-react: simplify audio and video tool config interfaces (db97ce3)
audio-react: update @labelu/components-react deps (e3be080)
audio-react: update deps (8430736)
audio-react: update deps (fed4871)
components-react: packages start version with 1.2.0 (6baf762)
components-react: update @labelu/components-react deps (4f8a19c)
components-react: update deps (dd02751)
components-react: update deps (dd97b9c)
components-react: update deps (0c60d41)
components-react: update deps (fb4c9e4)
components-react: update icon color (3a93d8b)
frontend: packages start version with 1.2.0 (96964fa)
frontend: packages start version with 1.2.0 (bef48d0)
frontend: simplify audio and video config (ab49376)
frontend: update<EMAIL_ADDRESS>(cc8bab0)
frontend: update @labelu/components-react deps (16c26fe)
frontend: update deps (3b6fe07)
frontend: update deps (8c7f035)
frontend: update deps (638696a)
frontend: update deps (8aa28df)
interface: packages start version with 1.2.0 (82dfc51)
interface: simplify audio and video tool config interfaces (30f5707)
interface: update deps (c15366c)
video-annotator-react: packages start version with 1.2.0 (655077f)
video-annotator-react: simplify audio and video tool config interfaces (89326e8)
video-annotator-react: update<EMAIL_ADDRESS>(43b2051)
video-annotator-react: update @labelu/components-react deps (1a25439)
video-annotator-react: update deps (488a021)
video-annotator-react: update deps (cc5271e)
video-annotator-react: update deps (0fd7643)
video-annotator-react: update deps (c1ad2da)
video-annotator-react: update deps (8c179e2)
video-react: packages start version with 1.2.0 (ff5f9db)
video-react: simplify audio and video tool config interfaces (9498ac1)
video-react: update @labelu/components-react deps (08e53fa)
video-react: update deps (49f71b7)
video-react: update deps (4ba915f)
video-react: update deps (5e9cbde)
video-react: update deps (b2566fd)

:tada: This PR is included in version 1.2.1-alpha.2 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1-alpha.4 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1-alpha.4 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1-alpha.2 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1-alpha.4 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.1.1-alpha.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.2.0-alpha.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.2.0-online.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


bug(chezmoi): Running in debug mode. If you didn't enable this yourself, this is a bug.

I didn't enable this, yet it prints every executed command in logs.
Bug probably resides here:
DEBUG=false
if [[ $DEBUG ]]; then
	echo "Running in debug mode. If you didn't enable this yourself, this is a bug."
	set -vux
fi

While $DEBUG string here means "true", it somehow didn't catch that.
Maybe doing something like this will solve this problem:
DEBUG=false
if [[ "$DEBUG" == "true" ]]; then
	echo "Running in debug mode. If you didn't enable this yourself, this is a bug."
	set -vux
fi

@exponentactivity Here's another ping heh

Thanks for reporting! I'm just waiting for my other PR to be merged and i will push a solution for this.
It's a bit embarrassing, i fixed several of the same problems in my initial PR and missed this.


at_c: Build examples CI

As atclient and atchops matures, some CI to check that the examples still build would be nice to have.

Assigning 1 SP;
Work involved is 1 GitHub workflow to loop through each folder in examples/ to run (similar to) the following:
cd <folder>
cmake -S . -B build
cmake --build build
cd build && ./<target_executable>

P.S.: build the atclient (and atchops) library beforehand:
cd packages/atclient
... (see atclient/README.md or other CI on how to build the atclient source)

Closed by #214


Fix UI in create dataset with Database

Describe the bug
Add Security component in dataset create popup (database)
To Reproduce
Steps to reproduce the behavior:
Dataset tab -> create db dataset -> see error
Expected behavior

Database type oracle is removed
Security component is added

Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@joohokim1
Originally this issue was created to provide user with security options.  (See screenshot)
In datasource user can use connections (with any security setting) to make datasource.
However in dataprep, user can only use connection with Always connect
Dataprep Server API must be fixed to support Connect by user account and connect with Id and password security type connections.


[Perf] Add profiling to perf automation

Rebased against main
Taking in favor of #4034

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


Boot assessment behavior on upgrades

This issue is to agree and eventually fix the boot assessment behavior on upgrades. The problem raises when rebooting during an upgrade and it fails to boot for some reason. In that case it boots the fallback partition. The question is what is expected to happen next. Currently system-upgrade-controller's plan will kick in again and try to upgrade, since there will be version mismatch it is expected to run again the same upgrade but from the fallback partition.

Another interesting issue i ran into when trying to upgrade to an image that is missing the /usr/sbin/suc-upgrade script:

Another interesting issue i ran into when trying to upgrade to an image that is missing the /usr/sbin/suc-upgrade script:

EDIT although removing the ManagedOSImage resource seems to clean it up...

mmm interesting, I guess upgrade failures are not really tracked neither monitored anywhere and the system just keeps trying... this another interesting issue, what happens if the upgrade job does not even reach the reboot stage.

We might not be able to solve each and every problem automatically.
It would be good to capture all these error scenarios in a "what if" section of the documentation.

Would it make sense to validate a few basics (like /boot existing) after pulling the image but before rebooting? That way you can't accidentally try and boot into a non-bootable image

We might not be able to solve each and every problem automatically.
It would be good to capture all these error scenarios in a "what if" section of the documentation.

Absolutely, I will run some more tests to see what scenarios we have and then try to document/solve them accordingly!

Would it make sense to validate a few basics (like /boot existing) after pulling the image but before rebooting? That way you can't accidentally try and boot into a non-bootable image

Good idea! Will have a look to see where we could implement this!


[add screen] ledger flow

@calvinkei

@rachelhox i fixed some issues in your code. please check the commit to see if there's anything unclear.
i think your changes to signAndBroadcastTransaction is over complicated. it should be just a few lines of change to:

split signAndBroadcast to sign and broadcastTx
insert onSignEnd in between sign and broadcastTx

and i cannot find the design for the "broadcasting" stage, please check if it is the intended design

yes there's no UI for broadcasting screen, gonna ask @Rooty2020 for the details tomorrow! Thanks!

@calvinkei @rachelhox
Is this correct?
I put the tx broadcasting in step 3.
Step 1: Turn on and unlock your Ledger device
Step 2: Open App
Step 3: Transaction broadcasting
Step 4: View and sign transaction
Step 5: Show the transaction result
https://www.figma.com/proto/w7LpoB8DejNVumjJPDrp7j/Forbole-X-_web-app_1.0?page-id=192%3A2&node-id=3767%3A226854&viewport=241%2C48%2C0.13&scaling=scale-down&starting-point-node-id=3767%3A226342&show-proto-sidebar=1

@rachelhox no it should be in step 4. tx must be signed before broadcasting


Make plan/des list usuable

@kalbermattenm can you test my modifications on your side?

I am going to test this branch and merge it and then open a specific branch for the control part


SAK-29650 editing a joinable set gives an opportunity for lost user data

https://jira.sakaiproject.org/browse/SAK-29650
"If you change the set name, or the unjoin setting of the set and opt to generate more groups while you're there, clicking the 'Generate' button transfers you back to the Groups List interface, and you've lost your change to the title/unjoin setting.
Conversely, if you want to do both things at once, and you click save rather than generate, you've lost all the entries you put into the generate additional groups fields, and the extra groups are not created.
The solution to this is to implement this interface slightly differently, in that the 'Generate Additional Groups' panel acts as it's own form, and posts back to the current page rather than going back to the main groups listing. In this way, the user can create additional sets of groups with different options without leaving the page. The user can also update the name and unjoin setting of the joinable set in the same run, but the 'Update' button will control actually saving the newly generated groups and/or name/unjoin setting changes.
This PR will also change the 'Generate' panel into a triangle disclosure, and introduce a 'Pending Groups' section which will only show after you've generated some additional groups. It also alters the HTML layout to use div's instead of table elements, removes all inline styles in favour of classes/ids and corresponding .css."

I will be rebasing this soon, as I discovered a small bug during internal testing.


Modified to read legacy MemoryPressure variable only to create patch.

Closing older PRs. Pls bring to latest sprint or topic branch.


Tab Size not working

Tab Size is always being reset to 8 after restart.

"workbench.colorTheme": "One Dark Pro"

Any chance you are using the vim extension ? It was causing wordWrap and tabSize settings to revert for me

https://github.com/VSCodeVim/Vim/issues/6717
vim extension is overwriting settings

see workarounds and updates in VSCodeVim/Vim#6717

VSCodeVim maintainer here - can confirm this was caused by the extension. It's fixed in the new release (1.21.1) - please upgrade if this is affecting you.

Thanks! After I upgrade the VSCodeVim, everything goes fine! This problem troubled me for a long time....


Fix regression for Endpoints without pod reference (#25978)

(cherry picked from commit d5ab2ebfa13107099a6fed596b5201f88ad28d24)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@howardjohn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio_release-1.7
805c4032fae7c3b81b3dcc359eba0d9b7b7dc2b8
link
/test release-notes_istio_release-1.7

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


API Sign up link is broken

The link in the readme to sign up for an API key gets a 404.

Looks like https://magicseaweed.com/docs/api/60/ is the new link. I can update it. Also welcome to submit a merge request I'd you'd like to do it before I get to it.

Ya except that doesn't tell you how to sign up to get get a key and they are not publishing info on how to do that and so a library that uses an api you can't get access to is... well... not super useful.

Looks like you'll need to email them for an API key: https://magicseaweed.com/news/msw-surf-forecast-api/5279/


Correction on step #1

Under Sync Process, step #1 says " Azure on-premises to Azure AD" . However, there is no such thing as Azure on-premises. AAD Connect synchronizes from AD to Azure AD. Thank you.

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

ID: 54ff426d-6bba-75ea-970b-03f16fe191b5
Version Independent ID: 51db9ad2-9e46-4391-601a-062b640b00d2
Content: About user profile synchronization - SharePoint in Microsoft 365
Content Source: SharePoint/SharePointOnline/user-profile-sync.md
Service: sharepoint-online
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

@josuvil Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

@josuvil  Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Mobile Dao Overview

@skuhlmann do we still need to add/update this overview?

App should work on mobile now


net core 3.1 worker service as windows service

net core 3.1 worker service as windows service does not work
tried to run windows service on Windows 10 Pro 1909 and Windows Server 20102 R2
Working on net core 3.1 worker project. I am facing a weird situation I can not understand the reason behind it. When I start the worker service as a console application (double clicking the exe file) worker service which has a few background task working fine but when start the worker windows server (I added it as windows service and it started without error) nothing happens. There are no signal that worker service is working. It is not accessing the API or don't do any other jobs.
And also can not see anything on Event viewer.
I published the application as self-contained and x64
Need some help please.

any updates..? I have the same issues.

Check if u have added Microsoft.Extensions.Hosting.Windowsservices package

Yes, I have Microsoft.Extensions.Hosting.WindowsServices.dll  3.1.8 build.
Problems that service is starting, but Backgroudservice and task ExecuteAsyinc is starting but only performs only one loop cycle.

Hi I am having the same issue that my worker service doesn't seems to be working after installation. Does anyone of you know how you have fixed this issue. Please I need an urgent response on this one.
Thank you.

It is working when I run the .exe file manually but when I install it in services.msc it doesn't seems to be working even though the status shows that the worker service is in "running" state.

I am having same issue any useful link would be great
Steps to reproduce:

Simple Worker Service project

Worker Code
public class Worker : BackgroundService
{
private readonly ILogger _logger;
public Worker(ILogger<Worker> logger)
{
    _logger = logger;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (!stoppingToken.IsCancellationRequested)
    {
        _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
        WriteLog($"log{DateTime.Now.ToString("ddMMyyyy")}.txt", $"Worker running at: { DateTimeOffset.Now}");
        await Task.Delay(1000, stoppingToken);
    }
}
public static bool WriteLog(string strFileName, string strMessage)
{
    try
    {
        FileStream objFilestream = new FileStream(string.Format("{0}\\{1}", Path.GetTempPath(), strFileName), FileMode.Append, FileAccess.Write);
        StreamWriter objStreamWriter = new StreamWriter((Stream)objFilestream);
        objStreamWriter.WriteLine(strMessage);
        objStreamWriter.Close();
        objFilestream.Close();
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }
}

}
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args).UseWindowsService()
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<Worker>();
        });

}

dotnet publish --output "C:\custom\publish\directory"

sc create SampleService binPath=C:\custom\publish\directory\SamplerService.exe

sc start SampleService
Service is starting and running but no events are firing up.

Hey @azizkazdal I am facing the same issue may i found the workaround for the same

Please suggest

@ramprudvi
I have changed the release model of application that time and all worker background service was successfulyy worked. So I have not tried self contained release yet. Now I am on Net 5 an still not using self contained application.

Hi Dotnet/Core,
May I know release model suited for you
On Fri, Jun 18, 2021, 1:27 PM S.Aziz Kazdal @.***>
wrote:

@ramprudvi https://github.com/ramprudvi
I have changed the release model of application that time and all worker
background service was successfulyy worked. So I have not tried self
contained release yet. Now I am on Net 5 an still not using self contained
application.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dotnet/core/issues/4371#issuecomment-863839910, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJQ2ZJLQOTFJUHG73XE5E7TTTL36NANCNFSM4LECGGNA
.

hello, i have problem all project in where install windows 10,workerservice cannt go tu run,its ready always,what problem its can be? can someone help me, please


CWL: test update and fixes for v1.0 support

Update of #1050 which I messed up trying to rebase.
In progress work towards v1.0 support. Current status, failing 19 out of
72 unit tests.

Apply path/location fixes globally, required for v1.0 support
(which uses location) and back compatibility with CWL (which uses path).
Adjusts imports to match cwltool reorganization changes
Some functions use kwargs instead of default arguments
(single_job_executor, _init_job).
Changes from output to outputSource in job outputs.
Start of work to improve scatter support for valueFrom by applying
after scatter process. Still in progress.
Update internal CWL revsort test to v1.0 syntax
Update conformance test to v1.0

Can one of the admins verify this patch?

Hannes -- sorry, I don't have enough git skills to rebase against master and ended up pulling in all of the upstream changes as separate commits in #1050, so I closed that and started a clean fix. I need to find some documentation to learn how to rebase without messing everything up.
On the CWL side, I updated the tests and added additional fixes. This is not fully v1.0 compliant but runs complicated bcbio workflows so is a good step in the right direction. I'm currently stuck and some of the v1.0 migration might need help from @tetron. What are you thoughts about moving forward with this? Could we merge this as a starting point for draft-3 and partial v1.0 support and then continue to add fixes? Happy for suggestions.

@chapmanb, no worries. In the interest of keeping the discussion in one place for future PRs, let me mention that you can always delete the messed up branch in your local clone, create a new branch but name it the same and finally just force push. That will leave the old PR open. We explicitly allow force pushes on PR branches as long as that PR isn't tagged multi-author.

Jenkins, test this please.

Hannes -- I talked with Peter and managed to push Toil CWL support forward so we support everything in CWL v1.0 except for these features:

Support for directory inputs
(http://www.commonwl.org/v1.0/CommandLineTool.html#Directory)
InitialWorkDirRequirement
http://www.commonwl.org/v1.0/CommandLineTool.html#InitialWorkDirRequirement

Implementing those new features is beyond my skill level with CWL and Toil and Peter estimated that he wouldn't have availability to get to them for about a month. Would it be possible to review this current set of changes and incorporate so we have better v1.0 support in the meantime? I will plan to revisit the additional features once Peter has time to coordinate.
The latest fixes also includes a fileStore assertion change which caused lots of intermittent failures when running the tests. I kept this as a separate commit in case you want to omit or treat separately. Thanks much for looking at this.

Incidentally, if something is failing due to an unimplemented feature, it should quit with exit code 33 to indicate to cwltest that it's a known feature gap rather than an actual test failure.

I would merge this if the tests passed and the assertion removal was reverted. If the assertion is causing you trouble, I would open a ticket.

Please remove commits 6430548 and 1dbaab0 using interactive rebase.

Jenkins, test this please.

Hannes, sorry I was too slow getting in the final fixes for v1.0 support for your most recent test run. I just checked in fixes to allow CWL v1.0 compatibility minus a few features (Directories, InitialWorkDir and File literals) which Toil will sensibly error out with a useful message. This now passes the CWL v1.0 test suite and cwltool is synchronized with Arvados CWL runner.
I hope this will now pass tests and be good to go. I'd rather not rebase my steps here if we can avoid it so it's easier to trace back logic and changes in the futures via the commit details.  Once we have this in I will prepare a separate PR updating the documentation about CWL support.
Thanks for all the useful feedback and fingers crossed this passes.

Jenkins, test this please.

The last commit message has a typo, Toil 1.0 is long gone. You mean CWL, correct? In fact, I like the prefix you used for the first two commits. I'm torn about not squashing because the commits and am willing to make an exception but the documentation needs to be added in this PR. I want to reduce the PR churn and avoid procrastinating on documentation which we do too frequently already. You are not likely to run into conflicts with this PR because no one is likely to touch the same files as you, so there is no real advantage in doing a separate PR.

I just updated my previous above comment to finish a sentence I had left open.

Hannes -- fair enough, I added documentation to this PR to describe that we support CWL v1.0 and the specific features we currently lack. Thanks again.

Jenkins, ok to test.


more test tweaks

Codecov Report

Merging #371 into experimental will increase coverage by 0.24%.
The diff coverage is 100%.

@@               Coverage Diff                @@
##           experimental     #371      +/-   ##
================================================
+ Coverage          78.6%   78.84%   +0.24%
================================================
  Files                23       23
  Lines              1234     1234
================================================
+ Hits                970      973       +3
+ Misses              264      261       -3

Impacted Files
Coverage Δ

tests/test_api_actions.py
94.64% <100%> (-5.36%)
:arrow_down:

vent/api/templates.py
72.64% <0%> (-0.86%)
:arrow_down:

vent/api/actions.py
73.68% <0%> (+3.68%)
:arrow_up:

Continue to review full report at Codecov.

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


Issue with publicPath in v3

Operating System: MacOS
Node Version: 12.16.1
NPM Version: 6.13.4
webpack Version: 4.44.1
worker-loader Version: 3.0.1

Expected Behavior
I would expect that setting publicPath in options would take precedence over __webpack_public_path__ variable.
We use webpacker and setting a CDN path to serve our assets. However, worker must be served from same domain in order to work.
I had to use patch-package to revert to one of previous versions and fit it my needs (code below).
Actual Behavior
With our setup, passing publicPath does nothing.
Code
patch-package snippet
diff --git a/node_modules/worker-loader/dist/utils.js b/node_modules/worker-loader/dist/utils.js
index abe26e2..89089ce 100644
--- a/node_modules/worker-loader/dist/utils.js
+++ b/node_modules/worker-loader/dist/utils.js
@@ -62,12 +62,16 @@ function workerGenerator(loaderContext, workerFilename, workerSource, options) {

   const esModule = typeof options.esModule !== 'undefined' ? options.esModule : true;

+  const publicPath = typeof options.publicPath === 'undefined'
+      ? '__webpack_public_path__'
+      : JSON.stringify(options.publicPath);
+
   if (options.inline) {
     const InlineWorkerPath = (0, _loaderUtils.stringifyRequest)(loaderContext, `!!${require.resolve('./runtime/inline.js')}`);
     let fallbackWorkerPath;

     if (options.inline === 'fallback') {
-      fallbackWorkerPath = `__webpack_public_path__ + ${JSON.stringify(workerFilename)}`;
+      fallbackWorkerPath = `${publicPath} + ${JSON.stringify(workerFilename)}`;
     }

     return `
@@ -76,7 +80,7 @@ ${esModule ? `import worker from ${InlineWorkerPath};` : `var worker = require($
 ${esModule ? 'export default' : 'module.exports ='} function() {\n  return worker(${JSON.stringify(workerSource)}, ${JSON.stringify(workerConstructor)}, ${JSON.stringify(workerOptions)}, ${fallbackWorkerPath});\n}\n`;
   }

-  return `${esModule ? 'export default' : 'module.exports ='} function() {\n  return new ${workerConstructor}(__webpack_public_path__ + ${JSON.stringify(workerFilename)}${workerOptions ? `, ${JSON.stringify(workerOptions)}` : ''});\n}\n`;
+  return `${esModule ? 'export default' : 'module.exports ='} function() {\n  return new ${workerConstructor}(${publicPath} + ${JSON.stringify(workerFilename)}${workerOptions ? `, ${JSON.stringify(workerOptions)}` : ''});\n}\n`;
 } // Matches only the last occurrence of sourceMappingURL

You need rewrite __webpack_public_path__ in this case on fly, also you can use publicPath as Function

Previous implementation was wrong and doesn't work with async chunks and global publicPath option

Using publicPath as Function makes no difference - it's still not working for my use case. Rewriting __webpack_public_path__ is also not an option, as it would probably break other loaders?

Also you do not fill out the issue template and without reproducible test repo or steps, I can't say you the best solution

@clinyong Can you provide reproducible test repo? it is tested and works fine

@evilebottnawi Yep, https://github.com/clinyong/worker-loader-cross-origin

the publicPath option does't work at all, it always use out.publicPath to require my js, if it's the original purpose, I have to go back to v2

@clinyong I think here we have misleading docs, in fact we have two publicPath here:

publicPath for non worker chunks (including async chunks) - main.js (output.publicPath)
publicPath for worker chunks (including async chunks) - echo.worker.worker.js (worker-loader.options.publicPath)

Why? Because there are 2 cases:

You want to put worker initial chunk (echo.worker.worker.js) and worker async chunks (if you have import something from 'something' in worker code) in separate directory, here you need to use worker-loader.options.publicPath.
You want to override publicPath for place where you load worker, using publicPath is not help here, because webpack by default uses __webpack_public_path__.

In this case you need override public path on fly:
index.js
import './rewritePublicPath';
import EchoWorker from "./echo.worker";

const echoWorker = new EchoWorker();

echoWorker.onmessage = function (e) {
  console.log("Message received from worker");
  console.log(e.data);
};

setTimeout(() => {
  console.log("Post message to worker");
  echoWorker.postMessage([1, 2]);
}, 1000);

rewritePublicPath.js
// You can use `Define` plugin to avoid hardcodding value to code
__webpack_public_path__ = "http://<IP_ADDRESS>:5000/dist/";

@evilebottnawi This would be awesome. Any news on the fix for this?

You can find PR above your comment


change back to parquet-go-source upstream

Subject.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (cf71fdc) 92.69% compared to head (771c2a3) 92.69%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #296   +/-   ##
=======================================
  Coverage   92.69%   92.69%
=======================================
  Files          11       11
  Lines        1232     1232
=======================================
  Hits         1142     1142
  Misses         63       63
  Partials       27       27

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


Limit Line Label Text Color

Hi Daniel. I've been working with the ios charts and i'm having trouble finding how to change the colors on the x-axis limit line label. I'm not sure if it's because I'm new to swift programming but over on stack exchange i saw there was a way to setTextColor so i was wondering if you can do this in ios charts.
Also i'm a bit unsure how to make a dashed limit line as i dont know what the lineDashLength means. What does this property actually mean??
Thanks Daniel

Hi sorry about before, i have found the solution to my problem. the label color for a limit line is under valueTextColor property of the limit line and the lineDashLengths means how long the dashes are (e.g. a setting of 1.0 = the same thickness as a line with line width 1.0)


@damassi => removes mobile auction app

A little cleanup from your work to make the auction page responsive! (🎉)
I think this should be fine but let me know if there's something to consider.

👍 danger, merge on green


Deploy Heroku

Hi,
How can I deploy my local project to heroku?
I'm trying with Procfile: "worker: node index.js" and after 60 seconds console shows:
Process exited with status 137
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

As example:
// This is needed if the app is run on heroku:
var port = process.env.PORT || 8080;
// Initialize a new socket.io object. It is bound to
// the express app, which allows them to coexist.
var io = require('socket.io').listen(app.listen(port));

There is nothing with Socket.io on this proyect but you can take the port through environment variables.
var port = process.env.PORT || 8443;
var host = process.env.HOST;
var bot = new TelegramBot(token, {webHook: {port: port, host: host}});

Sorry, i mean define PORT and HOST

I have a similar problem.
this is my config
var TelegramBot = require('node-telegram-bot-api'),
    port = process.env.PORT || 443,
    host = process.env.HOST,
    bot = new TelegramBot(process.env.TOKEN, { webHook : { port : port, host : host } });

bot.setWebHook(/* here should go the url, right? */);
I tried to bind the url that Heroku gave me to a environment variable (like the TOKEN) but it's still not working, both locally and remotely.
I don't know what am I doing anymore, I feel like I'm banging rocks together at this point.

I have a working bot deployed on Heroku. Here is what I did:

use the port provided by Heroku and listen on '<IP_ADDRESS>' (probably process.env.HOST is better)
use the external URL (https://my-app.herokuapp.com:443/) for the webhook
use a path like /bot<token> for the webhook (see https://github.com/yagop/node-telegram-bot-api/blob/master/examples/httpsWebHook.js)

In your case, I would change the code like this:
var TelegramBot = require('node-telegram-bot-api'),
    port = process.env.PORT || 443,
    host = '<IP_ADDRESS>',  // probably this change is not required
    externalUrl = process.env.CUSTOM_ENV_VARIABLE || 'https://my-app.herokuapp.com',
    token = process.env.TOKEN,
    bot = new TelegramBot(process.env.TOKEN, { webHook: { port : port, host : host } });
bot.setWebHook(externalUrl + ':443/bot' + token);

This is my bot, if you want to check all the code: https://github.com/davidepedranz/coudrino-bot (my bot does not set a webhook if it does not find the URL in the WEBHOOK_URL env variable).

@davidepedranz shouldn't you provide also a certificate somehow?

If I understand the Telegram Bot's APIs right, you can decide to supply a certificate if you want Telegram to use it to verify the SSL connection to your server.
In this case, I do not provide any certificate because Telegram trusts Heroku's certificate, so a custom certificate is not required. I think the provided this option to allow developers to use self-signed certificates running on any host. ;-)

@davidepedranz Thanks for clarification

@davidepedranz If I'm providing a certificate does HTTPS still required?

@roccomuso Yes, Telegram wants still HTTPS, but you can provide your self-signed certificate at the bot startup to make it run an HTTPS server (see https://core.telegram.org/bots/api#setwebhook)

I have the same error:

const options = {
  webhook: {
    port: PORT || 443,
    host: '<IP_ADDRESS>'
  },
};

const bot = new TelegramBot(authToken, options);

bot.setWebHook(`${url}:443/bot${authToken}`);
setInterval(() => bot.sendMessage(chatID, 'I am alive on Heroku'), delay);

What I doing wrong?


member-ordering: doesn't check constructor

Bug Report

TSLint version: 3.8.0
TypeScript version: 1.8.10
Running TSLint via: CLI

TypeScript code being linted
with tslint.json:
{
   "member-ordering": [
           true,
           "public-before-private",
           "static-before-instance",
           "variables-before-functions"
        ]
}

When checking this code:
class MyClass {
       foo() {}
       blah: number = 0;
}

I get the expected warning:

[30, 10]: Declaration of public instance member variable not allowed to appear after declaration of public instance member function

But when checking this code it passes. (renamed 'foo' to 'constructor')
class MyClass {
       constructor() {}
       blah: number = 0;
}

Expected behavior
I would expect the constructor case to have the same warning because there is a method before property definition.

Thanks for the bug report @abierbaum!

Hmm, now this includes checks against static methods too... I prefer constructors as the first thing after members and then methods after that. So that's an ordering that doesn't seem to be supported now, but it used to be accidentally because of this bug e.g.
class MyClass {
    private static staticMember: number = 7;

    private member: number;

    constructor(value) {
        this.member = value;
    }

    public static publicStaticMethod(): number { ... }

    private static privateStaticMethod(): number { ... }

    public publicMemberMethod(): number { ... }

    private privateMemberMethod(): number { ... }
}

Is there any plan to support this ordering style, which is a common C# style i.e. fields, constructors then methods while maintaining static/instance ordering within those sections?


base-image: Remove virtualenv installed using pip

Remove triple installations of pip. Pip tool is installed once using tdnf and other two times using pip, so rely only on the one installed using tdnf.
Fixes: #403

Would you mind elaborating how this has something to do with virtualenv?

Would you mind elaborating how this has something to do with virtualenv?

I think the commit and the issue needs updating. So now we only have two installations of virtualenv one using tdnf and one using pip. The virtualenv installed using pip is never used, only the tdnf based one is used, because the tdnf installed one is what shows up in the PATH first.


Alternative setting for scale, other than sensor size

It is difficult to measure sensor width precisely, so an alternative method to set resolution is needed.
Comparing measurements to a known reference seems to be a good one. E.g. gauge blocks, or a linear guide and a sensitive dial indicator.
For this, it can be useful to switch to display raw pixel count, instead of mm/thou. (I guess, that's enough at first, user can calculate sensor size from that.)
This may be duplicate to #7 , but that doesn't have description, so IDK.

They way I would suggest setting the sensor size is like this:

Either look up the sensor datasheet which will give you accurate measurements. Most likely the measurement will be in metric if the webcam is made in china.

Take a top-down photo of the circuit board, measure the circuit board width using calipers than in some imaging software measure the zoomed in photo of the image sensor’s size and calculate it by using the measurement with calipers as a reference (measure the pixels of the sensor to the circuit board)


Create cyclicDetection.cpp

this is the  simple and understandable code of cyclic detection in  undirected graph
Assigned Issue Number ?
#Issue_Number
Location of the file(s) ?
Folder => Sub-Folder => ... => File.extension
Checklist

[ ] I've followed the contributing guidelines
[ ] The content added isn't directly copied from any sources like gfg, tutorialpoint, etc.
[ ] Input has been taken dynamically.
[ ] I've referred the correct issue number.
[ ] Comments have been added
[ ] I've  synced-up my forked repo.
[ ] Ain't pushing from the main branch.

this is the code of cyclic detection in undirected graph


Core Dumped - v0.5.0

Hi, i run graphmap with a fresh clone of your github (today) and i have this core dump. I work with others mappers with the same file for genome reference and fastq.
Cmd line :

graphmap align -t 8 -r mygenome.fasta -d myFastq.fastq -o myOutput.sam

Error :

[09:24:46 BuildIndexes] Loading reference sequences.
[09:25:21 SetupIndex_] Building the index for shape: '11110111101111'.
terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc
Aborted (core dumped)

If you need complementary information, i am at your disposition.

Hi,
how big is your reference, and how much RAM does your machine have?
Currently, building the index peaks at 32x reference_size (in bytes), but this will be reduced significantly in the next release.
Best regards,
Ivan.

I have 48Go of RAM for a genome reference of 2.6Go.

Unfortunately that won't be enough to build the index...do you have access to a higher-mem machine where you could build the index and transfer locally? Once build, the index will consume only about ~20GB.
This will be patched up in the next release.
Best regards,
Ivan.

Thank you for your support.
I launch on an another machine (177Go RAM), it's take 90Go of RAM.
I hope you can optimize the RAM cost of graphmap soon.


display further information about the entry

The Problem
The bot should not only say that something was changed but rather what exactly was changed.
The Solution
Description
The bot needs to figure out what data is relevant for the current entry.
An entry has the attribute type which is a string containing the given type of the entry.
Example
For example, if the entry type was Raum Vtr. the bot would need to look where the new room is located (entry.newRoom).
Code Location
The changes should be applied in the following function:
https://github.com/Kaffeegeist/rector-bot/blob/04d0f472e6d14e7c7d464b3abc24e676d07f8266/src/commands.ts#L16-L57

fixed by #17


Improve testing for MetadataTest

Checklist:

[x] Securely signed commits
[x] Component(s) with PHPDoc blocks, only if necessary or adds value
[x] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

This is better!


Create manylinux wheel

Might it be possible to create a manylinux .whl to put on PyPI? Installing on Windows is nice and fast thanks to the prebuilt wheel - but on linux it takes upwards of 7 minutes for me.

Are you sure you are talking about the face_recognition library itself and not a dependency library? For this library, I upload a -py2.py3-none-any.whl file.

@ageitgey Sorry, my mistake - the problem is with the dlib library which only has a precompiled wheel for windows (not linux) resulting in the super long installation times. Oh well! Not sure if much can be done about that. Thanks for your help.


Evaluation of DEMON

would you please provide demonloader? i really want to know the settings for the pre-process for demon data

same here

Hi,
You may refer to this from DeepSfM for the Demon loader.
Best

Thank you for the nice work! Are you planning to release the evaluation code and pretrained model for the DeMoN dataset?


Group files in python

Grouping of files into calibration/validation/testing periods in Python. This will come from splitting the python debiasing script (python/debiasing/run_cmethods.py) into a grouping step and a debiasing step. The grouping step will take all input files and produce output files that are grouped into the requested time frames. The debiasing code will just run the debiasing algorithms.

Overlaps with #46 . Closing


decimal support

'decimal' and 'decimal(,)' support
timing before hive types matching (this issue occurred in Cloudera Hadooop distribution)

Anyone planning on updating the nuget package?  Let me know if you need access to do it

I can do it. Please add me (or fsprojects account) to owners of NuGet package.

Hi @sergey-tihon, "fsprojects" is already a pending owner - check for the invitation - "sergey_tihon" is now also a pending owner

Done


The '.' key (repeat last command) doesn't work correctly with LuaSnip

For example, typing ahello<ESC> would insert hello after the cursor. I can then move to somewhere else and hit . to insert hello after the cursor wherever I am.
However it doesn't work if I type ahell<CR><ESC>, where when I hit enter I am selecting some snippet from the cmp menu (expanded by luasnip). The action I would expect to be repeated is 'insert  after the cursor'. For other completions from nvim-cmp the correct thing happens, but for snippets it doesn't.
What happens is that the cursor just moves to the left by one space, which is pretty weird. This is probably not exactly a bug but just because noone has put the effort to make it work with '.'
I just want to put it out there that I think it would be a useful feature.

Not a bad idea, but I don't know if it's possible/how to do it :sweat_smile:
We could implement repeating the last expanded snippet manually, but that would have to be mapped to a different key :/

It is doable, just integrate luasnip with tpope/repeat if installed @L3MON4D3

Ahh right, I'll look into how to do that👍👍

Integrating with vim-repeat appears to be as simple as adding a single line. However, I attempted to add vim.cmd('silent! call repeat#set("<Plug>luasnip-expand-or-jump", 1)') in various parts of the codebase but wasn't able to resolve this. Any suggestions for where to do this would be appreciated. It would be awesome to get dot repeat to work with luasnip.

I think the problem with that is that expand-or-jump is context-sensitive. If there is no trigger before the cursor, no snippet will expand.
What would need to be tracked are calls to luasnip. expand_snippet and the last snippet that was expanded (I havent yet looked into vim-repeat, is it able to just call a lua-function?)

I though about it some more, by directing all calls to snip_expand through a <Plug>-mapping, it's possible to integrate with vim-repeat (right now it only works on repeat-testing because ls.snip_expand has to be overridden, and that's not possible without some small changes to luasnip.)
local ls = require("luasnip")
_G.expand_func = ls.snip_expand

-- snip_expand is used to expand all snippets; overriding it will
-- make every expansion use our function.
ls.snip_expand = function(snip, expand_params)
	_G.expand_snip = snip
	_G.expand_opts = expand_params
	vim.fn.feedkeys(vim.api.nvim_replace_termcodes('<Plug>repeatable-snip-expand', true, true, true), '')
end

_G.repeatable_expand = function()
	print("here!!!")
	-- actually expands the snippet.
	_G.expand_func(_G.expand_snip, _G.expand_opts)

	-- prevent clearing text on repeated calls.
	_G.expand_opts.clear_region = nil
	_G.expand_opts.pos = nil
end

vim.cmd[[
        -- setup mappings for all modes (I think)
	noremap <silent> <Plug>repeatable-snip-expand <cmd>lua _G.repeatable_expand()<Cr>
	noremap! <silent> <Plug>repeatable-snip-expand <cmd>lua _G.repeatable_expand()<Cr>

	silent! call repeat#set("\<Plug>repeatable-snip-expand", v:count)
]]

Somehow it only works one time, and even then only if the cursor isn't moved after expanding.

I've looked into repeat some more, turns out I completely misunderstood how it works.
I thought that it hooks into the mappings via some vim-hack, turns out repeat#set has to be called after each action that should be repeatable, making it pretty simple.
I edited the above to work correctly, but this should be pretty simple to properly implement.

I'm having issues with this... If I manually call the expand_repeat as you created in your commit, it works partially: it recreates the text that triggered the snippet but not what was set in each substitution from the snippet, it also leaves me in insert mode to make the substitutions from the snippet. I'm not sure if this is the intended behavior... I was expecting it would basically redo the whole thing.
When I press . it doesn't work... It actually repeats what I typed as the last substitution from the snippet.
At first I thought it was cmp, but when there's no substitutions to trigger luasnip, it works as expected... I'm having issues only when there are snippets.

I'm not sure how vim-repeat works under the hood, but I agree that it'd be expected that the entire snippet is recreated, alas I don't know how to achieve that. (Okay I would have some rough ideas for hacking that together in luasnip, but I'd expect that vim-repeat also repeat the keystrokes after expanding the snippet, thereby filling it...... no idea how to achieve that though)

I hope this shed some lights on how to implement the "repeat" operator without using the vim-repeat plugin.
The important part is the opfunc value: this is the callback when you hit ..
Note that the l in the "g@l" returned value was necessary in this usage because it had a side effect that would enter after the initiation, but you probably should return "g@<CR>".

In any of the two cases (using vim-repeat or setting opfunc and calling g@) requires storing a closure  in a module or in G because this re-do is stateful.

I hope this shed some lights on how to implement the "repeat" operator without using the vim-repeat plugin.
The important part is the opfunc value: this is the callback when you hit ..
Note that the l (normal l, goes right) in the "g@l" returned value was necessary in this usage because it had a side effect that would enter after the initiation, but you probably should return "g@<CR>".

Ahh, thank you for that example :+1:
I dislike the more indirect call to expand we'd have to do for that, but if that approach also repeats text, sooo good trade off I guess

In any of the two cases (using vim-repeat or setting opfunc and calling g@) requires storing a closure in a module or in G because this re-do is stateful.

Yup, though we already almost do as much, we have to store the parameters used for the snip_expand-call for the vim-repeat-integration.


bump v<IP_ADDRESS>

Manual bump to latest release.
Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Error in Autotick
Autotick failed to download correct packages (see non-persistent link).
Error:
The recipe did not change in the version migration, a URL did not hash, or there is jinja2 syntax the bot cannot handle!

Please check the URLs in your recipe with version '<IP_ADDRESS>' to make sure they exist!

We also found the following errors:

 - could not hash URL template 'https://github.com/lierdakil/pandoc-crossref/releases/download/v{{ version }}{{ version_hidden_part }}/pandoc-crossref-Windows.7z'
 - could not hash URL template 'https://github.com/lierdakil/pandoc-crossref/releases/download/v{{ version }}{{ version_hidden_part }}/pandoc-crossref-macOS.tar.xz'
 - could not hash URL template 'https://github.com/lierdakil/pandoc-crossref/releases/download/v{{ version }}{{ version_hidden_part }}/pandoc-crossref-Linux.tar.xz'

Hopefully, this should work normally going forward if releases return to non-lettered versioning. Otherwise, we need to rework recipe to be compatible with autotick bot.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@mfansler, thanks!
If you already rerendered locally, you can check the task list of "Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)" next time. Otherwise you could leave a message @conda-forge-admin, please rerender.


Not working with Cookiebot?

Doesn't seem to work with Cookiebot, at least not when slide-up function is used as on https://www.voffice.pro

The banner always has id="CybotCookiebotDialog", should be an easy fix.

That's right, you could simply remove it via a block list. But this is not the goal of the project.
The banner is actually even recognized by the function "removeCookieBanner". The problem is that the element itself has other childelements, which are also position fixed, so the banner will not removed:
https://github.com/otsmr/cookie-banner-blocker/blob/main/content/detect.js#L100
        let childrenWithFixed = findElementByCssRule("position", null, e => e === "fixed" || e === "absolute", fixedElement)
        if (childrenWithFixed.length > 0) return;

This if-condition was made because, as in #2, whole pages were often removed because position fixed was used in the main-div.

That's right, you could simply remove it via a block list. But this is not the goal of the project.

I understand that you don't want to create and maintain a blocklist for websites, but maybe one for the most common cookie banner plug-ins could be considered?

Yes, the thing is that there are already very good addons for this and these also already have "CybotCookiebotDialog" on the list.
I personally use  uBlock Origin for this. There are already a lot of such cookie banner lists under "Filter lists" > "Harassment".
The goal of this addon is really only to detect "new" banners, or also banners where you are redirected (like at golem.de).

I understand. I am using uBlock Origin but didn't know it can also be used for cookie banners. Thank you!


Error when moving token while quick edit is enabled

token-attacher.js:2191 Uncaught (in promise) ReferenceError: _id is not defined
at token-attacher.js:2191
at Array.map ()
at saveAllQuickEditOffsets (token-attacher.js:2190)
Steps to reproduce:

Select token with stuff attached (in my case two tiles)
Activate Quick edit
Move selected token

After that a new error is logged in my console

Thanks for the report. This will be fixed in the next patch.


Union types gateway support

As per this code comment https://github.com/mercurius-js/mercurius-gateway/blob/main/lib/gateway/make-resolver.js#L652 it seems that it is not possible to define a Query that returns a Union type with one of the included object types defined in another service.
E.g.:
With these two service schemas
# Post schema
type Post @key(fields: "id") {
    id: ID!
    title: String!
    authorId: Int!
}

extend type Query {
    findPost(id: ID!): Post
}

# Recipe schema
type Recipe @key(fields: "id") {
  id: ID!
  name: String!
  postId: Int!
}

extend type Post @key(fields: "id") {
  id: ID! @external
  recipes: [Recipe!]!
}

union SearchUnion = Recipe | Post

extend type Query {
  findRecipe(id: ID!): Recipe
  search: [SearchUnion!]!
}

and a dummy search resolver like this:
search: () => ([
  { __typename: 'Post', id: 1 },
  { __typename: 'Recipe', id: 1, name: 'recipe1', postId: 1 },
]);

The query throws the error Cannot read properties of undefined (reading 'has')
I found out the error is thrown here.
Strangely if I change the returned array order (returning a Recipe before a Post) the error changes to Cannot return null for non-nullable field Post.title. (it works if I only ask for Post.id since it doesn't have to resolve fields from another service)

Thanks for reporting! Would you like to send a Pull Request to address this issue? Remember to add unit tests.


We still need the documentation for 1.x

Please, create a wiki page for 1.x documentation.

Hi @CavalcanteLeo
You can checkout the documentation of the v1.x branch:
https://github.com/andreamazz/AMScrollingNavbar/tree/v1.x

Thank you

:+1:


chore: import chart work, aws cli version bump

Ref https://github.com/rancherlabs/image-scanning/issues/1590
Chart: https://github.com/epinio/helm-charts/pull/299

Codecov Report
Base: 60.95% // Head: 8.25% // Decreases project coverage by -52.69% :warning:

Coverage data is based on head (42478c3) compared to base (d0ae9a1).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #1844       +/-   ##
==========================================
- Coverage   60.95%   8.25%   -52.70%
==========================================
  Files         178      90       -88
  Lines       14345    9603     -4742
==========================================
- Hits         8744     793     -7951
- Misses       4505    8756     +4251
+ Partials     1096      54     -1042

Flag
Coverage Δ

acceptance-api
?

acceptance-apps
?

acceptance-cli
?

unittests
8.25% <ø> (ø)

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

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

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


Context located help

It would good to have a link to a help page for each of the pages - "Tests", "Schema", ...
Especially a help page / tutorial for each of the "Create .." pages.
This could link to the main web site to begin with.

I have cloned the project but i am not able to figureout that how can i run the project


fix(CI): remove duplicate hive and presto tests

SUMMARY
Just realized we've had duplicate CI workflows for Presto and Hive for a couple of months.
The unfortunate series of events happened as follows:

I split Presto and Hive into their own workflows in September: #10821
They were added back to superset-frontend.yml in #10784 , probably by an improper handling of merge conflicts
@etr2460 split them again in November: #11794 --- by that time I already forgot I already did the split just two months ago.... 🤦
I combined them into one workflow in #12090 , in hope to reduce jobs in queue.

This PR cleans up the Presto and Hive tests' standalone workflow files but keep the combined one superset-frontend-hive-presto.yml.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A
TEST PLAN
CI should pass
ADDITIONAL INFORMATION

[x] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #12638 (139c27c) into master (7577f47) will decrease coverage by 3.61%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #12638      +/-   ##
==========================================
- Coverage   66.80%   63.19%   -3.62%
==========================================
  Files        1017      486     -531
  Lines       49730    29982   -19748
  Branches     4864        0    -4864
==========================================
- Hits        33224    18948   -14276
+ Misses      16383    11034    -5349
+ Partials      123        0     -123

Flag
Coverage Δ

cypress
?

javascript
?

python
63.19% <ø> (-0.80%)
:arrow_down:

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

Impacted Files
Coverage Δ

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/sql_validators/postgres.py
50.00% <0.00%> (-50.00%)
:arrow_down:

superset/db_engine_specs/hive.py
54.61% <0.00%> (-29.24%)
:arrow_down:

superset/db_engine_specs/sqlite.py
65.62% <0.00%> (-9.38%)
:arrow_down:

superset/databases/commands/create.py
83.67% <0.00%> (-8.17%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/connectors/sqla/models.py
84.31% <0.00%> (-6.28%)
:arrow_down:

superset/databases/commands/test_connection.py
84.78% <0.00%> (-4.35%)
:arrow_down:

superset/utils/celery.py
96.42% <0.00%> (-3.58%)
:arrow_down:

superset/models/core.py
85.59% <0.00%> (-3.27%)
:arrow_down:

... and 541 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #12638 (139c27c) into master (7577f47) will decrease coverage by 3.61%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #12638      +/-   ##
==========================================
- Coverage   66.80%   63.19%   -3.62%
==========================================
  Files        1017      486     -531
  Lines       49730    29982   -19748
  Branches     4864        0    -4864
==========================================
- Hits        33224    18948   -14276
+ Misses      16383    11034    -5349
+ Partials      123        0     -123

Flag
Coverage Δ

cypress
?

javascript
?

python
63.19% <ø> (-0.80%)
:arrow_down:

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

Impacted Files
Coverage Δ

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/sql_validators/postgres.py
50.00% <0.00%> (-50.00%)
:arrow_down:

superset/db_engine_specs/hive.py
54.61% <0.00%> (-29.24%)
:arrow_down:

superset/db_engine_specs/sqlite.py
65.62% <0.00%> (-9.38%)
:arrow_down:

superset/databases/commands/create.py
83.67% <0.00%> (-8.17%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/connectors/sqla/models.py
84.31% <0.00%> (-6.28%)
:arrow_down:

superset/databases/commands/test_connection.py
84.78% <0.00%> (-4.35%)
:arrow_down:

superset/utils/celery.py
96.42% <0.00%> (-3.58%)
:arrow_down:

superset/models/core.py
85.59% <0.00%> (-3.27%)
:arrow_down:

... and 541 more

Continue to review full report at Codecov.

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


Revert to default font family

Why these changes are being introduced:
TIMDEX UI had been overriding the default font family we use in the style guide (Roboto instead of Helvetica Neue). Darcy has requested that we use the default font family.
Relevant ticket(s):

GDT-215
GDT-239

How this addresses that need:
This removes the font overrides.
Side effects of this change:
TIMDEX UI has a few other typography overrides. It's not clear to me if those are still relevant, but Darcy will let us know during UX review.
Developer
Accessibility

[x] ANDI or WAVE has been run in accordance to our guide.
[ ] This PR contains no changes to the view layer.
[ ] New issues flagged by ANDI or WAVE have been resolved.
[ ] New issues flagged by ANDI or WAVE have been ticketed (link in the Pull Request details above).
[x] No new accessibility issues have been flagged.

New ENV

[ ] All new ENV is documented in README.
[ ] All new ENV has been added to Heroku Pipeline, Staging and Prod.
[x] ENV has not changed.

Approval beyond code review

[ ] UXWS/stakeholder approval has been confirmed.
[x] UXWS/stakeholder review will be completed retroactively.
[ ] UXWS/stakeholder review is not needed.

Additional context needed to review
If you compare this PR to staging, the font should be noticeably different. In dev tools, font-family should be set to "Helvetica Neue", Helvetica, Arial, "Open Sans", sans-serif.
Code Reviewer
Code

[ ] I have confirmed that the code works as intended.
[ ] Any CodeClimate issues have been fixed or confirmed as
added technical debt.

Documentation

[ ] The commit message is clear and follows our guidelines
(not just this pull request message).
[ ] The documentation has been updated or is unnecessary.
[ ] New dependencies are appropriate or there were no changes.

Testing

[ ] There are appropriate tests covering any new functionality.
[ ] No additional test coverage is required.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
526

Relevant Lines:
532

💛  - Coveralls

Thanks. Opened said ticket in the EngX JIRA for now.


GreatBrain - added tooltip to hammer

Added tool-tip to hammer stating that Imcando Hammer should not be used as the hammer is given to Dr later in the quest. This change was requested on the Discord.

I think you'd be better off just changing the collection to ItemID.HAMMER instead of adding a tooltip. This makes it so there won't ever be people giving their Imcando hammer.

You are correct, I completely overlooked that. Thank you!


Defer _run substr operation in ProcessString

Summary of the Pull Request
Do not eagerly create run by substring to reduce the unnecessary overhead.

References

PR Checklist

[X] Performance itch
[X] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Documentation updated. If checked, please file a pull request on our docs repo and link it here: #xxx
[ ] Schema updated.
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

This saves ~7% of CPU time
Before:

After:

Thanks @lhecker for the wonderful idea!
Note that StateMachine::ProcessString is used heavily in both OpenConsole & WT. I'd expect noticeable performance
improvement in the official build, which is PGO enhanced. My local build isn't with PGO, so the improvement is limited.

Strange. I can't repro the feature tests failure locally. Maybe it's transient?

OK the test failures seems to be transient. Merged main and now the CI is green.

@DHowett This is a CPU trace of OpenConsole when running termbench:

I've benchmarked this patch on my experimental, fast glyph-atlas renderer and it improves VT performance from 490 kcg/s up to 550 kcg/s, or a whopping +12% just like that!
(To anyone reading this: Yes, 550 kcg/s isn't comparatively fast, but the cause for this is simply the mere lack of proper double buffering.)

Right, but substr is a simple operation. What's inside it that's so expensive?

That single line is combination of: substr, constructing a string_view, and copying a string_view into _run. You want me to find a winner among these three? 😅
Talked with Leonard. He thinks it’s substr with all the internal checks for boundaries and everything.

@DHowett Benchmarking suggests that the removal of .at() improves performance by just 10 kcg/s (+2%) and the removal of .substr() by 50 kcg/s (+10%).
I believe this is caused by inoptimal assembly generated due to .substr(), causing conditional moves and jumps to be emitted. Additionally I believe that exception-throwing code paths cause the CPU pipeline to be less effective.

The difference in assembly is basically (shortened)....
 Not try to brag here, but the "counting stuff" looks so much better!

Thanks for the explanation :smile:

@msftbot make sure @miniksa signs off

With this PR, together with the previous my ones merged into main, I'm seeing 80% performance boost in OpenConsole (88kcg) comparing to cmd.exe (19043.1052) (50kcg), and this is only my local build!


ShortFilms is not working anymore since mpv upgrade

Hi Vitor,
It seems that the mpv upgrade from brew today broke the streaming capability of mpv with youtube-dl.
As a consequence, ShortFilms doesn't work anymore either.
I have filled in a bug report for mpv: https://github.com/mpv-player/mpv/issues/5193
You might want to chip in too if you have an idea of what broke.
Cheers,
Guy

I see the issue already has replies that address this.


references version update

Update OpenTK and JetBrains.Annotations to last versions for #61 issue
I also ran into a problem while testing the latest OpenTK version

I'm really hoping for this, too.
@NogginBops is there any chance we can get these changes merged soon? :)

@mathewodwyer thanks for the ping! Apparently I've not had notifications for this repository turned on so I've not seen a lot of these PRs and issues. I will push a change to this PR to update to OpenTK 4.7.1, which shouldn't be an issue.

Ok, turns out I don't have write access to this repo at this moment. Once I've fixed that I'll merge this.

Ok, turns out I don't have write access to this repo at this moment. Once I've fixed that I'll merge this.

All good, I saw a few PRs here that I've been trying to workaround until they were merged.

@Malstraem Ping me on discord if you want the contributor role.


Clean up "Controller" files

Refactor and add better documentation to various "Controller" files in public/src/.

Fixed.


Tests are very brittle and fail often

Currently it's pretty hard to contribute to this repo for a few reasons:

my dependencies seem to get out of sync often, it's unclear how and when deps across packages need to stay in sync
the playwright implementation we have is failing all the time with no clear reason why: Chromium revision is not downloaded. Run "npm install" The browsers don't always install correctly on circleci.

Tried to run CI locally and ran into this issue, not sure if related
❯ circleci local execute
Docker image digest: sha256:f5d8aa8d08da999501fcbf71e5a5ebabd9e1119581e609666dccf3a03af87bed
====>> Spin up Environment
Build-agent version 1.0.24132-7e56487c (2020-01-16T13:27:22+0000)
Error: Configuration errors: 1 error occurred:

* Cannot find a job named `build` to run in the `jobs:` section of your configuration file.
If you expected a workflow to run, check your config contains a top-level key called 'workflows:'
Step failed
Task failed
Error: 1 error occurred:

* Cannot find a job named `build` to run in the `jobs:` section of your configuration file.
If you expected a workflow to run, check your config contains a top-level key called 'workflows:'```

@kyranjamie you can do circleci local execute --job test_web

What's the latest here?