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

I just created 8 x PostgreSqlTest from your examples. And some times (some times ok) some tests are failed because of
DotNet.Testcontainers.Containers.ResourceReaperException.
DotNet.Testcontainers.Containers.ResourceReaperException : Initialization has been cancelled.
  at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct)
  at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, String ryukImage, TimeSpan initTimeout, CancellationToken ct)
  at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartDefaultAsync(IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, CancellationToken ct)
  at DotNet.Testcontainers.Clients.TestcontainersClient.RunAsync(ITestcontainersConfiguration configuration, CancellationToken ct)
  at DotNet.Testcontainers.Containers.TestcontainersContainer.Create(CancellationToken ct)
  at DotNet.Testcontainers.Containers.TestcontainersContainer.StartAsync(CancellationToken ct)

To Reproduce

Create 8x tests PostgreSqlTest  from you examples and run

public sealed class PostgreSqlTest : IAsyncLifetime
{
  private readonly TestcontainerDatabase testcontainers = new TestcontainersBuilder<PostgreSqlTestcontainer>()
    .WithDatabase(new PostgreSqlTestcontainerConfiguration
    {
      Database = "db",
      Username = "postgres",
      Password = "postgres",
    })
    .Build();

  [Fact]
  public void ExecuteCommand()
  {
    using (var connection = new NpgsqlConnection(this.testcontainers.ConnectionString))
    {
      using (var command = new NpgsqlCommand())
      {
        connection.Open();
        command.Connection = connection;
        command.CommandText = "SELECT 1";
        command.ExecuteReader();
      }
    }
  }

  public Task InitializeAsync()
  {
    return this.testcontainers.StartAsync();
  }

  public Task DisposeAsync()
  {
    return this.testcontainers.DisposeAsync().AsTask();
  }
}

Expected behavior
No exception
Desktop:
Testcontainers: 2.1.0
OS: amd64 Linux 22.04.1 LTS (Jammy Jellyfish)
Docker: 20.10.18

How do you create the test instances? One after another? Parallel? In the same process? Can you test the latest snapshot release 2.2.0-beta.3123645733?

How do you create the test instances? One after another? Parallel? In the same process? Can you test the latest snapshot release 2.2.0-beta.3123645733?
Run tests via
dotnet test command https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test
In is the same process

@HofmeisterAn
I have tested with 2.2.0-beta.3123645733. It is good now, thanks!

I will close it then. Do not hesitate to reopen it again.


Moderation - Frontend

Create an administration panel where moderators can do moderation and administrative things.

Implemented as of b5r7

Implemented as of b5r7

Re-opened. Needs to be written in Beta 6 API still, this is part of the Beta 6 API migration milestone.


rename /pcmdi_metrics to /summary_statistics

@lee1043 @acordonez   This simple change may take more work.   I expect setup.py will need to be modified.   Any other things come to mind before I get started?

@gleckler1 I think changes should be made in setup.py mostly. No other things come to my mind neither.

@gleckler1 @lee1043 All the package references in our scripts would need to be updated, e.g.
from pcmdi_metrics.monsoon_sperber.lib import sperber_metrics
would need to be
from summary_statistics.monsoon_sperber.lib import sperber_metrics

@lee1043 @acordonez  and maybe in some codes like below? ...
https://github.com/PCMDI/pcmdi_metrics/blob/master/pcmdi_metrics/diurnal/scripts/compositeDiurnalStatistics.py#L26

@acordonez that is a great and very critical point! Thanks for bring that in. In another code (ENSO metric) I have seen the most upper level could be given arbitrarily instead of directory name.
e.g.:
https://github.com/CLIVAR-PRP/ENSO_metrics/blob/903f12a416b21f56f745001ae9ed2ebbf65bc779/pmp_driver/PMPdriver_EnsoMetrics.py#L19
and
https://github.com/CLIVAR-PRP/ENSO_metrics/blob/903f12a416b21f56f745001ae9ed2ebbf65bc779/setup.py#L61
I don't know if we can do something similar here. We may need some study on it.

@lee1043 @acordonez   I'll try it out on a branch and keep you posted.


feat: bind DataFrame API into python script

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
Bind DataFrame API in python script, example as below:
from data_frame import col

def test(number)->vector[u32]:
    return df.filter((col("number")==col("number))).collect()[0][0]

this api is just a subset of DataFusion's DataFrame api.   DataFrame and Expr types are wrapped in corrseponding python types and exposed similiar api.
Sadly, the collect() is async, so this hack of calling from async to sync to async must be used again(Creating new thread and new runtime for blocking calls)
Checklist

[x]  I have written the necessary rustdoc comments.
[x]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

@killme2008 Do you have any comment on this?

Sadly, the collect() is async, so this hack of calling from async to sync to async must be used again(Creating new thread and new runtime for blocking calls)

by the way, is there any work in the rust/python ecosystem to imlementation async python on top of futures/tokio runtime?

Sadly, the collect() is async, so this hack of calling from async to sync to async must be used again(Creating new thread and new runtime for blocking calls)

by the way, is there any work in the rust/python ecosystem to imlementation async python on top of futures/tokio runtime?

pyo3 have this feature,(among other nice features), currently working on adding pyo3 as a optional backend
https://pyo3.rs/v0.18.1/ecosystem/async-await.html?highlight=async#using-async-and-await


No Backups Created - errors in PostgreSQL logs

Backups of MySQL server in separate container work fine. Instance for Postgres fails. Postgres logs say:
2023-11-21 03:00:00.852 EST [535] FATAL:  password authentication failed for user "dbbackup"
2023-11-21 03:00:00.852 EST [535] DETAIL:  Role "dbbackup" does not exist.
        Connection matched pg_hba.conf line 100: "host all all all scram-sha-256"
2023-11-21 03:00:00.872 EST [536] FATAL:  database "admin" does not exist

But DB_NAME and DB_USER are not set to those values. So where is it getting that from?
The login credentials the container has are correct and work fine to log in via Adminer.
If I run backup-now in the container terminal, I get this:
psql: error: connection to server at "<IP_ADDRESS>", port 5432 failed: FATAL:  database "admin" does not exist
Are the keys in the template wrong for postgreSQL?

Manual run with debug mode on show this as the query sent:
psql -h <IP_ADDRESS> -U admin -p 5432 -d admin -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
Looks like it's set the port number as the password and the username as the database.
Attaching my settings. It looks correct, but it doesn't seem the script is parsing it correctly.

Tried it all on a different unRAID server. Same error. It comes back saying database "" does not exist.
There is something broken in how the query is parsed from the container variables. They don't work the same from mysql to pgsql.

@Tyree please see this: https://github.com/tiredofit/docker-db-backup/issues/262, it was fixed in https://github.com/tiredofit/docker-db-backup/issues/263

Do I have to use the authdb in order for this to work, or should it work by just providing the username, password, and db name?

Yes, you have to specify the authdb as pgdump  assumes a database with the same name as the $DB_USER exists.

@alwynpan Forgive my ignorance here, please.
Is that as simple as creating a database with the same name as $DB_USER?

@Tyree when you create a PGSQL container, if $POSTGRES_DB is not specified, the container will use the value of $POSTGRES_USER by default. However, if you specify a $POSTGRES_DB,  a database with that name will be created.
When authorizing, PGSQL assumes a database with the same name as the user exists and use it as the authdb. However, if you created a database with a different name, then you have to specify the authdb otherwise you won't be able to connect to the database.

Got it. That's what I ended up doing. I redid all the keys in the unRAID template to match that on the github docs and then added the DB01_AUTHDB key. That fixed it up and it's working fine now.
Thanks for your help!


branch test-9a uncompress does not work with caravel

When caravel is cloned under user_project_wrapper, make set_user_id fails during uncompress.
export CARAVEL_ROOT=/home/user/mpw-9/caravel_user_project/caravel && make -f /home/user/mpw-9/caravel_user_project/caravel/Makefile set_user_id
make[1]: Entering directory '/home/user/mpw-9/caravel_user_project'
/home/user/mpw-9/caravel_user_project/caravel/Makefile:227: target 'verilog/gl/user_project_wrapper.v.gz.00.split' given more than once in the same rule
/home/user/mpw-9/caravel_user_project/caravel/Makefile:227: target 'mag/user_project_wrapper.mag.gz.00.split' given more than once in the same rule
/home/user/mpw-9/caravel_user_project/caravel/Makefile:227: target 'def/user_project_wrapper.def.gz.00.split' given more than once in the same rule
/home/user/mpw-9/caravel_user_project/caravel/Makefile:227: target 'gds/user_project_wrapper.gds.gz.00.split' given more than once in the same rule
USER_ID is set to 02469BDF

gzip: caravel/signoff/caravan/primetime-signoff/reports/nom/timing_reports.tar.gz: not in gzip format
make[1]: *** [/home/user/mpw-9/caravel_user_project/caravel/Makefile:244: caravel/signoff/caravan/primetime-signoff/reports/nom/timing_reports.tar] Error 1
make[1]: Leaving directory '/home/user/mpw-9/caravel_user_project'
make: *** [Makefile:84: set_user_id] Error 2

Currently, LARGE_FILES is set to
LARGE_FILES += $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB)M -not -path "./signoff/*" -not -path "./mgmt_core_wrapper/signoff/*" -not -path "./.git/*" -not -path "./*/.git/*" -not -path "./gds/*" -not -path "./tapeout/outputs/oas/*" -not -path "./openlane/*")

Suggest
LARGE_FILES += $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB)M \
     -not -path "*/signoff/*" \
     -not -path "*/.git/*" \
     -not -path "*/gds/*" \
     -not -path "*/oas/*" \
     -not -path "*/openlane/*" \
     -not -name "*.$(ARCHIVE_EXT)")

* matches . and /.
The final -not -name ".$(ARCHIVE_EXT)" ignores already compressed files.
Note: .tgz files will continue to be selected.

The file creating the error is actually xz compressed.
ciic-cvc:~/mpw-9/caravel_user_project/caravel/signoff/caravan/primetime-signoff/reports/nom$ file timing_reports.tar.gz
timing_reports.tar.gz: XZ compressed data

Looks like the other timing reports are the same.
ciic-cvc:~/mpw-9/caravel_user_project/caravel$ find . -name '*.gz' -exec file {} \; | grep -v gzip
./signoff/caravan/primetime-signoff/reports/nom/timing_reports.tar.gz: XZ compressed data
./signoff/caravan/primetime-signoff/reports/min/timing_reports.tar.gz: XZ compressed data
./signoff/caravan/primetime-signoff/reports/max/timing_reports.tar.gz: XZ compressed data


Add depthOffset to schema

depthOffset seems to be missing from the schema, even though it's in the documentation and the update function.

Good catch, thank you! Merged. I will publish a release asap.


Nothing happens when using AsyncStorage at try-catch block at async function

###Is this a bug report?
-Yes.
I am observing the the following issue. Trying to set data at the AsyncStorage nothing happens.
// @flow
import {AsyncStorage} from 'react-native';
import type {Dispatch} from '../../../types/Dispatch';
import type {AuthModel} from '../../../types/AuthModel';
import type {ThunkAction} from '../../../types/ThunkAction';
import {login as loginService} from '../../../services/auth';
import {dataFetching, dataFetchingDone} from '../../../actions/actions';
import {clearRedirect, setRedirect} from '../../../actions/redirectActions';
export const login = (formData: AuthModel): ThunkAction => async (dispatch: Dispatch): void => {
try {
dispatch(dataFetching());
const data = await loginService(formData);
debugger
await AsyncStorage.setItem('user', JSON.stringify(data));
debugger
dispatch(dataFetchingDone());
} catch (e) {
        debugger
       console.log(e);
      }
};
I literally mean that nothing happens after await AsyncStorage.setItem('user', JSON.stringify(data));, it doesn't go on the next line, it doesn't enter at the catch block.
###Environment:
OS: Windows 10
Node: 8.9.4
Yarn: Not Found
npm: 4.6.1
Watchman: Not Found
Xcode: N/A
Android Studio: Version  <IP_ADDRESS> AI-171.4443003
Packages: (wanted => installed)
react: 16.0.0 => 16.0.0
react-native: 0.50.3 => 0.50.3
Expected Behavior
To set the item into the storage and to go on the next line or to throw an error.
Actual Behavior
Nothing happens after AsyncStorage is called

RN: 0.54.2 same problem.
only rerun run-android can make it work.
but when reload again, it happened again.
https://github.com/facebook/react-native/issues/12830


Add class for creating prompt templates

Adds classes that allows for creating prompt templates with various styles and introduction texts.
Also adds file that can parse xml output

While looking at this, I realised there was a lot to do to standardize the output between prompts. So I have now written up a new outline from this in this branch here.


Azure ML Model Deploy - Failure

Hello  under Azure ML Model Deploy
I am receiving the following error and unable to deploy the cluster
2020-04-10T17:39:16.9021811Z ##[warning]Resource file haven't set, can't find loc string for key: LoginFailed
2020-04-10T17:39:16.9085231Z [command]/usr/local/envs/mlopspython_ci/bin/az account set --subscription 8193b690-8113-40ca-843d-94e7c01e85da
2020-04-10T17:39:18.7337770Z ##[warning]Resource file haven't set, can't find loc string for key: ErrorInSettingUpSubscription
2020-04-10T17:39:18.7343760Z From service connection: resource group =  mlopsm-RG  workspace =  mlopsm-AML-WS
2020-04-10T17:39:18.7397754Z Cannot find result.json for the model profile result.
2020-04-10T17:39:18.7399547Z Command: az ml model deploy  -n mlopsm-aci --model diabetes_regression_model.pkl:1 --ic /__w/1/s/diabetes_regression/scoring/inference_config.yml --dc /__w/1/s/diabetes_regression/scoring/deployment_config_aci.yml -g mlopsm-RG -w mlopsm-AML-WS --overwrite
2020-04-10T17:39:18.7413299Z [command]/usr/local/envs/mlopspython_ci/bin/az ml model deploy -n mlopsm-aci --model diabetes_regression_model.pkl:1 --ic /__w/1/s/diabetes_regression/scoring/inference_config.yml --dc /__w/1/s/diabetes_regression/scoring/deployment_config_aci.yml -g mlopsm-RG -w mlopsm-AML-WS --overwrite
2020-04-10T18:05:46.6410714Z Output:
2020-04-10T18:05:46.6413580Z ##[error]Error Code: [1]
2020-04-10T18:05:46.6416675Z ERROR: {'Azure-cli-ml Version': '1.2.0', 'Error': WebserviceException:
2020-04-10T18:05:46.6417493Z 	Message: Service deployment polling reached non-successful terminal state, current service state: Unhealthy
2020-04-10T18:05:46.6418177Z Operation ID: 7c817965-ba94-47f3-bb97-6f3ba0953601
2020-04-10T18:05:46.6418664Z More information can be found using '.get_logs()'
2020-04-10T18:05:46.6418921Z Error:
2020-04-10T18:05:46.6419069Z {
2020-04-10T18:05:46.6419281Z   "code": "DeploymentTimedOut",
2020-04-10T18:05:46.6419551Z   "statusCode": 504,
2020-04-10T18:05:46.6420410Z   "message": "The deployment operation polling has TimedOut. The service creation is taking longer than our normal time. We are still trying to achieve the desired state for the web service. Please check the webservice state for the current webservice health. You can run print(service.state) from the python SDK to retrieve the current state of the webservice."
2020-04-10T18:05:46.6421218Z }
2020-04-10T18:05:46.6421406Z 	InnerException None
2020-04-10T18:05:46.6421604Z 	ErrorResponse
2020-04-10T18:05:46.6421780Z {
2020-04-10T18:05:46.6421945Z     "error": {
2020-04-10T18:05:46.6424189Z         "message": "Service deployment polling reached non-successful terminal state, current service state: Unhealthy\nOperation ID: 7c817965-ba94-47f3-bb97-6f3ba0953601\nMore information can be found using '.get_logs()'\nError:\n{\n  "code": "DeploymentTimedOut",\n  "statusCode": 504,\n  "message": "The deployment operation polling has TimedOut. The service creation is taking longer than our normal time. We are still trying to achieve the desired state for the web service. Please check the webservice state for the current webservice health. You can run print(service.state) from the python SDK to retrieve the current state of the webservice."\n}"
2020-04-10T18:05:46.6425968Z     }
2020-04-10T18:05:46.6426119Z }}
2020-04-10T18:05:46.6426796Z ##[error]Error: Failed to deploy model(s)
2020-04-10T18:05:46.6445962Z { code: 1,
2020-04-10T18:05:46.6446185Z   error: undefined,
2020-04-10T18:05:46.6446760Z   stdout: '',
2020-04-10T18:05:46.6451321Z   stderr: 'ERROR: {'Azure-cli-ml Version': '1.2.0', 'Error': WebserviceException:\n\tMessage: Service deployment polling reached non-successful terminal state, current service state: Unhealthy\nOperation ID: 7c817965-ba94-47f3-bb97-6f3ba0953601\nMore information can be found using '.get_logs()'\nError:\n{\n  "code": "DeploymentTimedOut",\n  "statusCode": 504,\n  "message": "The deployment operation polling has TimedOut. The service creation is taking longer than our normal time. We are still trying to achieve the desired state for the web service. Please check the webservice state for the current webservice health. You can run print(service.state) from the python SDK to retrieve the current state of the webservice."\n}\n\tInnerException None\n\tErrorResponse \n{\n    "error": {\n        "message": "Service deployment polling reached non-successful terminal state, current service state: Unhealthy\nOperation ID: 7c817965-ba94-47f3-bb97-6f3ba0953601\nMore information can be found using '.get_logs()'\nError:\n{\n  \"code\": \"DeploymentTimedOut\",\n  \"statusCode\": 504,\n  \"message\": \"The deployment operation polling has TimedOut. The service creation is taking longer than our normal time. We are still trying to achieve the desired state for the web service. Please check the webservice state for the current webservice health. You can run print(service.state) from the python SDK to retrieve the current state of the webservice.\"\n}"\n    }\n}}\n' }
2020-04-10T18:05:46.6461111Z Reverting to original directory.....
2020-04-10T18:05:46.6461366Z /__w/1/s
2020-04-10T18:05:46.6689974Z ##[section]Finishing: Azure ML Model Deploy

"Unhealthy" service state indicates that the endpoint is unreachable. It looks like it's timing out when trying to reach the service.
You can find the service logs by using the CLI command az ml service get-logs --name mlopsm-aci, or the SDK service.get_logs(..). You can also check the ACI container logs from the Azure Portal UI.

here is more specific File "/var/azureml-server/create_app.py", line 3, in
from app import main
File "/var/azureml-server/app.py", line 21, in
import flask
ModuleNotFoundError: No module named 'flask'
Worker exiting (pid: 37)
Shutting down: Master
Reason: Worker failed to boot.
2020-04-10T23:50:01,107202016+00:00 - gunicorn/finish 3 0
2020-04-10T23:50:01,108392716+00:00 - Exit code 3 is not normal. Killing image.

Looks like "flask" is missing

Flask is a dependency of azureml-defaults which is specified in conda_dependencies.yml
Requires: azureml-model-management-sdk, werkzeug, flask, azureml-core, configparser, json-logging-py, gunicorn, azureml-dataprep, applicationinsights
Do you have the logs from the scoring image creation? it should show the python packages being added and we can track down the dependency issue.

This is the file I have been using where flask is clearly missing -->  03d1f90 https://github.com/microsoft/MLOpsPython/commit/03d1f907a0da1ab7a976e5841941f401721002c0 - I am even thhinking if in my dependency if i use python version 3.6 this can work? in my logs above it still calls for python 3.6 -
here are the logs for the image creation
WARNING:main:appinsights key filename /mnt/secrets/AppInsightsKey does not exist
INFO:azure.storage.common.storageclient:Client-Request-ID=14820978-7b53-11ea-ac81-0a580af43d1e Outgoing request: Method=GET, Path=/azureml/LocalUpload/200410T173412-980c5e7b/diabetes_regression_model.pkl, Query={'snapshot': None, 'timeout': None}, Headers={'x-ms-lease-id': None, 'If-Modified-Since': None, 'If-Unmodified-Since': None, 'If-Match': None, 'If-None-Match': None, 'x-ms-range': 'bytes=0-33554431', 'x-ms-version': '2019-02-02', 'User-Agent': 'Azure-Storage/2.1.0-2.1.0 (Python CPython 3.6.9; Linux 4.15.0-1075-azure)', 'x-ms-client-request-id': '14820978-7b53-11ea-ac81-0a580af43d1e', 'x-ms-date': 'Fri, 10 Apr 2020 17:45:34 GMT', 'Authorization': 'REDACTED'}.
INFO:azure.storage.common.storageclient:Client-Request-ID=14820978-7b53-11ea-ac81-0a580af43d1e Receiving Response: Server-Timestamp=Fri, 10 Apr 2020 17:45:33 GMT, Server-Request-ID=15331d7d-001e-00ce-025f-0ff3fb000000, HTTP Status Code=206, Message=Partial Content, Headers={'content-length': '628', 'content-type': 'application/octet-stream', 'content-range': 'bytes 0-627/628', 'last-modified': 'Fri, 10 Apr 2020 17:34:12 GMT', 'accept-ranges': 'bytes', 'etag': '"0x8D7DD7562211833"', 'vary': 'Origin', 'server': 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id': '15331d7d-001e-00ce-025f-0ff3fb000000', 'x-ms-client-request-id': '14820978-7b53-11ea-ac81-0a580af43d1e', 'x-ms-version': '2019-02-02', 'x-ms-creation-time': 'Fri, 10 Apr 2020 17:34:12 GMT', 'x-ms-lease-status': 'unlocked', 'x-ms-lease-state': 'available', 'x-ms-blob-type': 'BlockBlob', 'x-ms-server-encrypted': 'true', 'date': 'Fri, 10 Apr 2020 17:45:33 GMT'}.
INFO:main:{'name': 'LocalUpload/200410T173412-980c5e7b/diabetes_regression_model.pkl', 'snapshot': None, 'content': None, 'properties': <azure.storage.blob.models.BlobProperties object at 0x7f3b2f6556a0>, 'metadata': {}, 'deleted': False}
INFO:azure.storage.common.storageclient:Client-Request-ID=14af2106-7b53-11ea-ac81-0a580af43d1e Outgoing request: Method=GET, Path=/azureml/LocalUpload/0ce55ec9/tmpz7cxrm0b.py, Query={'snapshot': None, 'timeout': None}, Headers={'x-ms-lease-id': None, 'If-Modified-Since': None, 'If-Unmodified-Since': None, 'If-Match': None, 'If-None-Match': None, 'x-ms-range': 'bytes=0-33554431', 'x-ms-version': '2019-02-02', 'User-Agent': 'Azure-Storage/2.1.0-2.1.0 (Python CPython 3.6.9; Linux 4.15.0-1075-azure)', 'x-ms-client-request-id': '14af2106-7b53-11ea-ac81-0a580af43d1e', 'x-ms-date': 'Fri, 10 Apr 2020 17:45:34 GMT', 'Authorization': 'REDACTED'}.
INFO:azure.storage.common.storageclient:Client-Request-ID=14af2106-7b53-11ea-ac81-0a580af43d1e Receiving Response: Server-Timestamp=Fri, 10 Apr 2020 17:45:34 GMT, Server-Request-ID=15331d92-001e-00ce-155f-0ff3fb000000, HTTP Status Code=206, Message=Partial Content, Headers={'content-length': '1064', 'content-type': 'application/octet-stream', 'content-range': 'bytes 0-1063/1064', 'last-modified': 'Fri, 10 Apr 2020 17:39:22 GMT', 'accept-ranges': 'bytes', 'etag': '"0x8D7DD761B1BE442"', 'vary': 'Origin', 'server': 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id': '15331d92-001e-00ce-155f-0ff3fb000000', 'x-ms-client-request-id': '14af2106-7b53-11ea-ac81-0a580af43d1e', 'x-ms-version': '2019-02-02', 'x-ms-creation-time': 'Fri, 10 Apr 2020 17:39:22 GMT', 'x-ms-lease-status': 'unlocked', 'x-ms-lease-state': 'available', 'x-ms-blob-type': 'BlockBlob', 'x-ms-server-encrypted': 'true', 'date': 'Fri, 10 Apr 2020 17:45:34 GMT'}.
INFO:main:{'name': 'LocalUpload/0ce55ec9/tmpz7cxrm0b.py', 'snapshot': None, 'content': None, 'properties': <azure.storage.blob.models.BlobProperties object at 0x7f3b2e370048>, 'metadata': {}, 'deleted': False}
INFO:azure.storage.common.storageclient:Client-Request-ID=14b29d9a-7b53-11ea-ac81-0a580af43d1e Outgoing request: Method=GET, Path=/azureml/LocalUpload/3d768a8a/score.py, Query={'snapshot': None, 'timeout': None}, Headers={'x-ms-lease-id': None, 'If-Modified-Since': None, 'If-Unmodified-Since': None, 'If-Match': None, 'If-None-Match': None, 'x-ms-range': 'bytes=0-33554431', 'x-ms-version': '2019-02-02', 'User-Agent': 'Azure-Storage/2.1.0-2.1.0 (Python CPython 3.6.9; Linux 4.15.0-1075-azure)', 'x-ms-client-request-id': '14b29d9a-7b53-11ea-ac81-0a580af43d1e', 'x-ms-date': 'Fri, 10 Apr 2020 17:45:34 GMT', 'Authorization': 'REDACTED'}.
INFO:azure.storage.common.storageclient:Client-Request-ID=14b29d9a-7b53-11ea-ac81-0a580af43d1e Receiving Response: Server-Timestamp=Fri, 10 Apr 2020 17:45:34 GMT, Server-Request-ID=15331da1-001e-00ce-245f-0ff3fb000000, HTTP Status Code=206, Message=Partial Content, Headers={'content-length': '3745', 'content-type': 'application/octet-stream', 'content-range': 'bytes 0-3744/3745', 'last-modified': 'Fri, 10 Apr 2020 17:39:23 GMT', 'accept-ranges': 'bytes', 'etag': '"0x8D7DD761B738FD8"', 'vary': 'Origin', 'server': 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id': '15331da1-001e-00ce-245f-0ff3fb000000', 'x-ms-client-request-id': '14b29d9a-7b53-11ea-ac81-0a580af43d1e', 'x-ms-version': '2019-02-02', 'x-ms-creation-time': 'Fri, 10 Apr 2020 17:39:23 GMT', 'x-ms-lease-status': 'unlocked', 'x-ms-lease-state': 'available', 'x-ms-blob-type': 'BlockBlob', 'x-ms-server-encrypted': 'true', 'date': 'Fri, 10 Apr 2020 17:45:34 GMT'}.
INFO:main:{'name': 'LocalUpload/3d768a8a/score.py', 'snapshot': None, 'content': None, 'properties': <azure.storage.blob.models.BlobProperties object at 0x7f3b2e370748>, 'metadata': {}, 'deleted': False}
INFO:main:write InitContainer completion signal file: /tmp/aml_signal_root/init_complete.txt
INFO:main:Complete download assets. Latency = 0.3977808952331543 seconds

@mkhazen that would expain it - that was a test commit while I was experimenting with solutions. Please use the one checked in to master, introduced with https://github.com/microsoft/MLOpsPython/commit/506d557ebd51a0d38a6896b31f957b36cd497067


Don't close MaterialNavigationDrawer after onClick

Hello,
I try to override the behavior of onClick for the click on an section. It should don't close the Drawler. But It close it...
        this.addSection(newSection("Volume up", R.drawable.ic_plus, new MaterialSectionListener() {
            @Override
            public void onClick(MaterialSection section) {
                // for default section is selected when you click on it
                try {
                    mCastManager.incrementVolume(CastApplication.VOLUME_INCREMENT);
                } catch (CastException e) {
                    e.printStackTrace();
                } catch (TransientNetworkDisconnectionException e) {
                    e.printStackTrace();
                } catch (NoConnectionException e) {
                    e.printStackTrace();
                }
                section.unSelect();
            }
        }));

At this time there is no way for do it.


⚠ Samsung has degraded performance

In e62366e, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2854 ms

Resolved: Samsung performance has improved in 7844e1f.


Map Frame

Hi,
thank you for your repo !
I have some trouble when launching lidarslam:

the /map pointcloud is in an " " frame rather than the map frame (that exists).
I guess this comes from the scanmatcher but cannot figure out how to correct it.
/path is working correctly

I get no output on /modified_* using debug mode on graphbasedslam does not help

The last message I get from logs is from the scan_matcher: create a first map.
I get a single map from it
Do you have any idea about what I am doing wrong ?
Here is the param file I am using :
scan_matcher:
  ros__parameters:
    global_frame_id: "map"
    robot_frame_id: "myrobot"
    registration_method: "NDT"
    ndt_resolution: 5.0
    ndt_num_threads: 0
    gicp_corr_dist_threshold: 5.0
    trans_for_mapupdate: 1.5
    vg_size_for_input: 0.2
    vg_size_for_map: 0.05
    use_min_max_filter: true
    scan_min_range: 1.0
    scan_max_range: 100.0
    scan_period: 0.1
    map_publish_period: 15.0
    num_targeted_cloud: 10
    set_initial_pose: true
    initial_pose_x: 0.0
    initial_pose_y: 0.0
    initial_pose_z: 0.0
    initial_pose_qx: 0.0
    initial_pose_qy: 0.0
    initial_pose_qz: 0.0
    initial_pose_qw: 1.0
    publish_tf: true
    use_imu: false
    use_odom: false
    debug_flag: false

graph_based_slam:
    ros__parameters:
      registration_method: "NDT"
      ndt_resolution: 5.0
      ndt_num_threads: 0
      voxel_leaf_size: 0.2
      loop_detection_period: 3000
      threshold_loop_closure_score: 0.7
      distance_loop_closure: 100.0
      range_of_searching_loop_closure: 20.0
      search_submap_num: 2
      num_adjacent_pose_cnstraints: 5
      use_save_map_in_loop: true
      debug_flag: false

Modified launch file

def generate_launch_description():

    main_param_dir = launch.substitutions.LaunchConfiguration(
        "main_param_dir",
        default=os.path.join(
            get_package_share_directory("lidarslam"),
            "param",
            "lidarslam-myrobot.yml",
        ),
    )

    mapping = launch_ros.actions.Node(
        package="scanmatcher",
        executable="scanmatcher_node",
        parameters=[main_param_dir],
        remappings=[("/input_cloud", "/ouster/points")],
        output="screen",
    )

    # tf = launch_ros.actions.Node(
    #     package="tf2_ros",
    #     executable="static_transform_publisher",
    #     arguments=[
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "1",
    #         "myrobot",
    #         "os_sensor",
    #     ],
    # )

    graphbasedslam = launch_ros.actions.Node(
        package="graph_based_slam",
        executable="graph_based_slam_node",
        parameters=[main_param_dir],
        output="screen",
    )

    return launch.LaunchDescription(
        [
            launch.actions.DeclareLaunchArgument(
                "main_param_dir",
                default_value=main_param_dir,
                description="Full path to main parameter file to load",
            ),
            mapping,
            # tf,
            graphbasedslam,
        ]
    )

I didn't receive a notification, so my reply was delayed.
That's a strange issue. Can you share the terminal output when you boot up?

Hi,
here is the requested output.
Could it be related to libg2o ? I have been thinking it is only for optimization
shuttle-lidarslam-1  | sourcing   /opt/ros/humble/install/setup.bash
shuttle-lidarslam-1  | not found: "/opt/ros/humble/install/share/libg2o/local_setup.bash"
shuttle-lidarslam-1  | ROS_DISTRO humble
shuttle-lidarslam-1  | ROS_ROOT   /opt/ros/humble
shuttle-lidarslam-1  | [INFO] [launch]: All log files can be found below /root/.ros/log/2023-09-20-13-12-15-102974-shuttle-1-1
shuttle-lidarslam-1  | [INFO] [launch]: Default logging verbosity is set to INFO
shuttle-lidarslam-1  | [INFO] [scanmatcher_node-1]: process started with pid [56]
shuttle-lidarslam-1  | [INFO] [graph_based_slam_node-2]: process started with pid [58]
shuttle-lidarslam-1  | [scanmatcher_node-1] registration_method:NDT
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_resolution[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_num_threads:0
shuttle-lidarslam-1  | [scanmatcher_node-1] gicp_corr_dist_threshold[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] trans_for_mapupdate[m]:1.5
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_input[m]:0.2
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_map[m]:0.05
shuttle-lidarslam-1  | [scanmatcher_node-1] use_min_max_filter:true
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_min_range[m]:1
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_max_range[m]:100
shuttle-lidarslam-1  | [scanmatcher_node-1] set_initial_pose:true
shuttle-lidarslam-1  | [scanmatcher_node-1] publish_tf:true
shuttle-lidarslam-1  | [scanmatcher_node-1] use_odom:false
shuttle-lidarslam-1  | [scanmatcher_node-1] use_imu:false
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_period[sec]:0.1
shuttle-lidarslam-1  | [scanmatcher_node-1] debug_flag:false
shuttle-lidarslam-1  | [scanmatcher_node-1] map_publish_period[sec]:15
shuttle-lidarslam-1  | [scanmatcher_node-1] num_targeted_cloud:10
shuttle-lidarslam-1  | [scanmatcher_node-1] ------------------
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695215535.471805656] [scan_matcher]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695215535.476068351] [scan_matcher]: initialization end
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695215535.666181254] [graph_based_slam]: initialization start
shuttle-lidarslam-1  | [graph_based_slam_node-2] registration_method:NDT
shuttle-lidarslam-1  | [graph_based_slam_node-2] voxel_leaf_size[m]:0.2
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_resolution[m]:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_num_threads:0
shuttle-lidarslam-1  | [graph_based_slam_node-2] loop_detection_period[Hz]:3000
shuttle-lidarslam-1  | [graph_based_slam_node-2] threshold_loop_closure_score:0.7
shuttle-lidarslam-1  | [graph_based_slam_node-2] distance_loop_closure[m]:100
shuttle-lidarslam-1  | [graph_based_slam_node-2] range_of_searching_loop_closure[m]:20
shuttle-lidarslam-1  | [graph_based_slam_node-2] search_submap_num:2
shuttle-lidarslam-1  | [graph_based_slam_node-2] num_adjacent_pose_cnstraints:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] use_save_map_in_loop:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] debug_flag:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] ------------------
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695215535.669067734] [graph_based_slam]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695215535.676207693] [graph_based_slam]: initialization end
shuttle-lidarslam-1  | sourcing   /opt/ros/humble/install/setup.bash
shuttle-lidarslam-1  | not found: "/opt/ros/humble/install/share/libg2o/local_setup.bash"
shuttle-lidarslam-1  | ROS_DISTRO humble
shuttle-lidarslam-1  | ROS_ROOT   /opt/ros/humble
shuttle-lidarslam-1  | [INFO] [launch]: All log files can be found below /root/.ros/log/2023-09-25-12-22-11-106876-shuttle-1-1
shuttle-lidarslam-1  | [INFO] [launch]: Default logging verbosity is set to INFO
shuttle-lidarslam-1  | [INFO] [scanmatcher_node-1]: process started with pid [55]
shuttle-lidarslam-1  | [INFO] [graph_based_slam_node-2]: process started with pid [57]
shuttle-lidarslam-1  | [scanmatcher_node-1] registration_method:NDT
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_resolution[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_num_threads:0
shuttle-lidarslam-1  | [scanmatcher_node-1] gicp_corr_dist_threshold[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] trans_for_mapupdate[m]:1.5
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_input[m]:0.2
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_map[m]:0.05
shuttle-lidarslam-1  | [scanmatcher_node-1] use_min_max_filter:true
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_min_range[m]:1
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_max_range[m]:100
shuttle-lidarslam-1  | [scanmatcher_node-1] set_initial_pose:true
shuttle-lidarslam-1  | [scanmatcher_node-1] publish_tf:true
shuttle-lidarslam-1  | [scanmatcher_node-1] use_odom:false
shuttle-lidarslam-1  | [scanmatcher_node-1] use_imu:false
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_period[sec]:0.1
shuttle-lidarslam-1  | [scanmatcher_node-1] debug_flag:false
shuttle-lidarslam-1  | [scanmatcher_node-1] map_publish_period[sec]:15
shuttle-lidarslam-1  | [scanmatcher_node-1] num_targeted_cloud:10
shuttle-lidarslam-1  | [scanmatcher_node-1] ------------------
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644531.720303939] [scan_matcher]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644531.729227774] [scan_matcher]: initialization end
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644531.832673721] [graph_based_slam]: initialization start
shuttle-lidarslam-1  | [graph_based_slam_node-2] registration_method:NDT
shuttle-lidarslam-1  | [graph_based_slam_node-2] voxel_leaf_size[m]:0.2
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_resolution[m]:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_num_threads:0
shuttle-lidarslam-1  | [graph_based_slam_node-2] loop_detection_period[Hz]:3000
shuttle-lidarslam-1  | [graph_based_slam_node-2] threshold_loop_closure_score:0.7
shuttle-lidarslam-1  | [graph_based_slam_node-2] distance_loop_closure[m]:100
shuttle-lidarslam-1  | [graph_based_slam_node-2] range_of_searching_loop_closure[m]:20
shuttle-lidarslam-1  | [graph_based_slam_node-2] search_submap_num:2
shuttle-lidarslam-1  | [graph_based_slam_node-2] num_adjacent_pose_cnstraints:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] use_save_map_in_loop:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] debug_flag:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] ------------------
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644531.836519301] [graph_based_slam]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644531.842488759] [graph_based_slam]: initialization end
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644552.965620566] [scan_matcher]: create a first map
shuttle-lidarslam-1  | [graph_based_slam_node-2] searching Loop, num_submaps:3
shuttle-lidarslam-1  | sourcing   /opt/ros/humble/install/setup.bash
shuttle-lidarslam-1  | not found: "/opt/ros/humble/install/share/libg2o/local_setup.bash"
shuttle-lidarslam-1  | ROS_DISTRO humble
shuttle-lidarslam-1  | ROS_ROOT   /opt/ros/humble
shuttle-lidarslam-1  | [INFO] [launch]: All log files can be found below /root/.ros/log/2023-09-25-12-27-55-288793-shuttle-1-1
shuttle-lidarslam-1  | [INFO] [launch]: Default logging verbosity is set to INFO
shuttle-lidarslam-1  | [INFO] [scanmatcher_node-1]: process started with pid [53]
shuttle-lidarslam-1  | [INFO] [graph_based_slam_node-2]: process started with pid [55]
shuttle-lidarslam-1  | [scanmatcher_node-1] registration_method:NDT
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_resolution[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] ndt_num_threads:0
shuttle-lidarslam-1  | [scanmatcher_node-1] gicp_corr_dist_threshold[m]:5
shuttle-lidarslam-1  | [scanmatcher_node-1] trans_for_mapupdate[m]:1.5
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_input[m]:0.2
shuttle-lidarslam-1  | [scanmatcher_node-1] vg_size_for_map[m]:0.05
shuttle-lidarslam-1  | [scanmatcher_node-1] use_min_max_filter:true
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_min_range[m]:1
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_max_range[m]:100
shuttle-lidarslam-1  | [scanmatcher_node-1] set_initial_pose:true
shuttle-lidarslam-1  | [scanmatcher_node-1] publish_tf:true
shuttle-lidarslam-1  | [scanmatcher_node-1] use_odom:false
shuttle-lidarslam-1  | [scanmatcher_node-1] use_imu:false
shuttle-lidarslam-1  | [scanmatcher_node-1] scan_period[sec]:0.1
shuttle-lidarslam-1  | [scanmatcher_node-1] debug_flag:false
shuttle-lidarslam-1  | [scanmatcher_node-1] map_publish_period[sec]:15
shuttle-lidarslam-1  | [scanmatcher_node-1] num_targeted_cloud:10
shuttle-lidarslam-1  | [scanmatcher_node-1] ------------------
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644875.644985490] [scan_matcher]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644875.652884437] [scan_matcher]: initialization end
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644875.805312273] [graph_based_slam]: initialization start
shuttle-lidarslam-1  | [graph_based_slam_node-2] registration_method:NDT
shuttle-lidarslam-1  | [graph_based_slam_node-2] voxel_leaf_size[m]:0.2
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_resolution[m]:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] ndt_num_threads:0
shuttle-lidarslam-1  | [graph_based_slam_node-2] loop_detection_period[Hz]:3000
shuttle-lidarslam-1  | [graph_based_slam_node-2] threshold_loop_closure_score:0.7
shuttle-lidarslam-1  | [graph_based_slam_node-2] distance_loop_closure[m]:100
shuttle-lidarslam-1  | [graph_based_slam_node-2] range_of_searching_loop_closure[m]:20
shuttle-lidarslam-1  | [graph_based_slam_node-2] search_submap_num:2
shuttle-lidarslam-1  | [graph_based_slam_node-2] num_adjacent_pose_cnstraints:5
shuttle-lidarslam-1  | [graph_based_slam_node-2] use_save_map_in_loop:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] debug_flag:true
shuttle-lidarslam-1  | [graph_based_slam_node-2] ------------------
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644875.809387572] [graph_based_slam]: initialize Publishers and Subscribers
shuttle-lidarslam-1  | [graph_based_slam_node-2] [INFO] [1695644875.816277359] [graph_based_slam]: initialization end
shuttle-lidarslam-1  | [scanmatcher_node-1] [INFO] [1695644896.934588529] [scan_matcher]: create a first map
shuttle-lidarslam-1  | [graph_based_slam_node-2] searching Loop, num_submaps:2
shuttle-lidarslam-1  | [graph_based_slam_node-2] searching Loop, num_submaps:3

Could you please check the value of the ‘frame_id’ in the ‘map’ using ‘ros2 param get’ or ‘std::cout’? It should be set to the ‘global_frame_id’.
https://github.com/rsasaki0109/lidarslam_ros2/blob/humble/scanmatcher/src/scanmatcher_component.cpp#L20

It's strange that even though both 'path' and 'map' have the same frame_id, only one of them seems to be working correctly. I'm not sure about this. I'll contact you if I think of something else.

ros2 param get /scan_matcher global_frame_id outputs map, which does seem to me to be correct.
Ok, I have a fix: in my param file I had robot_frame_id set to myrobot. I thought this was ok because I am publishing a tf that links the os_sensor frame (ouster) to myrobot frame. Setting the robot_frame_id to os_sensor fixes it: it hinders a bit the frame hierarchy as instead of having
map
|- myrobot
    |- os_sensor

I get
map
|- os_sensor
my_robot
|- os_sensor

Thank you for your answers!
Now the map is produced, I am only missing the modified_* from graph-based-slam.

Now the map is produced, I am only missing the modified_* from graph-based-slam.

Either by performing loop closure or by calling ros2 service call /map_save std_srvs/Empty, the modified_* will be published.

I re-open this issue as I have met the frame problem again.
I try to change the namespace for the scanmatcher, which I have done uing the remappings argument
remappings=[
("/input_cloud", "/my_ns/whatsneeded"),
("/map", "/my_ns/map"),
("/path", "/my_ns/path")
]

Result is exactly the same:

a single map produced on a "" frame
/my_ns/path working well
no error triggered

Trying to figure out what is happening, I suspect the tf performed by scanmatcher to be related to this.
When I set the publish_tf param to false, I do not get this strange  "" frame being produced. I even (sometimes ?) get the /my_ns/map published on the map frame, although I cannot really correlate it with the /my_ns/path.
However I would need to get the tf to link my robot to the map...
Hope these new elements help.

To be complete, here is some supplementary elements I have checked
Header of message on /my_ns/map when publish_tf = false
header:
  stamp:
    sec: 0
    nanosec: 0
  frame_id: map

Same, header of path
stamp:
  sec: [something plausible]
  nanosec: [something plausible]
frame_id: map

[Writing while testing]
And now I got it working with the pulish_tf... I could still see the first message published on /my_ns/map with the following header
header:
  stamp:
    sec: 0
    nanosec: 0
  frame_id: ''

Then the following ones have the correct frame_id.
I let the issue open for now, I will repeat the test to assess whether it is erratic or not.


IE not support fill() method.

In docs say that supports IE9+, but IE not support fill() method.

Oh shoot. I thought babel would have compiled that to a format that supports ie. I can make a change so that I don't use fill though, so no worries.
You can also checkout this repo I made recently as I am pretty sure I don't use fill:
https://github.com/ekeric13/react-ratings-declarative

Cool, I'll take a look. :) 👍

@luizrrodrigues Think I got it working without .fill for this repo as well now. but for version 2.x. I will need to look into how to release multiple different versions of an npm package before updating the v1 api.

Just update to latest version, have error with other method isInteger.

Yeah, looks like that is also not supported.
Let me add the polyfill:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger

humm. Looks like not working well, stars now ignoring 'starWidthAndHeight'

You might need to change the props if you are using the new api.
https://github.com/ekeric13/react-star-ratings#api-v2

Wow.. Sorry, my fault.. Looks like all good now.. Thanks for fast replies. :)


Yellow shulker box problem

I don't know about 4.1.0 version, but in 4.0.5 all features related to the yellow shulker_box (block -30000000 0 3201) don't work in dimensions. This causes a lossing of the energy saber after throw, wrong working of the drill, not changing sections of the mechanical manual, and other similar things if they are doing in not minecraft:overworld dimension. You can fix this problem either by adding "in minecraft:overworld" and "at @s" before and after " ... block -30000000 0 3201 ... " section, or by creating and forceloading shulker box at these coordinates in every dimension that player visit. I hope you will fix this problem in the near future. The fact that such bug got into the release version is kinda cringe.

I can't replicate this issue, everything appears to work correctly for me.

i check it now. this bug doesn't exsist in 4.1.x versions.


Create_ensemble issues in PL 1.5.10

I noticed that there are also issues with the create_ensemble method complaining that the model argument is missing. I tried it with all possible settings providing a model only, providing checkpoints only, and providing a model and checkpoints. This issue occurs with PyTorch Lightning 1.5.10. I put together a self-contained example notebook here (https://github.com/rasbt/deeplearning-models/blob/master/pytorch-lightning_ipynb/kfold/kfold-light-cnn-mnist.ipynb) that reproduces the error if you uncomment the create_model code at the bottom.

Hi,
I have revamped the package this weekend, so the package is now compatible with lightning>=2.0.
Hopefully, whatever issue you were running into is solved now.

That's awesome! Thanks!!


Use Installed Compiler Versions for Build Directories

Specifications

Use actual compiler versions for build directories

GCC #30
Clang #31
MSVC #33

TODO

[ ] Use the supported installed GCC #30 version
[ ] Use the supported installed Clang #31 version
[x] Use the supported installed MSVC #33 version

Had problems with cyclic dependencies


The operation buttons in environment list and service list are abnormal when the user has no permission to operate

Describe the bug

Steps to reproduce

Create a general user called test-user.
Add test-user to default project as a viewer member.
Log in walrus as test-user.
Go the environment list and service list

Result

The operation button is abnormal.

Expected behavior

Environment

Walrus version: f94d57de903a925f2bd72d34b5aa1eaf8213f6ad
UI version: dev-9a85369

Additional context
Add any other context about the problem here.

Verified in main.


Passing a call back function save_onsavecallback is not triggered when save button is clicked

I'm trying to set callback save_onsavecallback for the save plugin. But it looks like it is not at all registered as a callback through the init options.
I expected to see $scope is not defined or some error. but It did nothing. There is something else that I'm missing while sending the callback function,
I have posted a query in SO if someone has done similar thing with the save plugin
http://stackoverflow.com/questions/37512082/angular-directive-how-to-trigger-a-save-method-in-the-controller-whentinymce-s
Kindly let me know if you want me to share some additional code snippet

Do you have the save plugin enabled? I don't think it is by default.

Yes I'm pretty sure. That I have included "save" plugin in the list of plugins and the Save icon appeared in the toolbar as expected. but the callback method isn't triggered as expected.
may be I will create a plunker for submitting over here for investigation

Here is the sample setup, how i use in my project. https://plnkr.co/edit/tFCIqWTet7009kvPVdln?p=preview

This seems to be the issue :
when save_enablewhendirty is set as true (default), the callback is not trigged at all.
When this option is set to false. Everything seems to work fine.  (A StackOverflow user has identified that it is working when set to false. Never occurred to me, as i just didn't want to modify the default value )
Cause : Even though the content with TinyMCE is changed. It says that the control is still untouched.
ng-untouched ng-valid ng-not-empty ng-dirty ng-valid-parse

Hey Dan, I was facing the same issue with ui-tinymce where save callback is not getting called. I have created a PR along with tests to fix the issue. Could you please check the same and merge it if you find it okay.


Fix compatibility for future IDEA versions

So, what seems to happen is that Gradle modifies the plugin.xml to include a until-build attribute. That means that whenever someone downloads a newer version of IDEA that the plugin will be downgraded to the last version which was 141+ compatible.
It can be fixed by hand by just removing the attribute from the zip after you build the plugin, but this is quite tedious, so  I'll try to find a way to configure Gradle to not add this attribute in the first place.
If we don't release a version without the until-build attribute before the 2018.3 release, all users updating IDEA will download an old broken version of the plugin again.
So preferably a new release is uploaded soon just to fix this issue.

Agree. b0.6.2 due November 18. Last 3 issues need to be resolved until then. Other issues will be pushed to either b0.7 or b0.6.3


Top Performers

Add 'Top Performers' feature to find top performers in both statistics and performance figures.

Completed, but in two sections: Top Performers and Statistics Leaders


OData V2 ContextBinding not updated after the size of relatively bound child collection has changed

The description of the issue can be seen here on StackOverflow.
Steps to reproduce the problem:

Visit this example page: https://embed.plnkr.co/elNMXE/
Click on any (X)-button to remove an item.

What is the expected result?
After the change has been successfully applied to the child list, calling getProperty("ToProducts") from the parent context returns the updated length. In the case of the example: From 4 --> 3.
What happens instead?
UI5 always reports the length as 4 because the context binding has not been updated after the changes.

Any other information? (attach screenshot if possible)

A possible workaround is to append another GET request for the parent ContextBinding to the batch when a DELETE request is going to be sent. But it would be nice if UI5 could update the parent binding automatically if the binding has an expand query and a change took place in its child collection that is bound through that expand query.
Everything works fine when equivalent bindings are applied with a JSONModel (obviously without expand). This makes me wonder if the issue described here is the intended behavior of UI5 or not.
Haven't tried with OData V4.

Thanks for reporting this issue and providing samples. This has recently been fixed with
https://github.com/SAP/openui5/commit/ef5f5dc9ba381f72c6a76686e9db1033b434169d
If you change your example page to use openui5nightly.hana.ondemand.com it works as expected.

@goligo I see that in the current nightly build (1.49.0), the method updateExpandedList is not called anymore if the operation mode is "Server" (due to the change in useClientMode). Changing the mode to "Default" will fix it again as described in the commit, but does it mean that we should not use "Server" anymore in cases like the example above?

Hi @goligo,
When preliminaryContext is enabled (go to manifest.json and set preliminaryContext: true), the issue above is reproducible again; The parent context returns always 4 items. Is it by design? Should I create a new issue?

Hi @boghyon ,
well, this is an interesting case. You do expand "ToProducts", but at the same time tell the framework not to wait for the request to be completed, but send additional requests for the lists in parallel. As the "BusinessPartnerSet" entity is not available yet, the lists can not be linked to it, but keep their data separately. So there is no binding on the expanded "ToProducts" list, which is causing it not to be updated when entities are removed.
Unless you can explain why you would load the product list twice, instead of using the expanded list, I would tend to not further investigate into this issue.

You do expand "ToProducts", but at the same time tell the framework not to wait for the request to be completed, but send additional requests for the lists in parallel.

Sorry, you're right. This is actually nonsense what I did. :P Didn't think through


Searching in all repositories I can see

Feature Description
I am looking for a way to "search" in all repositories, not only the titles.  It could be a tab on the line "Repositories / Users / Organizations" called "Code". Something like /explore/code for example.
I read others issues about this topic. Does some people having a workaround to use it like this or another way in another place to do this?
Thanks a lot :)
Screenshots

It is already possible to search Code in Gitea, but it must be enabled by the Admin.

Ok, thanks for quick answers :)


extended-support-release: Update to semver versioning

Also, add the RockPi 4B to the list of ESR supported devices.
Fixes #2295
Change-type: patch
Signed-off-by: Alex Gonzalez<EMAIL_ADDRESS>

Please make sure to read the CONTRIBUTING document before opening the PR for relevant information on contributing to the documentation. Thanks!

@balena-ci rebase


[MonorepoBuilder] Section suggest not in section_order

Hi,
I know I repeat myself across issues, but once again amazing package! haha, It makes managing a monorepo so easy, thank you.
So I've started to create my packages, everything was going well, one of my packages provides a generic interface and then the different implementations for 3rd party packages so that the users can decide which one they want to use.
To do so, I've "require-dev" the first 3rd party package I wanted to work on (then do the work) and I've also added the suggest section in my package's composer.json to let the users know that if they want to use it they must require the 3rd party package.
Once all that done I went back to the monorepo level and ran
$ vendor/bin/monorepo-builder merge

Really excited I went to check my "parent" composer.json and... Nothing! 😄  My bad I didn't add suggest to the list of sections to merge, so I've updated the config:
# monorepo-builder.yml

merge_sections:
        # default values
        - 'require'
        - 'require-dev'
        - 'autoload'
        - 'autoload-dev'
        - 'repositories'
        - 'suggest'

Then I run merge again and... Wow man my suggest section is second just after name 😄

So could we please add suggest to section_order in the config?
If yes here is the PR: #1405

My bad I didn't add suggest to the list of sections to merge, so I've updated the config:

Could you send PR so the suggests is in merge_sections by default? I just don't use it so I didn't realize it should be there.

Btw, great issues description + gif! Love it :heart:
Just it's lagging a bit, could you make the gif little smalle next time? Maybe 400x400 with focus only on problematic part. I personally use Peek (Linux) and it works great :)

To be completely honest it was my first gif ever! Haha Thanks for the tip :)

Resolved by #1405

Nothing!  My bad I didn't add suggest to the list of sections to merge, so I've updated the config:

Btw, you can send PR for this as well. There is no reason not to merge this as well.


Show 2d widgets in 3d view

Add a way to show the 2d widgets in the 3d view (read-only mode)
@floryst This is a draft PR and I'm open to any change if this is not on the right track.

LGTM so far. I haven't built and tested it yet, but the changes seem straightforward enough.


TST: Test new version of constructor

One tiny cleanup, and want to verify that conda-standalone is indeed the problem, hopefully fails on the first commit then I'll push one to avoid the problematic release :crossed_fingers:
https://github.com/conda/conda-standalone/issues/121

Failing as expected on 2a52157. Fine on b7eedc7.


message: "Socket reported a security error: Error #2048.", code: 731

Hi,
I am using Dahua DVR embedded server its support HTTP and RTSP Live Streaming of Analog Camera's and its running in global server (e.g <IP_ADDRESS>)
I am using locomote-video player from another global server (e.g <IP_ADDRESS>).
I have to live stream data from <IP_ADDRESS> server to my local <IP_ADDRESS> server using RTSP protocol.(e.g rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1)
Both are in same domain and same network only. But i am getting this error message: "Socket reported a security error: Error #2048.", code: 731.
I don't have permission to add cross-domain-policy file at Dahua embedded server.
Please help me to solve this issue. ASAP
Regards
-S.Balaji

If you can't add a socket policy server on the RTSP server, you will not be able to use Locomote to play RTSP from that server.

Can i load policy file from different server

I don't believe so, because it is the lower layer Flash framework that is making that request, and there's no way for the upper layer Locomote to control that.  Whenever Locomote asks to open the direct socket (required for RTSP) then Flash is going to request the socket policy from the same hostname/IP.  There is nothing Locomote can do about that.

I have added adobe socket policy server. But now i am getting another error
API is ready. play can now be called
VM123:111 Log Message: RTSP OUT:
VM123:111 Log Message: RTSPClient: switching authorization from none to basic
VM123:111 Log Message: RTSP OUT:
VM123:108 Object {message: "Unauthorized", code: 401}
I am RTSP over TCP and my url is like "rtsp://:@/cam/realmonitor?channel=1&subtype=00"
Please help me to solve this issue. ASAPI have added adobe socket policy server. But now i am getting another error
API is ready. play can now be called
VM123:111 Log Message: RTSP OUT:
VM123:111 Log Message: RTSPClient: switching authorization from none to basic
VM123:111 Log Message: RTSP OUT:
VM123:108 Object {message: "Unauthorized", code: 401}
I am RTSP over TCP and my url is like "rtsp://:@/cam/realmonitor?channel=1&subtype=00"
Please help me to solve this issue. ASAP

I have added adobe socket policy server. But now i am getting another error
API is ready. play can now be called
VM123:111 Log Message: RTSP OUT:
VM123:111 Log Message: RTSPClient: switching authorization from none to basic
VM123:111 Log Message: RTSP OUT:
VM123:108 Object {message: "Unauthorized", code: 401}
I am using RTSP over TCP and my url is like "rtsp://:@/cam/realmonitor?channel=1&subtype=00"
Please help me to solve this issue. ASAP

I have added adobe socket policy server. But now i am getting another error
API is ready. play can now be called
VM123:111 Log Message: RTSP OUT:
VM123:111 Log Message: RTSPClient: switching authorization from none to basic
VM123:111 Log Message: RTSP OUT:
VM123:108 Object {message: "Unauthorized", code: 401}
I am using RTSP over TCP and my url is like "rtsp://USERNAME:PASSWORD@IP ADDRESS/cam/realmonitor?channel=1&subtype=00"
Please help me to solve this issue. ASAP

I have added adobe socket policy server. But now i am getting another error
API is ready. play can now be called
VM123:111 Log Message: RTSP OUT:
VM123:111 Log Message: RTSPClient: switching authorization from none to basic
VM123:111 Log Message: RTSP OUT:
VM123:108 Object {message: "Unauthorized", code: 401}
I am using RTSP over TCP and my url is like "rtsp://USERNAME:PASSWORD@IP ADDRESS/cam/realmonitor?channel=1&subtype=00"
Same URL working fine with VLC media player.
Please help me to solve this issue. ASAP

You could be having the same issue I encountered with Foscam cameras.  What I found is that Locomote disconnects and reconnects when switching authorizations.  The server really needs to see the login occur on the same TCP connection as it issued the nonce in the 401 response.
I submitted a pull request to address this. https://github.com/AxisCommunications/locomote-video-player/pull/156
You might give it a try and see if it resolves your issue.  You'll have to compile the SWF yourself.

I have changed my code and compiled. but i am getting same error

Hi BrandonLWhite,
I need your help to solve my problem.
Foscam cameras supports adobe socket server policy. if not now did you connect to Foscam cameras via RTSP protocol.

In our application we have a separate Linux system behind the same NAT device as a the camera.  So we were able to setup the Linux system to respond to the socket policy request and configure the NAT to do the port forwarding. Thus to an external client (ie Flash client) it all appears to be handled from from the same IP, and so it works.

I am doing same thing but its not working.
I am running resin server with adobe socket policy server. In same server I
have port forwarding rule for rtsp 554 request to camera
On 12-Oct-2015 20:25, "Brandon White"<EMAIL_ADDRESS>wrote:

In our application we have a separate Linux system behind the same NAT
device as a the camera. So we were able to setup the Linux system to
respond to the socket policy request and configure the NAT to do the port
forwarding. Thus to an external client (ie Flash client) it all appears to
be handled from from the same IP, and so it works.
—
Reply to this email directly or view it on GitHub
https://github.com/AxisCommunications/locomote-video-player/issues/155#issuecomment-147423469
.

I have added the following iptables rules in Linux machine, Socket policy request working fine and RTSP stream only failed with reply of Unauthorized
iptables -t nat -A PREROUTING -p tcp -d Linux Machine IP Address --dport 554 -j DNAT --to CAMERA IP Address:554
iptables -t nat -A POSTROUTING -p tcp -d CAMERA IP Address--dport 554 -j SNAT --to Linux Machine IP Address
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
I don't know the rule is correct or not.
Please share your iptables rules.

Can you please share crossdomain.xml file also

I have fixed Unauthorized, but i am stuck on "Log Message: RTSPClient: STATE_OPTIONS"
Please help me solve this problem

I am getting parsed.headers.public as undefined

I have added
 server side
but still getting code: 731, message: "Socket reported a security error: Error #2048."

And the cross-domain-policy is available at port 843?

Hi, I also have a similar problem. I'm facing Socket Error 2031 code 732 and then 731. It is strange because while using locomote over lan everything is working just fine but while trying to access from my VPN it is throwing errors mentioned above.  cross-domain-policy is available across the network. I have got LAN, VLAN_CAM(separated vlan only for Camera) and VPN. While in LAN there is no problem to access via locomote VLAN_CAM but while in VPN I'm getting errors. I had to separate my Camera to VLAN because I was not able to set up cross-domain-policy. So now I'm asking my router for a stream on port 554. Router is responding with socket policy on port 843 and is redirecting 554 do VLAN_CAM and in this case locomote is working fine. If I move to VPN then locomote is not working. Everything else is working fine from VPN. I have no problem to access Camera configuration site via router retirection on port for example 8080. Examples below:
1)
Client(IP like: <IP_ADDRESS>) -> WWW(IP like: <IP_ADDRESS> locomote player) -> Router(IP like: <IP_ADDRESS>:554) -> redirect to Camera(IP like: <IP_ADDRESS>)

in this case everything is working fine

Client(IP like <IP_ADDRESS> on VPN) -> route via -> <IP_ADDRESS> -> WWW(IP like: <IP_ADDRESS> locomote player) -> Router(IP like: <IP_ADDRESS>:554) -> redirect to Camera(IP like: <IP_ADDRESS>)

in this case locomote is not working (errors above)
ping, www, telnet etc to WWW, Router and Camera working fine.

I've stuck ..... please help what should i do ?

Do you still get a cross-domain when accessing through VPN?

Yes:
perl -e 'printf "%c",0' | nc <IP_ADDRESS> 843

any clue ?

?

Guys, any improvement on this? I downloaded new version but still the same problem. I don't believe I'm the only one using VPN to see video from the camera ... please help me on this.


Version number in settings doesn't always show correctly

Getting BookStack v0.5.0-176-ge86901c on a v0.9.3 release :disappointed:

Was due to tags not being in the repo, Maybe look at creating a script to update which includes fetching tags?

If you're going to package this and make it so people don't need composer, might as well keep a version file handy instead.


Allow Credentials for use cases that use @dhis2/app-runtime

By default app platform assumes it connects directly to DHIS2, making it send its requests with credentials set to true. When using this mode, the mediator throws a CORS error due to the header mismatch. Consider adding the setup

 app.enableCors({
      ...other setup,
       credentials: true
   });

To allow the mediator to process runtime requests

This is already fixed


make extensionInfo.serviceFeatures to use selector and default to {}

Coverage decreased (-0.01%) to 38.312% when pulling bc667ebce1a9d0abe5b465c4c6c6f71925dedffb on u9520107:rcint-4140 into f89b9050b8a4b45d22a1867f897d315534ba2f66 on ringcentral:master.


[Cherry Pick][Fix][UI] fulfill missing fields in DataQuality (#10098)

same to #10098

@songjianet merge request.


Support for plain HTML files

I know this generator supports Jade, Handlebars, and some other preprocessors.
I was wondering if there was an option for using plane HTML? If not I can make it and make a pull request.

As far as I can see the support is there.
I've just created a file called test.html on a local install, and the page renders in the browser as expected.

Sorry for the late response.
Yes It does. I was talking about "htmlOption":"none". That way It will not include any jade files nor any jade related dependencies.
Also are you guys not doing the css or JS injections anymore? I guess my question is should I put all the other style and JS files under the _modules folder and reference (require) them from main.*css and main.js

Hey @A92hm,
Yeogurt projects no longer use injections for .scss or .js files. To answer your question: Yes you will need to import your .scss and .js files from the _modules folders into your main.scss and main.js files respectively.
"htmlOption": "none" no longer exists, so if you are planning on using HTML, I would suggest choosing nunjucks as it handles HTML very well and give you some extra programmatic power (variables, imports, etc).
Hopefully this helps!

Closing out due to lack of response/activity. Feel free to reopen if you have more to add @A92hm.


Draft for discussion only: Code selection for run selection in terminal

This is a draft for discussion purposes only. We want to update the logic used for code selection, for code that is sent to the terminal. This will be done in two parts:

Extension side:

When possible select the whole line
Other wise provide user selection

Python side:

De-dent the lines as received from the extension
Use AST to find the global blocks
Submit each block separately (i.e., add spaces between the blocks and submit).

In this draft you can see the changes made to how we extract the text. This is needed to handle corner cases where de-denting does not work if we don't provide the full text. This code is used in DS Code Watcher https://github.com/microsoft/vscode-python/blob/7e6282420520e1e9d7c9213ad8154e20061c329d/src/client/datascience/editor-integration/codewatcher.ts#L253

Codecov Report

Merging #14445 into main will decrease coverage by 0.05%.
The diff coverage is 3.84%.

@@            Coverage Diff             @@
##             main   #14445      +/-   ##
==========================================
- Coverage   59.19%   59.13%   -0.06%
==========================================
  Files         720      720
  Lines       40211    40234      +23
  Branches     5829     5833       +4
==========================================
- Hits        23802    23794       -8
- Misses      15147    15175      +28
- Partials     1262     1265       +3

Impacted Files
Coverage Δ

src/client/terminals/codeExecution/helper.ts
14.10% <3.84%> (-5.90%)
:arrow_down:

...very/locators/services/virtualenvwrapperLocator.ts
76.92% <0.00%> (-15.39%)
:arrow_down:

src/client/common/utils/platform.ts
60.00% <0.00%> (-8.00%)
:arrow_down:

.../pythonEnvironments/common/externalDependencies.ts
64.10% <0.00%> (-2.57%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0.00%> (-2.23%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
75.38% <0.00%> (-1.54%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0.00%> (-0.73%)
:arrow_down:

Continue to review full report at Codecov.

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


chore: removed 'peerDependencies' from README

Signed-off-by: Jim Ezesinachi<EMAIL_ADDRESS>

Codecov Report

Merging #165 (94b53ea) into main (741ec53) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 94b53ea differs from pull request most recent head 5fe167d. Consider uploading reports for the commit 5fe167d to get more accurate results

@@           Coverage Diff           @@
##             main     #165   +/-   ##
=======================================
  Coverage   86.24%   86.24%
=======================================
  Files          21       21
  Lines        1163     1163
  Branches      260      260
=======================================
  Hits         1003     1003
  Misses        146      146
  Partials       14       14

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


CI/Simulator: Drive a loop in metadrive

Resolve #30694
~Currently, the simulator will fail when it tries to cross lane , and can change the track_size for CI testing. can test by ./test_metadrive_bridge.py 30, which would be a fail case on the curve~
Try and run test locally with this cmd: pytest tools/sim/tests/test_metadrive_bridge.py --time_done=<seconds>
~Depends on: https://github.com/metadriverse/metadrive/pull/710~

[x] deterministic test
~- [ ] update poetry~ Metadrive maintainer is a while to review, detect out of lane locally for now
~- [ ] maybe more test cases (lead car, etc)~ traffic is extremely expensive even running locally with decent gpu

~- [ ] maybe more test cases (lead car, etc)~ traffic is extremely expensive even running locally with decent gpu

A super reliable test that only tests one thing is way more valuable than a fancy one that's flaky :)

Tried running locally with pytest tools/sim/tests/test_metadrive_bridge.py --time_done=600. can modify to run the loop as long as you want it to be

think adding a check on distance (based on the time) should be enough

Was thinking of adding that test for the Metadrive run on GHA since for this one we could still visually see it's moving

Nice work! Looking forward to getting this in CI.


Support renaming views via alter table

Closes https://github.com/crate/crate/issues/14064

Added a second commit to change some formatting in the docs:
Before:

After:

retest this please
unrelated testKillUpdateByQuery failure


[examples] Update MUI Base with Tailwind CSS to use the latest versions of the dependencies

I've noticed it while working on https://github.com/mui/material-ui/pull/33196 We are using "latest" version of the packages in the examples.

It used to happen in the past that react-scripts (or some packages it encapsulates) showed warnings when other dependencies were too new. It's not the case right now, so it's safe to merge it, but it may happen again in the future.

I see, if it happens we should fix the issue or temporarily fix the version until we have a fix. Otherwise we should always depend on the latest versions.


Using out-of-band commands in netrepl sessions

The netrepl server treats messages that begin with the 0xFF byte and 0xFE differently than other messages:
https://github.com/janet-lang/spork/blob/b3e8b31454cb56e6d07973fa77121280a08cbe21/spork/netrepl.janet#L120-L125
Switching on the first byte of the message was added in commit a3d3de493e1da17a6e017c84b1abcbd012d7461f. The message for that commit reads:

Extend netrepl protocol and server.
This change is backwards compatible and allows a netrepl server to accept out-band-commands which it can execute and send results ack to the client. This allows clients to programatically manipulate the remote environment in separate context from the normal repl, which should allow things like smarter auto completion, etc.

I have tried some experiments but am unable to manipulate the remote environment. When I send the message \xFF(curenv) to see what bindings are available in the current environment, the result is "(true @{:out @\"\" :err @\"\"})".
What I'm trying to do is make it possible to set the line and column number of the parser that is parsing the input from the client. I thought that if I edited the netrepl/server function to define a parser in the repl-hander function body (e.g. (def p (parser/new))) that would put it in scope of the getline-async function body where the out-of-band command is evaluated. Unfortunately, no such luck. When I try to reference the binding from the command (e.g. (parser/where p)), I get an unknown symbol p error.
@bakpakin I don't mean to take up time but are you able to point me in the right direction? What am I doing wrong here?

After further experimentation, I realise that the environment that can be manipulated by out-of-band commands is defined here:
https://github.com/janet-lang/spork/blob/b3e8b31454cb56e6d07973fa77121280a08cbe21/spork/netrepl.janet#L142
I've submitted PR #33 with a parser available under the dynamic reference :parser and I think further discussion can occur there.


Get facilitators to sign up for Github accounts to be added to core-skills organisation

Essentially we want to have everyone who is going to be contributing or helping to deliver the course to be in here if possible.
People to add:
Core:

[x] Sophie @SophieHancock
[ ] Other facilitators? Zane? Tamryn?

CSIRO:

[x] Neil Francis (@neil-csiro )
[x] Oscar Rondon
[ ] Irina Emelyanova
[ ] Alistair White

Curtin:

[x] Rebecca Lange @r-lange

UWA:

[ ] Ayham Zaitouny
[ ] Debora Correa
[ ] Michael Small
[ ] Wei Lui (?)

Adding Rebecca, Mike and Wei as facilitators, removing Ryan etc

Agree with the list
Should also have Michael Small
Wei from UWA -
Melinda, Zane and Tamryn are not presenting anything but might provide
helpful feedback.
Daniel Milford<EMAIL_ADDRESS>Cheers
Sophie
On Tue, Sep 4, 2018 at 9:58 AM, Jess Robertson<EMAIL_ADDRESS>wrote:

Adding Rebecca, Mike and Wei as facilitators, removing Ryan etc
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/core-skills/core-skills/issues/1#issuecomment-418218979,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AosUvifB4TMSVew1T3BnuD1CrR5j-MmYks5uXd46gaJpZM4WKd9j
.

--
Sophie Hancock, PhD
Skills | Programs | Knowledge
+61 (0) 428 864 331
Ground Floor, FLUX, 191 St George's Tce
Perth 6000 Western Australia
https://maps.google.com/?q=191+St+George+s+Tce+Perth+6000+Western+Australia&entry=gmail&source=g
Web http://www.corehub.com.au/ | Twitter
https://twitter.com/CORE_Innovation | Facebook
https://www.facebook.com/COREInnovationHub/ | LinkedIn
https://www.linkedin.com/company/core-innovation-hub/
Join us for our Meet the Innovator series 5pm first Wed of each month &
CORE Industry Networking 4.30pm last Fri of each month.
Keep up to date on all our awesome CORE Events
http://www.corehub.com.au/events/.

Ok will you get Daniel to send through his GitHub username though? I need to make sure we get the right person is all.


Problem about processing the data

I tried to fit the CrabNet model with a non-example dataset, which is saved as .csv file. Then, when I tried to fit it, I met an unexpected error.  What's the problem behind it?

Hi, can you provide a minimal working example? My guess is that there's something non-standard in how one (or multiple) of your formulas is represented. Try this with a subset of formulas and provide the results and which formulas were used in the subset.
For example, I think you could use the following dummy data (taken from mat-discover docs):
train_df = pd.DataFrame(dict(formula=["Tc1V1", "Cu1Dy1", "Cd3N2"], target=[248.539, 66.8444, 91.5034]))
val_df = pd.DataFrame(dict(formula=["Al2O3", "SiO2"]))


Update gRPC MetadataGen task name

See googleapis/toolkit#847 for context.

Current coverage is 82.26% (diff: 100%)

Merging #856 into master will not change coverage

@@             master       #856   diff @@
==========================================
  Files           327        327
  Lines         12550      12550
  Methods           0          0
  Messages          0          0
  Branches       1644       1644
==========================================
  Hits          10324      10324
  Misses         1797       1797
  Partials        429        429

Powered by Codecov. Last update e085f19...fbfbb20

LGTM after the tests pass.


[T4A6][T17-B2] Abdul Rahman

Ready for Review!~

@arshrahman Some comments added. Please close the PR after reading comments.


pull request for e2e test at 12/06/2016 16:15:01

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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.


LinkedinProfile does not subsequently load correctly

Hello,
First of all, thanks for your library :-) I am having an issue with the LinkedinProfile component, though. When it is first loaded, it displays correctly. However, if I navigate to another page and then come back to the page that displays the LinkedIn Profile, it does not show.
In case it helps with the troubleshooting, I am using GatsbyJS. Since it provides offline access (for PWA) and link preload, I wonder if that has something to do with the issue.
Regards,
Jose

Hi @jmgq ,
Thank you so much for using my library and identifying this issue. Had updated the fixes and deployed as a patch release. Kindly update to<EMAIL_ADDRESS>Regards,
Praveen.


Issue with Legend Pure IDE and Omnibus Variant Feedback

Hi FINOS Team!
I am currently working on crafting a Legend metamodel on the OWL 2 Web Ontology Language. I was able to get the Legend Omnibus - slim version working, but I want to run the Legend Pure IDE to write Pure Code to help create validations on the meta model as I am building it.
Side Note:
A great variant to have is the slim with the Legend Pure IDE! I think it looks sick and it would be awesome to have that included with the slim.
When I try the run the full version, I am able to navigate to the Legend Pure IDE, but I get the following error message:

404 Not Found

404 Not Found
nginx/1.18.0 (Ubuntu)

I also get this message when I try to run commands in the Legend Pure IDE terminal. I am running the docker build and run scripts from the Legend Omnibus for the full variant using the .env arguments as on the Github repo. I am also on Windows11 with WSL using git-bash to run the scripts.
I'm not quite sure where the issue is in the setup? I looked at the Github questions and previous issues and I did not find anything.
If there is something I am missing or this is an issue, please let me know.

This issue is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

Updating the thread:
After looking into the Nginx configs, turns out I was accessing the Pure IDE from the wrong port number.
I am able to use the Legend Pure IDE and I am able to run the Welcome.pure go() function, so that's awesome. Also, I seem to be getting an error when trying to create a new directory or file via the terminal. Currently investigating if it related to Docker Permissions, but the logging in the Engine or the IDE doesn't capture this.
java.lang.IllegalArgumentException: Cannot create folder /owlFolder   at org.finos.legend.pure.m3.serialization.filesystem.usercodestorage.composite.CompositeCodeStorage.createFolder(CompositeCodeStorage.java:428)   at org.finos.legend.pure.ide.light.api.FileManagement.newFolder(FileManagement.java:129)   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   at java.base/java.lang.reflect.Method.invoke(Method.java:566)   at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)   at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)   at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)   at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)   at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)   at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)   at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)   at org.glassfish.jersey.internal.Errors.process(Errors.java:315)   at org.glassfish.jersey.internal.Errors.process(Errors.java:297)   at org.glassfish.jersey.internal.Errors.process(Errors.java:267)   at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)   at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)   at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)   at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)   at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)   at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)   at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)   at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)   at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)   at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)   at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)   at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)   at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)   at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:45)   at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:39)   at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)   at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)   at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319)   at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273)   at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)   at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)   at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)   at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)   at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)   at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)   at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)   at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)   at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)   at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)   at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)   at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:313)   at io.dropwizard.jetty.ContextRoutingHandler.handle(ContextRoutingHandler.java:37)   at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:713)   at io.dropwizard.jetty.BiDiGzipHandler.handle(BiDiGzipHandler.java:67)   at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:179)   at org

After finding that it was not a docker container permissions issue, I checked out the legend-engine project in IntelliJ and built the project locally. After dealing with some build failures due to asserts failing (I suspect that it has to due with Linux and Windows char diffs), I built and ran the project locally and still the encountered the issue. As it turns out, the Omnibus uses the following object PureIDELight_NoExtension  to launch the IDE. This object loads in the core and pure_ide Code Repositories using a ClassLoaderCodeStorage object that implements an ImmutableRepositoryCodeStorage, this explains why the CompositeCodeStorage was throwing an issue when creating a folder.
After some investigating, it turns out that there is another IDE object we can run that gives not only the full Legend packages to use but also allows for creation of files and folders for the project for certain directories. The PureIDELight object uses a MutableFSCodeStorage object to load and store all the code repositories.

So a change could be done with how the Omnibus packages the script for the IDE, if it can be changed to using the PureIDELight object, this would allow for people to experiment more indepth with the language by running the Docker script outright. It is worth noting that when checkout the legend-engine project, you can add your own Code Repositories. Adding a custom CodeRepositoryProvider and the required resources like any Pure Code and definition.json needed, would allow the IDE to load in the code you are writing.

This issue is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This issue was closed because it has been inactive for 35 days. Please re-open if this issue is still relevant.


RO tutorial

I'm now trying to add a term into RO and realised it's a bit of a special one cause it works with object properties and all. I'm feeling quite unequipped to deal with things on this end and was wondering if we could have a tutorial that goes through these stuff, maybe including some theoretical stuff.

yeah I think thats what i mean >.< still learning the terminologies used and all tbh, but i guess my thought in RO is things like writing formal definitions (eg has exemplar data -> C has_exemplar_data y iff x is an instance of C and y is data about x that is taken as exemplifying of C.) & where that should go (currently I put it as editors note, with def being more easily readable) - unless there isn't a convention then I guess that's alright. but yeah, learning about object properties and their logical implication would be great already :) thanks!

completed sufficiently - published https://oboacademy.github.io/obook/lesson/modelling-with-object-properties/


Could not load: ...\directory.jshintrc: Unexpected token /

I get the above error when I am attempting to use this package on Windows. I installed via chocolatey and am on version 0.155.0 of Atom and version 1.5.0 of atom-jshint.
Jshint does not work at all. Whenever I modify a file or save a Javascript file it just shows that error. I tried restarting atom and disabling the watch config setting to no avail.

Reinstalling atom fixed the issue. Not sure what the problem was in the first place.


Thread conflict in Puppet::Pops::Loaders

Describe the Bug
We observe the following error across ~5% of all Puppet agent runs in our organization against our Puppet 7.x masters when we set multithreaded: true, with any value for max-active-instances (even 2):
ERROR [qtp735649759-289] [puppetserver] Puppet Server Error: Evaluation Error: Error while evaluating a Type-Name, Internal Error: Attempt to redefine loader named '<foo> private' (file: /path/to/our/modules/foo/manifests/init.pp, line: 12, column: 18) on node clientnode.example.com

The error disappears if we disable threading, or if we hand-insert thread synchronization into the offending method or its caller. It is not consistent to any particular client node, and nodes on which agent runs throw the error will work fine the other ~95% of the time.
The source of the error, add_loader_by_name in puppet/lib/ruby/vendor_ruby/puppet/pops/loaders.rb, is fairly straightforward, adding a new key to an instance variable and throwing the error we observe if the key is already present:
  def add_loader_by_name(loader)
    name = loader.loader_name
    if @loaders_by_name.include?(name)
      raise Puppet::ParseError, _("Internal Error: Attempt to redefine loader named '%{name}'") % { name: name }
    end
    @loaders_by_name[name] = loader
  end

Interestingly, adding Puppet.info or Puppet.warn output before the if statement, to debug the call stack and thread state, causes the issue to disappear. I'd theorize that whatever output synchronization the logging system uses adds sort of back-door thread safety. Adding logging inside the if statement doesn't do this, which makes sense.
The calling method in all instances of this error we've logged to date has been []. If we add naïve Ruby-native synchronization to that method as below, our problem disappears:
  def [](loader_name)
    loader = @loaders_by_name[loader_name]
    if loader.nil?
      # Unable to find the module private loader. Try resolving the module
      @my_semaphore.synchronize {
        loader = private_loader_for_module(loader_name[0..-9]) if loader_name.end_with?(' private')
        raise Puppet::ParseError, _("Unable to find loader named '%{loader_name}'") % { loader_name: loader_name } if loader.nil?
      }
    end
    loader
  end

That's presumably not a correct-for-this-codebase fix by itself, but does point in the general direction of "it's threads stepping on each other, add a sempahore somewhere."
Environment

Puppet Server 7.x (various, up to and including 7.15.0)
CentOS 7.9.2009, AlmaLinux 8.9
Sanitized puppet.conf and puppetserver.conf attached

Additional Context
It's not clear why our ecosystem in particular triggers this issue. While we're a medium-large organization, our Puppet masters are spread around to various regional collections of nodes. The one on which we did the above debugging manages only about a dozen nodes. The issue manifests on all of them.
Our module ecosystem is old growth forest, with a lot of interwoven dependency. It's possible that the trigger here is multiple references to the same dependent object being resolved in parallel.
It's of note that we have a number of modules with names of the form *_private (in a search path distinct from our "main" module repo). But this seems to occur with any module and does not occur with threading disabled, so is unlikely to be some kind of namespace collision.

This was originally reported in https://puppet.atlassian.net/browse/PUP-11324. That issue tracker is now read-only, so please continue discussion here.

Thanks for letting us know @jstange We currently use the environment object to protect against concurrent access, such as https://github.com/puppetlabs/puppet/blob/b04e822d8b4e5bf3caa29d20d19777dbff43fa8b/lib/puppet/pops/loaders.rb#L28 I think you'd want to do something similar for each of the Loaders instance methods that mutate state, like:
 def [](loader_name)
   environment.lock.synchronize do
      loader = @loaders_by_name[loader_name]
      if loader.nil?
        # Unable to find the module private loader. Try resolving the module
        loader = private_loader_for_module(loader_name[0..-9]) if loader_name.end_with?(' private')
        raise Puppet::ParseError, _("Unable to find loader named '%{loader_name}'") % { loader_name: loader_name } if loader.nil?
    end
    loader
end

Alternatively you could only lock when loader.nil?, but I think you need to relookup again inside the lock (double-checked lock)
def [](loader_name)
  loader = @loaders_by_name[loader_name]
  if loader.nil?
    environment.lock.synchronize do
     if loader.nil?
       ...

After some poking I might have some vague idea how threading works in here. Seems like it's JRuby-specific, and in the case I care about it's probably instances of Puppet::Util::Autoload that are competing to touch things in parallel.
[] probably isn't the only method that needs a thread seatbelt put on it, but I don't want to blindly add stuff and create potential deadlock conditions.
I'll spend some time with my stack traces and see if there's anywhere else that looks thread-dangerous and deadlock-safe, wrap those in environment.lock.synchronize, and submit a PR of it. Someone who knows what they're doing will have to review- my guesswork about threading in here may be wildly off base.

Finally got my corporate overlords to sign off on the CLA for the #9299. Our fix has been deployed locally for a while now and seems to solve the issue.
We've recently identified a similar, but distinct, threading issue, this one in Resource::Type. I'll open a separate issue for it once I've made sure my report isn't duplicating someone else's.


Ruby 2.5 stream closed in another thread

Description
On Ruby 2.5.x systems (Ubuntu 18.04 + 18.10, Debian 10), we might experience a strange behaviour when running several commands in parallel inside different threads.
For example:
$ onehost sync -f
#<Thread:0x00007f32c400bda8@/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:348 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `block (2 levels) in sync'
2: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `loop'
1: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in `block (3 levels) in sync'
/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in ``': stream closed in another thread (IOError)
#<Thread:0x00007f32c400bb78@/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:348 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `block (2 levels) in sync'
2: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `loop'
1: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in `block (3 levels) in sync'
/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in ``': stream closed in another thread (IOError)
#<Thread:0x000055f12fdb2358@/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:348 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `block (2 levels) in sync'
2: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:349:in `loop'
1: from /usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in `block (3 levels) in sync'
/usr/lib/one/ruby/cli/one_helper/onehost_helper.rb:372:in ``': stream closed in another thread (IOError)
...

Might be related to this bugfix, which is not applied to Ruby 2.5.x:

https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63216

Details

Affected Component:
Version: 5.8.1, master

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

A dirty workaround for this particular command action is:
--- a/src/cli/one_helper/onehost_helper.rb
+++ b/src/cli/one_helper/onehost_helper.rb
@@ -369,9 +369,20 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
                                    " #{host['NAME']}:#{remote_dir} 2> /dev/null"
                     end

-                    `#{sync_cmd} 2>/dev/null`
+                    retries = 3
+
+                    begin
+                        `#{sync_cmd} 2>/dev/null`
+                    rescue IOError => err
+                        # workaround for unpatched Ruby 2.5
+                        # https://bugs.ruby-lang.org/projects/ruby-trunk/repository/trunk/revision?utf8=%E2%9C%93&rev=63216
+                        if (retries -= 1) > 0
+                            sleep 1
+                            retry
+                        end
+                    end

-                    if !$CHILD_STATUS.success?
+                    if $CHILD_STATUS.nil? || !$CHILD_STATUS.success?
                         error_lock.synchronize do
                             host_errors << host['NAME']
                         end

(More parts could be affected. And, also it's not possible to do a command retry in most cases.)

This must be addressed by 5.8.2 for sure, the patch above was provided to the customer.

PRs to merge:

code - https://github.com/OpenNebula/one/pull/3309 into one-5.8, cherry-pick into master
docs - https://github.com/OpenNebula/docs/pull/612 into one-5.8-maintenance