Output file is empty - no discovered exporters

Not sure why this is failing to write anything:
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff1, found 2 tasks
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff1, found 2 tasks
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff2, found 1 tasks
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff3, found 1 tasks
2018/03/01 12:33:54 Described 1 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff2
2018/03/01 12:33:54 Described 1 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff3
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff5, found 1 tasks
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff4, found 2 tasks
2018/03/01 12:33:54 Described 1 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff5
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff5, found 2 tasks
2018/03/01 12:33:54 Described 2 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff1
2018/03/01 12:33:54 Described 2 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff1
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff2, found 2 tasks
2018/03/01 12:33:54 Described 2 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff4
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff4, found 1 tasks
2018/03/01 12:33:54 Inspected cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff3, found 1 tasks
2018/03/01 12:33:54 Described 1 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff4
2018/03/01 12:33:54 Described 1 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff3
2018/03/01 12:33:54 Described 2 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/int_stuff5
2018/03/01 12:33:54 Described 2 tasks in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff2
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_service_task_definition:22
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:40
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_definition:33
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_task_definition:36
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_task_definition:30
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_task_definition:29
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:47
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_task_definition:30
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:38
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:42
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_stuff3_task_definition:45
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:41
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/int_task_definition:48
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_stuff3_task_definition:30
2018/03/01 12:33:54 Described task definition arn:aws:ecs:eu-west-2:123456789:task-definition/qa_task_definition:29
2018/03/01 12:33:54 Described 1 container instances in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff4
2018/03/01 12:33:54 Described 1 container instances in cluster arn:aws:ecs:eu-west-2:123456789:cluster/qa_stuff3
2018/03/01 12:33:55 Described 10 EC2 reservations
2018/03/01 12:33:55 Writing 0 discovered exporters to /tmp/ecs_file_sd.yml

Did you set the label PROMETHEUS_EXPORTER_PORT matching the port you need to scrape? Just realized it's not mentioned in the README.

I had a look through the code and added it when I noticed it was required. I then realised that the linux binary in Release was v0.1.0 and using a different variable so I recompiled to pick up the new changes.
Now I get the IPs being written but no host port (always shows as zero).

Does the port defined on the label have a mapping defined on the docker port mappings?

It does indeed have a docker port mapping that matches the label.

Hmmm.. The value will be casted anyway so it should be fine. Can you paste a sample of your task definition?

Yes of course:
[   {     "essential": true,     "image": "ui-snapshot",     "name": "ui",     "memory": 512,     "dockerLabels": {"PROMETHEUS_EXPORTER_PORT": "${service_port}"},     "environment": [       { "name": "ENABLE_STUFF", "value": "false" },       { "name": "SSL", "value": "true" }     ],     "portMappings": [       {         "containerPort": ${service_port},         "hostPort": ${service_port}       }     ],     "logConfiguration": {       "logDriver": "fluentd",       "options": {           "fluentd-async-connect": "true",           "tag": "PROJECT${ENV3}",           "fluentd-buffer-limit": "5MB"       }     }   } ]

Your definition looks correct. I just tested something similar and it works. Notice that the task_definition with the dockerLabel must be running in order for the file to be generated.
This is a task definition "working" (please note we don't expose the host port here but it correctly writes zero):
{
    "taskDefinition": {
        "taskDefinitionArn": "ARN_NAME_CONCEALED",
        "containerDefinitions": [
            {
                "name": "api",
                "image": "IMAGE_URL_CONCEALED",
                "cpu": 0,
                "memory": 3300,
                "portMappings": [
                    {
                        "containerPort": 8080,
                        "hostPort": 0,
                        "protocol": "tcp"
                    }
                ],
                "essential": true,
                "command": "COMMAND_CONCEALED",
                "environment": [
                    {
                        "name": "JAVA_OPTS",
                        "value": "-javaagent:/opt/docker/jmxtrans/jmxtrans-agent-1.2.5.jar=/opt/docker/jmxtrans/jmxtrans-agent.xml"
                    }
                ],
                "mountPoints": [],
                "volumesFrom": [],
                "user": "daemon",
                "dockerLabels": {
                    "PROMETHEUS_EXPORTER_PORT": "3001"
                },
                "logConfiguration": {
                    "logDriver": "awslogs",
                    "options": {
                        "awslogs-group": "APP_NAME_CONCEALED-api",
                        "awslogs-region": "ap-southeast-1",
                        "awslogs-stream-prefix": "api"
                    }
                }
            },
            {
                "name": "auth",
                "image": "IMAGE_URL_CONCEALED",
                "cpu": 0,
                "memory": 128,
                "portMappings": [
                    {
                        "containerPort": 3001,
                        "hostPort": 0,
                        "protocol": "tcp"
                    }
                ],
                "essential": true,
                "environment": [
                    {
                        "name": "POSTGRES_HOST",
                        "value": "HOST_CONCEALED"
                    },
                    {
                        "name": "POSTGRES_PASSWORD",
                        "value": "PASSWORD_CONCEALED"
                    }
                ],
                "mountPoints": [],
                "volumesFrom": [],
                "user": "node",
                "logConfiguration": {
                    "logDriver": "awslogs",
                    "options": {
                        "awslogs-group": "APP_NAME_CONCEALED-auth",
                        "awslogs-region": "ap-southeast-1",
                        "awslogs-stream-prefix": "auth"
                    }
                }
            },
            {
                "name": "APP_NAME_CONCEALED",
                "image": "IMAGE_URL_CONCEALED",
                "cpu": 0,
                "memory": 128,
                "links": [
                    "api:api-server",
                    "auth:auth-server"
                ],
                "portMappings": [
                    {
                        "containerPort": 3000,
                        "hostPort": 0,
                        "protocol": "tcp"
                    }
                ],
                "essential": true,
                "environment": [
                    {
                        "name": "CONTENT_CONCEALED",
                        "value": "http://api-server:8080"
                    },
                    {
                        "name": "AUTH_URL",
                        "value": "http://auth-server:3001"
                    },
                    {
                        "name": "SERVER_PORT",
                        "value": "3000"
                    }
                ],
                "mountPoints": [],
                "volumesFrom": [],
                "user": "node",
                "logConfiguration": {
                    "logDriver": "awslogs",
                    "options": {
                        "awslogs-group": "APP_NAME_CONCEALED-APP_NAME_CONCEALED",
                        "awslogs-region": "ap-southeast-1",
                        "awslogs-stream-prefix": "APP_NAME_CONCEALED"
                    }
                }
            }
        ],
        "family": "APP_NAME_CONCEALED_task",
        "revision": 12,
        "volumes": [],
        "status": "ACTIVE",
        "requiresAttributes": [
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17"
            },
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
            },
            {
                "name": "com.amazonaws.ecs.capability.ecr-auth"
            },
            {
                "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
            },
            {
                "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
            }
        ],
        "placementConstraints": [],
        "compatibilities": [
            "EC2"
        ]
    }
}

cat ecs_file_sd.yml
- targets:
  - <IP_ADDRESS>:0
  labels:
    task_arn: ARN_CONCEALED
    task_name: dashboard_task
    task_revision: "12"
    task_group: family:dashboard_task
    cluster_arn: ARN_CONCEALED
    container_name: api
    container_arn: ARN_CONCEALED
    docker_image: IMG_CONCEALED
- targets:
  - <IP_ADDRESS>:0
  labels:
    task_arn: ARN_CONCEALED
    task_name: dashboard_task
    task_revision: "12"
    task_group: family:dashboard_task
    cluster_arn: ARN_CONCEALED
    container_name: api
    container_arn: ARN_CONCEALED
    docker_image: IMG_CONCEALED

Ah yes I see that the above does write 0 but is it the case that it always writes 0?
When I look in the GUI I can see that the task is running and the definition shows the hostPort populated correcty:
Host Port | Container Port | Protocol
9201 | 9201 | tcp
`cat ecs_file_sd.yml

targets:
<IP_ADDRESS>:0
labels:
task_arn: arn:aws:ecs:eu-west-2:123456789:task/123456768
task_name: qa_client_task_definition
task_revision: "45"
task_group: service:qa_client
cluster_arn: arn:aws:ecs:eu-west-2:123456789:cluster/qa_integrations
container_name: client
container_arn: arn:aws:ecs:eu-west-2:123456789:container/123456789
docker_image: 123456789.dkr.ecr.eu-west-2.amazonaws.com/client:0.0.1-SNAPSHOT20180209140439`

Sorry, this was actually a bad example.
If you omit the hostPort in the definition (or set it to zero) it allocates a dynamic port. For prometheus to be able to scrape the host, it needs to know its port and thus you must set the hostPort (e.g. to the same port as the container).
I guess it's possible to know the dynamic port and add that to the configuration but as I see in the code it's not currently supported.

That is what is happening in my definition but zero is always written as the hostPort.
Host Port | Container Port | Protocol
9201 | 9201 | tcp

Any further thoughts on this? It appears to alway write zero as the host port.

@SnazzyBootMan if you are writting NetworkBinding in your ecs container task, check if the dockerLabel PROMETHEUS_EXPORTER_PORT has the same value as a containerPort for the ecs container task, because if not, the following if conditional in the code always will be false and the hostPort variable will have the default value (0) -> https://github.com/teralytics/prometheus-ecs-discovery/blob/08ef72675bd0ab54e4503bec67984f722d270f34/main.go#L206
For instance,
          {
              "taskDefinition": {
                  "volumes": [],
                  "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/hello_world:8",
                  "containerDefinitions": [
                      {
                          "environment": [],
                          "name": "wordpress",
                          "links": [
                              "mysql"
                          ],
                          "mountPoints": [],
                          "image": "wordpress",
                          "essential": true,
                          "portMappings": [
                              {
                                  "containerPort": 8080,
                                  "hostPort": 0
                              }
                          ],
                          "dockerLabels": {
                              "PROMETHEUS_EXPORTER_PORT": 8080
                          },
                          "memory": 500,
                          "cpu": 10,
                          "volumesFrom": []
                      }
                  ],
                  "family": "hello_world",
                  "revision": 8
              }
          }

I will have a look at that. When I raised this the PROMETHEUS_EXPORTER_PORT was set the same as the containerPort and the hostPort. I think that may have changed now so that the metrics are being served up on a different port to the applications.

Hi,
Could you please tell that how you configure /tmp/ecs_file_sd.yml in docker file , i want to change default location of ecs config file (/etc/prometheus/ecs_file_sd.yml).
Any idea how can i do this?

@AashishChughHome you can use the flag -config.write-to=/tmp/ecs_file_sd.yml - check the doc here

The ecs_file_sd.yml is genrating on this location
/var/lib/docker/devicemapper/mnt/2623c8624852834c42d8fc73ebe5e75d0fb5013d2e50fb57307fea0424d1bed9/rootfs/ecs_file_sd.yml
What if i want to store it on my linux directory just like /etc/promethues/ecs_file_sd.yml
Could you please help to get out from this ?

@AashishChughHome I don't know exactly what you want to achieve, but it looks like this could be of help: https://docs.docker.com/storage/bind-mounts/.

Hi,
I just got able to build the "prometheus-ecs-discovery" container by using the "teralytics/prometheus-ecs-discovery" code. I have given necessary AWS credentials, once I run the docker image.
Eg:

docker run -idt --name ecs-discovery -e AWS_REGION=eu-west-1 -e AWS_ACCESS_KEY_ID=XXXXXXXXXX -e AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXX ecs-discovery

And I got able to successfully start the container and I got able to ssh into the container also.
Then once I run the "prometheus-ecs-discovery" inside the container, It has shown all the cluster details list.
I have gone through the many online documents to get the cluster instance/container metrics into the Prometheus dashbord, but I haven't been able to find a proper way to get the cluster instance/container metrics into the prometheus dashbord as a prometheus target.
Please support me to achieve this target.
Thanks


Hubo

增强DatabaseTarget功能，支持参数类型和格式

Enhanced DatabaseTarget functionality, supporting parameter types and formats

Thanks for the submit!
Could you check this?

Generated session id: 7e0087e4991050754d560326f0c21f30
Generated build app name: NLog.Xamarin.iOs
Targets\DatabaseParameterInfo.cs(34,14): error CS0234: The type or namespace name 'Data' does not exist in the namespace 'System' (are you missing an assembly reference?) [C:\projects\nlog\src\NLog\NLog.Xamarin.iOs.csproj]
Targets\DatabaseParameterInfo.cs(94,18): error CS0246: The type or namespace name 'DbType' could not be found (are you missing a using directive or an assembly reference?) [C:\projects\nlog\src\NLog\NLog.Xamarin.iOs.csproj]

Also, could you add some unit tests? There are already unit tests for the database which you could extend

确实不是很完善

I think it's a good start!
Please post (also) google translates, thanks!


remix dev v2 unexpectedly clears the console

What version of Remix are you using?
1.18.1
Are all your remix dependencies & dev-dependencies using the same version?

[X] Yes

Steps to Reproduce
Running the following command
remix dev --no-restart -c "./src/server/index.js"

will clear the console right before it outputs
💿  remix dev

Expected Behavior
The console should not be cleared.
Actual Behavior
The console console is cleared, also removing output from other tasks running.

Duplicate of #6709


Support for Android apps

Are there any Android apps which can interact with TaskBoard?
Would be great if TaskBoard could be accessed by apps like Simpletask, Mirakel or something else. Any chance to make them somehow compatible?

It's certainly possible, though documentation for the API would make this easier.
However, I have no plans to tailor it for specific apps.


version 1.3.1 - sequelize jest compatibility

Deprecated momentjs contructor support. Devs should manually cast to an object or string before constructing a momentjs date from either a DateOnly or DateTime object.
Improved Sequelize zupport through custom types instead of relying on the momentjs constructor.
Removed JS Date like methods getTime and prototype.toString = () => 'Date'. This was causing issues on jest

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

Project coverage is 100.00%. Comparing base (ddd56d2) to head (94b285f).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          733       749   +16
  Branches       217       208    -9
=========================================
+ Hits           733       749   +16

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


/tutorials/using_gpu doc (possibly other) should use print() since Windows needs Python 3.x

Should the Python samples in /tutorials/using_gpu and other docs be in 3.5.x form?

In /install/install_windows we're told "TensorFlow only supports version 3.5.x of Python on Windows"
In /tutorials/using_gpu there is sample Python code in 2.x style, "print sess.run(c)"
This code snippet chokes when run on Windows, while print(sess.run(c)) is fine. Trivial to fix but distracts from the task at hand.

There may be more nuance to this (afaik print with parens is ok in 2.7), but it seems like avoidable friction if not.

TF is mostly used on linux-based systems, it seems natural to have code written for python 2.7, since TF supports this version of python outside Windows. I do agree with you, however, that at least the print functions could be written with parenthesis, just to avoid those simple incompatibility issues. I'm not part of the team, but I believe TF members wouldn't oppose the change, if you send a pull request with those changes.

Not a big deal, haven't find any other error under python3.

We currently don't have anybody working on this. It would be great if you could help us by working on this and submitting a PR. Let us know if you need further clarification. Thanks!

Hi all, I just submitted a PR to fix this issue, please review, thanks a lot 😄

Thanks @jerryshao!


multiservice-discovery should retry on DNS failures

Sometimes due to network flakiness, DNS resolution can fail temporarily.  When that happens, the service discovery process stops fetching data and gets stuck.
root@observability:/home/vagrant# kubectl -n observability-stack logs -f service-discovery-5cb7d897d8-bqjvm
Apr 12 12:26:39.516 INFO Running new definition mercury
Apr 12 12:26:39.520 INFO Syncing local registry for mercury started
Apr 12 12:26:39.520 INFO Using local registry path: /tmp/mercury
Apr 12 12:26:39.520 INFO Server started on port 8000
Apr 12 12:26:39.546 DEBG Syncing registry version from version : 0
Apr 12 12:26:50.720 DEBG Unable to fetch public key for network targets: failed to get root subnet: Registry Canister Error. Msg: An unknown error occurred in the registry canister: Error on registry_get_value_since: Request failed for https://ic0.app/api/v2/canister/rwlgt-iiaaa-aaaaa-aaaaa-cai/query: hyper::Error(Connect, ConnectError("dns error", Custom { kind: Uncategorized, error: "failed to lookup address information: Temporary failure in name resolution" })) using agent Agent { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("ic0.app")), port: None, path: "/", query: None, fragment: None }, ingress_timeout: 360s, query_timeout: 30s, sender: Blob{04} }
Apr 12 12:26:50.720 WARN Interrupted initial sync of definition mercury

This type of temporary error should be retried (with concurrent checks for whether the definition has been stopped in the meantime) until it succeeds.  Otherwise the definition will be stuck and require a complete service restart.
This issue was spotted in the IC observability stack due to VPN flakiness.

Struck again:
Apr 15 11:31:39.766 INFO Running new definition mercury
Apr 15 11:31:39.780 INFO Syncing local registry for mercury started
Apr 15 11:31:39.780 INFO Using local registry path: /tmp/mercury
Apr 15 11:31:39.781 INFO Server started on port 8000
Apr 15 11:31:39.798 DEBG Syncing registry version from version : 0
Apr 15 11:31:52.905 DEBG Unable to fetch public key for network targets: failed to get root subnet: Registry Canister Error. Msg: An unknown error occurred in the registry canister: Error on registry_get_value_since: Request failed for https://ic0.app/api/v2/canister/rwlgt-iiaaa-aaaaa-aaaaa-cai/query: hyper::Error(Connect, ConnectError("dns error", Custom { kind: Uncategorized, error: "failed to lookup address information: Temporary failure in name resolution" })) using agent Agent { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("ic0.app")), port: None, path: "/", query: None, fragment: None }, ingress_timeout: 360s, query_timeout: 30s, sender: Blob{04} }
Apr 15 11:31:52.905 WARN Interrupted initial sync of definition mercury

Importantly, when MSD gets into this state, sigterm doesn't work anymore.

Note: telemetry doesn't show the data for the failed network when this error occurs.  This should be fixed and the right metric msd_definitions_* should be updated as MSD retries.


Bump API level to 620

This comes with a few changes:

fdb_future_get_version was renamed to fdb_future_get_int64
a new API: fdb_transaction_get_approximate_size
size_limit transaction option

Reference: https://apple.github.io/foundationdb/release-notes.html#bindings

$ ERL_LIBS=/Users/nvatama/src/couchdb-erlfdb/ PYTHONPATH=/Users/nvatama/src/foundationdb/build/bindings/python/ ./bindingtester.py --cluster-file /usr/local/etc/foundationdb/fdb.cluster --num-ops 10000 --test-name api erlang --concurrency 10

Creating test at API version 620
Generating api test at seed<PHONE_NUMBER> with 10000 op(s) and 10 concurrent tester(s)...

Inserting test into database...

Running tester '/Users/nvatama/src/couchdb-erlfdb/test/tester.es test_spec 620 /usr/local/etc/foundationdb/fdb.cluster'...

Reading results from '('tester_output', 'workspace')'...
Reading results from '('tester_output', 'stack')'...

Test with seed<PHONE_NUMBER> and concurrency 10 had 0 incorrect result(s) and 0 error(s) at API version 620
Completed api test with random seed<PHONE_NUMBER> and 10000 operations

Bindings tests now work as well


smtp: adds test for invalid replies

Ticket
Redmine ticket: https://redmine.openinfosecfoundation.org/issues/1125

#1850 with additional test

Merged in #1982, thanks!


IGAPP-1223: Fix testumgebung

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.
As deleting the cache worked for my real devices, I guess this PR fixes the issue, but I am not really sure, as I do not get this error on the emulator, but there was a warning and an error in the console, which disappeared with these changes. Hopefully someone of you has a good idea how to test this, otherwise we have to try.

This pull request belongs to an issue on our bugtracker. You can find it there by looking for an issue with the key which is mentioned in the title of this pull request. It starts with the keyword IGAPP.
As deleting the cache worked for my real devices, I guess this PR fixes the issue, but I am not really sure, as I do not get this error on the emulator, but there was a warning and an error in the console, which disappeared with these changes. Hopefully someone of you has a good idea how to test this, otherwise we have to try.

@SteffiStuffel
I think this issue is related to saving metaData with the same location name like "testumgebung" for test-cms if you have already saved data for the "testumgebung" in production cms.
I'm facing this error 'cannot store last update for unused city' but i cannot reproduce Leandra's issue, so not 100% sure if there is a relation. Even the bug report is not helping tbh, so maybe a clear bug report could help reproducing the error.
Would be good if leandra can test it, because it can not reproduce and i'm not sure if we should merge it without more investigation. Even because i think it only happens if you switch cms and won't happen for users

Will add better cache-naming for test-cms and prod-cms cities and reopen this, when I am finished

It's unfortunately not fixed with this. I attached a video but I'm not sure how helpful that is either. In the console, I'm getting a warning Sending progress with no listeners registered.
https://user-images.githubusercontent.com/18513943/217550369-a409ff74-4348-4808-95ca-8f04aa52c22a.mp4

created new pr with proper branch naming


Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase

I use the PHPUnit\Framework\TestCase notation instead of PHPUnit_Framework_TestCase while extending our TestCases. This will help us migrate to PHPUnit 6, that no longer support snake case class names.
Just needed to bump PHPUnit version to 4.8.36, to keep compatibility.

👍 LGTM, thanks @gabriel-caruso


demo for other caffe networks

Hi,
How can we achieve a similar application for other caffe networks?

Hi @Stark123,
This project is no more than a basic demo app for caffe-android-lib, which aims at porting caffe to android. That is, as long as the model is supported by official caffe, it "should" be okay to be used via caffe-android-lib as well. You could go through this simple app first as an overview.
Thanks.

Could be reopened if needed.


add alibabacloud-credentials-plugin.yml

Description

Submitter checklist for adding or changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[x] Add link to resolved HOSTING issue in description above

For a new permissions file only

[x] Make sure the file is created in permissions/ directory
[x] artifactId (pom.xml) is used for name (permissions YAML file).
[x] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[x] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] Make sure to @mention the users being added so their GitHub account names are known if they require GitHub merge access (see below).
[x] All newly added users have logged in to Artifactory at least once

Reviewer checklist (not for requesters!)

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo (please @ the people/person with their GitHub username in this issue as well). If needed, it can be done using an IRC Bot command
[ ] Check that the $pluginId Developers team has Admin permissions while granting the access.
[ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
[ ] If security contacts are changed (this includes add/remove), ping the security officer (currently @daniel-beck) in this pull request. If an email contact is changed, wait for approval from the security officer.

There are IRC Bot commands for it

DavyJones2010  have logged in.

please fill out the template

please fill out the template

actually fill it out don't tick the boxes

please fill out the template

This question has been revised，please check

please fill out the template

actually fill it out don't tick the boxes

All right. Please check

See the checks:


Check the metadata name

Remove characters that may cause problem as metaname, and also replace all spaces with underscores.

Tested locally.
Refactoring is needed to create an internal column<->display name mapping in case collections have invalid meta names or duplicated meta names.


string concat - perhaps a new solution?

This is what I got so far. But as said in  the source:
hmm, somehow the intermediate sqs or dqs must be removed when building the resulting string. Since we are using scanner.LexemeText(), this seems not to possible using the current solution? Perhaps you need to return the concat string instead and use that instead of LexemeText.
You are welcome to pull my branch and work on this @MarkusAmshove 👍

We can build an intermediate result string and return to the caller and use this in a new implementation of CreateAndAdd (or whatever it’s called)

I've merged a different approach with #355
You can try if the current main branch fixes the issues you wanted to solve with this. If yes, we can close this :)

I will still close this and open an issue for it (I might take it on myself) :)


Banner print Application Name, Version and Details

Current behavior:
None
Expected behavior:
Banner print Application Name and Details when application starts
What is the motivation / use case for changing the behavior?
Currently no information is printed. Would be great if we could have this banner printed to see what the app is.
Additional information you deem important (e.g. I need this tomorrow):

Hi Mark, with the debug log level (FLOGO_LOG_LEVEL=DEBUG) it will print the details of the app and the activities you're using. Is there anything you want to add there?

Resolved in TIBCOSoftware/flogo-lib#239


example application not scanning any barcode - iPhone X, iOS 12.1, Objective-c

In a previous version I was able to get it to scan some barcodes but only when in landscape orientation. With version 3.6.1 it does not appear to adjust to landscape, remaining the width of portrait while in landscape orientation.  I could not find any barcode that it detected in any orientation.

Tested swift example.  It also does not recognize any barcodes.

I am going to test that out later tomorrow.

Does the objective-c version work for you?

@neacao maybe you could have a look as well :)

Have checked already, can you provide the barcode that could not decoded @jseter ?

@neacao If you was able to scan any barcode with the specific environment posted then you are already having more success than me.  I tried just regular UPC-A off several available products as well as some QR codes and GS1-128.  I'll have to retest.  I know the core library is functional as I was able to get it working for my needs writing my own image capture code so the problem seems limited to the ZXCapture code.

I too have the same issue on iPhone X with 12.1.x and I am trying to scan PDF417 type codes. Driving Licence barcodes. So may I please know if this issue is fixed?

same issue with me. The swift example performance good on my iPhone6, iPhone6s, both 12.x iOS version. But quite badly on my iPhone11, 13.x iOS version.  I test some barcode like UPS, DHL tracking number, iPhone 6 can correctly scan they, but iPhone11 can't

Same issue with me.
i using -(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
And i scan PDF417 barcode, it's work with some barcode but not work with attached photo
P/s: i have android code can detected barcode on attached photo.
Please help me !!!

For anyone still having trouble with this, add capture luminance to get a better idea of where to position the barcode.  The default gray box is inaccurate.
Add this in the viewDidLoad of the main view controller:
[self.capture setLuminance: TRUE];
[self.capture.luminance setFrame: CGRectMake(150, 30, 100, 100)];
[self.view.layer addSublayer: self.capture.luminance];

Unfortunately, I can no longer provide support for this codebase, the topic will be closed. I recommend to take a look at https://github.com/zxing-cpp/zxing-cpp created and maintained by the very ambitious @axxel!


Error on running script

Hello, running the script on my environment stops at this:
Traceback (most recent call last):
File "netbox-sync.py", line 143, in
main()
File "netbox-sync.py", line 119, in main
source.apply()
File "/opt/netbox-sync/module/sources/vmware/connection.py", line 394, in apply
view_details.get("view_handler")(obj)
File "/opt/netbox-sync/module/sources/vmware/connection.py", line 1621, in add_host
pgroup_nics = nic_order.activeNic + nic_order.standbyNic
AttributeError: 'NoneType' object has no attribute 'activeNic'
Would it be that a VM has no NIC assign or what?
Thanks!

Hi, this is what it looks like.
Will take care of it once I'm back from holidays.
For now you could just exclude this vm via config.

Sure! thanks for your time!

Will add fix to the new release. Can you test it please?


fix: create index from single document

Use a runtime row_number to build the index by incorporating design discussions from https://github.com/georgia-tech-db/evadb/pull/912 and https://github.com/georgia-tech-db/evadb/pull/868.

@aryan-rajoria Please pull this branch to test if issue of creating index from single PDF is fixed.

Not relevant to this PR. Are we still having incorrect links in documentation?
sphinx.errors.SphinxWarning: /home/circleci/project/docs/source/overview/concepts.rst:57:broken link: https://github.com/georgia-tech-db/evadb/blob/master/evadb/udfs/mnist_image_classifier.py (404 Client Error: Not Found for url: https://github.com/georgia-tech-db/evadb/blob/master/evadb/udfs/mnist_image_classifier.py)

Not relevant to this PR. Are we still having incorrect links in documentation?
sphinx.errors.SphinxWarning: /home/circleci/project/docs/source/overview/concepts.rst:57:broken link: https://github.com/georgia-tech-db/evadb/blob/master/evadb/udfs/mnist_image_classifier.py (404 Client Error: Not Found for url: https://github.com/georgia-tech-db/evadb/blob/master/evadb/udfs/mnist_image_classifier.py)

Probably because I haven't rebased with staging. Let me sync with it.


Polymorphism

restructured the files inside O-oops folder

Mention issue for which this pull request is a part of (#276)

Proposed Changes

Created a folder constructor_destructor and moved the relevant files inside

Additional Info

previously README inside Polymorphism and README of constructor_destructor  was creating conflict

Checklist

[x] ✅ My code follows the code style of this project.
[x] 📝 My change requires a change to the README.
[x] 🎀 I have updated the README accordingly.
[x] 👀 I have read the CONTRIBUTING document.
[x] ✨ I have added tests to cover my changes.
[x] 🚩 All new and existing tests passed.
[x] 🌟 ed the repo

       previously README inside Polymorphism and README of constructor_destructor  was creating conflict

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Output Screenshots

Screenshot #1
Screenshot #2

Title goes here
Title goes here

Image goes here
Image goes here

Why 4 files are going to be changed ...also add polymorphism Code .
You need to follow particular guidelines for your README , please follow
these guidelines click here
also you can see how your README should look like see here
for more please go through these here

resolve branch conflict


ODM support

Is there support for ODM/MongoDB?

Currently I cannot find any support for ODM on this bundle. It would be nice to add support for ODM.


strconv.Atoi documentation is slightly misleading

What version of Go are you using (go version)?

$ go version 1.11.4

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
Irrelevant.
go env Output
$ go env

What did you do?
Look at the documentation here: https://golang.org/src/strconv/atoi.go?s=5013:5045#L192

What did you expect to see?
An explanation of strconv.Atoi that matched what it actually did under the hood.
What did you see instead?
An explanation that is only half true.
Atoi returns the result of ParseInt(s, 10, 0) converted to type int.
It appears that Atoi doesn't just return the value of ParseInt(s, 10, 0), it only calls ParseInt as a last alternative, the "slow path". Without checking the code I was under the belief that I could just replace Atoi with ParseInt and it would basically run the exact same code.
It appears that the documentation was correct up until this commit:
https://github.com/golang/go/commit/46aa9f5437b000fad3696b0cd9fd97995da16411#diff-cbef0f4cdbfb7c355433bb342a5ef463

Genuine question: Why do you care?

@josharian What's the point of having documentation if it's outdated? I don't see why it would be a problem to update it to reflect the current state of the code.

Please note that the point of the documentation is not to describe the way the function is implemented under the hood. The only purpose of the documentation associated with the function signature is to explain what the function does (in the sense: what will it return when you call it).
So, in this case, the following sentence

Atoi returns the result of ParseInt(s, 10, 0)

is not telling you that the Atoi code, literally, is return Parseint(...). It's just a concise way to explain what the function does. Basically, the doc it's telling you that Atoi is a shortcut for ParseInt calls on base 10 number strings.
IMO the documentation appears "outdated" to you because you're reading it too literally.

Anyway, here's a proposal for a slightly more high-level doc:

func Atoi(s string) (int, error)
Atoi interprets the string s as a base 10 integer, and returns its value as an int type. It is functionally equivalent to a call to ParseInt(s, 10, 0).

I'm sorry if I was a bit unclear. I never meant that I expected the comment to explain in great details what it did under the hood. I was just a bit surprised when the comment didn't match up with the reality. Afaik the "short path" is a lot faster than the ParseInt path, so there's a performance difference between simply running ParseInt directly.

Your honour, my client's statement never claimed that Atoi necessarily calls ParseInt, merely that it returns the same result as ParseInt. I move for a dismissal on the grounds that the defendant has no case to answer.

@bitfield I didn't come here to argue. If no one else thinks it's an issue then fine, simply don't change it and close this issue.
The documentation does claim that it returns the result of ParseInt, not the same result as ParseInt though. Which led me to believe that it simply called ParseInt (as it once did).
Right now the documentation does try to explain what happens under the hood, but the documentation got outdated when the commit I linked to was introduced.

@bitfield I didn't come here to argue. If no one else thinks it's an issue then fine, simply don't change it and close this issue.

It's been fixed!


M3-6002: Align left modal title

Description 📝
Fixes an alignment issue in some Dialogs that was caused by the className prop overriding existing styles.
Preview 📷
Before:

After:

How to test 🧪

Navigate to Account > Service Transfers > Make a Service Transfer.
Create a Service Transfer.
Inspect the alignment of the "Service Transfer Token" modal.
Verify other dialogs in the app look as expected.

First PR go easy 🫣
Shoutout @bnussman-akamai for assisting with this PR.


Fix wrong deduplication logic for affiliations in deposit form

Duplicate of https://github.com/inveniosoftware/react-invenio-forms/issues/268


detect empty input file and issue a warning

You have the code comment
# FIXME detect empty input file and issue a warning

one approach is set a flag in the BEGIN
reset it in any section before the END
check that it was toggled in the END section and warn otherwise
example:
BEGIN{ empty_file = 1}
{   empty_file = 0 }
END{
    if(empty_file)
        print "EMPTY FILE"
    else
        print "GOT STUFF"
}

results in:
$ ./empty_file_report.awk empty_file_report.awk
GOT STUFF
$ ./empty_file_report.awk /dev/null
EMPTY FILE
$ touch empty
$ ./empty_file_report.awk empty
EMPTY FILE

A patch to consider
diff --git a/mysql2sqlite b/mysql2sqlite
index e739a28..66dfc49 100755
--- a/mysql2sqlite
+++ b/mysql2sqlite
@@ -50,6 +50,7 @@ BEGIN {
   print "PRAGMA synchronous = OFF;"
   print "PRAGMA journal_mode = MEMORY;"
   print "BEGIN TRANSACTION;"
+  empty_file = 1
 }

 # historically 3 spaces separate non-argument local variables
@@ -98,7 +99,7 @@ inTrigger != 0 { print; next }
 inView != 0 { next }

 # skip comments
-/^\/\*/ { next }
+/^\/\*/ { empty_file = 0; next }

 # skip PARTITION statements
 /^ *[(]?(PARTITION|partition) +[^ ]+/ { next }
@@ -149,6 +150,7 @@ inView != 0 { next }
   if( match( $0, /`[^`]+/ ) ){
     tableName = substr( $0, RSTART+1, RLENGTH-1 )
   }
+  empty_file = 0
   aInc = 0
   prev = ""
   firstInTable = 1
@@ -263,6 +265,10 @@ aInc == 1 && /PRIMARY KEY|primary key/ { next }

 END {
   if( no_END ){ exit 1}
+  if( empty_file ){
+    printerr( "EMPTY FILE: " ARGV[1] )
+    exit 1
+  }
   # print all KEY creation lines.
   for( table in key ){ printf key[table] }

results in
$ ./mysql2sqlite /dev/null
PRAGMA synchronous = OFF;
PRAGMA journal_mode = MEMORY;
BEGIN TRANSACTION;
EMPTY FILE: /dev/null

Which may not as nice as detecting within BEGIN before printing your leading constants
but it is simple and robust.

Thanks @TomConlin for bringing this up and for the proposal. I was rather thinking about writing my own print function which would support "deferred" printing of a specified string. I would use this function everywhere instead of the built in print directive and printf function. As the deferred string I would put the pragmas and transaction begin.
This way I would even not need to clutter the already overcluttered sections (yeah, one can notice awk is a predecessor of Perl :wink:).
What do you think?

Writing to a buffer and printing at the end is tried and true efficiency especially when you can append without copy and preallocate the space ... which I have never considered in awk.
Depending on the size of data and the machines resources in may be necessary to print as you go, but when I have memory to burn, I try to use it.

No, appending anything to any buffer is definitely not what I meant. I'll just postpone (defer) printing of the pragmas to the point when it'll be 100% sure we'll have also other content to print.

bit still before the end,
yes, where you choose to do that may also be the best place to flip the not empty file bit.
which would be an improvement over repeatedly setting the flag to the same thing.


Release lock on SIGTERM

We're using Liquibase in a Wildfly application server using the liquibase CDI integration inside a Docker container (not sure if the latter fact is relevant for the problem).
If we now terminate the Wildfly while Liquibase is applying our change sets, the changelog lock will not be released. Upon the next start of the Wildfly we're waiting for the lock to be released, which will never happen. Then we require manual intervention to release the lock and restart the Wildfly.
Is there a way to release the lock if the application server receives a SIGTERM signal?
┆Issue is synchronized with this Jira Bug by Unito

This seems to be a problem with Spring Boot too: https://stackoverflow.com/questions/55954588/ensuring-spring-boot-and-liquibase-receive-and-handle-sigterm

Hi @MarvinGEA Thanks for bringing this issue to our attention.  There is currently not a way to release the changelog lock when the application receives a SIGTERM.  If you would like to suggest a way via a PR with code and create a fix, we can review it for inclusion into the code.

We already tried to fix it by adding a PreDestroy hook to the CDILiquibase class:
    @PreDestroy
    public void releaseLock() {
        log.info("Releasing Liquibase lock.");
        // In case of a shutdown of the Wildfly during the execution of liquibase changesets the liquibase lock may not have
        // been released.
        Database database = null;
        try {
            database = createDatabase(dataSource.getConnection());
            LockService lockService = LockServiceFactory.getInstance().getLockService(database);
            lockService.releaseLock();
        } catch (Exception e) {
            log.severe("Error releasing Liquibase lock", e);
        }
    }

But the CDI container (in this case Wildfly) doesn't execute that hook when shutting down. Unfortunately our CDI/Java EE knowledge is not that advanced that we could figure our why it's not executed. Does anyone have an idea?

Do you have any shutdown delay to allow servlets to unregister? From springboot/tomcat perspective i'm thinking on something similar to unloadDelay.
Did a quick check on Wildfly's docs and saw this which may give you some additional time to allow servlets to unload -  "org.wildfly.sigterm.suspend.timeout". Can you have a go at it @MarvinGEA ?

Hey,
I ran into the same problem using SpringBoot and Liquibase.
The problem here is that the spring-boot shutdown hook that would allow a graceful shutdown (unregistering beans) is added AFTER liquibase has finished...
In simpler words: During the liquibase run, there are only kills... No graceful terminations.
I currently can work around this by simply registering a manual Shutdown Hook before starting spring. If triggered it scans all threads if any thread contains a liquibase stack trace if so it waits and checks again -> until the liquibase instance is done and the shutdown can be executed.
But it would be nicer if either liquibase or spring-boot takes care of this.
The question is: Can we safely exit liquibase during an update? And how? A rollback/or mid update stop would have to be used?!?
I think liquibase should have their own shutdown hook to make sure everything runs smoothly and spring should only have to adapt to this.

Hi @nvoxland @mariochampion. Do you have any suggestions for @stoffel2107? Also @stoffel2107  can you give more perspective on why you needing to stop an update midway through the application startup so that we can give better advice?

I believe the point isn't that you "need" to stop an update midway through the application start intentionally. The case we ran into when I raised it into stackoverflow was in situation in which running a service with Liquibase in a platform such as AWS can lead you to situation in which the startup time exceeds the expected startup time and the container will be terminated as being unhealthy - that will lead to the abrupt interruption of Liquibase and the lock will not be released.
After that and by having that lock in place you will then have an infinite cycle of containers failing as new ones keep getting spawned - which can lead to service degradation/outage as your scaling ability will be affected.
Sample timeline:

Container 1 starts
Container 1 experiences delays because of slower dependencies or whatever (such as an APM agent)
Container 1 starts running liquibase scripts (gets lock updated in DB)
Container 1 gets marked as unhealthy due to "slow start" and is terminated (without releasing lock)
Container 2 starts
Container 2 fails to get the lock and waits until it's marked as "unhealthy" and is terminated
Container 3 starts
Container 2 fails to get the lock and waits until it's marked as "unhealthy" and is terminated
Cycle repeats endlessly until manual intervention is done to clear the lock

@molivasdat Hopefully this helps you get a better perspective of the problem and why the update can be interrupted (and needs to be handled)

Yes, that is a limitation of the current databasechangeloglock setup. We use a record saved to that table to prevent concurrent attempts to do a liquibase update, but there is no database-standard way of saying "undo this commit when my connection is closed". This is normally fine, except when the VM exists during an update like you see. Then it gets stuck. The rise of AWS-style "kill the process if it takes too long to start up" checks has definitely made the problem worse.
I've tried adding JVM shutdown hooks etc. but those seem to run late enough and/or inconsistently enough that I've not tried to rely on them.
We have open issues to address it in database-specific manners (See #872) but it is going to need to be some database-specific changes, so we're working on figuring out the best way to handle it in as consistent a manner as possible.
In the mean time, depending on your setup you could use the https://github.com/liquibase/liquibase-nochangeloglock extension to completely disable the databasechangeloglock lock logic. Or use your own custom LockService implementation with whatever custom coordination makes sense for you. WARNING: if you do this, it's up to you to coordinate your systems so only one update is performed at a time, such as by putting it in an "init" container or something.

@nvoxland It may still be worth having a go at the suggestion/idea around using Shutdown hooks provided as the mentioned "AWS-style"  still sends signals that could be handled (if i'm not mistaken it's not a SIGKILL that is issued to the process).
That in theory could allow for some reaction to the unexpected closure and release of the lock mechanism in databasechangeloglock.

Hi @bayetovsky Thanks for the use case.  This is exactly the type of information that I was looking to have in the issue statement.

Hey, @bayetovsky's case is similar to mine.
I deploy my applications using Chef and a handmade tool.. During deployment, it gets restarted twice with a SIGTERM.
My workaround is basically just waiting for liquibase to finish.. In easier terms => I could simply make a join on the main thread in this shutdown hook, this would cause the shutdown to wait for SpringBoot to initialize.. After spring boots initialization, their shutdown hook would trigger the complete shutdown (Remove the shutdown hook after spring boot-start).
The only thing that would be a nice to have is simply a functionality to stop it mid update and therefore liquibase to take care of everything.

Yes, #1453 would fix the lock problem you are hitting but it would still be nice to have a more graceful handling of SIGTERM vs. SIGKILL.
We'll handle the lock issue first, since I still don't trust all setups will not kill off the process before our cleanup work is done so having the better SIGKILL recovery is the safer route. But then better handling of the SIGTERM can be handled.
We're planning a refactoring of the higher-level command/operation classes, and a cleaner termination handling is probably best done as part of that.

I stumbled upon this Liquibase extension which uses a RDBMS lock function instead of a table. The advantage is that the RDBMS lock will be released automatically when the database connection is closed (i.e. when the container is stopped unexpectedly).
See https://github.com/blagerweij/liquibase-sessionlock
Disclaimer: I'm not the original author, but I forked the project and released to Maven central.

I stumbled upon this Liquibase extension which uses a RDBMS lock function instead of a table. The advantage is that the RDBMS lock will be released automatically when the database connection is closed (i.e. when the container is stopped unexpectedly).
See https://github.com/blagerweij/liquibase-sessionlock
Disclaimer: I'm not the original author, but I forked the project and released to Maven central.

Flyway doesn't seem to have this problem, so for any new work we're using it instead.  From the FAQ at:
https://flywaydb.org/documentation/learnmore/faq
It says:  Flyway uses the locking technology of your database to coordinate multiple nodes. This ensures that even if multiple instances of your application attempt to migrate the database at the same time, it still works. Cluster configurations are fully supported.
I don't have much knowledge in this area, so a naive question might be could Liquibase do the same thing?  It appears to work without a hitch in Flyway, and without any of the workarounds described here.

I have added the following to my code:
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
    try {
        liquibase.forceReleaseLocks();
    } catch (LiquibaseException e) {
        throw new RuntimeException(e);
    }
}));

My expection would be that this releases the lock in case a SIGTERM is received.
To test this, I need to run migrations and send a SIGTERM to the application. Since locally the migrations are generally fast, I needed to enforce a long running operation as part of the migrations. I found two ways:

Make use of the executeCommand operation to then do some kind of sleeping (I used Pythons time.sleep(60)).
<executeCommand timeout="60s" executable="python">
  <arg value="-c"/>
  <arg value="import time; print('Before'); time.sleep(10); print('After');"/>
</executeCommand>

Make use of the sql operation to then do some kind of sleeping (I used PostgreSQL's pg_sleep(60)).
<sql>SELECT pg_sleep(60)</sql>

With these two operations I did some testing:

During the sleep of the operation, when a SIGTERM was received, the executeCommand operation was cancelled/stopped, all changes in the current changeset were rolled back, and the lock was released. (an actual graceful shutdown!)
During the sleep of the operation, when a SIGTERM was received, the sql operation kept running, and actually the changeset was completed, and even changesets coming after it were completed. Only after all changesets were done, the process would end and the lock was removed (though, not sure if this is because of the shutdown hook or just the fact that Liquibase was done executing the migrations).

What is the difference between these two operations in Liquibase, and why is it able to "quit" the executeCommand and stop running migration, while it is not able to stop the sql operation or at least stop the current and subsequent changeset from running?


Keylime user account

Eventually we should port to running what we can under a dedicated user, rather then root.
This is a placeholder issue to track with the view to discussion occurring here first.

will be raised as an enhancement.


[storybook] Create missing stories

Current Behavior

Desired Behavior

Implementation

Acceptance Tests

Mockups

Contributor Guide

🎨 Wireframes and designs for Layer5 site in Figma (open invite)

hey @nebula-aac I wanna work on this but when i'm cd'ing into design-systems and running yarn dev or yarn storybook, i'm getting this following error:
Failed to resolve entry for package "@layer5/sistent-components". The package may have incorrect main/module/exports specified in its package.json
can you help out?

I changed
import { BaseButton } from '@layer5/sistent-components'; to
import { BaseButton } from '@layer5/sistent-components/src/button'; and it's working, idk if this is the correct way to do it tho

seems like adding /src at the end of the import fixes everything, still not sure if its the correct way or not

We haven't submitted an official release so the button you have changed from basebutton to button will need to be built and released

ah got it, can you assign this to me as well?
also do I have to refer to some mockups for stories or not?

actually i'm not experiencing what you said

could be a windows issue?

open pr #68

I will have to test your repo after you change it to review so I can check the imports.
It should be using the direct imports from the built packages, but since we haven't done an official release, doing this internal in a yarn workspace maybe allowing import towards the src directory, instead from the dist directory

yeah sure once i'm done with the stories, i'll change the pr status to review and ping you here, then you can check

by the way @nebula-aac this might become a huge PR as there are a lot of components to cover, should we let it be or do you want to break it down into smaller issues?

just do some here and there

done


Release 1.6.17

I made a mistake during the release process for 1.6.16.

No such luck. The test release fails.
Step #4 - "release-pypitest": WARNING  Error during upload. Retry with the --verbose option for more details.
Step #4 - "release-pypitest": ERROR    HTTPError: 400 Bad Request from https://test.pypi.org/legacy/
Step #4 - "release-pypitest":          File already exists. See https://test.pypi.org/help/#file-name-reuse
Step #4 - "release-pypitest":          for more information.


[ENTESB-7903] camel-salesforce query attributes are not mapped correc…

…tly for Fuse on EAP.
Resolves #2498

retest this please


Vulnerability fix

Merge master commits to develop branch
Upgrading akka-stream to 2.5.16
Upgrading spray json to 1.3.5
Upgrading h2database to 1.4.200

This vulnerability https://snyk.io/vuln/SNYK-JAVA-COMH2DATABASE-31685 has no direct fix available. H2 console can be remotely accessed by default. This can be disabled according to https://github.com/h2database/h2database/issues/1225. There is no config file available in the code base so changes will be done once I get an idea of how H2 is used.

Codacy not enabled in develop branch.


docker recipe

Hi,
I just made an easy to use docker recipe for this project.
https://github.com/torvitas/docker-openpogobot
Feel free to add a Link to the README.md.
Greetings, Sascha

Nice, however the recipe will need modifying as we are doing a drastic overhaul of bot configuration.

As soon as you move to yml I am going to update the recipe.

Hi, I also use docker to run OpenPoGoBot, if you want to take a look my Dockerfile is here https://github.com/eownis/dockerfiles/tree/master/openpogobot and I have an automated build on Docker Hub https://hub.docker.com/r/eownis/openpogobot/

Just updated the docker recipe. Every possible configuration option should now be available via environment variables (readme.md isn't updated yet). I also added an container to run the openpogobotui.


Specs2 matchers for RDDs

For example a forall(p) on the elements of the RDD can be implemented as filter(!p(_)).size === 0, but it would be better to have suitable error messages. This is useful both for batch and for streaming testing

added matcher for forall and exists


moving site data to Google cloud storage

Can y'all just try to break this on staging? https://perf-land.surge.sh/
I think the only differences to users will be that sites now load individually (in parallel), so when you switch multiple sites at once (like loading the page or changing presets), you'll see the charts populate progressively. I'll think of how to address that in the UI later.

after extensive testing, seems to work :)


⚠ Fortnite has degraded performance

In b615599, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1632 ms

Resolved: Fortnite performance has improved in 4b23159.


[flutter_plugin_tools] Add a command to lint Android code

Adds a new lint-android command to run gradlew lint on Android plugins.
Also standardizes the names of the Cirrus tasks that run all the build and platform-specific (i.e., not Dart unit test) tests for each platform, as they were getting unnecessarily long and complex in some cases.
Fixes https://github.com/flutter/flutter/issues/87071
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Note that unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[ ] All existing and new tests are passing.

This is a WIP since the new command will fail on many plugins. @blasten How do you want to proceed here:

--exclude all plugins that fail, and enable them as they are made to work?
Configure all plugins to not fail on error for now via the XML configuration, and remove that as they are fixed up?
Not add it to CI at all yet, get things working locally, then turn it on later?
???

My preference is (1) since it uses the established place for tracking what's currently not turned on, but I can see a good argument for (2) as well given that we'd have output on the bots to work from right away. (We'll need an issues tracking getting it fully running for whatever option we choose, of course.)
Other open questions:

Are there baseline options you want to set for all plugins before turning this on, or do you want to just make adjusting that part of fully opting each plugin into the run?
Are you fine with punting on the XML parser for now, and just showing the partial output that we get by default, and expecting people to run it locally for full details? (There's also a middle-ground option where we parse out the name of the file but rather than parsing it and displaying it prettily, just dump the XML to stdout, so there's complete output in CI.)

Configure all plugins to not fail on error for now via the XML configuration, and remove that as they are fixed up?

abortOnError false in build.gradle  https://developer.android.com/studio/write/lint#gradle wdyt?

Are there baseline options you want to set for all plugins before turning this on, or do you want to just make adjusting that part of fully opting each plugin into the run?

Ideally, plugins don't use baseline files since these are meant to hide existing issues.

Are you fine with punting on the XML parser for now, and just showing the partial output that we get by default, and expecting people to run it locally for full details?

For the time being, could it dump the xml content to stdout?

Configure all plugins to not fail on error for now via the XML configuration, and remove that as they are fixed up?

abortOnError false in build.gradle https://developer.android.com/studio/write/lint#gradle wdyt?

Are there baseline options you want to set for all plugins before turning this on, or do you want to just make adjusting that part of fully opting each plugin into the run?

Ideally, plugins don't use baseline files since these are meant to hide existing issues.

Sorry, by baseline options I meant "are there any non-default lint settings we want to set". E.g., I don't know if there are things that aren't checked by default but we would want to enable.
But looking at baseline files more now that I know of them, that's strictly better than abortOnError false because we'll immediately start getting CI telling us about new failures for all plugins, rather than us having to go back and fix each existing plugin completely before getting any benefit at all for that plugin (since if regressions don't turn CI red we will, realistically, never notice them). So I'll see about setting those up as the interim solution, with an issue filed for removing them.

Are you fine with punting on the XML parser for now, and just showing the partial output that we get by default, and expecting people to run it locally for full details?

For the time being, could it dump the xml content to stdout?

I'll see how the parsed-by-Cirrus options pans out, and fall back to this if it doesn't give us what we need. Hopefully I'll have a new version of the PR up later today.

@blasten Okay, I think this is ready for a full review now. Changes:

Extracted a little helper file for Gradle commands (as I previously did with Xcode) and refactoring existing things to use it (as well as adding unit tests for it). It correctly handles the Windows vs non-Windows Gradle wrapper file name.
Added "GradleDependency" to the ignore list in all plugins; it would be a regular source of out-of-band failures, which we absolutely don't want more of. (You might want to consider setting up a manual process of occasionally doing a trial PR that strips that out of everything and runs CI, to quickly get a list of everything that has dependencies that we might want to update.)
Changed the lint command to only run lint for the plugin module itself, not transitively for everything, to avoid getting failures for things that aren't actually part of the plugin (like https://github.com/flutter/flutter/issues/88005)

I looked at adding app as well, but it seemed like the things it was flagging were likely not that interesting given that they are example apps. You may want to take a look as a follow-up and see if you do want to enable them.

Added baseline files for plugins where necessary to make things green, and filed https://github.com/flutter/flutter/issues/88011 for cleaning them up
Added the Cirrus command to upload, parse, and display the lint results as part of the run summary UI. Seems to work pretty well (you can't really see much now because of the exclusion files, but https://github.com/flutter/plugins/runs/3293114401 is an example from before I did that.

But looking at baseline files more now that I know of them, that's strictly better than abortOnError false

Sounds good
what is the awesome integration that shows linter warnings as GitHub comments in the PR?

what is the awesome integration that shows linter warnings as GitHub comments in the PR?

It's this bit:
https://github.com/flutter/plugins/pull/4206/files#diff-62587956f943bb2503db7bc6dd27d0d888074a1c0ecaab3f570ad611aff0f7bbR182-R186
The format entry causes it to parse and display the results.


⚠ Bofrost.at has degraded performance

In 5805dde, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2337 ms

Resolved: Bofrost.at performance has improved in 0d75dcb.


Godot 3.5: AnimationPlayer Animation window: deleting last track causes spurious error "Index track = N is out of bounds (animation->get_track_count() = N)"

Godot version
v3.5.2.stable.official [170ba337a]
System information
Linux Ubuntu 22.04 with Unity desktop
Issue description
Note: I did not test this with Godot 4, but I don't remember having it on Godot 4 either
When I delete the last track of some animation on my Animation Player in the Animation window, I get the following error:

editor/animation_track_editor.cpp:1850 - Index track = N is out of bounds (animation->get_track_count() = N).

where N is the index of the removed track.
It's as if the index was checked after removing the track instead of before.
Steps to reproduce

Create an AnimationPlayer + some Animation with some tracks
Delete the last track

Minimal reproduction project
N/A

I'm not super familiar with the AnimationTrack editor but I think this is benign. When deleting the AnimationTrackEdit, during the delete the Control::remove_child_notify() sends a _propagate_theme_changed for the some reason.
As part of the theme it checks the track ID within the animation is within range, and it no longer is.
I'm presuming it deletes the track itself from the animation, then calls AnimationTrackEditor::_update_tracks which flags the error.
Simplest thing is to just fail when out of range, but not show error message.

Marked as good first issue as it should just be changing the ERR_FAIL_INDEX to a silent return on the same condition (unless reviewers have another preference to fix).


Kube config files/directories not syncing/being parsed when Bitnami is blocked?

Running OpenLens in an environment where most outbound internet traffic is blocked, an error appears stating that it's been unable to contact Bitnami. If you add the location of kube config files it seems like the settings do not save as if you navigate out of preferences and back again, the changes to the location of kube config files (or directories) have reverted. The only way to get a cluster added was to copy/paste the contents of .kube/config, which is not ideal.
Even though the default setting for kube configs should be fine as it's looking at a directory with a kube config file with cluster details in there, it seems like it doesn't get parsed.
To Reproduce

On a network where accesss to bitnami is restricted go to the Lens preferences
An error will likely pop up saying that bitnami is inaccessible. Add a location of a kube config file or sync a directory.
Close preferences. Note that no clusters are added.
Go back to preferences, see that the kube config/directory sync options have reverted to default.

Expected behavior
I would expect the kube configs to be parsed even if Bitnami isn't accessible.
Environment (please complete the following information):

Lens Version: OpenLens 6.3.0, 6.4.0-alpha.3, 6.4.0-alpha.4
OS: Windows
Installation method (e.g. snap or AppImage in Linux):
https://github.com/MuhammedKalkan/OpenLens

Kubeconfig:
Can't get kubeconfig from this remote machine.

That should have been fixed be fixed by #6837....
Will need to re-verify.


 System Linux 3.13.0-24-generic
gyp ERR! command "/usr/bin/iojs" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/gadget-girl/tiretask/App/testing/node_modules/weak
gyp ERR! node -v v2.4.0
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
npm ERR! Linux 3.13.0-24-generic
npm ERR! argv "/usr/bin/iojs" "/usr/local/bin/npm" "install" "weak"
npm ERR! node v2.4.0
npm ERR! npm  v2.11.1
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the weak package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls weak
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/gadget-girl/tiretask/App/testing/npm-debug.log

Same issue, when using iojs, every package, which want to be built, node-gyp try to download iojs dist from http://nodejs.org/dist/v

At this time, you must use the copy of npm that ships with io.js, otherwise it attempts to download the tarball from nodejs.org rather than iojs.org.


PointLight2D Blend mode Mix doesn't work, causes black shadows, blends wrongly, light colors are off

Tested versions

Reproducible in: v4.2.2.stable.mono.official [15073afe3]

System information
Godot v4.2.2.stable.mono - Linux Mint 21.3 (Virginia) - X11 - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (RADV NAVI23) () - 12th Gen Intel(R) Core(TM) i5-12400F (12 Threads)
Issue description
Godot lights with Add blend mode, when accumulated they add infinitely making the pixels where two or more lights are around way too brighter

changing mode to mix gives such result:

which after changing gradient from black to black + transparent gives this:

which is close but not ideal, for instance, light in the center doesn't light it at all, it's just dark by last light
also turning off modulate canvas with mix lights gives this unwanted black shadows:

which is not ideal for day-night cycle
Changing from White<->Black+Transparent to White<->White+Transparent gradient seems to temporary fix it,
since it looks like this in the night:
But when it's day, all the lights "disappear":

Changing their energy a bit helps lights to be seen in day as well

Though then changing light color becomes hard since color set doesn't match the one shown in inspector and some color's wont be ever reached because how mix blending works

It also looks bad in day
Expected result:
Here's an example from the competition's engine:

It uses blending mode "Multiply" and "Alpha blend" which are not present in Godot
I'd suggesting adding multiply blend mode to Godot
Steps to reproduce
Create new scene with background image for clarity, add CanvasModulate and set it to #4671ff
Spawn PointLight2D, set it's texture to GradientTexture2D with Fill mode Radial as here:

And change that light's blend mode to mixed, duplicate a bunch of times and scatter around close to each other.
Change Gradient from black to black + transparent for other issue, and finally change/reset CanvasModulate to see wrong black shadows from Mix mode
Minimal reproduction project (MRP)
IssueWithLight2D.zip

I think this might be more of a feature proposal for a "Multiply" blend mode for lights.
Taking a look at the MRP every test case scenes to look exactly as expected for the given blend modes.
Do you happen to know more details about how the "Multiply" blend mode should work? Also, is your light in the example image using a greater then 1 color/brightness to add energy to the scene?

In my example image provided the intensity is actually set to 2.96 iirc. (URP 2D)
There is wikipedia's article on blend modes which also does mention Multiply and other effects that would be nice to see as well, such as Screen, Overlay, Soft Light, Hard Light, Lighten Only and Darken Only

Also I noticed a bug while using Mix mode and LightOccluder2D, where if there are many lights, and both cast shadows, their shadow doesn't blend but creates a weird line:


Just want to get in touch

I think you do interesting things, read your blog and apparently played even your very old games online many years ago.

that's nice to know 🙂 like a lot of Flash developers: I moreorless had to stop making games when Adobe and Apple killed Flash. tried a bit to make Web games, but the authoring tools just weren't good enough. I mostly like making games with complex engines or with concepts people haven't seen before. but the addictive nature of the games back then has evolved into a bit of a social problem now. if I make a game again: I will need to find a concept that respects the user's attention and time.
I saw your blog post today. nice analysis!
it's worth knowing that the SD and SDXL scaling_factor (0.18215 and 0.13025 respectively) are kinda… wrong. multiplying latents by this value will not give you a good approximation of a standard Gaussian. what's actually needed is a per-channel scale-and-shift.
OpenAI noticed this, although they computed the scale-and-shift a bit awkwardly (they scale it first the wonky way then compensate).
This will have made it unnecessarily hard for SD to learn the latents. Perhaps it is in some part responsible for the yellow-bias you're seeing. but I have also heard that that's an aesthetic preference (apparently Android phones used a warm colour temperature for their screens at some point, because users prefer warm images, presumably skin tones).
collaborators and myself have measured the true scale-and-shift of SDXL latents, and it is dataset dependent. oxford-flowers has a different distribution to imagenet-1k.
it is interesting to see the theory that channel 3 may be taking more of the responsibility of encoding structure than the other channels. some of the clues here may be useful for deciding how to approach dynamic thresholding.

During inference, the values in the tensor will begin at min < -30 and max > 30 and the min/max boundary at time of decoding is around -4 to 4. At higher guidance_scale the values will have a higher difference between min and max.

looking at min/max can attach too much important to outliers. you might be able to get more representative information about the ranges by looking at the per-channel 99%iles. this will still be image-dependent though (an image with a sky will be more invested in the cyan channel). you'll also want to see how it develops with each sampling step.
the center_tensor thing reminds me a bit of the "mean drift" I was investigating:
https://twitter.com/Birchlabs/status/1632539251890966529
I found that centering the denoised latents on their means on each sampling step, changed the colour temperature and added more high-frequency detail. maybe it influenced a channel responsible for texture. this biased the UNet into predicting more flowers/foliage.
regarding soft_clamp_tensor… I think it's hard to reason about thresholds, since what's normal in a noisy timestep can be abnormal in a low-noise timestep. but yes, I've tried setting per-channel boundaries in my attempts at dynamic thresholding, and it can help, but it's too much to configure and the boundaries will be image-dependent (like do you expect a sky to be present in the image).
overall, I think you've found something that's useful for interactively mastering images. changing colours whilst it's still latent does seem to help keep the colour choices globally coherent. it's interesting that it affects the structure of the image though. maybe need to wait for a later timestep before you start modifying latents.
good work!

Thanks for connecting.
I don't know if you noticed, but I had already put you in the special thanks to section of the blog post.
I use a different implementation than in the blog post. For example in the "interactive demonstration" I used the Z-score method to detect outliers per channel. The next step will be to try DBSCAN.
I also shift towards the center more softly over some steps rather than going to the center immediately.
Do you have Discord? alariansharp_77044 or LinkedIn? https://www.linkedin.com/in/timothy-alexis-vass-50a949213/

yup, saw that; thanks. 🙂 Birchlabs is probably the best way to cite me (matches my Twitter and the website). all the ML stuff on Birchlabs is by me (Alex), but yes that has caused confusion before. Jamie mostly works on React Native / Nativescript stuff and software for studying Japanese. but the name dates back to when we made games together.
I'm not famliar with Z-score or DBSCAN.
looks fairly consistent (cooler colour temperature), but I think the white point isn't consistent; some images are so bright that I think they lose dynamic range.
yup, added you on Discord and on LinkedIn. I mainly use Discord; LinkedIn's messenger hasn't been reliable for me.


TF backend: change zero_debias=False to zero_debias=True

With this change, the code below calculates much more accurate running average of variance. Correct value is 4.0+-0.1
init with 1:
before:  2.93921471
after: 3.88993907
init with 9:
before:  5.79140902
after: 4.08459949
The debias factor is (1-0.99^100)=0.63.
Note that, unfortunately, zero_debias is misnamed by TF. This debias has nothing to do with zero (as is evident from the reading of the Adam paper, where it was introduced, and the experiment above.
Correct formula (Adam paper) if v0 is not necessarily zero-initialized  is
v_t=b^t * v_0 + g^2(1 - b^t * v_0) i.e:
(2.93921471-1*.99^100)/(1-.99^100)=4.05885431742
(5.79140902-9*.99^100)/(1-.99^100)=3.93887277082
The reasons I decided to simpy hardcode it in TF backend only, are:

It always works (AFAIK)
it defaults to "True" in TF backend, I don't want to introduce the difference with it
I don't know how to add iteration count to TH or CNTK (or to TF for that matter) myself, or how to test the changes

from keras.models import Sequential, Model
from keras.layers import Dense, BatchNormalization, Input, concatenate
from keras.initializers import Constant
import numpy as np

m = Sequential([
    BatchNormalization(input_shape=(1,),
                       center=True,
                       scale=True,
                       gamma_initializer=Constant(3),  # variance
                       beta_initializer='zero',    # mean
                       moving_mean_initializer='zero',
                       moving_variance_initializer=Constant(9),
                       epsilon=0.00001,
                       #momentum=0.
    ),
])
m.summary()
print(m.layers[0].weights)

x  = np.random.normal(loc=0, scale=2, size=10000)
print(np.var(x, axis=None), np.mean(x, axis=None))
y  = x

m.compile(optimizer='sgd', loss='mse')
print("Before evaluate:", m.evaluate(x,y))
print(np.array(m.layers[0].get_weights()).ravel())

m.fit(x, y, verbose=1, epochs=1, shuffle=False, batch_size=100,
      validation_data=(x,y))

print("After evaluate:", m.evaluate(x,y))
print(np.array(m.layers[0].get_weights()).ravel())

As I understand it, Keras loses track of these 'shadow variables' that the debias is creating: the debiased estimate, and the number of updates.
I think that means that that means that if you would snapshot to disk, it won't be able to cleanly resume training, as it will lose the internal variables.
Shouldn't this 'debiassing procedure' be something that keras should track in a framework independent way?

Not sure. The debiasing itself is very simple, as long as you get all the needed variables. Not sure about performance implication of doing it in Keras in a framework independent way. It also seems that saving/restoring them is just as easy as other BN variables (see below). But is it a model state (which we save) or solver state (which we don't)? Coming from Caffe, where solverstate was always saved together with the model, not having an easy way to restart training is very awkward. Adding @ahundt, since he knows much more about saving solver state.
If you add
import tensorflow as tf
print(tf.contrib.framework.get_variables())

to the code above, you get:
<tf.Variable 'batch_normalization_1/gamma:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/beta:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_mean:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_variance:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_mean/biased:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_mean/local_step:0' shape=() dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_variance/biased:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization_1/moving_variance/local_step:0' shape=() dtype=float32_ref>,
<tf.Variable 'SGD/iterations:0' shape=() dtype=int64_ref>,
<tf.Variable 'SGD/lr:0' shape=() dtype=float32_ref>
<tf.Variable 'SGD/momentum:0' shape=() dtype=float32_ref>
<tf.Variable 'SGD/decay:0' shape=() dtype=float32_ref>
<tf.Variable 'training/SGD/Variable:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'training/SGD/Variable_1:0' shape=(1,) dtype=float32_ref>

For a good measure, here is what we get in TF, with renorm=True, which is surely (?) coming to Keras
<tf.Variable 'batch_normalization/gamma:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'batch_normalization/beta:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'batch_normalization/moving_mean:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'batch_normalization/moving_variance:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'batch_normalization/renorm_mean:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'batch_normalization/renorm_mean_weight:0' shape=() dtype=float32_ref>
<tf.Variable 'batch_normalization/renorm_stddev:0' shape=(1,) dtype=float32_ref>
<tf.Variable 'batch_normalization/renorm_stddev_weight:0' shape=() dtype=float32_ref>

For example, if you want to resume training as if you never stopped, it is also necessary to save your optimizer weights

This is included when calling model.save(). BN shadow variables aren't.
Should we revert to zero_debias=False?

As a practical matter, zero_debias=True is much better anyway.
Correct value is 4.0+-0.1
init with 9:
before: 5.79140902 (zero_debias=False, after 100 iterations)
after: 4.08459949 (zero_debias=True, after 100 iterations)
after: 4.469429 (zero_debias=True, save/restore, after 1 iteration)
after: 4.1776247 (zero_debias=True, save/restore, after 2 iterations)
after adding the following code to https://github.com/keras-team/keras/pull/9003#issue-286852596
m.save('m.hd5')
m = load_model('m.hd5')
print("After save/load evaluate:", m.evaluate(x,y))
print(np.array(m.layers[0].get_weights()).ravel())
m.fit(x[:100*2], y[:100*2], verbose=1, epochs=1, shuffle=False, batch_size=100,
      validation_data=(x,y))
print("After retraining one iteration:", m.evaluate(x,y))
print(np.array(m.layers[0].get_weights()).ravel())

you still get much better results, compared to zero_debias=False:
10000/10000 [==============================] - 1s 114us/step
Before evaluate: 1.412389886816523e-12
[3. 0. 0. 9.]
Train on 10000 samples, validate on 10000 samples
Epoch 1/1
10000/10000 [==============================] - 1s 56us/step - loss: 0.3202 - val_loss: 0.0128
10000/10000 [==============================] - 1s 53us/step
After evaluate: 0.012844582144916057
[2.0952182e+00 1.9081044e-03 5.5159442e-05 3.9304402e+00]
10000/10000 [==============================] - 1s 60us/step
After save/load evaluate: 0.012844582144916057
[2.0952182e+00 1.9081044e-03 5.5159442e-05 3.9304402e+00]
Train on 200 samples, validate on 10000 samples
Epoch 1/1
200/200 [==============================] - 0s 1ms/step - loss: 0.0630 - val_loss: 0.0298
10000/10000 [==============================] - 0s 46us/step
After retraining one iteration: 0.029765745759010316
[ 2.0926726  -0.00473644 -0.16662167  4.1776247 ]

I'm not a fan of the fact that Keras loses scope of these variables (and on top of that, Horovod multi-gpu gives me troubles when it is zero_debias=True), I'd vote for a reversion, and instead, add this functionality and math to the other backends as well;

Horovod multi-gpu gives me troubles when it is zero_debias=True

What kind of troubles? BN gives me troubles when it is zero_debias=False. The troubles are extensively documented in this PR.
Also, there are claims that zero_debias=True

has statistically significant quality improvements on things like benchmark inception.
https://github.com/tensorflow/tensorflow/issues/6270#issuecomment-274454666

BTW, @kashif, shouldn't we use debiasing for Adam/etc - i.e. where it came from in the first place?


BUG: Remove redundant evaluation of assest.auto_close_date #214

I'm closing this request, due to a better solution on #214


ChefMetal::ConvergenceStrategy::PrecreateChefObjects does not support proxy settings

When a machine to be created needs to use a proxy server for convergence, Chef allows us to write http_proxy, https_proxy, and no_proxy to client.rb.  ChefMetal::ConvergenceStrategy::PrecreateChefObjects#client_rb_content should also include these variables when specified appropriately.

Closing this since the latest version of chef-provisioning supports convergence_options[:bootstrap_proxy] which translate to http_proxy and https_proxy in the client.rb config


Branch add sort

Codecov Report

Merging #134 (d213855) into master (419f641) will decrease coverage by 1.11%.
The diff coverage is 62.64%.

@@             Coverage Diff              @@
##             master     #134      +/-   ##
============================================
- Coverage     75.38%   74.27%   -1.12%
- Complexity      662      701      +39
============================================
  Files            92       99       +7
  Lines          2072     2235     +163
  Branches        254      277      +23
============================================
+ Hits           1562     1660      +98
- Misses          425      478      +53
- Partials         85       97      +12

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

...java/seedu/address/logic/commands/BookCommand.java
87.50% <ø> (-0.50%)
:arrow_down:

...va/seedu/address/logic/commands/CancelCommand.java
77.77% <ø> (-2.23%)
:arrow_down:

...rc/main/java/seedu/address/model/person/Phone.java
72.72% <0.00%> (-7.28%)
:arrow_down:

...address/model/person/HideAppointmentPredicate.java
21.42% <21.42%> (ø)

...ess/model/person/TagContainsKeywordsPredicate.java
28.57% <28.57%> (ø)

...ddress/logic/commands/HideAppointmentsCommand.java
33.33% <33.33%> (ø)

...c/main/java/seedu/address/model/person/Person.java
79.16% <50.00%> (-1.72%)
:arrow_down:

.../seedu/address/logic/parser/AddressBookParser.java
78.37% <60.00%> (-2.88%)
:arrow_down:

...address/model/person/HiddenPredicateSingleton.java
60.00% <60.00%> (ø)

... and 11 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Valid Palindrome

❗Write Code in Only One Language ( CPP , C , Java , Python )
Give File Name :  valid_palindrome  ✅ In respective language folder
📑 DESCRIPTION
Valid Palindrome

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.
Given a string s, return true if it is a palindrome, or false otherwise.
Example 1:
Input: s = "A man, a plan, a canal: Panama"
Output: true
Explanation: "amanaplanacanalpanama" is a palindrome.

Example 2:
Input: s = "race a car"
Output: false
Explanation: "raceacar" is not a palindrome.

Example 3:
Input: s = " "
Output: true
Explanation: s is an empty string "" after removing non-alphanumeric characters.
Since an empty string reads the same forward and backward, it is a palindrome.

Constraints:
~ 1 <= s.length <= 2 * 10^5
~ s consists only of printable ASCII characters.

@vivekPatil45 can uu assign me this work

@vivekPatil45 let me solve it..

@vivekPatil45 Assign this to me

@Mr-Yash-beldar solve it


refactor(router): add assurance details requirement field to google pay metadata

Type of Change

[ ] Bugfix
[ ] New feature
[ ] Enhancement
[x] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description

This PR adds an assurance_details_required field to google pay metadata. This change is required for step-up 3DS google pay.
Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

When given as true, this field motivates stripe to include verification results in the session token flow. If the verification is failed here, we want to detect it and step up the payment to a 3DS payment.
How did you test it?

compiler-guided
Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed the submitted code
[ ] I added unit tests for my changes where possible
[ ] I added a CHANGELOG entry if applicable

Please fix the openapi check


Opened "Demo_MultiCrypto_Trading.ipynb" in colab ran into multiple problems

I was trying to run the multi crypto demo. I made a few changes to get through the first part maybe some of those need to be added. Happy to make a pull request if so. But still not able to get the demo to work.
pip install tushare is missing from install list
In the  "Functions for Training and Testing" block I had to add a directory change for it to find the data_processor
%cd /FinRL-Meta/
from drl_agents.elegantrl_models import DRLAgent as DRLAgent_erl
from drl_agents.rllib_models import DRLAgent as DRLAgent_rllib
from drl_agents.stablebaselines3_models import DRLAgent as DRLAgent_sb3
from finrl_meta.data_processor import DataProcessor
After these changes I was able to get to the training step but got stuck here with this error:
Binance successfully connected
Succesfully add technical indicators
| Arguments Remove cwd: ./test_ppo
################################################################################
ID     Step    maxR |    avgR   stdR   avgS  stdS |    expR   objC   etc.
IndexError                                Traceback (most recent call last)
 in ()
11       erl_params=ERL_PARAMS,
12       break_step=5e4,
---> 13       if_vix=False
14       )
 in train(start_date, end_date, ticker_list, data_source, time_interval, technical_indicator_list, drl_lib, env, model_name, if_vix, **kwargs)
36         trained_model = agent.train_model(model=model,
37                                           cwd=current_working_dir,
---> 38                                           total_timesteps=break_step)
39
40     elif drl_lib == 'rllib':
/FinRL-Meta/drl_agents/elegantrl_models.py in train_model(self, model, cwd, total_timesteps)
79         model.cwd = cwd
80         model.break_step = total_timesteps
---> 81         train_and_evaluate(args=model)
82
83     @staticmethod
/usr/local/lib/python3.7/dist-packages/elegantrl/train/run.py in train_and_evaluate(failed resolving arguments)
39
40         torch.set_grad_enabled(True)
---> 41         logging_tuple = agent.update_net(buffer, batch_size, repeat_times, soft_update_tau)
42         torch.set_grad_enabled(False)
43
/usr/local/lib/python3.7/dist-packages/elegantrl/agents/AgentPPO.py in update_net(self, buffer, batch_size, repeat_times, soft_update_tau)
187             buf_logprob = self.act.get_old_logprob(buf_action, buf_noise)
188
--> 189             buf_r_sum, buf_adv_v = self.get_reward_sum(buf_len, buf_reward, buf_mask, buf_value)  # detach()
190             buf_adv_v = (buf_adv_v - buf_adv_v.mean()) * (self.lambda_a_value / (buf_adv_v.std() + 1e-5))
191             # buf_adv_v: buffer data of adv_v value
/usr/local/lib/python3.7/dist-packages/elegantrl/agents/AgentPPO.py in get_reward_sum_raw(self, buf_len, buf_reward, buf_mask, buf_value)
237         pre_r_sum = 0
238         for i in range(buf_len - 1, -1, -1):
--> 239             buf_r_sum[i] = buf_reward[i] + buf_mask[i] * pre_r_sum
240             pre_r_sum = buf_r_sum[i]
241         buf_adv_v = buf_r_sum - buf_value[:, 0]
IndexError: index 8641 is out of bounds for dimension 0 with size 1

Thanks for reporting it. It is caused by ElegantRL. We are fixing it.

It is updated and should fix the issue with ElegantRL. You may have a try.

Just ran the demo. Thank you! Excited to dig in and see what yall have put together here.


mas de lo ke me -;..(R)

Please read our README.md and CONTRIBUTING.md files before creating an issue. If you are creating an issue to provide feedback about our Closed Policies, please note that we may not incorporate your feedback into our policies due to laws that limit our flexibility around those issues. If your feedback is not related to any of the questions below, feel free to delete the template questions and enter your comments in free form.
1. What's the name of the policy?
2. Is this issue related to a specific section within one of our policies (e.g. the Terms of Service)? If so, please include a link to the section or subsection.
3. Did you already open a pull request? If so, please include a link to the PR in the GitHub Docs repo.
4. Sometimes it's easier to just put your feedback text into an issue. If that's how you'd prefer to contribute, this is the section to do that.
5. Why do you think this section or language needs improvement?

Closing out because this is our empty template. Please open another issue if you'd like to offer feedback on policies governing our site.


Dispose method

Are you open to adding a dispose method to signals? It would unregister all listeners and revert to its initial state.

And in addition how about an onDispose callback for signals, like Riverpod offers this for ProviderRef?

For sure! I actually started work on it already:
https://github.com/rodydavis/signals.dart/blob/main/packages/signals_core/lib/src/core/signal.dart#L73
I didn’t think about reverting to initial state though, good call

And in addition how about an onDispose callback for signals, like Riverpod offers this for ProviderRef?

Should this be an array of callback to call on dispose?

Should this be an array of callback to call on dispose?

An array of Function callbacks would probably make sense, yes.
I just checked the Riverpod code, and there it's the same:
List<void Function()>? _onDisposeListeners;

@override
  @mustCallSuper
  void onDispose(void Function() listener) {
    _assertNotOutdated();
    if (!_mounted) {
      throw StateError('Cannot call onDispose after a provider was dispose');
    }
    _onDisposeListeners ??= [];
    _onDisposeListeners!.add(listener);
  }

Added on 1.0.2 of signals_core

In my demo app i try to use the new onDispose function for a StreamSignal:
final postsStreamSignal = StreamSignal<Post>(debugLabel: 'Posts Stream Signal')..onDispose(() {
  print('disposing postsStreamSignal');
});

The controller which hosts that signal is setup like this:
getIt.registerLazySingleton<PostsStreamController>(() =>
    PostsStreamController(), dispose: (c) => c.dispose(),
);

And the dispose method looks like this:
void dispose() {
  postsStreamSignal.dispose();
  loggedIn.dispose();
}

However i never get to see the defined print message for the disposing postsStreamSignal - whereas the one for the loggedIn signal appears.
Is there something else to do for the StreamSignal being disposed correctly?

This was a bug by not calling the super dispose. Fixing now

Fixed on signals 2.1.5 and signals_core 1.0.3

Works fine now, thank you.