[Package Issue]: Sigil-Ebook.Sigil - new version PR failure

Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Other
Brief description of your issue
Installer validation error in the Azure pipeline: #147284
It seems to be related to a dependency package (Microsoft.VCRedist.2015+.x64) and not my package itself. Short of removing the dependency, I don't see anything that I can push to my PR branch to fix it.
There's an identical Automatic validation error here: https://github.com/microsoft/winget-pkgs/pull/147206#issuecomment-2029833788
And another one where the same error was wavered last week: https://github.com/microsoft/winget-pkgs/pull/146365#issuecomment-2018115442
Why so many failures with manifests that have winget dependency package requirements in their installer yaml?
Steps to reproduce
Include the following in a package installer manifest:
Dependencies:
PackageDependencies:

PackageIdentifier: Microsoft.VCRedist.2015+.x64

Actual behavior
2024-04-01 18:03:47.191 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFA4CC1C11F: (caller: 00007FFA4C9A8D6F) LogHr(1) tid(1cf8) 8A15005E Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFA4CB22B08: (caller: 00007FFA4CBCBC20) Exception(1) tid(1cf8) 8A15005E ]
2024-04-01 18:03:47.191 [REPO] Failed to open available source: msstore
2024-04-01 18:03:54.851 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\RepositorySource.cpp(757)\WindowsPackageManager.dll!00007FFA31D3C11F: (caller: 00007FFA31AC8D6F) LogHr(1) tid(67c) 8A15005E Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerRepositoryCore\Rest\Schema\HttpClientHelper.cpp(30)\WindowsPackageManager.dll!00007FFA31C42B08: (caller: 00007FFA31CEBC20) Exception(1) tid(67c) 8A15005E ]
2024-04-01 18:03:54.851 [REPO] Failed to open available source: msstore
2024-04-01 18:03:56.122 [CLI ] No suitable installer found for manifest Microsoft.VCRedist.2015+.x64 with version 14.38.33135.0
Expected behavior
The installer verification should not fail.
Environment
This is not a winget client issue. This is an issue submitting a new version of a manifest to winget-pkgs. winget --info is not relevant.

Screenshots and Logs
No response

Another newer failure with the same dependency specifications: #147314

The Dependencies and its PackageDependencies parameter have always been marked as "Experimental" in the various schema versions, but have always worked until very recently. Can I assume those are now officially broken/unsupported? I know of no other way to make sure the Microsoft.VCRedist.2015+.x64 runtime dependency is available for my package to function.

Hi @dougmassay,

Another newer failure with the same dependency specifications: https://github.com/microsoft/winget-pkgs/pull/147314

This is a Defender error on the installer, which is very different. The PR hasn't completed the download step, so wouldn't have reached the dependency install step.

The Dependencies and its PackageDependencies parameter have always been marked as "Experimental" in the various schema versions, but have always worked until very recently. Can I assume those are now officially broken/unsupported? I know of no other way to make sure the Microsoft.VCRedist.2015+.x64 runtime dependency is available for my package to function.

Please understand that this is likely a temporary issue with the dependency. It's another software package with manifests in our repo, not unlike Sigil-Ebook.Sigil.

Sorry. I must have fat-fingered what I thought was the newer example. I was looking at one that had the same error as mine (same dependency requirement, in fact) and must have messed up.
I'll wait and see if this gets resolved before the automatic 7-day PR closure happens before deciding if I want to risk dumping the dependency requirement in order to force this new version through or not.

It is my opinion that the installer verification pipeline should not be failing when a dependency package does not have a matching scope installer. This is brand new behavior. In the case of VCRedist dependencies, the winget client seems perfectly of installing a machine scope dependency (the installer asks for admin elevation) even when the base package being installed is using the user scope installer.


Synthesis failed for Google.Cloud.SecretManager.V1Beta1

Hello! Autosynth couldn't regenerate Google.Cloud.SecretManager.V1Beta1. :broken_heart:
Please investigate and fix this issue within 5 business days.  While it remains broken,
this library cannot be updated with changes to the Google.Cloud.SecretManager.V1Beta1 API, and the library grows
stale.
See https://github.com/googleapis/synthtool/blob/master/autosynth/TroubleShooting.md
for trouble shooting tips.
Here's the output from running synth.py:
2021-03-19 22:45:38,043 autosynth [INFO] > logs will be written to: /tmpfs/src/logs/Google.Cloud.SecretManager.V1Beta1
2021-03-19 22:45:38,534 autosynth [DEBUG] > Running: git config --global core.excludesfile /home/kbuilder/.autosynth-gitignore
2021-03-19 22:45:38,538 autosynth [DEBUG] > Running: git config user.name yoshi-automation
2021-03-19 22:45:38,542 autosynth [DEBUG] > Running: git config user.email<EMAIL_ADDRESS>2021-03-19 22:45:38,545 autosynth [DEBUG] > Running: git config push.default simple
2021-03-19 22:45:38,549 autosynth [DEBUG] > Running: git branch -f autosynth-Google.Cloud.SecretManager.V1Beta1
2021-03-19 22:45:38,553 autosynth [DEBUG] > Running: git checkout autosynth-Google.Cloud.SecretManager.V1Beta1
Switched to branch 'autosynth-Google.Cloud.SecretManager.V1Beta1'
2021-03-19 22:45:38,763 autosynth [DEBUG] > Running: git rev-parse --show-toplevel
2021-03-19 22:45:38,770 autosynth [DEBUG] > Running: git log -1 --pretty=%H
2021-03-19 22:45:38,774 autosynth [DEBUG] > Running: git remote get-url origin
2021-03-19 22:45:38,809 synthtool [ERROR] > Failed executing git checkout master:

error: Your local changes to the following files would be overwritten by checkout:
	google/cloud/dialogflow/v2/answer_record.proto
	google/cloud/dialogflow/v2/conversation.proto
	google/cloud/dialogflow/v2/conversation_profile.proto
	google/cloud/dialogflow/v2/participant.proto
Please commit your changes or stash them before you switch branches.
Aborting

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 312, in _inner_main
    git_source.enumerate_versions(sources, pathlib.Path(temp_dir))
  File "/tmpfs/src/github/synthtool/autosynth/git_source.py", line 202, in enumerate_versions
    source_versions = enumerate_versions_for_source(git_source, temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/git_source.py", line 166, in enumerate_versions_for_source
    local_repo_dir = str(synthtool_git.clone(remote))
  File "/tmpfs/src/github/synthtool/synthtool/sources/git.py", line 85, in clone
    shell.run(["git", "checkout", "master"], cwd=str(dest), check=True)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'checkout', 'master']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Use Broker & Client

Hello,
if I understand correctly, there is a client included in EmbeddedMqttBroker. How can I use this client in parallel with the broker. Publish and receive?
Thanks in advance

Hi!, thanks for intersting in this project!, for now, this library only implements a mqtt broker, MqttBroker::MqttClient class has basic information about the current state of connection with the external client and some logic to process its mqtt messages. In future versions, I will include a functional MqttClient but for now it is not developed. To do what you ask, I normaly use PubSubClient.h. There is no issue if you use both libraries in the same scketch. I hope it has helped you!


separated_list1 fails if separator is empty

The separated_list1 combinator fails if the separator is empty.
I suppose this is because of this excerpt here:
https://github.com/Geal/nom/blob/0b92df971a7d2090023b353e0283f9b2db6f2a84/src/multi/mod.rs#L353-L355
This behaviour is not obvious; perhaps it is unusual to desire it, though.
My use case was to have space-separated values, but allow the space to be omitted if a ( or [ bracket followed immediately, as in
    let space_or_peek_bracket = alt((
        char(' '),
        peek(one_of("(["))
    ));
    let (i, terms) = separated_list1(space_or_peek_bracket, parse_term)(i)?;

I notice that separated_list1 was previously extended to allow empty elements.
I also notice that many1 forbids empty elements (because of the potential for an infinite loop).
I'm sure I will be able to work around this without too much trouble, but perhaps separated_list1 could be made to allow this, or have documentation added that makes it obvious?
(I suspect the documentation route may be the best, because otherwise you could have both empty elements and empty separators and this would mean that you could have an infinite loop, similar to many1…)
In any case, thought it was worth dropping a note here in case anyone else scratches their head.
nom version : 6.1.0

For anybody that comes in the future, this was how I resolved this case for me:
    let mut terms = Vec::new();

    let (i, term) = parse_term(i)?;
    terms.push(term);

    let space_or_peek_bracket = alt((
        char(' '),
        peek(one_of("(["))
    ));

    let (i, extra_terms) = many0(pair(space_or_peek_bracket, parse_term))(i)?;
    for (_, term) in extra_terms.into_iter() {
        terms.push(term);
    }

The looping combinators in nom-supreme also address this, by using a smarter 0-length match checker (0-length matches allowed, but terminates if an infinite loop is detected)


Bashio is not available from debian image

Hello,
i am trying create new addon which reckquires debian base image because program need gcc installed. So i cant use Alpine image.
My build.yaml contains only
build_from:
amd64: homeassistant/amd64-base-debian:latest
My Docker file:
ARG BUILD_FROM
#FROM $BUILD_FROM
FROM alpine:3.15 as downloader
ARG RPORT_VERSION=0.9.5
RUN apk add unzip sqlite nmap-ncat apache2-utils tar
WORKDIR /app/
RUN set -e
&& wget https://github.com/cloudradar-monitoring/rport/releases/download/0.9.5/rportd_0.9.5_Linux_x86_64.tar.gz -O rportd.tar.gz && tar xzf rportd.tar.gz rportd
#FROM debian:11
FROM $BUILD_FROM
COPY --from=downloader /app/rportd /usr/local/bin/rportd
COPY --from=downloader /app/frontend/ /var/www/html/
COPY --from=downloader /app/novnc/ /var/lib/rport-novnc
COPY entrypoint.sh /entrypoint.sh
RUN set -e
&& useradd -d /var/lib/rport -m -U -r -s /bin/false rport
&& mkdir -p /etc/rport && chown rport:rport /etc/rport
USER rport
COPY --chown=rport:rport rportd.conf.template /etc/rportd.conf.template
VOLUME [ "/var/lib/rport/" ]
ENTRYPOINT [ "/bin/bash", "/entrypoint.sh", "/usr/local/bin/rportd", "--data-dir", "/var/lib/rport", "--config", "/etc/rport/rportd.conf" ]
And entrypoint.sh:
#!/usr/bin/with-contenv bashio
conf_file=/etc/rport/rportd.conf
echo "Composing config for rport ..."
bashio::log.info "con file location: ${conf_file}"
exec "$@"
Plugin instals without error but after start it, i am getting error: /entrypoint.sh: line 18: bashio::log.info: command not found
So bashio does not accessible.
How please i can use bashio which may be alleady installer in source image?
Thank you

homeassistant/amd64-base-debian:latest

Don't ever use latest, it doesn't mean what you think it does.
../Frenck


ResourceReaperException: Initialization has been cancelled

Describe the bug
It looks like, that in some rare cases .NET Testcontainers can't connect to Ryuk. I got a few times the following error:

DotNet.Testcontainers.Containers.ResourceReaperException : Initialization has been cancelled.

According the log messages, .NET Testcontainers tries to connect a couple of times. It looks like Ryuk is not ready to accept a connection. @PSanetra Do you have any idea? May this relate to the recent changes in the image?
To Reproduce
-
Expected behavior
.NET Testcontainers can connect to Ryuk.
Screenshots
-
Desktop (please complete the following information):

Docker Desktop 4.7.1 (77678)

Additional context
Build 2193. May relate to: #423, #441, #443.
Workaround
Disable the ResourceReaper (TestcontainersSettings.ResourceReaperEnabled = false).

Hi @HofmeisterAn, the image was not updated since December.
To debug this issue, it would be nice if we could log some information about the current environment.

currently available network interfaces in the test environment, which executes the tests
expected ryuk endpoint (ip and port)
count of connection attempts
docker container inspect information of the ryuk container
ryuk logs
cancellation reason (initTimeout or the external CancellationToken)

A possible cause of this issue might be an occasionally slow download of the ryuk image.

No, not lately. Looks stable for my builds, but this is an interesting comment: https://github.com/HofmeisterAn/dotnet-testcontainers/discussions/443#discussioncomment-2809925.

@HofmeisterAn on first sight it seems odd that there was only a single connection attempt.
The resource reaper session id looks wrong, too:
"dotnet.testcontainers.resource-reaper-session": "00000000-0000-0000-0000-000000000000"

Yes, I was wondering about the connection attempt as well. I didn't notice the label. The container name looks fine: /testcontainers-ryuk-83eae8ca-15c8-4d9e-bdc0-e25b25179dc3.
It looks like a race condition in DefaultLabels. SkipOnLinuxEngineAttribute sets ResourceReaperEnabled, but that should always be enabled for Linux tests.

The session ID (Guid.Empty) is correct. The log shows the Ryuk container inspect result. The cleanup is disabled for the resource reaper (WithCleanUp(false)).

I dont know if this helps.. but the same things was happening to me, trying to use a mariadb database (Logs just like yours.)
Interesting.. while debugging it was working fine, and failing only on some computers.
What seems to fix it was adding ".WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(3306))"
private readonly TestcontainerDatabase _dbContainer =         new TestcontainersBuilder<MySqlTestcontainer>()             .WithDatabase(new MySqlTestcontainerConfiguration("mariadb:10.5.5")             {                 Database = "mydb",                 Username = "myuser",                 Password = "mypass",                 Port = 3306             })             .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(3306))             .Build();

@kron0s19 Do you still have the logs? The resource reaper exception incl. its diagnostic information might be helpful.

error.txt
This is what I was getting.
I can confirm it has not happened again after adding "WithWaitStrategy"

Interesting detail about the new error log:
{
  [...]
  "ExpectedHost": "localhost",
  "ExpectedPort": 49153,
  "ContainerInspection": {
    [...]
    "NetworkSettings": {
      [...]
      "Ports": {
        "8080/tcp": [
          {
            "HostIP": "<IP_ADDRESS>",
            "HostPort": "63127"
          }
        ]
      },
      [...]
    }
  }
}

The expected port does not match with the actual host port binding of the ryuk container.
This is different than in the previous error log we have.

The session ID (Guid.Empty) is correct. The log shows the Ryuk container inspect result. The cleanup is disabled for the resource reaper (WithCleanUp(false)).

Make sense :+1:
I think in that case we should omit the label from the container.

Same issue here on Windows. Sometimes it works, sometimes it fails with this exception ResourceReaperException
DotNet.Testcontainers.Containers.ResourceReaperException
Initialization has been cancelled.
{
  "ConnectionAttempts": 2,
  "LocalNetworkInterfaces": {
    "{65496C37-B14C-4240-80D1-D70919634587}": [
      "fe80::e000:be57:78ca:9016%13",
      "<IP_ADDRESS>"
    ],
    "{114419F6-1B1E-4AA0-B45B-6A9DCC8919DB}": [
      "fe80::a9e7:379:9b0a:92e9%3",
      "<IP_ADDRESS>"
    ],
    "{468F976F-62B8-4EDA-9810-04434F48CEAC}": [
      "fe80::953c:37e:7a49:3c2b%10",
      "<IP_ADDRESS>"
    ],
    "{DA05C777-76CD-490E-B918-658EAB05754F}": [
      "fe80::74dd:6d1f:d41:3525%77",
      "<IP_ADDRESS>"
    ],
    "{9DBC6CA6-9146-4ECA-B573-3F5C6788ACED}": [
      "fe80::ad9f:cf38:fa12:a656%24",
      "<IP_ADDRESS>"
    ],
    "{35AC8699-8C28-41F8-94B9-8980F0BD7C8C}": [
      "fe80::e16e:4bfa:c172:7f27%8",
      "<IP_ADDRESS>"
    ],
    "{407C0181-4D1D-4932-85F1-DB55E0DBA6EF}": [
      "fe80::617d:b3c3:63b8:ad8f%9",
      "<IP_ADDRESS>"
    ],
    "{8CF48E01-8038-460B-9049-EFDAA77BDDA0}": [
      "fe80::6997:43fe:9fe5:8803%21",
      "<IP_ADDRESS>"
    ],
    "{67CA33D7-7E83-4B6E-8448-52B4718C2066}": [
      "fe80::4ce8:fc74:d188:bf97%15",
      "<IP_ADDRESS>"
    ],
    "{C96BABE4-121E-4D6D-8A64-26476F2888DB}": [
      "fe80::f18b:cd26:1ca5:146c%29",
      "<IP_ADDRESS>"
    ],
    "{35F0BF58-A867-11EB-86E8-806E6F6E6963}": [
      "::1",
      "<IP_ADDRESS>"
    ],
    "{AF1CD63D-F866-48A2-9086-F7DA4A29798A}": [
      "fe80::8c48:6101:ec0:8f48%90",
      "<IP_ADDRESS>"
    ]
  },
  "ExpectedHost": "localhost",
  "ExpectedPort": 49227,
  "ContainerInspection": {
    "ID": "d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1",
    "Created": "2022-06-15T08:24:06.5377028Z",
    "Path": "/app",
    "Args": [],
    "State": {
      "Status": "running",
      "Running": true,
      "Paused": false,
      "Restarting": false,
      "OOMKilled": false,
      "Dead": false,
      "Pid": 13808,
      "ExitCode": 0,
      "Error": "",
      "StartedAt": "2022-06-15T08:24:06.95581392Z",
      "FinishedAt": "0001-01-01T00:00:00Z",
      "Health": null
    },
    "Image": "sha256:a0a36b674846145de03e245546b041e183f5a47e660fcba0d44f7c5392581f42",
    "ResolvConfPath": "/var/lib/docker/containers/d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1/hostname",
    "HostsPath": "/var/lib/docker/containers/d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1/hosts",
    "LogPath": "/var/lib/docker/containers/d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1/d7ad52074af21e747b80f487bf79263288504f6c8759e019afb83bf58a0065c1-json.log",
    "Node": null,
    "Name": "/testcontainers-ryuk-e7442a19-45fa-4c44-82c3-f704678b4f78",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
      "Binds": null,
      "ContainerIDFile": "",
      "LogConfig": {
        "Type": "json-file",
        "Config": {}
      },
      "NetworkMode": "default",
      "PortBindings": {
        "8080/tcp": [
          {
            "HostIP": "<IP_ADDRESS>",
            "HostPort": "0"
          }
        ]
      },
      "RestartPolicy": {
        "Name": 0,
        "MaximumRetryCount": 0
      },
      "AutoRemove": true,
      "VolumeDriver": "",
      "VolumesFrom": null,
      "CapAdd": null,
      "CapDrop": null,
      "CgroupnsMode": "host",
      "DNS": null,
      "DNSOptions": null,
      "DNSSearch": null,
      "ExtraHosts": null,
      "GroupAdd": null,
      "IpcMode": "private",
      "Cgroup": "",
      "Links": null,
      "OomScoreAdj": 0,
      "PidMode": "",
      "Privileged": false,
      "PublishAllPorts": false,
      "ReadonlyRootfs": false,
      "SecurityOpt": null,
      "StorageOpt": null,
      "Tmpfs": null,
      "UTSMode": "",
      "UsernsMode": "",
      "ShmSize": 67108864,
      "Sysctls": null,
      "Runtime": "runc",
      "ConsoleSize": [
        0,
        0
      ],
      "Isolation": "",
      "CPUShares": 0,
      "Memory": 0,
      "NanoCPUs": 0,
      "CgroupParent": "",
      "BlkioWeight": 0,
      "BlkioWeightDevice": null,
      "BlkioDeviceReadBps": null,
      "BlkioDeviceWriteBps": null,
      "BlkioDeviceReadIOps": null,
      "BlkioDeviceWriteIOps": null,
      "CPUPeriod": 0,
      "CPUQuota": 0,
      "CPURealtimePeriod": 0,
      "CPURealtimeRuntime": 0,
      "CpusetCpus": "",
      "CpusetMems": "",
      "Devices": null,
      "DeviceCgroupRules": null,
      "DeviceRequests": null,
      "KernelMemory": 0,
      "KernelMemoryTCP": 0,
      "MemoryReservation": 0,
      "MemorySwap": 0,
      "MemorySwappiness": null,
      "OomKillDisable": false,
      "PidsLimit": null,
      "Ulimits": null,
      "CPUCount": 0,
      "CPUPercent": 0,
      "IOMaximumIOps": 0,
      "IOMaximumBandwidth": 0,
      "Mounts": [
        {
          "Type": "bind",
          "Source": "/var/run/docker.sock",
          "Target": "/var/run/docker.sock",
          "ReadOnly": true,
          "Consistency": null,
          "BindOptions": null,
          "VolumeOptions": null,
          "TmpfsOptions": null
        }
      ],
      "MaskedPaths": [
        "/proc/asound",
        "/proc/acpi",
        "/proc/kcore",
        "/proc/keys",
        "/proc/latency_stats",
        "/proc/timer_list",
        "/proc/timer_stats",
        "/proc/sched_debug",
        "/proc/scsi",
        "/sys/firmware"
      ],
      "ReadonlyPaths": [
        "/proc/bus",
        "/proc/fs",
        "/proc/irq",
        "/proc/sys",
        "/proc/sysrq-trigger"
      ],
      "Init": null
    },
    "GraphDriver": {
      "Data": {
        "LowerDir": "/var/lib/docker/overlay2/c1d78ef038ad729582d479de4139b22d36add9b2d3b372ac838fe9f47f7acbb6-init/diff:/var/lib/docker/overlay2/59850a04cb8237e9161ecc6859c1399df5bace2e3c21e8b658285d0e387edb9f/diff:/var/lib/docker/overlay2/5210167bf33795b800d34d3c69bb46d93b85c265a1d8486667a49a724693ee1d/diff:/var/lib/docker/overlay2/58e4b51e6a63798684332b242253150e23cebef003f3a5dbd5901da2b0c0b70f/diff",
        "MergedDir": "/var/lib/docker/overlay2/c1d78ef038ad729582d479de4139b22d36add9b2d3b372ac838fe9f47f7acbb6/merged",
        "UpperDir": "/var/lib/docker/overlay2/c1d78ef038ad729582d479de4139b22d36add9b2d3b372ac838fe9f47f7acbb6/diff",
        "WorkDir": "/var/lib/docker/overlay2/c1d78ef038ad729582d479de4139b22d36add9b2d3b372ac838fe9f47f7acbb6/work"
      },
      "Name": "overlay2"
    },
    "SizeRw": null,
    "SizeRootFs": null,
    "Mounts": [
      {
        "Type": "bind",
        "Name": null,
        "Source": "/var/run/docker.sock",
        "Destination": "/var/run/docker.sock",
        "Driver": null,
        "Mode": "",
        "RW": false,
        "Propagation": "rprivate"
      }
    ],
    "Config": {
      "Hostname": "d7ad52074af2",
      "Domainname": "",
      "User": "",
      "AttachStdin": false,
      "AttachStdout": false,
      "AttachStderr": false,
      "ExposedPorts": {
        "8080/tcp": {}
      },
      "Tty": false,
      "OpenStdin": false,
      "StdinOnce": false,
      "Env": [
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      ],
      "Cmd": [
        "/app"
      ],
      "Healthcheck": null,
      "ArgsEscaped": false,
      "Image": "ghcr.io/psanetra/ryuk:2021.12.20",
      "Volumes": null,
      "WorkingDir": "",
      "Entrypoint": null,
      "NetworkDisabled": false,
      "MacAddress": null,
      "OnBuild": null,
      "Labels": {
        "dotnet.testcontainers": "True",
        "dotnet.testcontainers.resource-reaper-session": "00000000-0000-0000-0000-000000000000"
      },
      "StopSignal": null,
      "StopTimeout": null,
      "Shell": null
    },
    "NetworkSettings": {
      "Bridge": "",
      "SandboxID": "df8ac43499d1f3ea633e5b830f27c6233a1b5df9e0356546efe678a05ca70f2f",
      "HairpinMode": false,
      "LinkLocalIPv6Address": "",
      "LinkLocalIPv6PrefixLen": 0,
      "Ports": {
        "8080/tcp": [
          {
            "HostIP": "<IP_ADDRESS>",
            "HostPort": "56214"
          }
        ]
      },
      "SandboxKey": "/var/run/docker/netns/df8ac43499d1",
      "SecondaryIPAddresses": null,
      "SecondaryIPv6Addresses": null,
      "EndpointID": "56a5139b90262966f2edda89ebfddbbd6294837375bbefa720d5625f0cdbba5c",
      "Gateway": "<IP_ADDRESS>",
      "GlobalIPv6Address": "",
      "GlobalIPv6PrefixLen": 0,
      "IPAddress": "<IP_ADDRESS>",
      "IPPrefixLen": 16,
      "IPv6Gateway": "",
      "MacAddress": "02:42:ac:11:00:02",
      "Networks": {
        "bridge": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": null,
          "NetworkID": "301be24d1357a66d63cb26b3c9b0b640d072208f0d33c01410f4aec8a69f3855",
          "EndpointID": "56a5139b90262966f2edda89ebfddbbd6294837375bbefa720d5625f0cdbba5c",
          "Gateway": "<IP_ADDRESS>",
          "IPAddress": "<IP_ADDRESS>",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:02",
          "DriverOpts": null
        }
      }
    }
  }
}

docker ps
CONTAINER ID   IMAGE                              COMMAND   CREATED        STATUS                  PORTS                     NAMES
d7ad52074af2   ghcr.io/psanetra/ryuk:2021.12.20   "/app"    1 second ago   Up Less than a second   <IP_ADDRESS>:56214->8080/tcp   testcontainers-ryuk-e7442a19-45fa-4c44-82c3-f704678b4f78

At first look, it doesn't seem related to reserved ports as commented here https://github.com/testcontainers/testcontainers-dotnet/discussions/443#discussioncomment-2809925

I wrote a quick "test" to make it easily reproductible

That's nice. That should help to fix the issue finally. The ports don't match somehow.

Also, I checked on a Linux computer. I have 100% success rate.

Your proposition here is a good idea https://github.com/testcontainers/testcontainers-dotnet/discussions/443#discussioncomment-2847654
Or maybe a way to define it for the default reaper. For example in TestcontainersSettings
Also, I tested this naive approach and it works well in my case (but may probably not be suitable for everyone)
I replaced
https://github.com/testcontainers/testcontainers-dotnet/blob/55984d7b9aa68bb2197af8978287908af2ee8b25/src/DotNet.Testcontainers/Containers/ResourceReaper.cs#L49
by
.WithPortBinding(GetFreePort(), RyukPort)
    private static int GetFreePort()
    {
      var listener = new TcpListener(IPAddress.Loopback, 0);
      listener.Start();
      var port = ((IPEndPoint)listener.LocalEndpoint).Port;
      listener.Stop();
      return port;
    }

It would be also interesting if something like this improves it:
diff --git a/src/DotNet.Testcontainers/Containers/ResourceReaper.cs b/src/DotNet.Testcontainers/Containers/ResourceReaper.cs
index a36bf88..31e3181 100644
--- a/src/DotNet.Testcontainers/Containers/ResourceReaper.cs
+++ b/src/DotNet.Testcontainers/Containers/ResourceReaper.cs
@@ -48,6 +48,7 @@ namespace DotNet.Testcontainers.Containers
         .WithExposedPort(RyukPort)
         .WithPortBinding(RyukPort, true)
         .WithBindMount("/var/run/docker.sock", "/var/run/docker.sock", AccessMode.ReadOnly)
+        .WithStartupCallback((resourceReaper, ct) => Task.Delay(TimeSpan.FromSeconds(5), ct))
         .Build();

       this.SessionId = sessionId;

Maybe the container field (value) is not up-to-date, and we return a value that's obsolete in the meantime.

I will try to add the callback and check if it improves
And for the container state:
This one was working
[13:07:35 INF] Start Docker container c1fb6ed8b0fbdfe3d9824737b36234e5462661d80c4c1535ae622c8195074ae1
[13:07:36 INF] Container: {"ID":"c1fb6ed8b0fbdfe3d9824737b36234e5462661d80c4c1535ae622c8195074ae1","Names":["/testcontainers-ryuk-3d70d8c2-e26d-461e-92b3-ebb3104343b9"],"Image":"ghcr.io/psanetra/ryuk:2021.12.20","ImageID":"sha256:a0a36b674846145de03e245546b041e183f5a47e660fcba0d44f7c5392581f42","Command":"/app","Created":"2022-06-15T11:07:35.0000000Z","Ports":[{"IP":"<IP_ADDRESS>","PrivatePort":8080,"PublicPort":62084,"Type":"tcp","$type":"Port"}],"SizeRw":0,"SizeRootFs":0,"Labels":{"desktop.docker.io/mounts/0/Source":"/var/run/docker.sock","desktop.docker.io/mounts/0/SourceKind":"dockerSocketProxied","desktop.docker.io/mounts/0/Target":"/var/run/docker.sock","desktop.docker.io/ports/8080/tcp":"<IP_ADDRESS>:0","dotnet.testcontainers":"True","dotnet.testcontainers.resource-reaper-session":"00000000-0000-0000-0000-000000000000"},"State":"running","Status":"Up Less than a second","NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"301be24d1357a66d63cb26b3c9b0b640d072208f0d33c01410f4aec8a69f3855","EndpointID":"f01247950c5aef9643ff22e96c9eac152ba10e6eb89318455deafb001906c725","Gateway":"<IP_ADDRESS>","IPAddress":"<IP_ADDRESS>","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:03","DriverOpts":null,"$type":"EndpointSettings"}},"$type":"SummaryNetworkSettings"},"Mounts":[{"Type":"bind","Name":null,"Source":"/run/host-services/docker.proxy.sock","Destination":"/var/run/docker.sock","Driver":null,"Mode":"","RW":false,"Propagation":"rprivate","$type":"MountPoint"}],"$type":"ContainerListResponse"}

this one not
[13:07:36 INF] Start Docker container 2480b574b290358fe9b79a0b25582fb73e603ce6da079006965ec9b062599a67
[13:07:36 INF] Container: {"ID":"2480b574b290358fe9b79a0b25582fb73e603ce6da079006965ec9b062599a67","Names":["/testcontainers-ryuk-ec08b371-52df-45c3-b307-6ca696ebda1c"],"Image":"ghcr.io/psanetra/ryuk:2021.12.20","ImageID":"sha256:a0a36b674846145de03e245546b041e183f5a47e660fcba0d44f7c5392581f42","Command":"/app","Created":"2022-06-15T11:07:36.0000000Z","Ports":[{"IP":"<IP_ADDRESS>","PrivatePort":8080,"PublicPort":49580,"Type":"tcp","$type":"Port"}],"SizeRw":0,"SizeRootFs":0,"Labels":{"desktop.docker.io/mounts/0/Source":"/var/run/docker.sock","desktop.docker.io/mounts/0/SourceKind":"dockerSocketProxied","desktop.docker.io/mounts/0/Target":"/var/run/docker.sock","desktop.docker.io/ports/8080/tcp":"<IP_ADDRESS>:0","dotnet.testcontainers":"True","dotnet.testcontainers.resource-reaper-session":"00000000-0000-0000-0000-000000000000"},"State":"running","Status":"Up Less than a second","NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"301be24d1357a66d63cb26b3c9b0b640d072208f0d33c01410f4aec8a69f3855","EndpointID":"c07b36501df77bca293a6ee45d26041ac1bfeb5ecf8122420ba66160b8ed2d86","Gateway":"<IP_ADDRESS>","IPAddress":"<IP_ADDRESS>","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:03","DriverOpts":null,"$type":"EndpointSettings"}},"$type":"SummaryNetworkSettings"},"Mounts":[{"Type":"bind","Name":null,"Source":"/run/host-services/docker.proxy.sock","Destination":"/var/run/docker.sock","Driver":null,"Mode":"","RW":false,"Propagation":"rprivate","$type":"MountPoint"}],"$type":"ContainerListResponse"}
[13:07:40 ERR] Can not connect to resource reaper "ec08b371-52df-45c3-b307-6ca696ebda1c" at localhost:49580
System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it.
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state)
--- End of stack trace from previous location ---
   at System.Net.Sockets.TcpClient.CompleteConnectAsync(Task task)
   at DotNet.Testcontainers.Containers.ResourceReaper.MaintainRyukConnection(TaskCompletionSource`1 ryukInitializedTaskSource, CancellationToken ct) in C:\Users\sro\Projects\OpenSource\testcontainers-dotnet\src\DotNet.Testcontainers\Containers\ResourceReaper.cs:line 274

What I have seen is that when the PublicPort is in the 60K range, it works. When it is in the 40K range it fails. (and docker ps reports a port that is always in the 60K range)

You are right! :)
Delaying the startup, even with a 50ms callback make it more reliable (no failure with my test)

As soon as I finished the left tasks regarding the repository transfer, I can add a fix. Even, I'm not sure what the fix will be 😀.

Great! Let me know if I can help.

Refreshing TestcontainersContainer.container before getting the mapped port, may also work.

Yes, that will work too. It looks like that the state after the wait strategy is done is not final (UntilContainerIsRunning):
https://github.com/testcontainers/testcontainers-dotnet/blob/fff8c08385f0617c79963d569a7e5bb244133b0d/src/Testcontainers/Containers/TestcontainersContainer.cs#L313
Probably it's already enough to assign it afterwards (or return GetContainer).

https://github.com/testcontainers/testcontainers-dotnet/blob/fff8c08385f0617c79963d569a7e5bb244133b0d/src/Testcontainers/Containers/TestcontainersContainer.cs#L308-L326
Re-assigning the container just before the return makes it more reliable, but not 100%
My test failed once after 50 iterations 😢It was with a short initTimeout of 1 sec. And after 653 iterations with a timeout of 2 secs. But I'm not sure the timeout plays a role here, is it?

Refreshing TestcontainersContainer.container before getting the mapped port, may also work.

GetMappedPublicPort is not async, so you will need another method to refresh it

Adding .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(RyukPort)) to the resourceReaperContainer seems promising. The test is running for quite a long time. And so far, so good 🤞🏻

Adding .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(RyukPort)) to the resourceReaperContainer seems promising. The test is running for quite a long time. And so far, so good 🤞🏻

The wait strategy (UntilPortIsAvailable) make sense and is a good suggestion. I did a quick test as well. Unfortunately, it doesn't work well with one of our unit tests. Fixing the unit test and setting the wait strategy sounds good.

Even with the WaitStrategy, If I remove the container refresh before returning from Start, I have failures.
So maybe there is still a race condition.

As a quick recap, it runs fine when we delay the start StartupCallback, right?

As a recap

.WithStartupCallback((resourceReaper, ct) => Task.Delay(50, ct)) -> few failures (a longer delay would probably avoid the failures)
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(RyukPort)) -> few failures
this.container = await this.client.GetContainer(id, ct).ConfigureAwait(false); at the end of Start -> few failures
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(RyukPort)) + this.container = await this.client.GetContainer(id, ct).ConfigureAwait(false); at the end of Start -> no failures so far

Maybe the only real success factor is the time spent before calling this.client.GetContainer(id, ct) for the last time
Note, I changed the test code to parallelize it and to make it faster to test lot of iterations
  public class StressTest
  {
    private static readonly Regex ExpectedPortRegex = new Regex("\"ExpectedPort\": (\\d+)");
    private static readonly Regex HostPortRegex = new Regex("\"HostPort\": \"(\\d+)\"");

    private readonly ITestOutputHelper testOutputHelper;

    public StressTest(ITestOutputHelper testOutputHelper)
    {
      this.testOutputHelper = testOutputHelper;
    }

    [Fact]
    public async Task ResourceReaperStressTest()
    {
      await Parallel.ForEachAsync(Enumerable.Range(0, 1000), (i, _) => this.StartReaper(i));
    }

    private async ValueTask StartReaper(int i)
    {
      try
      {
        await using var reaper =
          await ResourceReaper.GetAndStartNewAsync(Guid.NewGuid(), initTimeout: TimeSpan.FromSeconds(10));
      }
      catch (ResourceReaperException ex)
      {
        try
        {
          var message = ex.Message;
          var expectedPort = int.Parse(
            ExpectedPortRegex.Match(message).Groups[1].Value,
            CultureInfo.InvariantCulture);
          var hostPort = int.Parse(
            HostPortRegex.Matches(message)[1].Groups[1].Value,
            CultureInfo.InvariantCulture);
          this.testOutputHelper.WriteLine($"{i} : fail - expectedPort: {expectedPort}, hostPort: {hostPort}");
        }
        catch (Exception)
        {
          // NetworkSettings HostPort is missing usually
          this.testOutputHelper.WriteLine($"{i} : fail");
        }

        throw;
      }
    }
  }

@srollinet @kron0s19 both of you using Docker Desktop (which version) with WSL2? You're running the tests on the same machine (Windows)?

@HofmeisterAn, please publish the latest nuget. We are suffering from the same issue. Will be able to post our tests behavior with latest version

Please try version 2.0.0.

I'm pretty sure I found the root cause of the issue.
https://github.com/testcontainers/testcontainers-dotnet/blob/e1412523a69377cc41d0f611011bfe9c2c9dd6cd/src/Testcontainers/Clients/TestcontainersConfigurationConverter.cs#L151
Somehow, Docker returns multiple ports if HostPort is null. I can reproduce it with just using the Docker Remote API. I'll prepare a snapshot version this evening. This is my test:
private readonly IDockerClient dockerClient = new DockerClientConfiguration(new Uri("npipe://./pipe/docker_engine")).CreateClient();

private readonly CreateContainerParameters createContainerParameters = new CreateContainerParameters { Image = "nginx", HostConfig = new HostConfig { AutoRemove = true, PortBindings = new Dictionary<string, IList<PortBinding>> { { "80/tcp", new List<PortBinding> { new PortBinding { HostPort = null } } } }, }, };

[Fact]
public Task PokeDockerDotNet()
{
  var tasks = Enumerable.Range(0, 50).Select(_ => Task.Run(async () =>
  {
    ISet<string> portMaps = new HashSet<string>();

    var tryCount = 0;

    var createContainerResponse = await this.dockerClient.Containers.CreateContainerAsync(this.createContainerParameters)
      .ConfigureAwait(false);

    await this.dockerClient.Containers.StartContainerAsync(createContainerResponse.ID, new ContainerStartParameters())
      .ConfigureAwait(false);

    do
    {
      var containerListResponses = await this.dockerClient.Containers
        .ListContainersAsync(new ContainersListParameters { All = true, Filters = new Dictionary<string, IDictionary<string, bool>> { { "id", new Dictionary<string, bool> { { createContainerResponse.ID, true } } } } })
        .ConfigureAwait(false);

      foreach (var publicPort in containerListResponses.Single().Ports.Select(port => port.PublicPort))
      {
        portMaps.Add(publicPort.ToString(CultureInfo.InvariantCulture));
      }

      if (portMaps.Count > 1)
      {
        throw new InvalidOperationException(string.Join(',', portMaps));
      }
    }
    while (++tryCount < 10);

    await this.dockerClient.Containers.StopContainerAsync(createContainerResponse.ID, new ContainerStopParameters())
      .ConfigureAwait(false);
  }));

  return Task.WhenAll(tasks);
}

@HofmeisterAn If possible please provide a new 2.1.0-beta.XYZ prelease package with the fix so I can test it later or tomorrow.

@HofmeisterAn The problem remains on 2.0.1 😭

Can you share the test (log)?

17:39:11 [ERR] [xUnit.net 00:00:12.93]     IntegrationTests.MongoDB.MongoDbTests.SubmitsTraces [FAIL]
17:39:11 [DBG]   Failed IntegrationTests.MongoDB.MongoDbTests.SubmitsTraces [1 ms]
17:39:11 [DBG]   Error Message:
17:39:11 [DBG]    DotNet.Testcontainers.Containers.ResourceReaperException : Initialization has been cancelled.
17:39:11 [DBG] {
17:39:11 [DBG]   "ConnectionAttempts": 2,
17:39:11 [DBG]   "LocalNetworkInterfaces": {
17:39:11 [DBG]     "{FC32DD25-4738-4300-ABC5-2BD889516C11}": [
17:39:11 [DBG]       "fe80::58fb:7b12:3d51:263e%29",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{F67764C1-F13C-47A3-ADCD-BD722BBF893B}": [
17:39:11 [DBG]       "fe80::7040:c391:c5a:cd57%63",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{2ABF0BAC-ADED-4412-B367-9C12FAAA16F0}": [
17:39:11 [DBG]       "fe80::dd88:2f5c:9a9e:d090%7",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{B396A16F-3E6B-490E-8209-3F519D06A4E0}": [
17:39:11 [DBG]       "fe80::3427:4af3:e9a:3a53%17",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{3F22978D-F989-4B34-9EBE-711A6CA6196C}": [
17:39:11 [DBG]       "2a02:a31d:a042:4f80:1816:91de:ad5c:9c32",
17:39:11 [DBG]       "2a02:a31d:a042:4f80:a54c:d71c:ff4d:ca5b",
17:39:11 [DBG]       "fe80::1816:91de:ad5c:9c32%10",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{A7E7C157-85A5-41D8-B78C-272B82B59846}": [
17:39:11 [DBG]       "fe80::9c1a:4245:1f64:6fae%16",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{6D1FEDD8-8FD0-11EA-8351-806E6F6E6963}": [
17:39:11 [DBG]       "::1",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{ADC62029-D113-4D42-B8D1-DFF81F9A1E18}": [
17:39:11 [DBG]       "fe80::c83e:73f1:b29d:9782%15",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ],
17:39:11 [DBG]     "{6389991A-38F1-4699-A0AE-D12D3B07AD7E}": [
17:39:11 [DBG]       "fe80::c5d4:d1c4:b5be:641a%68",
17:39:11 [DBG]       "<IP_ADDRESS>"
17:39:11 [DBG]     ]
17:39:11 [DBG]   },
17:39:11 [DBG]   "ExpectedHost": "localhost",
17:39:11 [DBG]   "ExpectedPort": 49156,
17:39:11 [DBG]   "ContainerInspection": {
17:39:11 [DBG]     "ID": "875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e",
17:39:11 [DBG]     "Created": "2022-06-22T15:38:23.9138401Z",
17:39:11 [DBG]     "Path": "/app",
17:39:11 [DBG]     "Args": [],
17:39:11 [DBG]     "State": {
17:39:11 [DBG]       "Status": "running",
17:39:11 [DBG]       "Running": true,
17:39:11 [DBG]       "Paused": false,
17:39:11 [DBG]       "Restarting": false,
17:39:11 [DBG]       "OOMKilled": false,
17:39:11 [DBG]       "Dead": false,
17:39:11 [DBG]       "Pid": 1831,
17:39:11 [DBG]       "ExitCode": 0,
17:39:11 [DBG]       "Error": "",
17:39:11 [DBG]       "StartedAt": "2022-06-22T15:38:24.4476622Z",
17:39:11 [DBG]       "FinishedAt": "0001-01-01T00:00:00Z",
17:39:11 [DBG]       "Health": null
17:39:11 [DBG]     },
17:39:11 [DBG]     "Image": "sha256:a0a36b674846145de03e245546b041e183f5a47e660fcba0d44f7c5392581f42",
17:39:11 [DBG]     "ResolvConfPath": "/var/lib/docker/containers/875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e/resolv.conf",
17:39:11 [DBG]     "HostnamePath": "/var/lib/docker/containers/875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e/hostname",
17:39:11 [DBG]     "HostsPath": "/var/lib/docker/containers/875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e/hosts",
17:39:11 [DBG]     "LogPath": "/var/lib/docker/containers/875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e/875c660564263b59e35377fc134b35e3c0df28f6b5bdd33d282719889085755e-json.log",
17:39:11 [DBG]     "Node": null,
17:39:11 [DBG]     "Name": "/testcontainers-ryuk-9b192cd9-e26c-4d1a-8304-ac4ad9850c92",
17:39:11 [DBG]     "RestartCount": 0,
17:39:11 [DBG]     "Driver": "overlay2",
17:39:11 [DBG]     "Platform": "linux",
17:39:11 [DBG]     "MountLabel": "",
17:39:11 [DBG]     "ProcessLabel": "",
17:39:11 [DBG]     "AppArmorProfile": "",
17:39:11 [DBG]     "ExecIDs": null,
17:39:11 [DBG]     "HostConfig": {
17:39:11 [DBG]       "Binds": null,
17:39:11 [DBG]       "ContainerIDFile": "",
17:39:11 [DBG]       "LogConfig": {
17:39:11 [DBG]         "Type": "json-file",
17:39:11 [DBG]         "Config": {}
17:39:11 [DBG]       },
17:39:11 [DBG]       "NetworkMode": "default",
17:39:11 [DBG]       "PortBindings": {
17:39:11 [DBG]         "8080/tcp": [
17:39:11 [DBG]           {
17:39:11 [DBG]             "HostIP": "",
17:39:11 [DBG]             "HostPort": "0"
17:39:11 [DBG]           }
17:39:11 [DBG]         ]
17:39:11 [DBG]       },
17:39:11 [DBG]       "RestartPolicy": {
17:39:11 [DBG]         "Name": 0,
17:39:11 [DBG]         "MaximumRetryCount": 0
17:39:11 [DBG]       },
17:39:11 [DBG]       "AutoRemove": true,
17:39:11 [DBG]       "VolumeDriver": "",
17:39:11 [DBG]       "VolumesFrom": null,
17:39:11 [DBG]       "CapAdd": null,
17:39:11 [DBG]       "CapDrop": null,
17:39:11 [DBG]       "CgroupnsMode": "host",
17:39:11 [DBG]       "DNS": null,
17:39:11 [DBG]       "DNSOptions": null,
17:39:11 [DBG]       "DNSSearch": null,
17:39:11 [DBG]       "ExtraHosts": null,
17:39:11 [DBG]       "GroupAdd": null,
17:39:11 [DBG]       "IpcMode": "private",
17:39:11 [DBG]       "Cgroup": "",
17:39:11 [DBG]       "Links": null,
17:39:11 [DBG]       "OomScoreAdj": 0,
17:39:11 [DBG]       "PidMode": "",
17:39:11 [DBG]       "Privileged": false,
17:39:11 [DBG]       "PublishAllPorts": false,
17:39:11 [DBG]       "ReadonlyRootfs": false,
17:39:11 [DBG]       "SecurityOpt": null,
17:39:11 [DBG]       "StorageOpt": null,
17:39:11 [DBG]       "Tmpfs": null,
17:39:11 [DBG]       "UTSMode": "",
17:39:11 [DBG]       "UsernsMode": "",
17:39:11 [DBG]       "ShmSize": 67108864,
17:39:11 [DBG]       "Sysctls": null,
17:39:11 [DBG]       "Runtime": "runc",
17:39:11 [DBG]       "ConsoleSize": [
17:39:11 [DBG]         0,
17:39:11 [DBG]         0
17:39:11 [DBG]       ],
17:39:11 [DBG]       "Isolation": "",
17:39:11 [DBG]       "CPUShares": 0,
17:39:11 [DBG]       "Memory": 0,
17:39:11 [DBG]       "NanoCPUs": 0,
17:39:11 [DBG]       "CgroupParent": "",
17:39:11 [DBG]       "BlkioWeight": 0,
17:39:11 [DBG]       "BlkioWeightDevice": null,
17:39:11 [DBG]       "BlkioDeviceReadBps": null,
17:39:11 [DBG]       "BlkioDeviceWriteBps": null,
17:39:11 [DBG]       "BlkioDeviceReadIOps": null,
17:39:11 [DBG]       "BlkioDeviceWriteIOps": null,
17:39:11 [DBG]       "CPUPeriod": 0,
17:39:11 [DBG]       "CPUQuota": 0,
17:39:11 [DBG]       "CPURealtimePeriod": 0,
17:39:11 [DBG]       "CPURealtimeRuntime": 0,
17:39:11 [DBG]       "CpusetCpus": "",
17:39:11 [DBG]       "CpusetMems": "",
17:39:11 [DBG]       "Devices": null,
17:39:11 [DBG]       "DeviceCgroupRules": null,
17:39:11 [DBG]       "DeviceRequests": null,
17:39:11 [DBG]       "KernelMemory": 0,
17:39:11 [DBG]       "KernelMemoryTCP": 0,
17:39:11 [DBG]       "MemoryReservation": 0,
17:39:11 [DBG]       "MemorySwap": 0,
17:39:11 [DBG]       "MemorySwappiness": null,
17:39:11 [DBG]       "OomKillDisable": false,
17:39:11 [DBG]       "PidsLimit": null,
17:39:11 [DBG]       "Ulimits": null,
17:39:11 [DBG]       "CPUCount": 0,
17:39:11 [DBG]       "CPUPercent": 0,
17:39:11 [DBG]       "IOMaximumIOps": 0,
17:39:11 [DBG]       "IOMaximumBandwidth": 0,
17:39:11 [DBG]       "Mounts": [
17:39:11 [DBG]         {
17:39:11 [DBG]           "Type": "bind",
17:39:11 [DBG]           "Source": "/var/run/docker.sock",
17:39:11 [DBG]           "Target": "/var/run/docker.sock",
17:39:11 [DBG]           "ReadOnly": true,
17:39:11 [DBG]           "Consistency": null,
17:39:11 [DBG]           "BindOptions": null,
17:39:11 [DBG]           "VolumeOptions": null,
17:39:11 [DBG]           "TmpfsOptions": null
17:39:11 [DBG]         }
17:39:11 [DBG]       ],
17:39:11 [DBG]       "MaskedPaths": [
17:39:11 [DBG]         "/proc/asound",
17:39:11 [DBG]         "/proc/acpi",
17:39:11 [DBG]         "/proc/kcore",
17:39:11 [DBG]         "/proc/keys",
17:39:11 [DBG]         "/proc/latency_stats",
17:39:11 [DBG]         "/proc/timer_list",
17:39:11 [DBG]         "/proc/timer_stats",
17:39:11 [DBG]         "/proc/sched_debug",
17:39:11 [DBG]         "/proc/scsi",
17:39:11 [DBG]         "/sys/firmware"
17:39:11 [DBG]       ],
17:39:11 [DBG]       "ReadonlyPaths": [
17:39:11 [DBG]         "/proc/bus",
17:39:11 [DBG]         "/proc/fs",
17:39:11 [DBG]         "/proc/irq",
17:39:11 [DBG]         "/proc/sys",
17:39:11 [DBG]         "/proc/sysrq-trigger"
17:39:11 [DBG]       ],
17:39:11 [DBG]       "Init": null
17:39:11 [DBG]     },
17:39:11 [DBG]     "GraphDriver": {
17:39:11 [DBG]       "Data": {
17:39:11 [DBG]         "LowerDir": "/var/lib/docker/overlay2/b883eea772b5bab2e1c6752b6ce9d679b7f9007fd5e8acac510713040d671f12-init/diff:/var/lib/docker/overlay2/ee006e573c315bce767762e3a9d15333636a4106e0388ded377c606ce0738906/diff:/var/lib/docker/overlay2/950b9770200e32db8ca318805421d101958fadbb55222d9ac4c94cb7c9d01923/diff:/var/lib/docker/overlay2/0bd9d0121100fed492d64f01420e63852fb40a55fff4c36847e7bdd6fb09abcb/diff",
17:39:11 [DBG]         "MergedDir": "/var/lib/docker/overlay2/b883eea772b5bab2e1c6752b6ce9d679b7f9007fd5e8acac510713040d671f12/merged",
17:39:11 [DBG]         "UpperDir": "/var/lib/docker/overlay2/b883eea772b5bab2e1c6752b6ce9d679b7f9007fd5e8acac510713040d671f12/diff",
17:39:11 [DBG]         "WorkDir": "/var/lib/docker/overlay2/b883eea772b5bab2e1c6752b6ce9d679b7f9007fd5e8acac510713040d671f12/work"
17:39:11 [DBG]       },
17:39:11 [DBG]       "Name": "overlay2"
17:39:11 [DBG]     },
17:39:11 [DBG]     "SizeRw": null,
17:39:11 [DBG]     "SizeRootFs": null,
17:39:11 [DBG]     "Mounts": [
17:39:11 [DBG]       {
17:39:11 [DBG]         "Type": "bind",
17:39:11 [DBG]         "Name": null,
17:39:11 [DBG]         "Source": "/var/run/docker.sock",
17:39:11 [DBG]         "Destination": "/var/run/docker.sock",
17:39:11 [DBG]         "Driver": null,
17:39:11 [DBG]         "Mode": "",
17:39:11 [DBG]         "RW": false,
17:39:11 [DBG]         "Propagation": "rprivate"
17:39:11 [DBG]       }
17:39:11 [DBG]     ],
17:39:11 [DBG]     "Config": {
17:39:11 [DBG]       "Hostname": "875c66056426",
17:39:11 [DBG]       "Domainname": "",
17:39:11 [DBG]       "User": "",
17:39:11 [DBG]       "AttachStdin": false,
17:39:11 [DBG]       "AttachStdout": false,
17:39:11 [DBG]       "AttachStderr": false,
17:39:11 [DBG]       "ExposedPorts": {
17:39:11 [DBG]         "8080/tcp": {}
17:39:11 [DBG]       },
17:39:11 [DBG]       "Tty": false,
17:39:11 [DBG]       "OpenStdin": false,
17:39:11 [DBG]       "StdinOnce": false,
17:39:11 [DBG]       "Env": [
17:39:11 [DBG]         "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
17:39:11 [DBG]       ],
17:39:11 [DBG]       "Cmd": [
17:39:11 [DBG]         "/app"
17:39:11 [DBG]       ],
17:39:11 [DBG]       "Healthcheck": null,
17:39:11 [DBG]       "ArgsEscaped": false,
17:39:11 [DBG]       "Image": "ghcr.io/psanetra/ryuk:2021.12.20",
17:39:11 [DBG]       "Volumes": null,
17:39:11 [DBG]       "WorkingDir": "",
17:39:11 [DBG]       "Entrypoint": null,
17:39:11 [DBG]       "NetworkDisabled": false,
17:39:11 [DBG]       "MacAddress": null,
17:39:11 [DBG]       "OnBuild": null,
17:39:11 [DBG]       "Labels": {
17:39:11 [DBG]         "testcontainers": "True",
17:39:11 [DBG]         "testcontainers.resource-reaper-session": "00000000-0000-0000-0000-000000000000"
17:39:11 [DBG]       },
17:39:11 [DBG]       "StopSignal": null,
17:39:11 [DBG]       "StopTimeout": null,
17:39:11 [DBG]       "Shell": null
17:39:11 [DBG]     },
17:39:11 [DBG]     "NetworkSettings": {
17:39:11 [DBG]       "Bridge": "",
17:39:11 [DBG]       "SandboxID": "cf85e72c4ab0aee414c8a8e5603a9a7292b742476b29f13390d32ac7ccd7cebf",
17:39:11 [DBG]       "HairpinMode": false,
17:39:11 [DBG]       "LinkLocalIPv6Address": "",
17:39:11 [DBG]       "LinkLocalIPv6PrefixLen": 0,
17:39:11 [DBG]       "Ports": {
17:39:11 [DBG]         "8080/tcp": [
17:39:11 [DBG]           {
17:39:11 [DBG]             "HostIP": "<IP_ADDRESS>",
17:39:11 [DBG]             "HostPort": "49156"
17:39:11 [DBG]           }
17:39:11 [DBG]         ]
17:39:11 [DBG]       },
17:39:11 [DBG]       "SandboxKey": "/var/run/docker/netns/cf85e72c4ab0",
17:39:11 [DBG]       "SecondaryIPAddresses": null,
17:39:11 [DBG]       "SecondaryIPv6Addresses": null,
17:39:11 [DBG]       "EndpointID": "9b100e6cc6dfc18b3569f2fad4a6014ef0017bc2179482be3651eba482a9e85d",
17:39:11 [DBG]       "Gateway": "<IP_ADDRESS>",
17:39:11 [DBG]       "GlobalIPv6Address": "",
17:39:11 [DBG]       "GlobalIPv6PrefixLen": 0,
17:39:11 [DBG]       "IPAddress": "<IP_ADDRESS>",
17:39:11 [DBG]       "IPPrefixLen": 16,
17:39:11 [DBG]       "IPv6Gateway": "",
17:39:11 [DBG]       "MacAddress": "02:42:ac:11:00:02",
17:39:11 [DBG]       "Networks": {
17:39:11 [DBG]         "bridge": {
17:39:11 [DBG]           "IPAMConfig": null,
17:39:11 [DBG]           "Links": null,
17:39:11 [DBG]           "Aliases": null,
17:39:11 [DBG]           "NetworkID": "6081adc825fcb9455b484ff32119875896156d0796813ab4ad349506b3b22108",
17:39:11 [DBG]           "EndpointID": "9b100e6cc6dfc18b3569f2fad4a6014ef0017bc2179482be3651eba482a9e85d",
17:39:11 [DBG]           "Gateway": "<IP_ADDRESS>",
17:39:11 [DBG]           "IPAddress": "<IP_ADDRESS>",
17:39:11 [DBG]           "IPPrefixLen": 16,
17:39:11 [DBG]           "IPv6Gateway": "",
17:39:11 [DBG]           "GlobalIPv6Address": "",
17:39:11 [DBG]           "GlobalIPv6PrefixLen": 0,
17:39:11 [DBG]           "MacAddress": "02:42:ac:11:00:02",
17:39:11 [DBG]           "DriverOpts": null
17:39:11 [DBG]         }
17:39:11 [DBG]       }
17:39:11 [DBG]     }
17:39:11 [DBG]   }
17:39:11 [DBG] }
17:39:11 [DBG]   Stack Trace:
17:39:11 [DBG]      at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct)
17:39:11 [DBG]    at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct)
17:39:11 [DBG]    at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartDefaultAsync(IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, CancellationToken ct)
17:39:11 [DBG]    at DotNet.Testcontainers.Clients.TestcontainersClient.RunAsync(ITestcontainersConfiguration configuration, CancellationToken ct)
17:39:11 [DBG]    at DotNet.Testcontainers.Containers.TestcontainersContainer.Create(CancellationToken ct)
17:39:11 [DBG]    at DotNet.Testcontainers.Containers.TestcontainersContainer.StartAsync(CancellationToken ct)
17:39:11 [DBG]    at IntegrationTests.MongoDB.MongoDbFixture.LaunchMongoContainerAsync(Int32 port) in C:\Users\rpajak\repos\opentelemetry-dotnet-instrumentation\test\integration-tests\IntegrationTests.MongoDB\MongoDbCollection.cs:line 71
17:39:11 [DBG]    at IntegrationTests.MongoDB.MongoDbFixture.InitializeAsync() in C:\Users\rpajak\repos\opentelemetry-dotnet-instrumentation\test\integration-tests\IntegrationTests.MongoDB\MongoDbCollection.cs:line 47

This time the log file looks good. The resource reaper gets the right port (49156). I double-checked your sources (refactor-async-code) and noticed a few flaws. For instance:
var waitOS = EnvironmentTools.IsWindows()
    ? Wait.ForWindowsContainer()
    : Wait.ForUnixContainer();

Doesn't make sense. Even if you're running on Windows, it's still a Linux container. It should be  Wait.ForUnixContainer().UntilPortIsAvailable(MongoDbPort) instead. Take a look into the MongoDB example in this repository.
Maybe you can figure out with ResourceReaper.GetAndStartNewAsync() why Testcontainers can't connect to the resource reaper on your machine.

Doesn't make sense.

You are totally correct. Unfortunately, it does not solve the issue 😉

Maybe you can figure out with ResourceReaper.GetAndStartNewAsync() why Testcontainers can't connect to the resource reaper on your machine.

I will try to look at it this week.

For all of my colleagues, everything is working fine. It only fails in my environment. I will look at it once I have a little more time. You can assign this issue to me if you want.

I tested with the Develop branch. It seems it fixes the issue with port mismatches. But now I have the issue with the reserved ports in Windows 😢.
Note: I updated to Docker Desktop 4.9.1 (81317), and performed a factory reset
DotNet.Testcontainers.Containers.ResourceReaperException
Initialization has been cancelled.
{
  "ConnectionAttempts": 2,
  "LocalNetworkInterfaces": {
    "{65496C37-B14C-4240-80D1-D70919634587}": [
      "fe80::e000:be57:78ca:9016%12",
      "<IP_ADDRESS>"
    ],
    "{114419F6-1B1E-4AA0-B45B-6A9DCC8919DB}": [
      "fe80::a9e7:379:9b0a:92e9%3",
      "<IP_ADDRESS>"
    ],
    "{468F976F-62B8-4EDA-9810-04434F48CEAC}": [
      "fe80::953c:37e:7a49:3c2b%8",
      "<IP_ADDRESS>"
    ],
    "{58CD309E-0D76-4B61-8A53-7FEBB0B3C27F}": [
      "fe80::1cae:a794:8a6e:d20b%77",
      "<IP_ADDRESS>"
    ],
    "{9DBC6CA6-9146-4ECA-B573-3F5C6788ACED}": [
      "fe80::ad9f:cf38:fa12:a656%22",
      "<IP_ADDRESS>"
    ],
    "{407C0181-4D1D-4932-85F1-DB55E0DBA6EF}": [
      "fe80::617d:b3c3:63b8:ad8f%7",
      "<IP_ADDRESS>"
    ],
    "{8CF48E01-8038-460B-9049-EFDAA77BDDA0}": [
      "fe80::6997:43fe:9fe5:8803%20",
      "<IP_ADDRESS>"
    ],
    "{67CA33D7-7E83-4B6E-8448-52B4718C2066}": [
      "fe80::4ce8:fc74:d188:bf97%14",
      "<IP_ADDRESS>"
    ],
    "{C96BABE4-121E-4D6D-8A64-26476F2888DB}": [
      "fe80::f18b:cd26:1ca5:146c%27",
      "<IP_ADDRESS>"
    ],
    "{35F0BF58-A867-11EB-86E8-806E6F6E6963}": [
      "::1",
      "<IP_ADDRESS>"
    ],
    "{35AC8699-8C28-41F8-94B9-8980F0BD7C8C}": [
      "fe80::e16e:4bfa:c172:7f27%6",
      "<IP_ADDRESS>"
    ],
    "{B9EBE5DB-E763-453A-842F-52CD117B5683}": [
      "fe80::5d05:1cfb:4f7a:41ea%90",
      "<IP_ADDRESS>"
    ]
  },
  "ExpectedHost": "localhost",
  "ExpectedPort": 49406,
  "ContainerInspection": {
    "ID": "e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66",
    "Created": "2022-06-24T16:33:44.6260413Z",
    "Path": "/app",
    "Args": [],
    "State": {
      "Status": "running",
      "Running": true,
      "Paused": false,
      "Restarting": false,
      "OOMKilled": false,
      "Dead": false,
      "Pid": 28976,
      "ExitCode": 0,
      "Error": "",
      "StartedAt": "2022-06-24T16:33:45.041670767Z",
      "FinishedAt": "0001-01-01T00:00:00Z",
      "Health": null
    },
    "Image": "sha256:a0a36b674846145de03e245546b041e183f5a47e660fcba0d44f7c5392581f42",
    "ResolvConfPath": "/var/lib/docker/containers/e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66/hostname",
    "HostsPath": "/var/lib/docker/containers/e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66/hosts",
    "LogPath": "/var/lib/docker/containers/e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66/e552fdd851b2ac91ad092fa0b94c664046d14711452bdf64bde887b3eed11b66-json.log",
    "Node": null,
    "Name": "/testcontainers-ryuk-cc041806-7ddc-46cd-82b0-150ba41547ea",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
      "Binds": null,
      "ContainerIDFile": "",
      "LogConfig": {
        "Type": "json-file",
        "Config": {}
      },
      "NetworkMode": "default",
      "PortBindings": {
        "8080/tcp": [
          {
            "HostIP": "",
            "HostPort": "0"
          }
        ]
      },
      "RestartPolicy": {
        "Name": 0,
        "MaximumRetryCount": 0
      },
      "AutoRemove": true,
      "VolumeDriver": "",
      "VolumesFrom": null,
      "CapAdd": null,
      "CapDrop": null,
      "CgroupnsMode": "host",
      "DNS": null,
      "DNSOptions": null,
      "DNSSearch": null,
      "ExtraHosts": null,
      "GroupAdd": null,
      "IpcMode": "private",
      "Cgroup": "",
      "Links": null,
      "OomScoreAdj": 0,
      "PidMode": "",
      "Privileged": false,
      "PublishAllPorts": false,
      "ReadonlyRootfs": false,
      "SecurityOpt": null,
      "StorageOpt": null,
      "Tmpfs": null,
      "UTSMode": "",
      "UsernsMode": "",
      "ShmSize": 67108864,
      "Sysctls": null,
      "Runtime": "runc",
      "ConsoleSize": [
        0,
        0
      ],
      "Isolation": "",
      "CPUShares": 0,
      "Memory": 0,
      "NanoCPUs": 0,
      "CgroupParent": "",
      "BlkioWeight": 0,
      "BlkioWeightDevice": null,
      "BlkioDeviceReadBps": null,
      "BlkioDeviceWriteBps": null,
      "BlkioDeviceReadIOps": null,
      "BlkioDeviceWriteIOps": null,
      "CPUPeriod": 0,
      "CPUQuota": 0,
      "CPURealtimePeriod": 0,
      "CPURealtimeRuntime": 0,
      "CpusetCpus": "",
      "CpusetMems": "",
      "Devices": null,
      "DeviceCgroupRules": null,
      "DeviceRequests": null,
      "KernelMemory": 0,
      "KernelMemoryTCP": 0,
      "MemoryReservation": 0,
      "MemorySwap": 0,
      "MemorySwappiness": null,
      "OomKillDisable": false,
      "PidsLimit": null,
      "Ulimits": null,
      "CPUCount": 0,
      "CPUPercent": 0,
      "IOMaximumIOps": 0,
      "IOMaximumBandwidth": 0,
      "Mounts": [
        {
          "Type": "bind",
          "Source": "/var/run/docker.sock",
          "Target": "/var/run/docker.sock",
          "ReadOnly": true,
          "Consistency": null,
          "BindOptions": null,
          "VolumeOptions": null,
          "TmpfsOptions": null
        }
      ],
      "MaskedPaths": [
        "/proc/asound",
        "/proc/acpi",
        "/proc/kcore",
        "/proc/keys",
        "/proc/latency_stats",
        "/proc/timer_list",
        "/proc/timer_stats",
        "/proc/sched_debug",
        "/proc/scsi",
        "/sys/firmware"
      ],
      "ReadonlyPaths": [
        "/proc/bus",
        "/proc/fs",
        "/proc/irq",
        "/proc/sys",
        "/proc/sysrq-trigger"
      ],
      "Init": null
    },
    "GraphDriver": {
      "Data": {
        "LowerDir": "/var/lib/docker/overlay2/7d76e33e3a437733e2c20729589f2cff284c2b2d40c2759e41b2761b8dfd37bc-init/diff:/var/lib/docker/overlay2/393f10f7f91f006a1f1b59c9f798e5acf6ed957348d1dd7991627262198c2078/diff:/var/lib/docker/overlay2/50b689cb03766fbd488fe0ed1013038f0779344a277c4ec980bd6f549203aa8c/diff:/var/lib/docker/overlay2/aee892719acb15ef6ddfdb591cb78f75ad05b6c5227b1c1a52837040dda342f9/diff",
        "MergedDir": "/var/lib/docker/overlay2/7d76e33e3a437733e2c20729589f2cff284c2b2d40c2759e41b2761b8dfd37bc/merged",
        "UpperDir": "/var/lib/docker/overlay2/7d76e33e3a437733e2c20729589f2cff284c2b2d40c2759e41b2761b8dfd37bc/diff",
        "WorkDir": "/var/lib/docker/overlay2/7d76e33e3a437733e2c20729589f2cff284c2b2d40c2759e41b2761b8dfd37bc/work"
      },
      "Name": "overlay2"
    },
    "SizeRw": null,
    "SizeRootFs": null,
    "Mounts": [
      {
        "Type": "bind",
        "Name": null,
        "Source": "/var/run/docker.sock",
        "Destination": "/var/run/docker.sock",
        "Driver": null,
        "Mode": "",
        "RW": false,
        "Propagation": "rprivate"
      }
    ],
    "Config": {
      "Hostname": "e552fdd851b2",
      "Domainname": "",
      "User": "",
      "AttachStdin": false,
      "AttachStdout": false,
      "AttachStderr": false,
      "ExposedPorts": {
        "8080/tcp": {}
      },
      "Tty": false,
      "OpenStdin": false,
      "StdinOnce": false,
      "Env": [
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      ],
      "Cmd": [
        "/app"
      ],
      "Healthcheck": null,
      "ArgsEscaped": false,
      "Image": "ghcr.io/psanetra/ryuk:2021.12.20",
      "Volumes": null,
      "WorkingDir": "",
      "Entrypoint": null,
      "NetworkDisabled": false,
      "MacAddress": null,
      "OnBuild": null,
      "Labels": {
        "testcontainers": "True",
        "testcontainers.resource-reaper-session": "00000000-0000-0000-0000-000000000000"
      },
      "StopSignal": null,
      "StopTimeout": null,
      "Shell": null
    },
    "NetworkSettings": {
      "Bridge": "",
      "SandboxID": "8a437c8f0a6348a855d395af2e3eac1227efc1c1dc34d1d8ad935a1490905ace",
      "HairpinMode": false,
      "LinkLocalIPv6Address": "",
      "LinkLocalIPv6PrefixLen": 0,
      "Ports": {
        "8080/tcp": [
          {
            "HostIP": "<IP_ADDRESS>",
            "HostPort": "49406"
          }
        ]
      },
      "SandboxKey": "/var/run/docker/netns/8a437c8f0a63",
      "SecondaryIPAddresses": null,
      "SecondaryIPv6Addresses": null,
      "EndpointID": "1e6cf9cb13b34bd2505ed33d3f93ba3569b124944cc93f661a7055606d19cb63",
      "Gateway": "<IP_ADDRESS>",
      "GlobalIPv6Address": "",
      "GlobalIPv6PrefixLen": 0,
      "IPAddress": "<IP_ADDRESS>",
      "IPPrefixLen": 16,
      "IPv6Gateway": "",
      "MacAddress": "02:42:ac:11:00:02",
      "Networks": {
        "bridge": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": null,
          "NetworkID": "b9cc49a1eea84fbe3582cb0c9c02ea7fddaf122c8be82e1a253445ae789c0576",
          "EndpointID": "1e6cf9cb13b34bd2505ed33d3f93ba3569b124944cc93f661a7055606d19cb63",
          "Gateway": "<IP_ADDRESS>",
          "IPAddress": "<IP_ADDRESS>",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:02",
          "DriverOpts": null
        }
      }
    }
  }
}
   at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct) in C:\Users\sro\Projects\OpenSource\testcontainers-dotnet\src\Testcontainers\Containers\ResourceReaper.cs:line 172
   at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct) in C:\Users\sro\Projects\OpenSource\testcontainers-dotnet\src\Testcontainers\Containers\ResourceReaper.cs:line 183
   at DotNet.Testcontainers.ResourceReaper.Tests.StressTest.StartReaper(Int32 i) in C:\Users\sro\Projects\OpenSource\testcontainers-dotnet\tests\Testcontainers.ResourceReaper.Tests\StressTest.cs:line 38
   at DotNet.Testcontainers.ResourceReaper.Tests.StressTest.ResourceReaperStressTest() in C:\Users\sro\Projects\OpenSource\testcontainers-dotnet\tests\Testcontainers.ResourceReaper.Tests\StressTest.cs:line 30
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass48_1.<<InvokeTestMethodAsync>b__1>d.MoveNext() in C:\Dev\xunit\xunit\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 264
--- End of stack trace from previous location ---
   at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) in C:\Dev\xunit\xunit\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48
   at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) in C:\Dev\xunit\xunit\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90

0 : fail - expectedPort: 49406, hostPort: 49406

In Powershell : netsh interface ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges

Start Port    End Port
----------    --------
     49398       49497
     49498       49597
     49668       49767
     49868       49967
     50000       50059     *
     50060       50159
     50160       50259
     59036       59135
     59136       59235
     59341       59440
     59546       59645
     60076       60175
     60176       60275
     60276       60375
     60376       60475
     60476       60575
     60576       60675
     60676       60775
     60776       60875
     60876       60975
     60976       61075

* - Administered port exclusions.

As you can see, the chosen port is within the first excluded range. This is an issue with Docker for Windows and you probably cannot do anything.
https://github.com/docker/for-win/issues/11584
https://github.com/docker/for-win/issues/3171
@pellared If you still have failures, maybe check the port exclusion as well

Thanks for the feedback. At least we were able to fix the mismatching ports. I think we can add something like this as a workaround? I hope this won't produce race-conditions. @srollinet , you already tried something like this, right?
diff --git a/src/Testcontainers/Containers/ResourceReaper.cs b/src/Testcontainers/Containers/ResourceReaper.cs
index 48b0da5..27baae6 100644
--- a/src/Testcontainers/Containers/ResourceReaper.cs
+++ b/src/Testcontainers/Containers/ResourceReaper.cs
@@ -2,6 +2,7 @@ namespace DotNet.Testcontainers.Containers
 {
   using System;
   using System.IO;
+  using System.Net;
   using System.Net.Sockets;
   using System.Text;
   using System.Threading;
@@ -44,7 +45,7 @@ namespace DotNet.Testcontainers.Containers
         .WithAutoRemove(true)
         .WithCleanUp(false)
         .WithExposedPort(RyukPort)
-        .WithPortBinding(RyukPort, true)
+        .WithPortBinding(RyukPort, GetNextTcpPort())
         .WithBindMount("/var/run/docker.sock", "/var/run/docker.sock", AccessMode.ReadOnly)
         .Build();

@@ -378,5 +379,14 @@ namespace DotNet.Testcontainers.Containers
         ryukInitializedTaskSource.SetException(new ResourceReaperException("Initialization failed.", this.diagnostics));
       }
     }
+
+    private static ushort GetNextTcpPort()
+    {
+      using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
+      {
+        socket.Bind(new IPEndPoint(IPAddress.Loopback, 0));
+        return (ushort)((IPEndPoint)socket.LocalEndPoint).Port;
+      }
+    }
   }
 }

@HofmeisterAn Yes, this is the method I used until now with https://github.com/isen-ng/testcontainers-dotnet, and I also tested it with your lib.
I am testing it right now with my "stress test" with 10'000 iterations and concurrent container creations. So far, so good! it failed after a while listen tcp4 <IP_ADDRESS>:50270: bind: address already in use I will try again with non-concurrent creations
But you have to inverse the parameters order 😉  .WithPortBinding(GetNextTcpPort(), RyukPort)
Maybe you could add something to opt in/out this workaround? or to use it only on Windows?

Even sequentially, it fails sometimes, but not very frequently... But in practice I never had any problem with this method, on multiple projects, whereas I had frequent failures with the port exclusion issue and the mismatching ports.
Unfortunately, I think there is no magic solution that will work 100% for everyone

Published in 2.1.0-beta.2561986470. I'll create another issue tomorrow to track the Docker for Windows issues.

Published in 2.1.0-beta.2561986470

Using 2.1.0-beta.2561986470 helps 👍

Even sequentially, it fails sometimes, but not very frequently

@srollinet  If it occurs very problematic, you can consider making some thread-safe dictionary to "reserve" the ports returned by https://github.com/testcontainers/testcontainers-dotnet/blob/124f0070f102d2687a018a2d07096398c5345ccb/src/Testcontainers/Configurations/TestcontainersSettings.cs#L85-L89 and "release" them once the docker container is disposed. Of course, it may still race with any other application (and even code in the same process) that will try to bind a new TCP port.

@srollinet If it occurs very problematic, you can consider making some thread-safe dictionary to "reserve" the ports returned by

I was thinking about a similar idea. You could return a port from your own excluded port range, but dunno if you run into the same issue again if you explicit assign an excluded port 😅.

dunno if you run into the same issue again if you explicit assign an excluded port

It could. Therefore, it would be better if the caller just "retry" if ResourceReaperException is thrown.

It could.

Did you try it? I prefer fixing the root cause instead of adding another workaround for Docker Desktop for Windows.

Yes, it could. See:

Even sequentially, it fails sometimes, but not very frequently... But in practice I never had any problem with this method, on multiple projects, whereas I had frequent failures with the port exclusion issue and the mismatching ports.
Unfortunately, I think there is no magic solution that will work 100% for everyone

You are just trying to get a free port but someone can already take it in the meanwhile. For instance we are using similar approach in our integration tests and it is possible to have a race if they would be run in parallel.

I prefer fixing the root cause instead of adding another workaround for Docker Desktop for Windows.

Still, I do not say we should do any more workarounds in Testcontainers. The caller can always "retry" running a new container and there is a high chance that the new port will not be occupied. Do you know if other Testcontainer implementations (e.g. in Java) have the same issue?

Even sequentially, it fails sometimes, but not very frequently

@srollinet If it occurs very problematic, you can consider making some thread-safe dictionary to "reserve" the ports returned by
https://github.com/testcontainers/testcontainers-dotnet/blob/124f0070f102d2687a018a2d07096398c5345ccb/src/Testcontainers/Configurations/TestcontainersSettings.cs#L85-L89
and "release" them once the docker container is disposed. Of course, it may still race with any other application (and even code in the same process) that will try to bind a new TCP port.

It was just a stress test to make the problem appear quickly. So I don't have real issues about that. But thanks for the tip 😉

Not sure if this helps but I also encountered this problem. I investigated and found that I had the following, potential problems:

WSL was enabled but I had two versions of the Ubuntu distro installed.
I had installed Rancher desktop and set Docker as the container platform, but had previously installed Podman.
Kubernetes was installed as part of Rancher desktop

I solved the problem by:

Uninstalling Rancher desktop
Uninstalling both Ubuntu distros
Uninstalling Podman
Reinstalling WSL, but disassociating it with Ubuntu, to allow me to redownload it (it thought it was installed, but it wasn't)
Reinstalling Rancher desktop and setting docker as the container engine.

HTH!


Update the footer design and layout

I would like to change the layout of the footer section
And add separate columns for About us section and links in the footer
Please assign this issue it to me under LGM-SOC tag

Hii, I am a LGM-SOC'21 participants , would like to update the footer design and layout.
I want to  update on footer with some columns and rows so that it would look symmetrical.
please assign this issue to me

is it done ? if yes then don't forget to mention issue number in your PR otherwise it will not be counted


Update scene-understanding-SDK.md

Updating comment for sample code.

Docs Build status updates of commit 11a1391:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/scene-understanding-SDK.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Feature/doors

added 2 sets of double_hinged doors at the positions mentioned in the proposal
added an extra MiR100 to the looping scenario that will go through a door when launched

yup! that can certainly be done, our door thickness is currently hardcoded, so it should be trivial to add more door links and figure out their geometry. I can add that feature on building_map_tools and revisit this PR again after that has been implemented and merged

@codebot 's suggestion solves the issue in an efficient manner.

ohh I misread, hmm, I tried it out and feel that @codebot suggestion here https://github.com/osrf/traffic_editor/issues/101 might be more elegant.

This way we won't have super close vertices in the map, or that all the maps need to be updated to have extra wall segments. Let me know what you think, @Yadunund

After some tweaking around, I have come to realize @Yadunund's implementation is the most straightforward and useful for now.

I have added some additional lanes on the west side of the map, and have the third MiR100 robot looping between west_koi_pond and junction_n01

thanks for all the advice!


$ sign act as different $sign, if we use it under swiper

symbol of $ changes when I use it under swiper tags.

Not completely sure what you mean. If tags refers to a Swiper feature then you should report it in Swiper issues.


index out of bounds on simple example

rust program
#[no_mangle]
pub fn add_one(x: i32) -> i32 {
    x + 1
}

fn main() {}

compiled using wargo build from https://github.com/lord/wargo
stacktrace
RUST_BACKTRACE=1 wasm-gc example.wasm example.min.wasm

thread 'main' panicked at 'index out of bounds: the len is 19 but the index is 25', /home/nathan/.cargo/git/checkouts/wasm-gc-d84f174ed78190a0/a9adc2d/wasm-gc/src/gc.rs:255:23
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:69
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:58
             at /checkout/src/libstd/panicking.rs:381
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:397
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:577
   5: std::panicking::begin_panic
             at /checkout/src/libstd/panicking.rs:538
   6: std::panicking::begin_panic_fmt
             at /checkout/src/libstd/panicking.rs:522
   7: rust_begin_unwind
             at /checkout/src/libstd/panicking.rs:498
   8: core::panicking::panic_fmt
             at /checkout/src/libcore/panicking.rs:71
   9: core::panicking::panic_bounds_check
             at /checkout/src/libcore/panicking.rs:58
  10: wasm_gc::gc::LiveContext::add_global
  11: wasm_gc::gc::LiveContext::add_function
  12: wasm_gc::gc::LiveContext::add_function
  13: wasm_gc::gc::LiveContext::add_function
  14: wasm_gc::gc::LiveContext::add_function
  15: wasm_gc::gc::LiveContext::add_function
  16: wasm_gc::gc::LiveContext::add_function
  17: wasm_gc::gc::LiveContext::add_function
  18: wasm_gc::gc::garbage_collect
  19: wasm_gc::_gc_file
  20: wasm_gc::main
  21: __rust_maybe_catch_panic
             at /checkout/src/libpanic_unwind/lib.rs:99
  22: std::rt::lang_start
             at /checkout/src/libstd/panicking.rs:459
             at /checkout/src/libstd/panic.rs:361
             at /checkout/src/libstd/rt.rs:59
  23: __libc_start_main
  24: _start

I can provide the wasm file, or anything else that might help reproduce this if needed, thanks.

Thanks for the report! Unfortunately I can't seem to reproduce it, but if you could provide the wasm file that'd be great!

@alexcrichton
example.wasm.zip
this was built in debug mode. Release mode gets a similar error (with different index values)

Aha! Are you using the Emscripten target?


Auto-generate first component

When a library is initialized, it should create the first component. There is a high likelihood that the first component is going to be the same name as the library.
Perhaps the project initialization needs an option to say "don't generate first component", too, to avoid this behavior.

Up to you on this feature but is it really necessary? I created a project today that had 0 components. Is it a big burden to run the command to create a component after project generation?

Good point. This could be a CLI argument in the futures; npm run g i --generate-first-component or something if the user wants it


Jetson TX2 - Jetpack 4.3 Install issue

Hi,
I'm trying to install retinanet-example (branch 19.10 as recommanded) on my Jetson TX2 (Jetpack 4.3).
PyTorch, Apex and all requirements are correctly installed in a virtualenv but when I execute python setup.py install , I face this issue:
/usr/local/cuda-10.0/bin/nvcc -I/home/nvidia/.virtualenvs/cv/lib/python3.6/site-packages/torch/include -I/home/nvidia/.virtualenvs/cv/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/nvidia/.virtualenvs/cv/lib/python3.6/site-packages/torch/include/TH -I/home/nvidia/.virtualenvs/cv/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.0/include -I/home/nvidia/.virtualenvs/cv/include -I/usr/include/python3.6m -c csrc/cuda/decode_rotate.cu -o build/temp.linux-aarch64-3.6/csrc/cuda/decode_rotate.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -std=c++14 --expt-extended-lambda --use_fast_math -Xcompiler -Wall -gencode=arch=compute_62,code=sm_62 -gencode=arch=compute_62,code=compute_62 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=1
gcc: error: csrc/cuda/decode_rotate.cu: No such file or directory
gcc: warning: ‘-x c++’ after last input file has no effect
gcc: fatal error: no input files
compilation terminated.
error: command '/usr/local/cuda-10.0/bin/nvcc' failed with exit status 1

I've already spent some hours looking for an answer but none of them really helped me, do you have some ideas ?
Thank you

We have not tested the installation of the odtk repo on a TX2 -- we use the odtk code on a workstation to train a network, and then deploy it to a Jetson device for inference.
You appear to be missing a file. Is that file present?
gcc: error: csrc/cuda/decode_rotate.cu: No such file or directory

I do the same, I trained it on a work station but would like to use the retinanet command to infer and check the performance.
I can't see how I can do otherwise, as there are some file needed to decode the output of the network. How would you deploy it without the repo ?
Finally, I don't have the file and my question is why ? I have CUDA10.0 correctly installed
Thanks

Ok so I found the reason.
In the 19.10 branch that you recommend to install on Jetson with Jetpack4.3, the decode_rotate.cu and other files are missing that's why I have the error.
Should I clone both repo and transfer the missing file to use the 19.10 version, or is it possible to install the master branch directly ?
Thanks

I don't think there is a nvidia-dali package for Jetson, just remove that line from setup.py and proceed.

Hey,
I misexplained the last edit, I've been able to correctly install the repository using the 20.03 branch.
The problem with dali package is when I call "retinanet infer" for example. I don't get why you mentionned the setup.py as there is no mention of dali in it...
Is the line you're talking about in another file maybe ? like main.py or other ?
Thanks

Oh I am sorry, I meant remove all instances of dali from .dali ... from train.py and infer.py

Hey,
thank you for the answer it does solve the issue, but now I'm facing a pytorch issue.
I have used the pre-built wheel for Jetpack4.3 to install pytorch 1.4 but when I call the retinanet command I have this occuring:
File "/home/nvidia/.virtualenvs/cv/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 480, in _new_process_group_helper
raise RuntimeError("Distributed package doesn't have NCCL "
RuntimeError: Distributed package doesn't have NCCL built in
Do you have any idea how to solve this ?
Thanks

hmm it's slightly complicated to get NCCL backend working for Jetson. I can't guarantee if it would work.
Can you try to build the pytorch L4T container from source?
https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-6-0-now-available/72048
Check out the build from source section, and change USE_NCCL and USE_DISTRIBUTED to 1

@VincentDuf did you get this to work?


saving

Error: Forbidden
Error: Forbidden
    at Request.<anonymous> (https://homebrewery.naturalcrit.com/homebrew/bundle.js:71842:19)
    at Request.Emitter.emit (https://homebrewery.naturalcrit.com/homebrew/bundle.js:1768:20)
    at XMLHttpRequest.xhr.onreadystatechange (https://homebrewery.naturalcrit.com/homebrew/bundle.js:72151:10)
{
  "status": 403,
  "method": "POST",
  "url": "/api/newGoogle/"
}

did not help

Old work is saved, not works with new

It was necessary to add a "TITLE"

Please add a normal error message.

Thanks for the report! We'll look into that - it absolutely shouldn't be necessary to add a title to your brew in order to save to Google Drive.

going to close this as the initial issue is solved.  However, issue #1848 has been opened (and PR #1849 submitted) to bring attention to better capturing of google errors.


Remove autoscroll from feedback window, since the student needs to read from the top.

/cc @eyurko @apicardgoog


Clean changes dialog box is non-modal on Linux

VSCode Version: 0.10.12-alpha
OS Version: Ubuntu 15.10

Steps to Reproduce:

Initialize a git repo or clone an existing one
Modify a file
Go to Git tab and Clean changes

Actual:
Clicking clean more than once brings up more than one 'Are you sure' dialog.

Expected:
In Windows, only one dialog box is shown and clicking again just redirects to the already open one.

To rephrase: The dialog is not modal on Ubuntu like on Windows. Reproduced.

Upstream issue:

https://github.com/atom/electron/issues/2566
https://code.google.com/p/chromium/issues/detail?id=286441

@Tyriar Looks like some other changes fixed the modal issue. But now if you click more than once, the dialog will only show one at a time, but will continue to pop up how ever many times you click clean regardless of choosing clean or cancel.

@vsccarl sounds fixed to me, it's typically not worth adding the state to avoid clicking multiple times like that imo.


feat: unify manuscript data

resolves #38

Awesome! I'll have a closer look tomorrow.

Awesome! I'll have a closer look tomorrow.

not yet there, I'm afraid... just wanted to see the test runs, so I drafted the PR. But it's taking shape... :)

Codecov Report
Base: 44.23% // Head: 47.91% // Increases project coverage by +3.67% :tada:

Coverage data is based on head (738737b) compared to base (36665dd).
Patch coverage: 28.41% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #121      +/-   ##
==========================================
+ Coverage   44.23%   47.91%   +3.67%
==========================================
  Files          25       26       +1
  Lines        1519     1509      -10
==========================================
+ Hits          672      723      +51
+ Misses        847      786      -61

Impacted Files
Coverage Δ

tests/unit/lib/xml/test_metadata.py
100.00% <ø> (ø)

src/lib/xml/metadata.py
8.12% <8.51%> (-0.81%)
:arrow_down:

src/lib/xml/tamer.py
18.54% <18.42%> (+5.37%)
:arrow_up:

src/lib/datahandler.py
21.38% <19.04%> (-1.24%)
:arrow_down:

src/lib/database/database.py
35.13% <25.80%> (+0.46%)
:arrow_up:

src/lib/database/db_init.py
25.00% <33.33%> (-5.91%)
:arrow_down:

src/lib/database/deduplicate.py
41.81% <41.81%> (ø)

tests/unit/lib/xml/test_tamer.py
95.00% <95.00%> (ø)

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

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

@kraus-s the core feature is implemented, though it surly can still be improved. But the unification should be - at least to some extent - reasonable.
There is probably some clean-up still to do, just ignore that for now. ;-)
What I have not done at all, is seeing if we need junction tables for the unified manuscript data; and implementing ways to query that data. (If we should even still be able to query the un-unified data in the first place? maybe unified data is enough?)
I'm wondering if I should postpone that to a next PR, so nothing is blocked. What do you think?

I now changed it, so that the search functions actually use the unified data.
Additionally I triaged a bug in the new XML processing, which meant that only 1/30 texts were found in the manuscript descriptions... but we'll have to have a very close look at the xml data extraction. I'm under the impression that considerable regressions have happened there.

Regressions in the xml extraction as in the new way we implemented lxml
instead of beautiful soup? If so, I'll have a look
Balduin Landolt @.***> schrieb am So., 2. Okt. 2022,
16:52:

I now changed it, so that the search functions actually use the unified
data.
Additionally I triaged a bug in the new XML processing, which meant that
only 1/30 texts were found in the manuscript descriptions... but we'll have
to have a very close look at the xml data extraction. I'm under the
impression that considerable regressions have happened there.
—
Reply to this email directly, view it on GitHub
https://github.com/arbeitsgruppe-digitale-altnordistik/Sammlung-Toole/pull/121#issuecomment-1264661739,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANZXABDMPDNCB7BMR5BGSBLWBGOSJANCNFSM6AAAAAAQYECEJM
.
You are receiving this because you were mentioned.Message ID:
<arbeitsgruppe-digitale-altnordistik/Sammlung-Toole/pull/121/c1264661739@
github.com>

Regressions in the xml extraction as in the new way we implemented lxml instead of beautiful soup? If so, I'll have a look

yes... I can't pip point it yet... but I think we're skipping extremely many searches (sometimes with, sometimes without logging a warning) and accept 0 or "N/A" where previously we got real results.
The instance I actually found, was that due to some logic being placed in a wrong if-statement, we only found ca. 2k texts in manuscripts, instead of 60k, which resulted in a tiny junction table and thus not finding any results for most "search text by manuscript" searches. But that one is fixed.
But I don't think this is the highest priority right now.


Delete all clones

how do i limit the times of deleting? because with your example it delete me all the form

Which example you checked, I unable to reproduce it, What is the steps to reproduce it.

@blaskxx I guess, you need a minimum count. This is not present in cloneya, but we'll add it in 1.0. See #25

@blaskxx we've added a minimum parameter and modified the deletion. Could you test and see if this one fixes your issue? We'll be releasing 1.0 soon.

Thanks great job!

I have just released it. I'm closing the issue.


passkey/webauthn support

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request
Is it possible to add webauthn (passkey) support to a shiro-based application
Describe the solution you'd like
Support webauthn
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Maybe something similar to this?
https://blog.bmarwell.de/2022/04/26/apache-shiro-jwt-authentication-jjwt.html

Thank you for the link.  We're on Tomcat 9,   If I understand the jjwt
project correctly it looks like we'd have to migrate to a
fully Java/Jakarta-EE container, which unfortunately isn't feasible for us
currently.
On Sat, Mar 23, 2024 at 12:42 PM Lenny Primak @.***>
wrote:

Maybe something similar to this?
https://blog.bmarwell.de/2022/04/26/apache-shiro-jwt-authentication-jjwt.html
—
Reply to this email directly, view it on GitHub
https://github.com/apache/shiro/issues/1382#issuecomment-2016543397, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDHB7HFJNCIJE2TK453R3YZWWHVAVCNFSM6AAAAABFDKZQMGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWGU2DGMZZG4
.
You are receiving this because you authored the thread.Message ID:
@.***>


install zlib-devel and rpm-build on fedora kitchen docker

This fixes the nokogiri compile failures on TK fedora

:+1:  on green

Here is the green appveyor build hiding beneath the red x here: https://ci.appveyor.com/project/chef/chef/build/master-5622

+1


Add Pipfile for Pipenv

Can I work on this?

This is already done, but there's plenty of other open issues to work on! @schedutron, is there anything else you'd want to work on for this project?


refactoring

Codecov Report

Merging #89 into master will decrease coverage by 20.4%.
The diff coverage is 16.66%.

@@             Coverage Diff             @@
##           master      #89       +/-   ##
===========================================
- Coverage   86.86%   66.46%   -20.41%
===========================================
  Files          31       61       +30
  Lines         495     1339      +844
  Branches        5       99       +94
===========================================
+ Hits          430      890      +460
- Misses         65      443      +378
- Partials        0        6        +6

Impacted Files
Coverage Δ

atcoder-problems-frontend/src/components/List.tsx
32.06% <16.66%> (ø)

...tcoder-problems-frontend/src/model/RankingKind.tsx
100% <0%> (ø)

...blems-frontend/src/components/UserPageBarChart.tsx
38.88% <0%> (ø)

...s-frontend/src/components/RatedPointCountTable.tsx
62.5% <0%> (ø)

...r-problems-frontend/src/components/Application.tsx
83.75% <0%> (ø)

...lems-frontend/src/components/UserPageLanguages.tsx
100% <0%> (ø)

...ems-frontend/src/components/CategorySmallBlock.tsx
66.66% <0%> (ø)

...coder-problems-frontend/src/components/Ranking.tsx
61.11% <0%> (ø)

...oder-problems-frontend/src/components/Category.tsx
55.26% <0%> (ø)

atcoder-problems-frontend/src/index.tsx
0% <0%> (ø)

... and 21 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 7889522...289c3db. Read the comment docs.


test: Extend "Checks service on same node" test case

Extend the test case by adding a check whether sending a request from a pod to a service endpoint on the same node via ClusterIP works.
Fix: #10568.

test-me-please

Coverage decreased (-0.01%) to 45.532% when pulling 577336738bf5d26accd0af3d4d6b2cc3f6ecdc9a on pr/brb/test-same-node-client into ae4fbbed82e2e759dc68a83aa0365e26cfe61d7e on master.


Add swiss legal evals as new community tasks

Adds new community tasks with swiss legal evaluations. Currently translation tasks are supported but others may follow in the future.

@hynky1999 tagging you if you've got a couple minutes to check when back from the offsite

Re templates:
We don't have any template for translation tasks atm.
There are many variants to go with (see the image below), but I would prefer going with the [src]: [input] [tgt]: (A variant). Since translation is inherently cross-lingual tasks and it's not clear which language we should use (target or source?), such template allows us to be independant on language (the language labels are kinda standardized, but yeah they will be in latin).
@JoelNiklaus
Have you experimented different prompt formats?

Source: https://arxiv.org/pdf/2301.07069
I can quickly make a PR for the translation template and we can convert it to that.

I haven't experimented with prompts yet. Yes, going with variant A sounds good.
Thanks so much!

Btw. what is the reason you are not using the metrics from evaluate?

I see. So if I want to use COMET and METEOR, I best use direct implementations in that case, rather than rely on evaluate?

PR looks great ! Do the results on your evals look sound ?
Also, you can use the pre-commit hooks to format the files and fix the CI :)
pip install pre-commit
pre-commit install
pre-commit run --all-files

Great, thanks!
Just ran the pre-commit hooks.
Couldn't run the evals yet because of the judge prompt. Hope to do that soon.

For some reason, bleurt_large, wmt22-comet-da, and judge_score_gpt-4o are saved to separated duplicated rows in the details. Also, judge_score_gpt-4o does not show up in the overview:
|community:sdst-text_level:de-fr:3|      0|bleu          |44.8267|±  | 0.5706|
|                                 |       |chrf          |77.1781|±  | 0.5906|
|                                 |       |ter           |54.5455|±  | 0.3742|
|                                 |       |meteor        |62.1061|±  |18.7888|
|                                 |       |BERTScore-P   |98.6389|±  | 0.4811|
|                                 |       |BERTScore-R   |98.6984|±  | 0.6839|
|                                 |       |BERTScore-F   |98.6685|±  | 0.5824|
|                                 |       |bleurt_large  |14.3253|±  | 0.5687|
|                                 |       |wmt22-comet-da|84.5221|±  | 0.4793|

I am running this command:
python -m lighteval accelerate \
  --model_args openai,model=gpt-4o-mini \
  --tasks community|sdst-text_level:de-fr|3|0 \
  --custom_tasks lighteval/community_tasks/swiss_legal_evals.py \
  --output_dir outputs \
  --override_batch_size 1 \
  --save_details \
  --max_samples 2

Why is this happening and how can I fix it?

Duplicated rows: yes, each "metric type" leads to its own row, since they are not parsed the same (to make sure each comes with its own correct logprob related info for example). This is a feature not a bug.
However, no idea why the judge eval is not there