Kong crashing with missing shared dict when specifying custom config.memory.dictionary_name in proxy-cache plugin

Summary
Kong crashing with missing shared dict when specifying custom config.memory.dictionary_name in proxy-cache plugin. Previous versions worked fine. Removing config.memory.dictionary_name from the plugin config works fine, but... I want to use a dedicated dict with a larger size.
Steps To Reproduce

Set env: KONG_NGINX_HTTP_LUA_SHARED_DICT=proxy_cache_storage 128m

Set the proxy-cache conf: config.memory.dictionary_name=proxy_cache_storage:
kong.yml: |-
  _format_version: "1.1"

  services:
  - name: aservice
    host: somehost.com
    path: /
    port: 443
    protocol: https
    routes:
    - name: aroute
      hosts:
      - myhost.com
      paths:
      - /
      preserve_host: false
      protocols:
      - https
      strip_path: false
      https_redirect_status_code: 301
    plugins:
    - name: proxy-cache
      config:
        strategy: memory
        memory:
          dictionary_name: proxy_cache_storage
        content_type:
        - text/plain
        - application/json
        - application/json;charset=utf-8
        - application/json; charset=utf-8
        #cache_control: true
        #storage_ttl: 1
        cache_ttl: 1
      enabled: true
      protocols:
      - https
      - http

Pod env:
env:
- name: KONG_ADMIN_ACCESS_LOG
    value: /dev/stdout
- name: KONG_ADMIN_ERROR_LOG
    value: /dev/stderr
- name: KONG_ADMIN_GUI_ACCESS_LOG
    value: /dev/stdout
- name: KONG_ADMIN_GUI_ERROR_LOG
    value: /dev/stderr
- name: KONG_ADMIN_LISTEN
    value: '<IP_ADDRESS>:8001'
- name: KONG_ANONYMOUS_REPORTS
    value: 'false'
- name: KONG_CLUSTER_LISTEN
    value: 'off'
- name: KONG_DATABASE
    value: 'off'
- name: KONG_DECLARATIVE_CONFIG
    value: /kong_dbless/kong.yml
- name: KONG_LOG_LEVEL
    value: info
- name: KONG_LUA_PACKAGE_PATH
    value: /opt/?.lua;/opt/?/init.lua;;
- name: KONG_MEM_CACHE_SIZE
    value: 2048m
- name: KONG_NGINX_CLIENT_HEADER_BUFFER_SIZE
    value: 32k
- name: KONG_NGINX_HTTP_INCLUDE
    value: /kong/servers.conf
- name: KONG_NGINX_HTTP_LUA_SHARED_DICT
    value: proxy_cache_storage 128m
- name: KONG_NGINX_HTTP_OUTPUT_BUFFERS
    value: 8 64k
- name: KONG_NGINX_LARGE_CLIENT_HEADER_BUFFERS
    value: 4 16k
- name: KONG_NGINX_PROXY_LARGE_CLIENT_HEADER_BUFFERS
    value: 16 128k
- name: KONG_NGINX_WORKER_PROCESSES
    value: '1'
- name: KONG_PORTAL_API_ACCESS_LOG
    value: /dev/stdout
- name: KONG_PORTAL_API_ERROR_LOG
    value: /dev/stderr
- name: KONG_PORT_MAPS
    value: '80:8000, 443:8443'
- name: KONG_PREFIX
    value: /kong_prefix/
- name: KONG_PROXY_ACCESS_LOG
    value: /dev/stdout
- name: KONG_PROXY_ERROR_LOG
    value: /dev/stderr
- name: KONG_PROXY_LISTEN
    value: '<IP_ADDRESS>:8000, <IP_ADDRESS>:8443 http2 ssl'
- name: KONG_STATUS_LISTEN
    value: '<IP_ADDRESS>:8100'
- name: KONG_STREAM_LISTEN
    value: '<IP_ADDRESS>:5702'
- name: KONG_NGINX_DAEMON
    value: 'off'

Checked the kong container, my lua_shared_dict is there:
bash-5.0$ grep -n -B2 -A2 proxy_cache_storage /kong_prefix/nginx-kong.conf
38-include /kong/servers.conf;
39-lua_shared_dict prometheus_metrics 5m;
40=lua_shared_dict proxy_cache_storage 128m;
41-output_buffers 8 64k;
42-ssl_prefer_server_ciphers off;

Error:
2021/01/05 23:06:42 [error] 1#0: init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:474: error parsing declarative config file /kong_dbless/kong.yml:
in 'services':
  - in entry 37 of 'services':
    in 'plugins':
      - in entry 1 of 'plugins':
        in '@entity':
          - in entry 1 of '@entity': missing shared dict 'proxy_cache_storage'
stack traceback:
	[C]: in function 'error'
	/usr/local/share/lua/5.1/kong/init.lua:474: in function 'init'
	init_by_lua:11: in main chunk

Additional Details & Logs

Kong version 2.2.1
Operating system: docker kong/kong:2.2.1 (Alpine Linux)
Deployment: Kubernetes using the official chart, version: 1.8.0

Hi @cristichiru,
I tried to reproduce this with next using:
KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m" \
KONG_DATABASE=off \
KONG_DECLARATIVE_CONFIG=pcache.yaml \
./bin/kong start --vv
``

And it started fine.

pcache.yaml:

```yaml
_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http

And plugin shows correctly:
{
   "data": [
       {
           "config": {
               "cache_control": false,
               "cache_ttl": 1,
               "content_type": [
                   "text/plain",
                   "application/json",
                   "application/json;charset=utf-8",
                   "application/json; charset=utf-8"
               ],
               "memory": {
                   "dictionary_name": "proxy_cache_storage"
               },
               "request_method": [
                   "GET",
                   "HEAD"
               ],
               "response_code": [
                   200,
                   301,
                   404
               ],
               "storage_ttl": null,
               "strategy": "memory",
               "vary_headers": null,
               "vary_query_params": null
           },
           "consumer": null,
           "created_at":<PHONE_NUMBER>,
           "enabled": true,
           "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
           "name": "proxy-cache",
           "protocols": [
               "https",
               "http"
           ],
           "route": null,
           "service": {
               "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
           },
           "tags": null
       }
   ],
   "next": null
}

I even tried :8001/config endpoint too:
$ http :8001/config<EMAIL_ADDRESS>HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 1291
Content-Type: application/json; charset=utf-8
Date: Thu, 07 Jan 2021 21:43:32 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 531

{
    "plugins": {
        "456fb5fd-b269-5bfe-b970-bdac3ee1305e": {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "strategy": "memory"
            },
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            }
        }
    },
    "routes": {
        "583d2e52-dbfc-561a-9c64-eb4bdd717ad9": {
            "created_at":<PHONE_NUMBER>,
            "hosts": [
                "myhost.com"
            ],
            "https_redirect_status_code": 301,
            "id": "583d2e52-dbfc-561a-9c64-eb4bdd717ad9",
            "name": "aroute",
            "path_handling": "v0",
            "paths": [
                "/"
            ],
            "preserve_host": false,
            "protocols": [
                "https"
            ],
            "regex_priority": 0,
            "request_buffering": true,
            "response_buffering": true,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "strip_path": false,
            "updated_at":<PHONE_NUMBER>
        }
    },
    "services": {
        "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b": {
            "connect_timeout": 60000,
            "created_at":<PHONE_NUMBER>,
            "host": "somehost.com",
            "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b",
            "name": "aservice",
            "path": "/",
            "port": 443,
            "protocol": "https",
            "read_timeout": 60000,
            "retries": 5,
            "updated_at":<PHONE_NUMBER>,
            "write_timeout": 60000
        }
    }
}

So we need more information on how to reproduce. @hbagdi / @rainest, do you remember where and how the validation happens on Kubernetes? @cristichiru are you sure this error is from machine that has that KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m" ?

Hi @cristichiru,
I tried to reproduce this with next using:
KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m" \
KONG_DATABASE=off \
KONG_DECLARATIVE_CONFIG=pcache.yaml \
./bin/kong start --vv
``

And it started fine.

pcache.yaml:

```yaml
_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http

And plugin shows correctly:
{
   "data": [
       {
           "config": {
               "cache_control": false,
               "cache_ttl": 1,
               "content_type": [
                   "text/plain",
                   "application/json",
                   "application/json;charset=utf-8",
                   "application/json; charset=utf-8"
               ],
               "memory": {
                   "dictionary_name": "proxy_cache_storage"
               },
               "request_method": [
                   "GET",
                   "HEAD"
               ],
               "response_code": [
                   200,
                   301,
                   404
               ],
               "storage_ttl": null,
               "strategy": "memory",
               "vary_headers": null,
               "vary_query_params": null
           },
           "consumer": null,
           "created_at":<PHONE_NUMBER>,
           "enabled": true,
           "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
           "name": "proxy-cache",
           "protocols": [
               "https",
               "http"
           ],
           "route": null,
           "service": {
               "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
           },
           "tags": null
       }
   ],
   "next": null
}

I even tried :8001/config endpoint too:
$ http :8001/config<EMAIL_ADDRESS>HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 1291
Content-Type: application/json; charset=utf-8
Date: Thu, 07 Jan 2021 21:43:32 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 531

{
    "plugins": {
        "456fb5fd-b269-5bfe-b970-bdac3ee1305e": {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "strategy": "memory"
            },
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            }
        }
    },
    "routes": {
        "583d2e52-dbfc-561a-9c64-eb4bdd717ad9": {
            "created_at":<PHONE_NUMBER>,
            "hosts": [
                "myhost.com"
            ],
            "https_redirect_status_code": 301,
            "id": "583d2e52-dbfc-561a-9c64-eb4bdd717ad9",
            "name": "aroute",
            "path_handling": "v0",
            "paths": [
                "/"
            ],
            "preserve_host": false,
            "protocols": [
                "https"
            ],
            "regex_priority": 0,
            "request_buffering": true,
            "response_buffering": true,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "strip_path": false,
            "updated_at":<PHONE_NUMBER>
        }
    },
    "services": {
        "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b": {
            "connect_timeout": 60000,
            "created_at":<PHONE_NUMBER>,
            "host": "somehost.com",
            "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b",
            "name": "aservice",
            "path": "/",
            "port": 443,
            "protocol": "https",
            "read_timeout": 60000,
            "retries": 5,
            "updated_at":<PHONE_NUMBER>,
            "write_timeout": 60000
        }
    }
}

So we need more information on how to reproduce. @hbagdi / @rainest, do you remember where and how the validation happens on Kubernetes? @cristichiru are you sure this error is from machine that has that KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m" ?

There isn't anything that'd validate this in K8S tooling: it will just pass whatever environment variables you provide (and that apparently worked, given the content of nginx-kong.conf) and attempt to apply whatever declarative config you provide. All validation of the NGINX config and Kong config is up to them (there's some validation of Kong config when using the ingress controller, but none when providing a declarative config directly, as is the case here).

There isn't anything that'd validate this in K8S tooling: it will just pass whatever environment variables you provide (and that apparently worked, given the content of nginx-kong.conf) and attempt to apply whatever declarative config you provide. All validation of the NGINX config and Kong config is up to them (there's some validation of Kong config when using the ingress controller, but none when providing a declarative config directly, as is the case here).

Hi @bungle,
Yes, I am sure it was that machine, as there is only one pod with kong, and the details above were taken directly from the pod runtime.
What else can I provide to help with this?
Thanks.

Hi @bungle,
Yes, I am sure it was that machine, as there is only one pod with kong, and the details above were taken directly from the pod runtime.
What else can I provide to help with this?
Thanks.

I did exactly what you did in a docker container. Surprisingly, it worked. Now I am even more confused.
# docker run --rm -it --name docker-kong kong/kong:2.2.1 bash
bash-5.0$ cd /usr/local/kong
bash-5.0$ export KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m"
bash-5.0$ export KONG_DATABASE=off
bash-5.0$ echo '_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http
' > pcache.yaml
bash-5.0$ export KONG_DECLARATIVE_CONFIG=pcache.yaml
bash-5.0$ kong start -vv                <---- success!!!

in another shell, docker exec -it -u 0 docker-kong bash:
bash-5.0# apk add httpie
bash-5.0# http :8001/plugins
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 618
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:28:51 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 252

{
    "data": [
        {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "storage_ttl": null,
                "strategy": "memory",
                "vary_headers": null,
                "vary_query_params": null
            },
            "consumer": null,
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "route": null,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "tags": null
        }
    ],
    "next": null
}

Now I am even more confused...

I did exactly what you did in a docker container. Surprisingly, it worked. Now I am even more confused.
# docker run --rm -it --name docker-kong kong/kong:2.2.1 bash
bash-5.0$ cd /usr/local/kong
bash-5.0$ export KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m"
bash-5.0$ export KONG_DATABASE=off
bash-5.0$ echo '_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http
' > pcache.yaml
bash-5.0$ export KONG_DECLARATIVE_CONFIG=pcache.yaml
bash-5.0$ kong start -vv                <---- success!!!

in another shell, docker exec -it -u 0 docker-kong bash:
bash-5.0# apk add httpie
bash-5.0# http :8001/plugins
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 618
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:28:51 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 252

{
    "data": [
        {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "storage_ttl": null,
                "strategy": "memory",
                "vary_headers": null,
                "vary_query_params": null
            },
            "consumer": null,
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "route": null,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "tags": null
        }
    ],
    "next": null
}

Now I am even more confused...

I did exactly what you did in a docker container. Surprisingly, it worked. Now I am even more confused.
# docker run --rm -it --name docker-kong kong/kong:2.2.1 bash
bash-5.0$ cd /usr/local/kong
bash-5.0$ export KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m"
bash-5.0$ export KONG_DATABASE=off
bash-5.0$ echo '_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http
' > pcache.yaml
bash-5.0$ export KONG_DECLARATIVE_CONFIG=pcache.yaml
bash-5.0$ kong start -vv                <---- success!!!

in another shell, docker exec -it -u 0 docker-kong bash:
bash-5.0# apk add httpie
bash-5.0# http :8001/plugins
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 618
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:28:51 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 252

{
    "data": [
        {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "storage_ttl": null,
                "strategy": "memory",
                "vary_headers": null,
                "vary_query_params": null
            },
            "consumer": null,
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "route": null,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "tags": null
        }
    ],
    "next": null
}

Now I am even more confused...

I did exactly what you did in a docker container. Surprisingly, it worked. Now I am even more confused.
# docker run --rm -it --name docker-kong kong/kong:2.2.1 bash
bash-5.0$ cd /usr/local/kong
bash-5.0$ export KONG_NGINX_HTTP_LUA_SHARED_DICT="proxy_cache_storage 128m"
bash-5.0$ export KONG_DATABASE=off
bash-5.0$ echo '_format_version: "1.1"
services:
- name: aservice
  host: somehost.com
  path: /
  port: 443
  protocol: https
  routes:
  - name: aroute
    hosts:
    - myhost.com
    paths:
    - /
    preserve_host: false
    protocols:
    - https
    strip_path: false
    https_redirect_status_code: 301
  plugins:
  - name: proxy-cache
    config:
      strategy: memory
      memory:
        dictionary_name: proxy_cache_storage
      content_type:
      - text/plain
      - application/json
      - application/json;charset=utf-8
      - application/json; charset=utf-8
      #cache_control: true
      #storage_ttl: 1
      cache_ttl: 1
    enabled: true
    protocols:
    - https
    - http
' > pcache.yaml
bash-5.0$ export KONG_DECLARATIVE_CONFIG=pcache.yaml
bash-5.0$ kong start -vv                <---- success!!!

in another shell, docker exec -it -u 0 docker-kong bash:
bash-5.0# apk add httpie
bash-5.0# http :8001/plugins
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 618
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:28:51 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 252

{
    "data": [
        {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
                "request_method": [
                    "GET",
                    "HEAD"
                ],
                "response_code": [
                    200,
                    301,
                    404
                ],
                "storage_ttl": null,
                "strategy": "memory",
                "vary_headers": null,
                "vary_query_params": null
            },
            "consumer": null,
            "created_at":<PHONE_NUMBER>,
            "enabled": true,
            "id": "456fb5fd-b269-5bfe-b970-bdac3ee1305e",
            "name": "proxy-cache",
            "protocols": [
                "https",
                "http"
            ],
            "route": null,
            "service": {
                "id": "cf0edba6-af0d-5df2-9dfd-53ef4ae9392b"
            },
            "tags": null
        }
    ],
    "next": null
}

Now I am even more confused...

Even more confusing.... trying it directly in the running container in k8s...
docker exec -it -u 0 k8s_proxy_my-kong-75f977787c-4nv88_kong_b1d3120a-239f-4e33-a863-23bb1ab9dfcd_0 bash
bash-5.0# apk add httpie
bash-5.0# echo '_format_version: "1.1"
> services:
> - name: aservice
>   host: somehost.com
>   path: /
>   port: 443
>   protocol: https
>   routes:
>   - name: aroute
>     hosts:
>     - myhost.com
>     paths:
>     - /
>     preserve_host: false
>     protocols:
>     - https
>     strip_path: false
>     https_redirect_status_code: 301
>   plugins:
>   - name: proxy-cache
>     config:
>       strategy: memory
>       memory:
>         dictionary_name: proxy_cache_storage
>       content_type:
>       - text/plain
>       - application/json
>       - application/json;charset=utf-8
>       - application/json; charset=utf-8
>       #cache_control: true
>       #storage_ttl: 1
>       cache_ttl: 1
>     enabled: true
>     protocols:
>     - https
>     - http
> ' > pcache.yaml

bash-5.0# http :8001/config<EMAIL_ADDRESS>HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 1291
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:46:32 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 270

{
    "plugins": {
        "456fb5fd-b269-5bfe-b970-bdac3ee1305e": {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
.......................

Even more confusing.... trying it directly in the running container in k8s...
docker exec -it -u 0 k8s_proxy_my-kong-75f977787c-4nv88_kong_b1d3120a-239f-4e33-a863-23bb1ab9dfcd_0 bash
bash-5.0# apk add httpie
bash-5.0# echo '_format_version: "1.1"
> services:
> - name: aservice
>   host: somehost.com
>   path: /
>   port: 443
>   protocol: https
>   routes:
>   - name: aroute
>     hosts:
>     - myhost.com
>     paths:
>     - /
>     preserve_host: false
>     protocols:
>     - https
>     strip_path: false
>     https_redirect_status_code: 301
>   plugins:
>   - name: proxy-cache
>     config:
>       strategy: memory
>       memory:
>         dictionary_name: proxy_cache_storage
>       content_type:
>       - text/plain
>       - application/json
>       - application/json;charset=utf-8
>       - application/json; charset=utf-8
>       #cache_control: true
>       #storage_ttl: 1
>       cache_ttl: 1
>     enabled: true
>     protocols:
>     - https
>     - http
> ' > pcache.yaml

bash-5.0# http :8001/config<EMAIL_ADDRESS>HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 1291
Content-Type: application/json; charset=utf-8
Date: Sat, 09 Jan 2021 02:46:32 GMT
Server: kong/2.2.1
X-Kong-Admin-Latency: 270

{
    "plugins": {
        "456fb5fd-b269-5bfe-b970-bdac3ee1305e": {
            "config": {
                "cache_control": false,
                "cache_ttl": 1,
                "content_type": [
                    "text/plain",
                    "application/json",
                    "application/json;charset=utf-8",
                    "application/json; charset=utf-8"
                ],
                "memory": {
                    "dictionary_name": "proxy_cache_storage"
                },
.......................

Failure

Success

Failure

Success

Still got this issue in kong 2.4.1 😢


scrolling issue if keyboard shown

Hi,
I've found an scroll issue if the EditorView height is greater than the space when the keyboard will shown. Then yo get a strange scrolling issue that overlays other views.
Ive made a fork and edit the RichEditorViewSample project so you can pull and reproduce the issue:
https://github.com/Hendrik44/RichEditorView

Hey, thanks for taking a look at the project 😃
I see 2 things that could be considered problems when running your sample project, and I'm not sure which one you're talking about:
When you input text that goes further than the space allowed, so that it has to scroll:

The upper part of the view escapes the bounds of the view
The scrolling is off, and appears below the keyboard

For 1, all you have to do is set the RichEditorView, or its superview to clip its subviews, and it should be fine.
Number 2 actually isn't a bug, because it works the same way as UITextView -- when you input more text, it scrolls so that the text is visible on the bottom of the view, not necessarily above the keyboard.
Let me know if that answers your question 👍

Thanks for your fast reply. Solution one worked for me 👍
But if the keyboard was shown and the editor has no content, why i can scroll? Doesn't the editorview update the contentsize if the keyboard will shown?

Oh I see, that's interesting. I actually don't know why it's doing that, and it fixes itself if you input some text. I don't do anything when the keyboard is shown, so it might be something going on underneath in the actual UIWebView.

Test.zip
In your sample Project i can't also reproduce the the scroll behavior and it just fixed when you input some text. So I've  made a Xcode Testproject, so you can check the scroll behavior.

I'm not sure if this bug still exists, but scrolling has been an issue for a long time, so I made a megathread about it. Sorry, but I'm going to close this issue and consolidate scrolling problems into that one.


Do not consider regular space as superscript / subscript space

The first commit contains some minor code quality improvements.
The second commit fixes #5112.

If I understand correctly, this will disable typographic superscripts completely if there's a space, right? That's kind of unfortunate considering the space doesn't really need a separate glyph to be shrinkable.

Indeed. There was more discussion on Discord on whether the typographic script feature even makes sense. I can revert the second commit and keep only the code quality improvements if you want (or close the PR completely).

We can keep the code quality improvements and discuss the rest for 0.13.

Done

Thanks!


Fix Kibana app on lobid labs

Currently, I don't get access when clicking on the link from slide 156 of the SWIB18 workshop: http://kibana.labs.lobid.org/

it's deactivated because of security issues

It's running again. Closing.


omega jobs failed to start, if cfg4py_server_role is not set
Assignees: zillionare
Labels:

#30, #31 has removed cfg4py_server_role check, however, it's not completed.

fixed in 1f5e1a5d811fe782fea9f96ac63d466ce5e2972c


Bad type inference from return type

TypeScript Version:  2.2.1 / nightly (2.2.0-dev.201xxxxx)
Code
function flatMap<ItemType, ProjectedItemType>(projectorFn: (item: ItemType) => ProjectedItemType[]): (aggregate: ProjectedItemType[], item: ItemType) => ProjectedItemType[] {
	return (aggregate: ProjectedItemType[], current: ItemType) => aggregate.concat(projectorFn(current) || []);
}

['alice', 'bob'].reduce(flatMap(name => name.split('')), []);
['alice', 'bob'].reduce(flatMap<string, string>(name => name.split('')), []); // this works fine

Expected behavior:
TypeScript compiler should infer that type of name is string.
Actual behavior:
Compiler error: Property 'split' does not exist on type '{}'.

You have to provide some information for TS to infer types, otherwise it wouldn't know what name is.
for example
// <ItemType extends string>

declare function flatMap<ItemType extends string, ProjectedItemType>(projectorFn: (item: ItemType) => ProjectedItemType[]): (aggregate: ProjectedItemType[], item: ItemType) => ProjectedItemType[];

['alice', 'bob'].reduce(flatMap(name => name.split('')), []);

or
// (name: string) => name.split('')

declare function flatMap<ItemType, ProjectedItemType>(projectorFn: (item: ItemType) => ProjectedItemType[]): (aggregate: ProjectedItemType[], item: ItemType) => ProjectedItemType[];

['alice', 'bob'].reduce(flatMap((name: string) => name.split('')), []);

@ikatyang I know, but it would be nice if compiler could work out type of name from return type.
reduce expects (something[], string): something[] function and flatMap returns (ProjectedItemType[], ItemType): ProjectedItemType[]. When compiler doesn't know what is ItemType as assumes that it's {}, it could use that knowledge to infer that ItemType is string.

Duplicate of #15680. Fixed by #16072.

Automatically closing this issue for housekeeping purposes. The issue labels indicate that it is unactionable at the moment or has already been addressed.


Cline can't edit its own system prompt

Which API Provider are you using?
OpenRouter
Which Model are you using?
Claude 3.5 Sonnet
What happened?
I was trying to get Cline to edit some of its own code, but it got stuck trying to write src/core/prompts/system.ts when it got to the <write_to_file> section.
Steps to reproduce

Check out the latest Cline code
Open the cline folder in VSCode
Ask Cline to Add a rule "you must always speak in Pig Latin" to src/core/prompts/system.ts

Expected result: Rule gets added
Actual result: File gets truncated in the section
Usage:
<write_to_file>
<path>File path here</path>
<content>
Your file content here
</content>
</write_to_file>

Relevant API REQUEST output
No response
Additional context
No response

i wonder if https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit can be merged into cline's source code
related from https://discord.com/channels/1275535550845292637/1275535550845292640/1315321771033104516
@SniperMunyShotz wrote:

this is a pretty nice extension, think someone here made it not sure, but ctrl shift p, type file split, enter and bam done, nice for large file to give to cline https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit

i replied:

@qpd-v why is https://github.com/qpd-v/codesplit private?
meanwhile, github links in https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit are broken

I'll make it public as soon as I get home. Thanks for bringing it to my attention. I meant to do that previously!
-qpdv
----- Original Message -----
From: lloydchang @.>
To: cline/cline @.>
Cc: qpdv @.>,  Mention @.>
Date: Sun, 08 Dec 2024 14:45:49 -0800
Subject: Re: [cline/cline] Cline can't edit its own system prompt (Issue #832)

i wonder if https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit can be merged into cline's source code
related from https://discord.com/channels/1275535550845292637/1275535550845292640/1315321771033104516
@SniperMunyShotz wrote:

this is a pretty nice extension, think someone here made it not sure, but ctrl shift p, type file split, enter and bam done, nice for large file to give to cline https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit

i replied:

@qpd-v why is https://github.com/qpd-v/codesplit private?
meanwhile, github links in https://marketplace.visualstudio.com/items?itemName=qpdv.Codesplit are broken

--
Reply to this email directly or view it on GitHub:
https://github.com/cline/cline/issues/832#issuecomment-2526419265
You are receiving this because you were mentioned.
Message ID: @.***>

Fixed with diff edits!


Prevent redeploying of apps that were deployed with no memory parameter when —workload-memory-default is changed.

acorn version v0.5.0+7a4904c7
Current behavior when —workload-memory-default is set to a different value  (using acorn install) is to  redeploy all existing workloads that were created with no memory parameters.
Ideal behavior would be to prevent redeployment of apps  in this case.

As discussed, this should be addressed as part of the ComputeClass work

@jsilverio22 going to kick this one your way to pick up after other tasks

@cjellick My ComputeClass PR already addresses this. #1183

Specifically this commit if that helps:
https://github.com/acorn-io/acorn/pull/1183/commits/5a16789179b913886b9c330494d70e3c18544aab

Oh great. Take this issue back

Tested with acorn version v0.6.0-rc1-6-gb57d7f88+b57d7f88
When —workload-memory-default  is set to a different value (using acorn install) , all existing workloads that were created with no memory parameters do not get redeployed.
When the app gets updated explicitly (using acorn run --update or acorn update) , the new memory default gets applied as expected.


UniFi UXG - Failed To Get Default Route Interface

Hi Guys,
I am seeing the following error when trying to install on a Unifi UXG Pro, is there any clues as to how this can be resolved?
root@UXG-PRO-###-###-01:~# sh -c 'sh -c "$(curl -sSL https://api.controld.com/dl)" -s ##HIDDEN## forced'
---------------------
|    System Info    |
---------------------
OS Type      : linux
OS Vendor    : ubios
OS Version   : <IP_ADDRESS>46
Router Model : UniFi NeXt-Gen Gateway PRO
Arch         : aarch64
CPU          : Cortex-A57
Free RAM     : 445 MB / 1997 MB
---------------------
|  Install Details  |
---------------------
Resolver ID  : ##HIDDEN##
Binary URL   : https://assets.controld.com/ctrld/linux/arm64/ctrld
Install Path : /data/controld
---------------------
 - Starting download
 - Making binary executable
 - Launching /data/controld/ctrld
---------------------
Jan  3 00:50:47.098 NTC Starting service
Jan  3 00:50:48.183 NTC Generating controld config: /etc/controld/ctrld.toml
Jan  3 00:50:49.033 ERR ctrld service may not have started due to an error or misconfiguration, service log:
Jan  3 00:50:49.033 ??? ================================
Jan  3 00:50:49.033 ??? Jan  3 00:50:49.008 FTL failed to get default route interface error="defaultRouteFromNetlink: Dial: setsockopt: protocol not available"
Jan  3 00:50:49.033 ??? ================================
Jan  3 00:50:49.676 FTL failed to get default route interface error="defaultRouteFromNetlink: Dial: setsockopt: protocol not available"
root@UXG-PRO-###-###-01:~#

The device does have 2 WAN interfaces and an additional Backup 5G WAN.
root@UXG-PRO-###-###-01:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
<IP_ADDRESS>        192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    <IP_ADDRESS>         <IP_ADDRESS>   U     30     0        0 vti64
65.XXX.XXX.0      <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 eth0	**WAN 1
100.XXX.XXX.0      <IP_ADDRESS>         <IP_ADDRESS>     U     0      0        0 eth1	**WAN 2
XXX.XXX.XXX.128 <IP_ADDRESS>         <IP_ADDRESS> U     0      0        0 gre1	** BACKUP 5G WAN
XXX.XX.XXX.118  192.168.10.XXX  <IP_ADDRESS> UGH   1      0        0 br10
<IP_ADDRESS>     192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>     192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>    192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>   192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>   192.168.10.XXX  <IP_ADDRESS>   UG    1      0        0 br10
<IP_ADDRESS>   <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 br0
<IP_ADDRESS>   <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 br20
root@UXG-PRO-###-###-01:~#

@z1ucas Thanks for reporting.
Does /data/unifi exist in your system?

@cuonglm No that doesn't exist. Below is the contents of the /data directory :
controld/
dpi-tracer/
udapi-config/
ui-db/
uxgpro-setup/
wifiman/

@cuonglm No that doesn't exist. Below is the contents of the /data directory :
controld/ dpi-tracer/ udapi-config/ ui-db/ uxgpro-setup/ wifiman/

Thanks, that explains the failure.
ctrld is checking for /data/unify to detect it's running on Ubios.
Probably we need a better way for this checking.

ctrld is checking for /data/unifi to detect it's running on Ubios.
Probably we need a better way for this checking.

Ok, So I just created the /data/unifi directory and its now installed successfully.

@z1ucas is this a fresh installation of UniFi UXG?

@z1ucas What does this command return? ubnt-device-info summary

@yegors
Device information summary:
Subsystem ID: ea19
Family: UniFi NeXt-Gen Gateway (UXG)
Model: UniFi NeXt-Gen Gateway Pro (UXG-Pro)
Default MAC address: e4:38:83:78:5f:59
Default IPv4 address: <IP_ADDRESS>
Firmware: 3.1.16 (3.1.16)

Thanks!
@cuonglm ^ thats your anchor

Thanks!
@cuonglm ^ thats your anchor

We can't use ubnt-device-info summary, because that binary is not available during boot time when ctrld was started by system service manager.

@yegors @cuonglm FYI I have a UXG Lite as well and the same issue existed. To get past it in the interim I added the /data/unifi directory :
Device information summary:
Subsystem ID: a677
Family: UniFi NeXt-Gen Gateway (UXG)
Model: UniFi NeXt-Gen Gateway Lite (UXG)
Default MAC address: XX:XX:XX:XX:XX:XX
Default IPv4 address: <IP_ADDRESS>
Firmware: 3.2.11 (3.2.11)

@z1ucas Could you please try .dev domain and see if the issue was fixed?
Thank you.

This should be fixed after #138

Apologies, I’ve only just got to this message. I’ll also check it out and install on a UXG device. If there are any problems I’ll reply back.On 5 Mar 2024, at 04:37, Cuong Manh Le @.***> wrote:
This should be fixed after #138
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

@z1ucas I assume all good?

No, I’m having a few problems on both UXG Lite and I’m having intermittent DNS issues on the UXG Pro. DNS seems to stop responding on both UXG Lite requiring the daemon to be shut down. Upon restarting the daemon it’s instantly unresponsive.I’m trying to pinpoint what is going on. I’ll post back errors that I’m seeing here in about 15 mins.On 9 Mar 2024, at 03:46, Yegor S @.***> wrote:
@z1ucas I assume all good?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

That doesn't seem related to the issue thread. If you have other problems, open a new issue and collect debugging data while it's in the broken state: https://github.com/Control-D-Inc/ctrld/wiki/Troubleshooting-Guide

That doesn't seem related to the issue thread. If you have other problems, open a new issue and collect debugging data while it's in the broken state: https://github.com/Control-D-Inc/ctrld/wiki/Troubleshooting-Guide

I am pretty sure it is related. I have been trying to work out why DOH, DOH3 and DOQ stopped working on all my PRO and LITE UXG devices when upgrading. The first error that I am seeing is :
Mar  9 09:03:31.988 ERR could not init Ubios discover error="fork/exec /usr/bin/mongo: no such file or directory"
It does look related to my initial query in relation to detecting what the device is.
After that, a range of error messages appear, depending on what you try to do with the config. I should note that it is impossible to install using a config hosted at ControlD, the following error occurs :
Mar  9 01:21:01.968 ??? ================================
Mar  9 01:21:01.969 ??? An error occurred while performing test query: read udp <IP_ADDRESS>:46581-><IP_ADDRESS>:5354: i/o timeout
Mar  9 01:21:01.969 ??? ================================
Mar  9 01:21:01.970 ??? ctrld service was running, but a DNS query could not be sent to its listener
Mar  9 01:21:01.970 ??? Please check your system firewall if it is configured to block/intercept/redirect DNS queries
Mar  9 01:21:01.970 ??? ================================
Mar  9 01:21:17.214 NTC Service uninstalled

Once I take the exact same config hosted at ControlD it's possible to start it locally with DOQ, but DOH and DOH3 must be removed from the config or it won't start. Even though it starts with DOQ - no DNS queries are successful.

Also, during the install the following is being displayed, which is different than what we've seen in the previous builds. Not sure if this makes a difference. Lite then Pro :
---------------------
|    System Info    |
---------------------
OS Type      : linux
OS Vendor    : ubios
OS Version   : <IP_ADDRESS>39
Router Model : Gateway Lite
Arch         : aarch64
CPU          : Kryo V2
Free RAM     : 178 MB / 974 MB
---------------------
|  Install Details  |
---------------------
Resolver ID  : #REMOVED#
Binary URL   : https://dl.controld.com/linux-arm64/ctrld
Install Path : /data/controld

---------------------
|    System Info    |
---------------------
OS Type      : linux
OS Vendor    : ubios
OS Version   : <IP_ADDRESS>39
Router Model : Gateway Pro
Arch         : aarch64
CPU          : Cortex-A57
Free RAM     : 141 MB / 1997 MB
---------------------
|  Install Details  |
---------------------
Resolver ID  : #REMOVED#
Binary URL   : https://dl.controld.com/linux-arm64/ctrld
Install Path : /data/controld

If you created /data/unifi, does v1.3.4 binary work for you?
 I am not sure if the UXG devices have done a firmware update at around the same time 1.3.4 and 1.3.5 was released. I am going to test 1.3.4 from scratch and will provide the results shortly.

So, I did find the culprit and I’m not sure why it has a range of issues associated with it.
I have UniFi Magic Site active across 3 locations. After the upgrade to either 1.3.4 or 1.3.5 the following line which is referenced from the configuration docs causes Site 2 and Site 3 to stop working (if it was running) or fail to start CtrlD if it wasn’t running / or being installed - when Site 1 has CtrlD running or is commanded to start up. Site 2 and 3 are behind a firewall/router and Site 1 has the Public IP :
An empty upstream would not route the request to any defined upstreams, and use the OS default resolver.

[listener.0.policy]
name = "OS Resolver"

rules = [
    {"*.local" = []},
]

I am not 100% sure what it is doing, but the .local rule is definitely causing a range of different issues.
Site 2 and 3 work perfectly if Site 1 doesn’t have CtrlD running, but as soon as Site 1 tries to start CtrldD with this rule all 3 sites begin failing.
Removing the rule from Site 1 allowed all sites to start and run CtrlD, though I removed it from all 3 sites in any case.


FastLane 2.124 FastlaneCore::Interface::FastlaneCrash: [!] Could not retrieve response as fastlane runs in non-interactive mode

New Issue Checklist

[X] Updated fastlane to the latest version 2.124
[X] I read the Contribution Guidelines
[X] I read docs.fastlane.tools
[X] I searched for existing GitHub issues

Issue Description

Yesterday we started seeing this error in 2.124.  We ran our build locally using version 2.123 and everything works successfully.  This failure started happening after fastlane was updated in the build to 2.124.
Command executed

Complete output when running fastlane, including the stack trace and command used

[20:38:24]: Resetting iPhone 8
[20:38:25]: App Identifier:
[20:38:26]: -------------------
[20:38:26]: --- Step: slack ---
[20:38:26]: -------------------
[20:38:26]: Successfully sent Slack notification
+----------------------------+---------------------------+
|                      Lane Context                      |
+----------------------------+---------------------------+
| DEFAULT_PLATFORM           | ios                       |
| PLATFORM_NAME              | ios                       |
| LANE_NAME                  | ios test_without_building |
| SCAN_DERIVED_DATA_PATH     | ./DerivedData             |
| SCAN_GENERATED_PLIST_FILES | []                        |
| SCAN_GENERATED_PLIST_FILE  |                           |
+----------------------------+---------------------------+
[20:38:26]: Could not retrieve response as fastlane runs in non-interactive mode
+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 💥   | run_tests        | 16          |
| 3    | slack            | 0           |
+------+------------------+-------------+
[20:38:26]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
➡  Supply isn't working on CI with Google auth .p12 files
https://github.com/fastlane/fastlane/issues/14128 [closed] 2 💬
6 weeks ago
➡  gitlab-runner exec shell result FastlaneCrash
https://github.com/fastlane/fastlane/issues/13675 [closed] 4 💬
24 Feb 2019
➡  [!] Could not retrieve response as fastlane runs in non-interactive mode (FastlaneCore::Interface::FastlaneCrash)
https://github.com/fastlane/fastlane/issues/12355 [closed] 10 💬
19 Nov 2018
and 34 more at: https://github.com/fastlane/fastlane/search?q=Could not retrieve response as fastlane runs in non-interactive mode&type=Issues&utf8=✓
🔗  You can ⌘ + double-click on links to open them directly in your browser.
bundler: failed to load command: fastlane (<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/bin/fastlane)
FastlaneCore::Interface::FastlaneCrash: [!] Could not retrieve response as fastlane runs in non-interactive mode
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane_core/lib/fastlane_core/ui/interface.rb:129:in crash!'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb:155:in verify_interactive!'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb:128:in input'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in method_missing'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/scan/lib/scan/runner.rb:43:in test_app'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/scan/lib/scan/runner.rb:22:in run'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/scan/lib/scan/manager.rb:18:in work'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/actions/run_tests.rb:23:in run'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:256:in block (2 levels) in execute_action'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in execute_action'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:235:in block in execute_action'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:227:in chdir'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:227:in execute_action'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/fast_file.rb:154:in method_missing'   Fastfile:60:in block (2 levels) in parsing_binding'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/lane.rb:33:in call'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:49:in block in execute'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:45:in chdir'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/runner.rb:45:in execute'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/lane_manager.rb:56:in cruise_lane'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/command_line_handler.rb:36:in handle'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/commands_generator.rb:108:in block (2 levels) in run'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in call'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in run'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in run_active_command'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in run!'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in run!'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/commands_generator.rb:333:in run'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/commands_generator.rb:41:in start'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in take_off'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/gems/fastlane-2.124.0/bin/fastlane:23:in <top (required)>'
<our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/bin/fastlane:23:in load'   <our_workspace_dir>/<our_job_name>/vendor/bundle/ruby/2.5.0/bin/fastlane:23:in <top (required)>'

Environment

 NOTE: I added the 'fastlane env' command to one of our other jobs to get output.  Not sure if you need information specifically from the fastfile in the failing build, or just the info about the system.

fastlane env
[09:18:19]: fastlane detected a Gemfile in the current directory
[09:18:19]: however it seems like you don't use bundle exec
[09:18:19]: to launch fastlane faster, please use
[09:18:19]:
[09:18:19]: $ bundle exec fastlane env
[09:18:19]:
[09:18:19]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[09:18:22]: Generating fastlane environment output, this might take a few seconds...

✅ fastlane environment ✅
Stack

Key
Value

OS
10.13.6

Ruby
2.5.0

Bundler?
false

Git
git version 2.17.2 (Apple Git-113)

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.13.6 (17G65)

Ruby Lib Dir
/usr/local/Cellar/ruby/2.5.0_1/lib

OpenSSL Version
OpenSSL 1.0.2n  7 Dec 2017

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
10.1

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.124.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.2.0

slack-notifier
2.3.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

terminal-table
1.8.0

multipart-post
2.0.0

word_wrap
1.0.0

public_suffix
2.0.5

babosa
1.0.2

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

unf
0.1.4

domain_name
0.5.20180417

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

gh_inspector
1.1.3

mini_magick
4.5.1

multi_xml
0.6.0

security
0.1.3

xcpretty-travis-formatter
1.0.0

bundler
1.16.1

nanaimo
0.2.6

colored2
3.1.2

claide
1.0.2

CFPropertyList
3.0.0

atomos
0.1.3

xcodeproj
1.9.0

unicode-display_width
1.6.0

plist
3.5.0

addressable
2.6.0

tty-screen
0.7.0

tty-cursor
0.7.0

tty-spinner
0.9.1

excon
0.64.0

faraday
0.15.4

unf_ext
<IP_ADDRESS>

fastimage
2.1.5

json
2.2.0

rubyzip
1.2.3

dotenv
2.7.2

faraday_middleware
0.13.1

naturally
2.2.0

simctl
1.6.5

httpclient
2.8.3

jwt
2.2.1

multi_json
1.13.1

signet
0.11.0

os
1.0.1

memoist
0.16.0

googleauth
0.6.7

mime-types-data
3.2019.0331

mime-types
3.2.2

retriable
3.1.2

declarative-option
0.1.0

declarative
0.0.10

uber
0.1.0

representable
3.0.4

google-api-client
0.23.9

digest-crc
0.4.1

google-cloud-env
1.0.5

google-cloud-core
1.3.0

google-cloud-storage
1.16.0

emoji_regex
1.0.1

openssl
2.1.0

date
1.0.0

fileutils
1.0.2

mini_portile2
2.4.0

nokogiri
1.10.3

ipaddr
1.2.0

psych
3.0.2

generated on: 2019-05-31

[09:18:22]: Take notice that this output may contain sensitive information, or simply information that you don't want to make public.

Can you run the same lane locally and see if it prompts you for something?
Can you please share your Fastfile? Especially around line 60 if I read that trace correctly.

Hey @janpio here is the section from the Fastfile.  Let me know if you need more.
desc "Run tests without building"
lane :test_without_building do
run_tests(
  clean: false,
  configuration: "Debug",
  derived_data_path: @derived_data_path,
  scheme: @test_scheme,
  skip_slack: true,
  reinstall_app: true,
  reset_simulator: true,
  test_without_building: true,
  workspace<EMAIL_ADDRESS>)

end

Running the lane locally would be the simplest way to find out what is happening.
And to the snippet you posted: Which one is line 60?

Apologies.  edited with line numbers.


Raspberry Pi error: numpy.ndarray size changed

I tried to install Kijiji-Reposter on a Raspberry Pi.
I get the following error when I start the program:
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 44 from C header, got 40 from PyObject
Details:
pi@raspberrypi:~/Kijiji-Reposter $ python server.py
Traceback (most recent call last):
  File "/home/pi/Kijiji-Reposter/server.py", line 5, in <module>
    import pgeocode
  File "/home/pi/.local/lib/python3.9/site-packages/pgeocode.py", line 14, in <module>
    import pandas as pd
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/__init__.py", line 22, in <module>
    from pandas.compat import (
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/compat/__init__.py", line 15, in <module>
    from pandas.compat.numpy import (
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/compat/numpy/__init__.py", line 7, in <module>
    from pandas.util.version import Version
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/util/__init__.py", line 1, in <module>
    from pandas.util._decorators import (  # noqa
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/util/_decorators.py", line 14, in <module>
    from pandas._libs.properties import cache_readonly  # noqa
  File "/home/pi/.local/lib/python3.9/site-packages/pandas/_libs/__init__.py", line 13, in <module>
    from pandas._libs.interval import Interval
  File "pandas/_libs/interval.pyx", line 1, in init pandas._libs.interval
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 44 from C header, got 40 from PyObject
pi@raspberrypi:~/Kijiji-Reposter $

I suppose that the Raspberry Pi was probably not a 'target device'. I just want to report the problem in case a simple/quick fix exists...
It is probably related to processor architecture (32 bits versus 64 bits).

This issue is related to pandas usage of numpy. Both are dependencies of pgeocode. This issue is beyond the scope of the kijiji-reposter. Your best bet is to check with the devs of pgeocode and open an issue there to see if they have a raspberry pi compatible build.


Possibility to configure generation namespace name

Problem
The readme of the project states:
Several aspects of the generated code can be customized, including:

....
The namespace that declares all interop types
...

But I can't find this setting for the NativeMethods.json or in GeneratorOptions.
I ran across a problem when using the generator when my code is inside a namespace that contains .Windows.
For example, writing Windows.Win32.Foundation.LRESULT results in VS attempting to find Win32.Foundation.LRESULT inside my own namespace Engine.Windowing.Windows. And emit an The type or namespace name 'Win32' does not exist in the namespace 'Engine.Windowing.Windows'. error.
Solution
It would be awesome if we could change the default namespace name. If I were to change it from Windows.Win32 to something like CsWin32 that solves the problem.

Thanks for bringing the doc to our attention. We used to allow customizing the namespace but removed it, leaving the doc behind. It turned out to create problems, particularly when multiple metadata inputs are used with CsWin32 together.
But you can solve your problem by adding global:: in front of the namespace. You can even create an alias for it to make it more convenient. For example at the top of your code file (or as a global using in just one file so it applies to your entire project):
using win32 = global::Windows.Win32;

Then everywhere you can use win32.Foundation.LRESULT and it will resolve correctly. I hope that helps.

Thank you, creating an alias is exactly what I did. If customizing the namespace created problems, then doing this is instead is completely fine for me.


Close file right after rotation

This PR supersedes #312 and includes a trivial fix for an unmatched function return that makes dialyzer cranky.

:+1: 063d628549b9bd1ec934f3be4ae715e8a17e6bb4

@borshop merge


Scheduled page publishing

Describe the feature you'd like
Hi @ssddanbrown ,
We are currently seeking an option within BookStack to schedule changes or the publication of new pages. In other words, when someone creates or edits a page, the user can set a future date and time for the changes to become active. Additionally, we are looking for an option to unpublish a page. Would it be possible to integrate these features into BookStack for all users if there is significant interest, or can we request this as a paid service?
Kind regards,
Michel
Describe the benefits this would bring to existing BookStack users
see above
Can the goal of this request already be achieved via other means?
No
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundamental request

How long have you been using BookStack?
1 to 5 years
Additional context
No response

Hi @mschoon85, Thanks for the request.

Would it be possible to integrate these features into BookStack for all users if there is significant interest

To be honest I've seen very little, or no, demand for these features over the last 9 or so years so I don't think they'd be worth supporting and therefore I would not look to implement or maintain a contribution for these features.

or can we request this as a paid service?

No, such a service is not provided and we don't like to have money direct the platform. Some more information on this in our FAQ here.

Hi @ssddanbrown
Thanks for the explanation! When I review your Enterprise Support Plan, I see the option for 'Active assistance for API integrations & platform extension.' Is that a possibility?
Kind regards,
Michel

@mschoon85  The "'Active assistance for API integrations & platform extension" is provided as consultation & support to your existing developer/IT team in building custom instance-specific integrations & platform extension solutions. It is not a build service, nor something that offers to implement features in the core project.

You could use the API endpoint for pages, https://hackstack.tm.l3harris.com/api/pages/{id}, and use a PUT request to move the page from a hidden "staging" book to a publicly accessible book. The timing and firing of the API request can be handled through any number of automation or scheduling programs. All that would need to be specified would be the page ID, the book ID (and potentially chapter ID), and a time. Everything else could be quite easily automated for your particular use-case.

IDK if you are looking at this but you can also just use permissions to achieve.  Yes it is a manual thing but can be achieved.  Include with it the use of tags and you can make things slightly easier on yourself.


Update seed data

Staging and Demo had different Office.id values for the bristol
office.  This allows each environment to locate the correct ID and
link it.

Fine, no issues

Merging...


errorLoadRemote runtime hook is getting overridden in nextjs-mf plugin

Describe the bug
I am trying to use the new errorLoadRemote hook with the latest nextjs-mf plugin but I think the hook is getting overridden here and I am not being able to return a simple custom text to replace the component that failed to load.

I don't fully understand all the things that the internal runtimePlugin definition is doing but I would be willing to help if anyone can point me in the right direction.
Reproduction
https://github.com/ryok90/nextjs-mf-examples/tree/main/next14.1.0-mf8.1.7-error-hook
Used Package Manager
npm
System Info
System:
    OS: macOS 14.2.1
    CPU: (10) arm64 Apple M2 Pro
    Memory: 55.41 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.10.0 - ~/.nvm/versions/node/v20.10.0/bin/node
    Yarn: 1.22.21 - ~/.nvm/versions/node/v20.10.0/bin/yarn
    npm: 10.2.3 - ~/.nvm/versions/node/v20.10.0/bin/npm
    pnpm: 8.14.2 - ~/.nvm/versions/node/v20.10.0/bin/pnpm
  Browsers:
    Chrome: 120.0.6099.234
    Safari: 17.2.1

Validations

[X] Read the docs.
[X] Read the common issues list.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Module federation issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

I'm curious what happens if there are two plugins that both declare a errorLoadRemote hook. This hook appears to be intended to resolve with a fallback module, but it doesn't appear to pass the module to the next handler like a middleware would. Does it just take the first/last one it finds and return it?
I'm wondering because I would like to add some custom logging for when a remote module doesn't load, but I can see that the default runtime plugin defined in nextjs-mf is already returning a fake module and I don't want to override that behavior.
UPDATE: it looks like it just takes the last one because I'm seeing the logs but I'm not returning a fake module so I'm getting a TypeError. Is there a way to pass the returned module from the previous plugin into the next so that I can use that if it's available?

yeah send me a pr removing them, happy to silence it.
also @2heal1 what are your thoughts about chaining or calling next() on runtime plugins if there's a case like this where multiple plugins call the same hooks?

Closing this one since my PR got merged.


build using<EMAIL_ADDRESS>fails

[ ] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
build process fails with the following error:
<EMAIL_ADDRESS>Attempted import error: 'styleFunctionSx' is not exported from '@material-ui/system'.
Expected Behavior 🤔
build process should complete:
it does with the main 4.11.3 release
Steps to Reproduce 🕹
Steps:
1.clone my repo
2. npm install
3. npm install @material-ui/core@deprecations
4. npm start
Context 🔦
I am trying to test my site for deprecations for v5.
Your Environment 🌎
System:
OS: Windows 8.1 6.3.9600
Binaries:
Node: 14.15.4 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.10 - ~\AppData\Roaming\npm\yarn.CMD
npm: 6.14.10 - C:\Program Files\nodejs\npm.CMD
Browsers:
Chrome: 88.0.4324.96
npmPackages:
@material-ui/core: ^4.11.3-deprecations.0 => 4.11.3-deprecations.0
@material-ui/icons: ^4.11.2 => 4.11.2
@material-ui/styles:  4.11.3
@material-ui/system:  4.11.3
@material-ui/types:  5.1.0
@material-ui/utils:  4.11.2
@types/react:  17.0.0
react: ^17.0.1 => 17.0.1
react-dom: ^17.0.1 => 17.0.1

@dan-mba Thanks for giving a try, I'm releasing a fix. We should have published the @material-ui/system package too.

@dan-mba Thanks for giving a try, I'm releasing a fix. We should have published the @material-ui/system package too.

https://github.com/mui-org/material-ui/releases/tag/v4.11.3-deprecations.1

https://github.com/mui-org/material-ui/releases/tag/v4.11.3-deprecations.1


fix: notification tooltip indicator color

This breaks the indicator for non-primary colors, I think it looks fine how it is?


Joss review: Need more documentation on poetry. Also, deprecate pip install instructions

I see that the developers have used poetry as the means of inviting development. However, I think there need to be step by step instructions on how to use poetry for contribution. Forgive my ignorance, but I could not follow the current instructions to get a version of this package set up on my machine. I would recommend that the developers add the setup.py file in addition to poetry for this reason.
https://github.com/openjournals/joss-reviews/issues/4588

In particular I think you need to explicitly state that poetry is a replacement for setup.py. And you need to mention that the command poetry install replaces pip install -e.

@kanishkan91 we have instructions for installation in dev mode both in the CONTRIBUTING.md (short version) as well as the extended contributing guide (long version), both explaining the installation of poetry. I see that for users familiar with setup.py, this might be a bit confusing. I've altered the descriptions in both files at the appropriate places as follows:

CONTRIBUTING.md: "We use poetry for development and dependency management, which is based on the static pyproject.toml file and replaces setup.py. With poetry, setting up your local dev environment is rather straightforward: [...]"
Contributing Guide: "[...] Luckily, there's a tool called poetry which simplifies this a lot. poetry works with the static pyproject.toml file containing project metadata, and replaces the usage of setup.py files. Thus, the first step is to install poetry! [...]"

Looks great. Thanks for the additions!


An error on ios

After pick or take photo, nothing show up on ios.
It working fine on android, please help~
[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}
Warning: Attempt to present <TOCropViewController: 0x7ff032b99000> on <Xamarin_Forms_Platform_iOS_PlatformRenderer: 0x7ff030cdd130> whose view is not in the window hierarchy!

Same issue


Installing strongswan apt package on ubuntu breaks calico node in microk8s

Scenario: I am trying to move my client servers to L2TP IPsec VPN with network-manager-l2tp package, which has a dependency on strongswan package.
After installation the microk8s (with calico stack) dies terribly.
Details here: https://github.com/ubuntu/microk8s/issues/2410

cc @lwr20 @fasaxc @mgleung @champtar @lmm

@turowicz sorry for missing this - sounds like, from the linked issue, that this is effectively breaking Kubernetes services or just breaking host networking.
I think the first step would be to determine what does work - can your node communicate directly with the control plane / API server nodes via IP? Can it do so via a Service?

I can access the control plane but the pods in other namespaces are unable to do any networking at all.

cc @caseydavenport

I can access the control plane with kubectl but the pods in are unable to do any networking at all.

That's not quite what Casey was asking.  If you ssh into the nodes, can they talk to the kubernetes apiserver service?  Can they talk to the control plane node IPs directly?

I am trying to set up a VPN. Strongswan is a dependency apt package.

Yes sorry, I understand that, but we need to know where the networking is breaking down. You'll need to dig in to see if strongswan is, for example, changing routes, changing firewall policy on the host in some way, or something else, that is disrupting Calico.

As we are dropping microk8s in favour of K3S the problem no longer exists for us.


Update dependencies with vulnerabilities

Update dependencies with vulnerabilities
⚠: this update includes breaking changes to fix:

ws 8.0.0 - 8.17.
cross-spawn <7.0.5

I double-checked; package-lock.json changes do not include a change in lockfile-version

Breaking updates break tests


When calling with --iterations parameter images are not copied/moved to save path

When i run dallecli generation --iterations 4, dallecli creates 4 temporary files in /tmp, but never moves them to ./images (or the path defined with --save-path)
#Expected Behavior
I expect dallecli to respect save path when creating more than one image.

Is this only happening when you use iterations ? Is it saving files correctly when using 0 iterations ? OpenAI's new dalle 3 api which is now a default only allows 1 request at a time. I wonder if that is causing a problem. I will check. Thank you!

/home/carnager/.local/bin/dallecli generate --iterations 0 --save-path "/home/carnager/Pictures/blub.png" --prompt "bear reading multiple books"

creates nothing, which is somewhat expected?
also, shouldn't --save-path define a directory instead of a filename, when using it with itereations parameter? Otherwise each iteration would overwrite the former


Clickables are not aligned to text

Clickable text elements in chat are offset from their visible position.
This remains the same even when legacy chat positioning is turned off.

Updated controllify
1f10122


DR-HPF002S : Incorrect vertical angle limit

DR-HPF002S Vertical angle actually supports -30 to +90 degrees. Currently it only goes from 0 to +90 degrees.

Duplicate of #106


Moved from .org to .nl domain for ease of use

This is all done because the .org is not available in Russia due to RosKomNadzor being a jackass. .nl is just a mirror made by the admins of rutracker

To be perfectly honest, I don't like this solution. Yet, I understand the need for mirrors, even though I think the best solution is still to simply switch DNS to <IP_ADDRESS> to circumvent the ISP block.
Thus, instead of hardcoding one mirror in the script, I'd like to implement a solution that allows to pick one mirror from the pool of all official mirrors.
If you aren't comfortable with doing that yourself, I'll put something together this weekend.
For future reference, official mirrors are:

rutracker.net
rutracker.nl
rutracker.cr

(source)

Switching DNS records could have been a great solution except for the fact that some people are computer illiterate and have no idea how to change it. Also, my provider has a tendency to hardcode its DNS servers because some provider specific services can be accessed only while connected through them.
I think that the best solution here is to simply make the script test if rutracker.org is available, if not either round-robin to one of the mirrors, or just move onto rutracker.nl, then rutracker.cr.
Out of all of these solutions I would choose the latter, it is slower but it has much more redundancy.

The problem of trying to access .org first and then try another one is that it probably will add a huge amount of latency to every request, assuming the first try will have to timeout before we move on to other options.
Just to be sure, can you run the following commands on your end:
nslookup rutracker.org
nslookup rutracker.net
nslookup rutracker.cr
nslookup rutracker.nl

My DNS requests all resolve correctly at rutracker.org because I modified my DNS to be <IP_ADDRESS> + some other rules for my provider.
There is an easier way to check if the domain is not resolved, which is to check for a 451 error code (Wikipedia). This should be almost instant.

I don't think a 451 will be returned if the hostname can't be resolved. However, I have tested it and it seems it fails almost instantly with urlopen error [Errno 11001] getaddrinfo failed, so the 'try every hostname' strategy can work.

Let's try this method first, test it, if it won't work then we could try other methods.

Should be fixed in v1.1. Can you review the changes and confirm?


Allow optionally writing coordinate as JSON in generated dependency graph DOT files

What this PR does / Why we need it:
Special notes for your reviewer:
Does this PR introduce a user-facing change?

@warber @arthurpitman addressed your comments & rebased


cdcon 2021: recruit planning committee (nov. 1 - dec. 11)

https://zoom.us/meeting/register/tJYsde-gqD8tG9cLVSdrrg9OO83U0qCMwHWl

Kick off on the 14th Dec


Set up code coverage in CI

Look at parquet-rs project for inspiration

This is being worked on right now


768- Allow fields to be untyped via a CLI switch

Description
Type mandatoriness (mandation) changes are on by default and there is no means to disable them. This change allows for this process to be disabled via a command line interface (CLI) switch.
Changes

Introduce CLI switch --allow-untyped-fields
Only include the 'type mandatoriness' validator if the CLI switch isn't provided

Issue
Resolves #768

Codecov Report

Merging #831 into master will decrease coverage by 0.08%.
The diff coverage is 8.33%.

@@             Coverage Diff              @@
##             master     #831      +/-   ##
============================================
- Coverage      66.5%   66.42%   -0.09%
  Complexity     1742     1742
============================================
  Files           286      286
  Lines          6058     6067       +9
  Branches        695      697       +2
============================================
+ Hits           4029     4030       +1
- Misses         1781     1789       +8
  Partials        248      248

Impacted Files
Coverage Δ
Complexity Δ

...or/inputs/validation/MultipleProfileValidator.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../deg/generator/guice/ProfileValidatorProvider.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...deg/generator/commandline/GenerateCommandLine.java
27.27% <50%> (+1.46%)
2 <0> (ø)
:arrow_down:

...g/generator/restrictions/DataTypeRestrictions.java
62.85% <0%> (-2.86%)
13% <0%> (-1%)

...nerator/walker/iterator/RouteDecisionIterator.java
100% <0%> (+4%)
10% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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


Create unstyled form component to check basic validation for text input components

Description / User Story
We want to test the basic validation of all our FormComponents that will be part of Release 1.0. As we do not have a form component yet, we have to create an unstyled form component and then implement a logic into it to check if the Text input components within the form that have the prop "required" = TRUE also have a value. The form component also makes use of a Submit Button in form of a TextButton (or IconButton) component to start the validation.

Requirements

none

Acceptance Criteria

[x] Unstyled FormComponent has been build
[x] A Text Input component with required=true has been placed in the form component
[x] The form can be submitted via a TextButton component
[x] After submit, the FormComponent will check if all required components within the form have a value and if not throw an error (the components with missing values also should display the error state)

Background information

It can be the case, that this task will reveal issues with our form components, these issues should be fixed within separate tasks.
Error states are currently a class. They will not be set automatically without a change.
We will add follow-up issues to add these changes also to other form components
We will also have a follow-up task to check more then the "required=true" validation for our components

As discussed yesterday, this issue can be closed. The outcome has been documented in #990 , where we will finalise the implementation for the text input before then tackling the other form components


中文

可以用中文吗

Ok
Copyright© 2024. All contents, typed as text, photograph or attachments, documents, and digital imaging is exclusive property of Sender. All rights reserved by Sender both domestic and international.
Sent from Proton Mail Android
-------- Original Message --------
On 8/18/24 9:19 PM, baoxingan  wrote:

可以用中文吗
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Test builds with CuPy

I've been thinking that on the scope of NEP-18 it will become very important for us to have tests running on PRs with CuPy as well. I know this may be problematic due to the need for CUDA-capable GPU(s).
Is there any discussion towards that end already? Given the resources (mostly hardware, I assume), I'd be happy to help set it up and get at least some testing in place so that we can start getting more confident. If I recollect correctly, I think I've seen some of the existing CuPy tests are failing in upstream.

I think that testing Dask Array + CuPy sounds like a great idea.
For as long as there isn't a nice public GPU-enabled CI system my guess is
that we don't want to attach it to this repository specifically, but
perhaps we can set up a nightly testing suite to run on the NVIDIA
hardware?  cc @mike-wendt (no pressure/rush)
On Sat, Mar 2, 2019 at 4:30 PM Peter Andreas Entschev <
<EMAIL_ADDRESS>wrote:

I've been thinking that on the scope of NEP-18 it will become very
important for us to have tests running on PRs with CuPy as well. I know
this may be problematic due to the need for CUDA-capable GPU(s).
Is there any discussion towards that end already? Given the resources
(mostly hardware, I assume), I'd be happy to help set it up and get at
least some testing in place so that we can start getting more confident. If
I recollect correctly, I think I've seen some of the existing CuPy tests
are failing in upstream.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/4538, or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszB-69WAndUbycnrJUalNHTVIZZwTks5vSvuZgaJpZM4baqFt
.

Nightly builds are a start, but I think it would be better to have CuPy tested for PRs as well. If we want to save time on NVIDIA hardware, it would probably suffice to test only CuPy-related tests there and the rest on the existing CI.

I think we can close this as we now have GPU dask tests running in UCX-Py https://github.com/rapidsai/ucx-py/blob/c923a304e426be90177368781adbbe5fcf943bf7/ci/gpu/build.sh#L107-L116


[WIP]feat(Icon): Adding missing file icons

Adding the following missing file icons...

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


[AutoPR search/resource-manager] typo: search/resource-manager/Microsoft.Search

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4758

Codecov Report

Merging #3988 into restapi_auto_search/resource-manager will decrease coverage by <.01%.
The diff coverage is 82.35%.

@@                           Coverage Diff                            @@
##           restapi_auto_search/resource-manager    #3988      +/-   ##
========================================================================
- Coverage                                 56.71%    56.7%   -0.01%
========================================================================
  Files                                      7649     7649
  Lines                                    158402   158371      -31
========================================================================
- Hits                                      89831    89812      -19
+ Misses                                    68571    68559      -12

Impacted Files
Coverage Δ

...-search/azure/mgmt/search/operations/operations.py
43.75% <0%> (ø)
:arrow_up:

...re/mgmt/search/operations/admin_keys_operations.py
93.33% <100%> (ø)
:arrow_up:

...re/mgmt/search/operations/query_keys_operations.py
90.24% <100%> (-0.12%)
:arrow_down:

...zure/mgmt/search/operations/services_operations.py
77.14% <82.35%> (-0.32%)
:arrow_down:

...cebus/azure/mgmt/servicebus/models/resource_py3.py
55.55% <0%> (-44.45%)
:arrow_down:

...ure/mgmt/servicebus/models/tracked_resource_py3.py
62.5% <0%> (-37.5%)
:arrow_down:

...gmt/servicebus/models/arm_disaster_recovery_py3.py
50% <0%> (+5.55%)
:arrow_up:

...re/mgmt/servicebus/models/arm_disaster_recovery.py
50% <0%> (+5.55%)
:arrow_up:

...t/servicebus/models/migration_config_properties.py
55.55% <0%> (+8.49%)
:arrow_up:

...rvicebus/models/migration_config_properties_py3.py
55.55% <0%> (+8.49%)
:arrow_up:

Continue to review full report at Codecov.

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

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/2901


Update CloudEvent Handling in KFServer

What this PR does / why we need it:
This PR updates the handling of CloudEvent requests to the KFServer.
There were two main issues:

The response CE attributes were just a copy of the request CE attributes. This is incorrect for a couple of reasons:

Each event should have a unique ID
The source and type fields are inherently incorrect
Not usable with Knative Eventing Trigger as the response will match the request filter in the Trigger

A CloudEvent was only returned as a response if the request was a binary CE. If you sent a structured CE then the server would respond with normal a KFServer JSON response.

Now a structured CE request will get a structured CE response

I've also made it so that the CE source and type fields can be changed using environment variables CE_SOURCE CE_TYPE
Users can also optionally merge CE fields if they set the environment variable CE_MERGE to "true"
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #1923
Fixed #1671
Release note:
Update CloudEvent handling
  - Structured CloudEvent requests now get a structured CloudEvent as a response
  - Correctly set CloudEvent id, time, source, type fields
  - Source and type fields can be overwritten by env variables `CE_SOURCE` `CE_TYPE`
  - Optionally merge original CloudEvent request attributes with response attributes with env variable `CE_MERGE`

@yuzisun
Applied your suggestions, thanks

Thanks @markwinter !! Awesome work always.
/approve

/lgtm

@yuzisun
Thanks!


SqlRetryLogicProvider.cs is missing ConfigureAwait(false) on it's awaits

SqlRetryLogicProvider.cs is missing ConfigureAwait(false) on it's awaits which is causing us pains with async deadlocks in web contexts. Is this by design for some reason, if not could you add them, at the moment we have to roll our own, pretty much identical custom retry classes just to work around this issue.

Note that the compiler now includes a diagnostic to check for any await which isn't covered by ConfigureAwait(false) - it's a very good idea to enable this for any library. This is as simple as dropping the following in an .editorconfig into the solution:
# CA2007: Consider calling ConfigureAwait on the awaited task
dotnet_diagnostic.CA2007.severity = error

@alexander-webber I'd appreciate it if you could share a repro app for more investigation and finding other possible issues in the driver.

Hi @alexander-webber
PR #1220 shall address this issue.


feature/load-config-grunt

This pull request for close #4641 , where I separated the grunt settings into JS files

@gitarno there is a trailing comma missing in package.json at line 43.

@Dogfalo please close


UCO Issue 602: Bump UCO to current state of develop

This PR does not require committee processing for merging. It should pass CI and receive an approving review, though.
This PR is part of delivering UCO Issue 602 via the CASE website.

This PR is ready for review and merge.


Make disable plugin work on all plugins

Motivation for changes:
Right now, it's hard or impossible to disable certain plugins like estimators or urlrewriters which don't get configured directly in a task.
Detailed changes:

Creates a new property on the task class called disabled_plugins. A new method, disable_plugin can be called to add to it.
Adds a parameter to get_plugins, exclude, which can be used to easily get a list of plugins with task.disable_plugins being passed as the exclude argument.
Just realized there was disable_urlrewriters plugin. Deprecated that in favor of this
There is a bit of creep here because I realized plugins registered within the test functions were staying registered for every test. Added a new way to register plugins for specific tests using pytest.mark.register_plugin(<args to flexget.plugin.register here>)

TODO:

[ ] Make this work for estimators
[ ] Make it work for parsers
[ ] Make it work for the movie_metainfo plugins?

Thinking the best way is adding a Task.disabled_plugins property and just checking that where appropriate manually. Closing this for now and will write up that way if it becomes important or I get some motivation for it again.


Add RemotePlayInstaller.pkg.

Add the latest version of the "PS4 Remote Play" for the console Sony PlayStation 4 from the official source.

@jpcercal
# remoteplay.dl.playstation.net/remoteplay/module/mac was verified as official when first introduced to the cask

Something like that would suffice (you don't need the https:// prefix).

@jpcercal Thank you and welcome.

Please give provide the download page, so we can verify the download URL.
Next time, please complete the template.

Hey @vitorgalvao, I didn't understand what's missing there from the template.
The download page is this one:
https://remoteplay.dl.playstation.net/remoteplay/lang/en/index.html

I didn't understand what's missing there from the template.

The whole template. It has checkboxes ro mark the steps you need to go through.

Since this is useless without a PS4, it’s considered a driver:

If the software is useless without the peripheral, it’s considered a driver.

Please submit it to caskroom/drivers and include the steps of how to get from playstation.com to that download page (since the download page is already on playstation.net).

Thank you @vitorgalvao, I created a new merge request there https://github.com/caskroom/homebrew-drivers/pull/410.


Improve handling of Custom Resource Client

There are two problems with controller that want to modify their custom resource objects using the special client Fabric8 provides for these operations (MixedOperation interface).

The client gets created in the Operator using a somewhat complicated mechanism, and there is no good way to get hold of the client object in the controller.

The type of the client is horrific abomination of generics, so if I do manage to get it into the controller it looks like this: private MixedOperation<Tomcat, CustomResourceList<Tomcat>, CustomResourceDoneable<Tomcat>, Resource<Tomcat, CustomResourceDoneable<Tomcat>>> tomcatOperations;

One possible solution is to pass the client to the controller in the context object, which solves both problems. The downside is that controllers get the KubernetesClient passed in their constructor so it looks a bit weird to pass the custom resource client in the context.

The workaround for the first problem is to pass the custom resource client to the Controller after it has been registered in the Operator, so the Operator has already created it. Surprisingly the Operator has a getter for these clients.
        KubernetesClient client = new DefaultKubernetesClient(config);
        Operator operator = new Operator(client);

        TomcatController tomcatController = new TomcatController(client);
        operator.registerControllerForAllNamespaces(tomcatController);
        tomcatController.setTomcatOperations(operator.getCustomResourceClients(Tomcat.class));

Should this be closed now?

Should this be closed now?


arangodb cluster version 3.3.13 fails to restart properly on kubenetes after power loss/reboot

My Environment

Version:        3.3.13
Storage Engine: RocksDB
Deployment Mode: Cluster
Deployment Strategy:   ArangoDB Starter in Kubernetes
Configuration: 3 Agents, 3 Coordinators, 3 DBservers
Infrastructure: own
Operating System: Ubuntu 16.04
Total RAM in your machine:  8 GB on each of 3 nodes
Disks in use: HDD all
Used Package: Custom Docker built from yours

Component, Query & Data
Affected feature: Clustered Server setup
Dataset:

Size of your Dataset on disk:

Replication Factor & Number of Shards (Cluster only):

Steps to reproduce

Deploy the cluster, using starter, on Kubernetes
Reboot host systems
Assess the carnage. See this on some nodes: 2019-08-23T16:34:41Z |WARN| Updated cluster config does not contain myself. Rejecting component=arangodb
And this on others:

Does not restart after properly reboot:
Expected result:

v3.3 reached end of life. Does the problem still occur using the latest versions?


webview - webviews should be able to send and receive messages

https://monacotools.visualstudio.com/DefaultCollection/Monaco/_build/results?buildId=172382&view=logs&j=306b2268-2a17-5e97-ab97-f41a26dc5206&t=f99521cb-b554-56f1-45de-e2bc176b0ad3&l=406
1 failing
  1) vscode API - webview
       webviews should be able to send and receive messages:
     Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (D:\a\_work\1\s\extensions\vscode-api-tests\out\singlefolder-tests\webview.test.js)
      at listOnTimeout (node:internal/timers:557:17)

Looks like previously reported in https://github.com/microsoft/vscode/issues/146272

Failed again in https://dev.azure.com/monacotools/Monaco/_build/results?buildId=175392&view=logs&j=9833cdaa-2e92-5f8d-56a8-239fd18fd628&t=9fd0bccc-90ad-5118-165a-bb6fa0e94027&l=410. Pushing a change to disable.

Removed for now with #157155