No Host DNS record found

ISSUE TYPE

Bug Report

Checklist

[yes] .env file is attached
[yes] ./check-config.sh output is added below
[yes]  docker-compose logs output is added below
[no] docker-compose.override.yml is attached (if exists)
[no] Custom configs from cfg/ dir are attached (if exist)
[yes] I've looked through the docs: https://devilbox.readthedocs.io/en/latest/
[yes] I've looked through existing issues: https://github.com/cytopia/devilbox/issues
[yes] I've read troubleshooting: https://devilbox.readthedocs.io/en/latest/support/troubleshooting.html

OS / ENVIRONMENT

Host operating system and version: Ubuntu 20.04.2 LTS
(Windows only) Native Docker or Docker Toolbox: no
Docker version 20.10.3, build 48d30b5
docker-compose version 1.25.0
(Linux) Is SELinux enabled?: no
What git commit hash are you on?: cdfb55ec (HEAD -> master, origin/master, origin/HEAD) Merge pull request #771 from alikon/patch-1

SUMMARY
No Host DNS record found. Add the following to /etc/hosts:
<IP_ADDRESS> wp.loc
arthurl@ub20:~/devilbox$ ping wp.loc
PING wp.loc (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from localhost (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from localhost (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.043 ms
<EMAIL_ADDRESS>in /shared/httpd $ ping wp.loc
PING wp.loc (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from localhost (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from localhost (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.073 ms
STEPS TO REPRODUCE
Just getting "No Host DNS record found. Add the following to /etc/hosts:
<IP_ADDRESS> wp.loc" while the record is configured and fully resolved
EXPECTED BEHAVIOUR
OK status
ACTUAL BEHAVIOUR
ERR:
OTHER INFORMATION
Start command
cd ~arthurl/devilbox && docker-compose stop && docker-compose rm -f && docker-compose up -d

Outputs
$ ./check-config.sh
# ==============================================================================
# Checking git
# ==============================================================================
[SUCC]  git is clean

# ==============================================================================
# Checking .env file
# ==============================================================================
[SUCC]  .env file exists
[SUCC]  .env file is readable
[SUCC]  All variables are present in .env file
[SUCC]  No variables is duplicated in .env file

# ==============================================================================
# Checking .env file values
# ==============================================================================
[SUCC]  All .env file variables have correct values

# ==============================================================================
# Checking required Devilbox core directories exist
# ==============================================================================
[SUCC]  All PHP cfg/ sub directories are present
[SUCC]  All PHP log/ sub directories are present
[SUCC]  All PHP mod/ sub directories are present
[SUCC]  All HTTPD cfg/ sub directories are present
[SUCC]  All HTTPD log/ sub directories are present

# ==============================================================================
# Checking devilbox core directory permissions
# ==============================================================================
[SUCC]  All devilbox directories have correct permissions
[SUCC]  All devilbox directories have correct uid
[SUCC]  All devilbox directories have correct gid

# ==============================================================================
# Checking devilbox core file permissions
# ==============================================================================
[SUCC]  All devilbox files have correct permissions
[SUCC]  All devilbox files have correct uid
[SUCC]  All devilbox files have correct gid

# ==============================================================================
# Checking projects permissions
# ==============================================================================
[SUCC]  All project dirs have correct permissions
[SUCC]  All project dirs have correct uid
[SUCC]  All project dirs have correct gid

# ==============================================================================
# Checking projects settings
# ==============================================================================
[SUCC]  All projects have valid DNS records
[SUCC]  All projects have valid HTTPD_DOCROOT_DIR

# ==============================================================================
# Checking customizations
# ==============================================================================
[NOTE]  [vhost-gen]  Custom Nginx vhost-gen config present in: data/www/wp/

# ==============================================================================
# SUMMARY
# ==============================================================================
[SUCC]  Found no errors
[NOTE]  1 custom configurations applied. If you encounter issues, reset them first.
[INFO]  Ensure to run 'docker-compose stop; docker-compose rm -f' on .env changes or custom configs

$ docker-compose logs
Attaching to devilbox_memcd_1, devilbox_redis_1, devilbox_mongo_1, devilbox_mysql_1, devilbox_pgsql_1, devilbox_httpd_1, devilbox_php_1, devilbox_bind_1
bind_1   | [INFO] Debug level: 2
bind_1   | [INFO] BIND logging: disabled explicitly
bind_1   | [INFO] Using default DNS TTL time: 3600 sec
bind_1   | [INFO] Using default DNS Refresh time: 1200 sec
bind_1   | [INFO] Using default DNS Retry time: 180 sec
bind_1   | [INFO] Using default DNS Expiry time: 1209600 sec
bind_1   | [INFO] Using default DNS Max Cache time: 10800 sec
bind_1   | [INFO] Adding wildcard DNS: *.loc -> <IP_ADDRESS>
bind_1   |
bind_1   | zone loc/IN: loaded serial<PHONE_NUMBER>
bind_1   | OK
bind_1   | [INFO] Not adding any extra hosts
bind_1   | [INFO] DNSSEC Validation: no
bind_1   | [INFO] Adding custom DNS forwarder: <IP_ADDRESS>,<IP_ADDRESS>
bind_1   | [INFO] Starting BIND 9.11.3
httpd_1  | [INFO] Debug level: 2
httpd_1  | [INFO] Runtime debug: 2
httpd_1  | [INFO] Changing user 'nginx' uid to: 1000
httpd_1  | root $ usermod -u 1000 nginx
httpd_1  | [INFO] Changing group 'nginx' gid to: 1000
httpd_1  | root $ groupmod -g 1000 nginx
httpd_1  | [INFO] Setting container timezone to: UTC
httpd_1  | root $ ln -sf /usr/share/zoneinfo/UTC /etc/localtime
httpd_1  | [INFO] Docker date set to: Sat Feb 13 13:16:20 UTC 2021
httpd_1  | [INFO] $WORKER_PROCESSES set to its default value: 'auto'.
httpd_1  | root $ sed -i'' 's/__WORKER_PROCESSES__/auto/g' /etc/nginx/nginx.conf
httpd_1  | [INFO] Setting worker_connections to: 1024
httpd_1  | root $ sed -i'' 's/__WORKER_CONNECTIONS__/1024/g' /etc/nginx/nginx.conf
httpd_1  | [INFO] $DOCKER_LOGS disabled. Logging errors and access to log files inside container.
httpd_1  | [INFO] PHP-FPM: Enabled
httpd_1  | [INFO] PHP-FPM: Server address: <IP_ADDRESS>
httpd_1  | [INFO] PHP-FPM: Server port: 9000
httpd_1  | [INFO] PHP-FPM: Timeout: 180
httpd_1  | [INFO] Main vhost: Enabled
httpd_1  | [INFO] Main vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Main vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Main vhost: SSL CN: localhost,*.localhost,devilbox,*.devilbox,httpd
httpd_1  | [INFO] $MAIN_VHOST_DOCROOT not specified. Keeping default: htdocs
httpd_1  | [INFO] $MAIN_VHOST_TPL not specified. Keeping default: cfg
httpd_1  | [INFO] Main vhost: Enabling httpd status page
httpd_1  | [INFO] Main vhost: Changing status page alias to: /devilbox-httpd-status
httpd_1  | [INFO] Mass vhost: Enabled
httpd_1  | [INFO] Mass vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Mass vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Mass vhost: changing tld to: .loc
httpd_1  | [INFO] Mass vhost: changing document root to: public_html
httpd_1  | [INFO] Mass vhost: changing template dir to: .devilbox
httpd_1  | [INFO] vhost-gen: no customized template found
httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/<IP_ADDRESS>/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/<IP_ADDRESS>/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's|__ENABLE_STATUS__|yes|g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's|__STATUS_ALIAS__|/devilbox-httpd-status|g' /etc/vhost-gen/main.yml
httpd_1  | root $ vhost-gen -n localhost -p /var/www/default/htdocs -t /etc/vhost-gen/templates-main/ -c /etc/vhost-gen/main.yml -o /var/www/default/cfg -v -d -s -m both
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Loading configuration file        (-c): /etc/vhost-gen/main.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Loading vhost template (global)   (-t): /etc/vhost-gen/templates-main/nginx.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Loading vhost template (override) (-o): /var/www/default/cfg/nginx.yml
httpd_1  | vhost-gen: [WARN]  (2021-02-13 13:16:20): Override Vhost template not found: /var/www/default/cfg/nginx.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Creating vhost type: https and http (both)
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Using vhost name: localhost
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Log setting: dir -> True
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Log setting: Not specified
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:20): Vhost config written to: /etc/httpd/conf.d/localhost.conf
httpd_1  | root $ sed -i'' 's|__DOCROOT_SUFFIX__|public_html|g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__TLD__/.loc/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ mkdir -p /etc/httpd/cert/main
httpd_1  | root $ cert-gen -v -c DE -s Berlin -l Berlin -o Devilbox -u Devilbox -n 'localhost' -e 'admin@localhost' -a 'localhost *.localhost devilbox *.devilbox httpd' /ca/devilbox-ca.key /ca/devilbox-ca.crt /etc/httpd/cert/main/localhost.key /etc/httpd/cert/main/localhost.csr /etc/httpd/cert/main/localhost.crt
httpd_1  | $ openssl req -newkey rsa:2048 -sha256 -nodes -extensions v3_req -config <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -keyout /etc/httpd/cert/main/localhost.key -subj '/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=localhost/emailAddress=admin@localhost' -out /etc/httpd/cert/main/localhost.csr
httpd_1  | $ openssl x509 -req -sha256 -extensions v3_req -extfile <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -days 825 -in /etc/httpd/cert/main/localhost.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/main/localhost.crt
httpd_1  | Certificate:
httpd_1  |     Data:
httpd_1  |         Version: 3 (0x2)
httpd_1  |         Serial Number:
httpd_1  |             58:97:f2:92:41:15:a0:a4:38:cd:f4:49:66:1a:7c:17:4e:67:c1:eb
httpd_1  |         Signature Algorithm: sha256WithRSAEncryption
httpd_1  |         Issuer: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = Devilbox Root CA, emailAddress =<EMAIL_ADDRESS>dnQualifier = LXHTpDPFu2XHt59pEIQuZHmWGlQ=
httpd_1  |         Validity
httpd_1  |             Not Before: Feb 13 13:16:21 2021 GMT
httpd_1  |             Not After : May 19 13:16:21 2023 GMT
httpd_1  |         Subject: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = localhost, emailAddress = admin@localhost
httpd_1  |         Subject Public Key Info:
httpd_1  |             Public Key Algorithm: rsaEncryption
httpd_1  |                 RSA Public-Key: (2048 bit)
httpd_1  |                 Modulus:
httpd_1  |                     00:a9:07:d9:ff:98:e6:89:ab:2d:36:90:03:ca:d4:
httpd_1  |                     bd:2a:18:26:ed:2b:79:4a:ce:1f:d1:76:56:8b:e3:
httpd_1  |                     11:ca:36:5f:d9:49:ce:6d:aa:06:08:22:14:99:fc:
httpd_1  |                     d6:d9:96:7c:62:05:4d:8e:49:1c:a1:01:b1:9a:fb:
httpd_1  |                     b6:44:05:6d:32:9d:d9:c6:43:2a:16:9f:93:17:5f:
httpd_1  |                     91:31:36:cc:7b:d7:30:18:90:6b:35:2d:15:96:bd:
httpd_1  |                     e9:13:49:a3:6a:55:d5:b0:96:6d:04:d3:0d:98:3e:
httpd_1  |                     1d:91:64:9b:a2:61:dc:87:6e:38:7d:91:8b:82:a6:
httpd_1  |                     02:dc:5c:06:be:af:f4:9f:c5:3e:c9:e2:58:7b:7a:
httpd_1  |                     48:11:e7:cd:52:f3:e3:d8:6e:50:fb:86:06:4a:71:
httpd_1  |                     5a:99:fa:40:37:db:23:17:ac:e3:fb:61:3b:35:ba:
httpd_1  |                     ad:de:c6:f7:a4:ff:84:27:18:a5:57:65:ee:87:42:
httpd_1  |                     6e:af:f6:fc:21:88:83:bb:33:2a:b4:06:f6:13:75:
httpd_1  |                     01:41:19:14:32:13:12:e5:ef:63:f0:b0:1a:4c:8f:
httpd_1  |                     81:bf:78:7e:42:44:42:1b:68:6d:1f:7d:64:d7:d9:
httpd_1  |                     e9:18:54:f6:48:77:49:dd:f3:b0:3f:77:b4:ff:5d:
httpd_1  |                     68:85:70:b9:94:73:16:23:c5:1f:cb:66:ba:a7:a4:
httpd_1  |                     16:e7
httpd_1  |                 Exponent: 65537 (0x10001)
httpd_1  |         X509v3 extensions:
httpd_1  |             X509v3 Basic Constraints: critical
httpd_1  |                 CA:FALSE
httpd_1  |             X509v3 Subject Key Identifier:
httpd_1  |                 5A:19:CB:B1:DC:30:F2:8B:CB:72:82:66:FD:18:68:BD:88:4C:CF:21
httpd_1  |             X509v3 Key Usage: critical
httpd_1  |                 Digital Signature, Key Encipherment
httpd_1  |             X509v3 Authority Key Identifier:
httpd_1  |                 keyid:2D:71:D3:A4:33:C5:BB:65:C7:B7:9F:69:10:84:2E:64:79:96:1A:54
httpd_1  |                 DirName:/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=Devilbox Root<EMAIL_ADDRESS>httpd_1  |                 serial:1A:AF:A1:8A:CA:F1:D6:AC:09:D7:1D:B5:79:07:AA:6B:E9:4F:82:39
httpd_1  |
httpd_1  |             X509v3 Extended Key Usage:
httpd_1  |                 TLS Web Server Authentication, TLS Web Client Authentication
httpd_1  |             X509v3 Subject Alternative Name:
httpd_1  |                 DNS:localhost, DNS:localhost, DNS:*.localhost, DNS:devilbox, DNS:*.devilbox, DNS:httpd
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |          2b:fe:28:d1:f3:e8:aa:1d:54:e8:b2:48:55:80:b7:61:b0:8d:
httpd_1  |          38:5d:cb:3d:9c:4e:75:48:25:24:59:45:e1:97:7e:f2:6d:3e:
httpd_1  |          ab:8c:06:73:3d:7b:36:b4:cc:d0:bf:22:ef:38:25:9c:a7:9a:
httpd_1  |          01:43:8a:f7:c1:19:18:35:48:90:d0:52:21:64:62:13:3c:6d:
httpd_1  |          84:dd:55:00:2e:71:fa:20:8f:2d:f1:0d:ac:60:8c:ef:63:3c:
httpd_1  |          37:5f:1f:39:0b:51:9e:68:73:8b:77:1c:2c:67:ba:68:28:27:
httpd_1  |          37:33:6e:30:eb:d8:71:e6:b1:5c:29:be:e7:50:73:52:f8:6d:
httpd_1  |          c8:d1:fb:eb:c0:8f:e0:60:47:35:f2:fd:fb:b4:a7:52:fc:18:
httpd_1  |          15:cf:fe:2b:79:6a:be:34:6a:a3:27:f6:ca:4f:87:bb:b3:09:
httpd_1  |          9b:bf:e8:12:4f:8d:bb:6c:ac:c3:90:97:b2:25:94:73:4b:3f:
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.509+00:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"W",  "c":"ASIO",     "id":22601,   "ctx":"main","msg":"No TransportLayer configured during NetworkInterface startup"}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"I",  "c":"NETWORK",  "id":4648601, "ctx":"main","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize."}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"I",  "c":"STORAGE",  "id":4615611, "ctx":"initandlisten","msg":"MongoDB starting","attr":{"pid":1,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"mongo"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"I",  "c":"CONTROL",  "id":23403,   "ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"4.4.3","gitVersion":"913d6b62acfbb344dde1b116f4161360acd8fd13","openSSLVersion":"OpenSSL 1.1.1  11 Sep 2018","modules":[],"allocator":"tcmalloc","environment":{"distmod":"ubuntu1804","distarch":"x86_64","target_arch":"x86_64"}}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"I",  "c":"CONTROL",  "id":51765,   "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Ubuntu","version":"18.04"}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.517+00:00"},"s":"I",  "c":"CONTROL",  "id":21951,   "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"net":{"bindIp":"*"}}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.519+00:00"},"s":"I",  "c":"STORAGE",  "id":22270,   "ctx":"initandlisten","msg":"Storage engine to use detected by data files","attr":{"dbpath":"/data/db","storageEngine":"wiredTiger"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.520+00:00"},"s":"I",  "c":"STORAGE",  "id":22297,   "ctx":"initandlisten","msg":"Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem","tags":["startupWarnings"]}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:21.520+00:00"},"s":"I",  "c":"STORAGE",  "id":22315,   "ctx":"initandlisten","msg":"Opening WiredTiger","attr":{"config":"create,cache_size=7489M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.277+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:277146][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 21 through 22"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.375+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:375131][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 22 through 22"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.471+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:471627][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] Main recovery loop: starting at 21/9984 to 22/256"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.567+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:567399][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 21 through 22"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.624+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:624656][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 22 through 22"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.672+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:672045][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] Set global recovery timestamp: (0, 0)"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.672+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1613222182:672157][1:0x7f7a4aff6ac0], txn-recover: [WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] Set global oldest timestamp: (0, 0)"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.696+00:00"},"s":"I",  "c":"STORAGE",  "id":4795906, "ctx":"initandlisten","msg":"WiredTiger opened","attr":{"durationMillis":1176}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.696+00:00"},"s":"I",  "c":"RECOVERY", "id":23987,   "ctx":"initandlisten","msg":"WiredTiger recoveryTimestamp","attr":{"recoveryTimestamp":{"$timestamp":{"t":0,"i":0}}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.697+00:00"},"s":"I",  "c":"STORAGE",  "id":4366408, "ctx":"initandlisten","msg":"No table logging settings modifications are required for existing WiredTiger tables","attr":{"loggingEnabled":true}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.698+00:00"},"s":"I",  "c":"STORAGE",  "id":22262,   "ctx":"initandlisten","msg":"Timestamp monitor starting"}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.699+00:00"},"s":"W",  "c":"CONTROL",  "id":22120,   "ctx":"initandlisten","msg":"Access control is not enabled for the database. Read and write access to data and configuration is unrestricted","tags":["startupWarnings"]}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.700+00:00"},"s":"W",  "c":"CONTROL",  "id":22167,   "ctx":"initandlisten","msg":"You are running on a NUMA machine. We suggest launching mongod like this to avoid performance problems: numactl --interleave=all mongod [other options]","tags":["startupWarnings"]}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.708+00:00"},"s":"I",  "c":"STORAGE",  "id":20536,   "ctx":"initandlisten","msg":"Flow Control is enabled on this deployment"}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.710+00:00"},"s":"I",  "c":"FTDC",     "id":20625,   "ctx":"initandlisten","msg":"Initializing full-time diagnostic data capture","attr":{"dataDirectory":"/data/db/diagnostic.data"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.713+00:00"},"s":"I",  "c":"NETWORK",  "id":23015,   "ctx":"listener","msg":"Listening on","attr":{"address":"/tmp/mongodb-27017.sock"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.713+00:00"},"s":"I",  "c":"NETWORK",  "id":23015,   "ctx":"listener","msg":"Listening on","attr":{"address":"<IP_ADDRESS>"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:16:22.713+00:00"},"s":"I",  "c":"NETWORK",  "id":23016,   "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.165+00:00"},"s":"I",  "c":"NETWORK",  "id":22943,   "ctx":"listener","msg":"Connection accepted","attr":{"remote":"<IP_ADDRESS>:34020","connectionId":1,"connectionCount":1}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.165+00:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn1","msg":"client metadata","attr":{"remote":"<IP_ADDRESS>:34020","client":"conn1","doc":{"driver":{"name":"mongoc / ext-mongodb:PHP","version":"1.17.2 / 1.9.0"},"os":{"type":"Linux","name":"Debian GNU/Linux","version":"10","architecture":"x86_64"},"platform":"PHP 7.4.1cfg=0x03d156a8e9 posix=200809 stdc=201710 CC=GCC 8.3.0 CFLAGS=\"\" LDFLAGS=\"\""}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.232+00:00"},"s":"I",  "c":"NETWORK",  "id":22943,   "ctx":"listener","msg":"Connection accepted","attr":{"remote":"<IP_ADDRESS>:34062","connectionId":2,"connectionCount":2}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.232+00:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn2","msg":"client metadata","attr":{"remote":"<IP_ADDRESS>:34062","client":"conn2","doc":{"driver":{"name":"mongoc / ext-mongodb:PHP","version":"1.17.2 / 1.9.0"},"os":{"type":"Linux","name":"Debian GNU/Linux","version":"10","architecture":"x86_64"},"platform":"PHP 7.4.1cfg=0x03d156a8e9 posix=200809 stdc=201710 CC=GCC 8.3.0 CFLAGS=\"\" LDFLAGS=\"\""}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.236+00:00"},"s":"I",  "c":"NETWORK",  "id":22943,   "ctx":"listener","msg":"Connection accepted","attr":{"remote":"<IP_ADDRESS>:34066","connectionId":3,"connectionCount":3}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:05.237+00:00"},"s":"I",  "c":"NETWORK",  "id":51800,   "ctx":"conn3","msg":"client metadata","attr":{"remote":"<IP_ADDRESS>:34066","client":"conn3","doc":{"driver":{"name":"mongoc / ext-mongodb:PHP","version":"1.17.2 / 1.9.0"},"os":{"type":"Linux","name":"Debian GNU/Linux","version":"10","architecture":"x86_64"},"platform":"PHP 7.4.1cfg=0x03d156a8e9 posix=200809 stdc=201710 CC=GCC 8.3.0 CFLAGS=\"\" LDFLAGS=\"\""}}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:19.698+00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn3","msg":"Connection ended","attr":{"remote":"<IP_ADDRESS>:34066","connectionId":3,"connectionCount":2}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:19.698+00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn2","msg":"Connection ended","attr":{"remote":"<IP_ADDRESS>:34062","connectionId":2,"connectionCount":1}}
mongo_1  | {"t":{"$date":"2021-02-13T13:17:19.699+00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn1","msg":"Connection ended","attr":{"remote":"<IP_ADDRESS>:34020","connectionId":1,"connectionCount":0}}
pgsql_1  |
pgsql_1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
pgsql_1  |
pgsql_1  | 2021-02-13 13:16:21.327 UTC [1] LOG:  starting PostgreSQL 12.4 (Debian 12.4-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
pgsql_1  | 2021-02-13 13:16:21.372 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
pgsql_1  | 2021-02-13 13:16:21.372 UTC [1] LOG:  listening on IPv6 address "::", port 5432
pgsql_1  | 2021-02-13 13:16:21.375 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
pgsql_1  | 2021-02-13 13:16:21.398 UTC [27] LOG:  database system was shut down at 2021-02-13 13:07:20 UTC
pgsql_1  | 2021-02-13 13:16:21.405 UTC [1] LOG:  database system is ready to accept connections
httpd_1  |          7d:27:cc:5b:05:78:71:29:4e:ed:3a:bd:3e:a0:ee:e4:9e:f9:
httpd_1  |          b7:f7:06:d2:b4:ad:3f:95:32:8b:8f:51:ef:27:d9:21:c5:f3:
httpd_1  |          3a:08:36:ba:d1:a2:93:20:ac:f5:d1:38:f5:2a:2e:ae:cf:79:
httpd_1  |          70:88:88:fe:40:e6:9d:9a:4f:11:33:81:47:d8:f7:ea:d5:41:
httpd_1  |          7e:5e:65:5d
httpd_1  | /etc/httpd/cert/main/localhost.crt: OK
httpd_1  | root $ chown -R 1000:1000 /ca
httpd_1  | [INFO] Starting supervisord: 3.3.5
httpd_1  | 2021-02-13 13:16:21,735 INFO Set uid to user 0 succeeded
httpd_1  | 2021-02-13 13:16:21,737 INFO supervisord started with pid 1
httpd_1  | 2021-02-13 13:16:22,740 INFO spawned: 'httpd' with pid 236
httpd_1  | 2021-02-13 13:16:22,744 INFO spawned: 'watcherd' with pid 237
httpd_1  | 2021-02-13 13:16:23,746 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
httpd_1  | 2021-02-13 13:16:23,746 INFO success: watcherd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
httpd_1  | watcherd: [2021-02-13 13:16:25] Starting daemon.
httpd_1  | $ openssl req -newkey rsa:2048 -sha256 -nodes -extensions v3_req -config <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -keyout /etc/httpd/cert/mass/wp.loc.key -subj<EMAIL_ADDRESS>-out /etc/httpd/cert/mass/wp.loc.csr
httpd_1  | $ openssl x509 -req -sha256 -extensions v3_req -extfile <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -days 825 -in /etc/httpd/cert/mass/wp.loc.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/mass/wp.loc.crt
httpd_1  | Certificate:
httpd_1  |     Data:
httpd_1  |         Version: 3 (0x2)
httpd_1  |         Serial Number:
httpd_1  |             58:97:f2:92:41:15:a0:a4:38:cd:f4:49:66:1a:7c:17:4e:67:c1:ec
httpd_1  |         Signature Algorithm: sha256WithRSAEncryption
httpd_1  |         Issuer: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = Devilbox Root CA, emailAddress =<EMAIL_ADDRESS>dnQualifier = LXHTpDPFu2XHt59pEIQuZHmWGlQ=
httpd_1  |         Validity
httpd_1  |             Not Before: Feb 13 13:16:25 2021 GMT
httpd_1  |             Not After : May 19 13:16:25 2023 GMT
httpd_1  |         Subject: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = wp.loc, emailAddress =<EMAIL_ADDRESS>httpd_1  |         Subject Public Key Info:
httpd_1  |             Public Key Algorithm: rsaEncryption
httpd_1  |                 RSA Public-Key: (2048 bit)
httpd_1  |                 Modulus:
httpd_1  |                     00:a1:d1:53:d5:0d:2f:b6:de:1c:2e:4e:0d:46:76:
httpd_1  |                     4c:4f:6d:f0:38:83:92:ec:ed:78:4a:bf:5e:13:8a:
httpd_1  |                     9b:79:9a:f3:cb:84:61:64:ab:be:ae:af:42:cd:f1:
httpd_1  |                     97:58:ae:fe:d8:73:d1:4d:83:9c:c9:62:d5:cc:cb:
httpd_1  |                     ff:de:d7:e5:3f:52:c9:a7:60:8e:2e:ef:94:3b:b2:
httpd_1  |                     88:36:61:76:6b:69:9c:83:b1:63:04:b8:63:4d:54:
httpd_1  |                     00:aa:04:af:86:2b:a4:06:af:7b:d2:d5:69:b1:1b:
httpd_1  |                     ab:a8:be:43:48:ff:8f:e6:61:39:51:14:08:c8:18:
httpd_1  |                     f7:ce:5a:57:ba:15:20:a7:95:83:ac:14:d6:24:c2:
httpd_1  |                     a8:95:b5:a9:e8:f7:60:12:28:d8:02:40:90:b7:f4:
redis_1  | 1:C 13 Feb 2021 13:16:21.352 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1  | 1:C 13 Feb 2021 13:16:21.352 # Redis version=6.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1  | 1:C 13 Feb 2021 13:16:21.352 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis_1  | 1:M 13 Feb 2021 13:16:21.354 * Running mode=standalone, port=6379.
redis_1  | 1:M 13 Feb 2021 13:16:21.354 # Server initialized
redis_1  | 1:M 13 Feb 2021 13:16:21.354 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1  | 1:M 13 Feb 2021 13:16:21.354 * Ready to accept connections
httpd_1  |                     d8:b5:2d:17:03:93:56:f6:70:27:16:9c:30:a6:3a:
httpd_1  |                     4e:19:c7:fa:b5:2b:c6:84:0a:ef:5c:d5:86:b4:58:
httpd_1  |                     94:63:f9:be:7c:d8:8b:f3:5f:a3:b0:86:d4:f9:08:
httpd_1  |                     0e:57:11:08:c3:52:4e:a4:7f:df:0d:cb:83:66:f8:
httpd_1  |                     79:a7:8c:b7:d9:76:4f:68:5e:cf:f2:17:53:13:28:
httpd_1  |                     91:ba:9a:78:e9:25:28:50:5c:75:17:e7:30:33:3e:
httpd_1  |                     95:33:37:43:7d:bf:ea:f0:d5:22:e2:da:55:65:3d:
httpd_1  |                     63:f1
httpd_1  |                 Exponent: 65537 (0x10001)
httpd_1  |         X509v3 extensions:
httpd_1  |             X509v3 Basic Constraints: critical
httpd_1  |                 CA:FALSE
httpd_1  |             X509v3 Subject Key Identifier:
httpd_1  |                 DE:F2:C9:CC:5B:DF:BC:11:AE:74:BB:65:AE:C7:E2:74:30:FA:8C:13
httpd_1  |             X509v3 Key Usage: critical
httpd_1  |                 Digital Signature, Key Encipherment
httpd_1  |             X509v3 Authority Key Identifier:
httpd_1  |                 keyid:2D:71:D3:A4:33:C5:BB:65:C7:B7:9F:69:10:84:2E:64:79:96:1A:54
httpd_1  |                 DirName:/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=Devilbox Root<EMAIL_ADDRESS>httpd_1  |                 serial:1A:AF:A1:8A:CA:F1:D6:AC:09:D7:1D:B5:79:07:AA:6B:E9:4F:82:39
httpd_1  |
httpd_1  |             X509v3 Extended Key Usage:
httpd_1  |                 TLS Web Server Authentication, TLS Web Client Authentication
httpd_1  |             X509v3 Subject Alternative Name:
httpd_1  |                 DNS:wp.loc, DNS:*.wp.loc
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |          9d:3d:cd:f7:b4:60:51:c1:c9:af:ed:8b:a2:10:40:ba:e6:39:
httpd_1  |          fe:ca:f5:20:b5:83:b5:5f:fd:c9:8b:d4:86:17:98:bd:a7:32:
httpd_1  |          fa:7b:5d:fa:25:82:e7:ff:91:c2:3c:a7:59:f2:13:23:99:c5:
httpd_1  |          ff:60:64:6a:6c:49:0e:20:66:5d:18:b9:ef:39:44:71:48:a0:
httpd_1  |          e3:b4:6b:de:94:84:42:4a:73:16:51:70:94:c4:9c:af:47:3f:
httpd_1  |          54:50:bf:30:61:4f:de:45:36:e4:c9:77:88:56:83:12:6c:2a:
httpd_1  |          d2:7b:df:4c:80:3e:2b:de:f1:cf:ff:cd:ed:19:01:28:17:1f:
httpd_1  |          0e:e7:f5:bb:88:5f:3c:2b:4a:84:ea:f1:e9:e5:e7:bc:fc:28:
httpd_1  |          f6:2f:84:71:c6:ba:e1:ce:0a:06:5e:ff:58:8e:75:ca:85:af:
httpd_1  |          43:b1:49:23:b0:1f:d5:b0:b2:2b:5b:35:0d:c1:57:29:09:d6:
httpd_1  |          60:13:d9:e2:a1:54:7d:51:c7:52:be:d5:1d:15:02:d1:ad:59:
httpd_1  |          2e:1f:a8:8c:22:2d:7d:77:58:7b:00:53:d2:61:87:02:b6:ea:
httpd_1  |          e9:89:ab:b2:f7:f6:97:a3:aa:a9:c3:bf:eb:71:a5:12:72:25:
httpd_1  |          c5:5f:37:dc:7a:79:16:b3:db:54:86:29:07:48:ca:7c:69:ad:
httpd_1  |          2c:99:d8:a2
httpd_1  | /etc/httpd/cert/mass/wp.loc.crt: OK
httpd_1  | $ vhost-gen -p "/shared/httpd/wp" -n "wp" -c /etc/vhost-gen/mass.yml -o "/shared/httpd/wp/.devilbox/" -s -v -m both
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Loading configuration file        (-c): /etc/vhost-gen/mass.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Loading vhost template (global)   (-t): /etc/vhost-gen/templates/nginx.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Loading vhost template (override) (-o): /shared/httpd/wp/.devilbox/nginx.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Creating vhost type: https and http (both)
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Using vhost name: wp.loc
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Log setting: dir -> True
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Log setting: Not specified
httpd_1  | vhost-gen: [INFO]  (2021-02-13 13:16:26): Vhost config written to: /etc/httpd/vhost.d/wp.conf
httpd_1  | watcherd: [2021-02-13 13:16:26] [OK]  ADD: succeeded: /shared/httpd/wp
httpd_1  | 2021/02/13 13:16:26 [notice] 285#285: signal process started
httpd_1  | watcherd: [2021-02-13 13:16:26] [OK]  TRIGGER succeeded: nginx -s stop
httpd_1  | watcherd: [2021-02-13 13:16:26] Using bash loop to watch for changes.
httpd_1  | 2021-02-13 13:16:26,186 INFO exited: httpd (exit status 0; expected)
httpd_1  | 2021-02-13 13:16:27,190 INFO spawned: 'httpd' with pid 320
httpd_1  | 2021-02-13 13:16:28,192 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
mysql_1  | 2021-02-13 13:16:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
mysql_1  | 2021-02-13 13:16:21+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql_1  | 2021-02-13 13:16:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
mysql_1  | 2021-02-13 13:16:22 0 [Note] mysqld (mysqld 10.5.8-MariaDB-1:10.5.8+maria~focal) starting as process 1 ...
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Using Linux native AIO
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Uses event mutexes
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Number of pools: 1
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
mysql_1  | 2021-02-13 13:16:22 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Completed initialization of buffer pool
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: 128 rollback segments are active.
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Creating shared tablespace for temporary tables
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: 10.5.8 started; log sequence number 45382; transaction id 20
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
mysql_1  | 2021-02-13 13:16:22 0 [Note] Plugin 'FEEDBACK' is disabled.
mysql_1  | 2021-02-13 13:16:22 0 [Note] InnoDB: Buffer pool(s) load completed at 210213 13:16:22
mysql_1  | 2021-02-13 13:16:22 0 [Note] Server socket created on IP: '::'.
mysql_1  | 2021-02-13 13:16:22 0 [Warning] 'proxies_priv' entry '@% root@mysql' ignored in --skip-name-resolve mode.
mysql_1  | 2021-02-13 13:16:22 0 [Note] Reading of all Master_info entries succeeded
mysql_1  | 2021-02-13 13:16:22 0 [Note] Added new Master_info '' to hash table
mysql_1  | 2021-02-13 13:16:22 0 [Note] mysqld: ready for connections.
mysql_1  | Version: '10.5.8-MariaDB-1:10.5.8+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
php_1    | [INFO] Debug level: 2
php_1    | [INFO] Changing user 'devilbox' uid to: 1000
php_1    | root $ usermod -u 1000 devilbox 2>/dev/null
php_1    | root $ chown -R devilbox /home/devilbox 2>/dev/null || true
php_1    | root $ chown -R devilbox /var/lib/php/session
php_1    | root $ chown -R devilbox /var/lib/php/wsdlcache
php_1    | root $ chown -R devilbox /var/spool/mail/devilbox
php_1    | root $ chown -R devilbox /etc/supervisor/custom.d
php_1    | [INFO] Changing group 'devilbox' gid to: 1000
php_1    | root $ groupmod -g 1000 devilbox 2>/dev/null
php_1    | root $ chown -R :devilbox /home/devilbox 2>/dev/null || true
php_1    | root $ chown -R :devilbox /var/lib/php/session
php_1    | root $ chown -R :devilbox /var/lib/php/wsdlcache
php_1    | root $ chown -R :devilbox /var/spool/mail/devilbox
php_1    | root $ chown -R :devilbox /etc/supervisor/custom.d
php_1    | [INFO] Setting container timezone to: UTC
php_1    | root $ ln -sf /usr/share/zoneinfo/UTC /etc/localtime
php_1    | [INFO] Setting PHP: timezone=UTC
php_1    | root $ echo 'date.timezone = UTC' > /usr/local/etc/php/conf.d/devilbox-runtime-timezone.ini
php_1    | [INFO] Docker date set to: Sat Feb 13 13:16:20 UTC 2021
php_1    | [INFO] $DOCKER_LOGS set to 0. Logging to files under: /var/log/php
php_1    | [INFO] Make sure to mount this directory in order to view logs
php_1    | root $ chown -R devilbox:devilbox /var/log/php
php_1    | root $ chmod 0755 /var/log/php
php_1    | [INFO] $ENABLE_MAIL set to 2. Enabling postfix catch-all
php_1    | root $ chown devilbox:devilbox /var/log/php
php_1    | root $ chown devilbox:devilbox /var/log/php/mail.log
php_1    | root $ chmod 0644 /var/log/php/mail.log
php_1    | root $ chmod 0644 /var/mail/devilbox
php_1    | root $ chown devilbox:devilbox /var/mail
php_1    | root $ chown devilbox:devilbox /var/mail/devilbox
php_1    | root $ postconf -e 'strict_mailbox_ownership=no'
php_1    | root $ postconf -e 'inet_protocols=ipv4'
php_1    | root $ postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'
php_1    | root $ echo<EMAIL_ADDRESS>devilbox' >> /etc/postfix/virtual
php_1    | root $ newaliases
php_1    | [INFO] Forwarding httpd:80 to <IP_ADDRESS>:80 inside this docker.
php_1    | [INFO] Forwarding httpd:443 to <IP_ADDRESS>:443 inside this docker.
php_1    | [INFO] Forwarding mysql:3306 to <IP_ADDRESS>:3306 inside this docker.
php_1    | [INFO] Forwarding pgsql:5432 to <IP_ADDRESS>:5432 inside this docker.
php_1    | [INFO] Forwarding redis:6379 to <IP_ADDRESS>:6379 inside this docker.
php_1    | [INFO] Forwarding memcd:11211 to <IP_ADDRESS>:11211 inside this docker.
php_1    | [INFO] Forwarding mongo:27017 to <IP_ADDRESS>:27017 inside this docker.
php_1    | [INFO] Enabling 'socat-80-httpd-80' to be started by supervisord
php_1    | [INFO] Enabling 'socat-443-httpd-443' to be started by supervisord
php_1    | [INFO] Enabling 'socat-3306-mysql-3306' to be started by supervisord
php_1    | [INFO] Enabling 'socat-5432-pgsql-5432' to be started by supervisord
php_1    | [INFO] Enabling 'socat-6379-redis-6379' to be started by supervisord
php_1    | [INFO] Enabling 'socat-11211-memcd-11211' to be started by supervisord
php_1    | [INFO] Enabling 'socat-27017-mongo-27017' to be started by supervisord
php_1    | [INFO] Enabling 'rsyslogd' to be started by supervisord
php_1    | [INFO] Enabling 'postfix' to be started by supervisord
php_1    | [INFO] Enabling 'php-fpm' to be started by supervisord
php_1    | root $ find /usr/local/etc/php/conf.d -type f -iname '*.ini' -exec chmod 0644 "{}" \;
php_1    | root $ find /usr/local/etc/php-fpm.d -type f -iname '*.conf' -exec chmod 0644 "{}" \;
php_1    | [INFO] $ENABLE_MODULES set, but empty. Not enabling any PHP modules.
php_1    | [INFO] Disabling the following PHP modules: oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-oci8.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-sqlsrv.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-rdkafka.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-swoole.ini
php_1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.conf
php_1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.cnf
php_1    | root $ chown devilbox:devilbox /var/log/mysqldump-secure.log
php_1    | root $ chown devilbox:devilbox /shared/backups/mysql
php_1    | [INFO] $MYSQL_BACKUP_USER set for mysqldump-secure. Changing to 'root'
php_1    | root $ sed -i'' 's/^user.*/user = root/g' /etc/mysqldump-secure.cnf
php_1    | [INFO] $MYSQL_BACKUP_PASS set for mysqldump-secure. Changing to '******'
php_1    | root $ perl -pi -e 's/^password.*/password = /g' /etc/mysqldump-secure.cnf
php_1    | [INFO] $MYSQL_BACKUP_HOST set for mysqldump-secure. Changing to 'mysql'
php_1    | root $ sed -i'' 's/^host.*/host = mysql/g' /etc/mysqldump-secure.cnf
php_1    | root $ chown devilbox:devilbox /shared/backups
php_1    | root $ chown devilbox:devilbox /shared/httpd
php_1    | root $ chmod 0755 /shared/backups
php_1    | root $ chmod 0755 /shared/httpd
php_1    | root $ cp /ca/devilbox-ca.crt /usr/local/share/ca-certificates/devilbox-devilbox-ca.crt
php_1    | root $ update-ca-certificates
php_1    | Updating certificates in /etc/ssl/certs...
php_1    | 1 added, 0 removed; done.
php_1    | Running hooks in /etc/ca-certificates/update.d...
php_1    | done.
php_1    | [INFO] Starting supervisord
php_1    | 2021-02-13 13:16:25,491 WARN No file matches via include "/etc/supervisor/custom.d/*.conf"
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/php-fpm.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/postfix.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/rsyslogd.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-11211-memcd-11211.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-27017-mongo-27017.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-3306-mysql-3306.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-443-httpd-443.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-5432-pgsql-5432.conf" during parsing
php_1    | 2021-02-13 13:16:25,491 INFO Included extra file "/etc/supervisor/conf.d/socat-6379-redis-6379.conf" during parsing
php_1    | 2021-02-13 13:16:25,492 INFO Included extra file "/etc/supervisor/conf.d/socat-80-httpd-80.conf" during parsing
php_1    | 2021-02-13 13:16:25,492 INFO Set uid to user 0 succeeded
php_1    | 2021-02-13 13:16:25,494 INFO supervisord started with pid 1
php_1    | 2021-02-13 13:16:26,497 INFO spawned: 'rsyslogd' with pid 1471
php_1    | 2021-02-13 13:16:26,500 INFO spawned: 'socat-3306-mysql-3306' with pid 1472
php_1    | 2021-02-13 13:16:26,503 INFO spawned: 'socat-6379-redis-6379' with pid 1473
php_1    | 2021-02-13 13:16:26,506 INFO spawned: 'postfix' with pid 1474
php_1    | 2021-02-13 13:16:26,508 INFO spawned: 'socat-27017-mongo-27017' with pid 1475
php_1    | 2021-02-13 13:16:26,510 INFO spawned: 'php-fpm' with pid 1476
php_1    | 2021-02-13 13:16:26,511 INFO spawned: 'socat-80-httpd-80' with pid 1477
php_1    | 2021-02-13 13:16:26,513 INFO spawned: 'socat-443-httpd-443' with pid 1478
php_1    | 2021-02-13 13:16:26,514 INFO spawned: 'socat-11211-memcd-11211' with pid 1480
php_1    | 2021-02-13 13:16:26,515 INFO spawned: 'socat-5432-pgsql-5432' with pid 1481
php_1    | rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
php_1    | rsyslogd: activation of module imklog failed [v8.1901.0 try https://www.rsyslog.com/e/2145 ]
php_1    | 2021-02-13 13:16:27,636 INFO success: rsyslogd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: socat-3306-mysql-3306 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: socat-6379-redis-6379 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: postfix entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: socat-27017-mongo-27017 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,636 INFO success: socat-80-httpd-80 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,637 INFO success: socat-443-httpd-443 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,637 INFO success: socat-11211-memcd-11211 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2021-02-13 13:16:27,637 INFO success: socat-5432-pgsql-5432 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

Just getting "No Host DNS record found. Add the following to /etc/hosts:
<IP_ADDRESS> wp.loc" while the record is configured and fully resolved

Apart from this quote I don't see any error here. Your ping commands do resolve correctly, so how would one get this error you've quoted?

@cytopia Hello, I'm really sorry about that. I'm getting the error from UI >> Virtual Hosts. Attaching the screenshot as well

@cytopia I've updated Summary to make it more clear

Did you open the UI via http or https?

@cytopia I open with http://my-ip.com/vhosts.php. Just tried with https://my-ip.com/vhosts.php - the same error there.

Can you try with http://localhost/vhosts.php just to see if this yields the same issue

Also, check the console of chrome/FF and the requests which might give some more hints on the request replies.

@cytopia unfortunately, I don't run it locally. it's on my own server in US with public IP address. That's what I got on console:

This took me to the idea to create "<IP_ADDRESS> wp.loc" on my local machine (while previously I configured it on my server)
and now it shows properly

I will need to check how it would be working with real DNS registered name pointed to my server.
Thank you for your help!

Then your /etc/hosts entries (of your local machine) must also have the ip address of your server instead of <IP_ADDRESS>


Fail to build examples using METIS

When I built mfem I used the following command: ~> cd mfem-4.5
~/mfem-4.5> make parallel -j MFEM_USE_METIS_5=YES METIS_DIR=<EMAIL_ADDRESS>but something went wrong
.please how can i solve it

Did you download METIS from https://github.com/mfem/tpls?
You could also try 4.0.3, that's usually less sensitive.

Also, you seem to be mixing the build systems: make parallel ... is a command for the GNU make build system, however, your screenshot shows output from using CMake. If you built MFEM with make parallel ... then to build ex0, just use make ex0 in the examples directory.

thanks @v-dobrev


OshiSysMonitor: Add ability to skip emitting metrics

Description
While running druid in containerized (or any other customized) environments, not all of the metrics emitted by OshiSysMonitor are applicable. This PR adds ability to skip a category of metrics from this monitor so as to reduce computation in calculating/emitting/storing such metrics through specifying druid.monitoring.oshisys.skipEmitting config.
Release note
Ability to skip emitting metrics by category in OshiSysMonitor.

Key changed/added classes in this PR

OshiSysMonitor
MetricsModule

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[x] added documentation for new or modified features or behaviors.
[x] a release note entry in the PR description.
[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

The changes looks reasonable. The property name can be simpler and generic.


PHP: modify php unit test script to allow skipping certain tests

Add if statement around PersistentChannelTests. Run the tests by default. Use command "./run_tests.sh --skip-persistent-channel-tests" to not run the tests.

Verified with the intended behavior.


Signature verification fails in Tableau Desktop

When connecting to an Exasol database using connector tableau-exasol-connector-jdbc-1.0.3.taco with Tableau Desktop 2023.3.0 it fails with the following error:

It looks like the signer certificate in our code signing certificate has expired. We are working on getting a new certificate. As a workaround you can use the connector from source as described in the developer guide.


Crash UWP when change orientation during scan

When I change while scanning the orientation from portarit to landscape, the app crash. UWP App (Win10).
My Code:
`Dim scanner As MobileBarcodeScanner
Dim optionen = New MobileBarcodeScanningOptions
        scanner = New MobileBarcodeScanner(Dispatcher)
        scanner.Dispatcher = Dispatcher

        optionen.PossibleFormats = New List(Of ZXing.BarcodeFormat) From {ZXing.BarcodeFormat.All_1D}
        'optionen.TryHarder = True
        optionen.AutoRotate = True

        'Tell our scanner to use the default overlay
        scanner.UseCustomOverlay = False

        'We can customize the top and bottom text of our default overlay
        scanner.TopText = "Hold camera up to barcode and tap on screen for focus"
        scanner.BottomText = "Press the 'Back' button to Cancel"
        scanner.AutoFocus()
        scanner.CameraUnsupportedMessage = "Camera not supported."

        Dim result = Await scanner.Scan(options:=optionen)
        If result IsNot Nothing Then

            txtSearchBarcode.Text = result.Text
            Call Number()

        End If`

This is the exception message I get from the debugger:

System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Forms.Platform.UWP.ButtonRenderer.<>c__DisplayClass9_0.b__0(Object sender, RoutedEventArgs args)

The only workaround I found is to lock the orientation of the device.

We have submitted a pull to fix this issue. Pull #478 fixes this. Stil waiting for the final commit

Thanks for reporting this issue!  Unforunately it took me way too long to respond 😭.  Sorry, I apologize!  Recently the source code for this project was completely refactored to modernize it.  Many PR's were included in this effort, and many bugs were hopefully fixed.  Please try out the latest 3.x series of NuGet packages (currently in prerelease).  To try and make the project more maintainable in my spare time going forward, I've decided to close all existing issues to start with a clean slate.  If you're still experiencing this issue on the newest version, please open a new issue with as much detail as possible.  Thank you for your patience and understanding!  Happy scanning!


Issues using terminal with another game loop

First, thanks for this library! I've enjoyed reading your RLTK tutorial, and while I've built other games, it has inspired me to dip a toe into roguelike development.
I'm trying to use Bracket with Bevy. My first goal is to use either curses or crossterm, then scale up from there. So I don't want to use Bracket's game loop, but want to integrate it with Bevy, and wrap whatever terminal logic it needs in Bevy systems.
I've currently got this code, and it behaves differently in different scenarios. The code:
// use bevy::prelude::*;
use bracket_lib::prelude::*;

// fn render_system(mut terminal: ResMut<BTerm>) {
//     terminal.print(1, 1, "Hello, world.");
// }

fn main() -> BError {
    let mut terminal = BTermBuilder::simple(80, 25)?.build()?;
    terminal.cls();
    terminal.print(5, 5, "Hello, world.\n");
    // App::build()
    //     .add_plugin(bevy::app::ScheduleRunnerPlugin::default())
    //     .add_resource(terminal)
    //     .add_system(render_system.system())
    //     .run();
    Ok(())
}

Windows and WSL2 with curses feature: Clears the screen, prints nothing.
Windows and WSL2 with crossterm feature: Does nothing.

Am I doing something wrong? Your tutorials run the ECS loop inside Bracket's. Given that I'm inverting the pattern, do I need to add some sort of terminal update loop? I see BTerm::main_loop, but I'm not sure if this is meant to wrap my game loop, or if it contains logic I need to call to update the terminal itself.
Thanks again.

I'm also trying to use Bracket (the default GL backend) with Bevy and it just opens a non-responsive window.
I think it's because the main_loop code does some backend-specific initialization that doesn't get performed when not calling main_loop, but calling it and having your terminal stored in a resource (when using only bevy_ecs) is also impossible, the error is something about not being able to borrow it (perhaps because main_loop subsumes ownership of the terminal?).
Here's my code, I've been trying to follow the tutorial with bevy (first just the ECS and then the whole library without default features, the app abstraction is very nice to use):
use bevy::{
    app::ScheduleRunnerPlugin, core::CorePlugin, diagnostic::DiagnosticsPlugin, prelude::*,
    type_registry::TypeRegistryPlugin,
};
use bracket_lib::prelude::*;

#[derive(Bundle)]
struct Position {
    x: i32,
    y: i32,
}

#[derive(Bundle)]
struct Renderable {
    glyph: FontCharType,
    fg: RGB,
    bg: RGB,
}

struct LeftMover;

fn setup(mut commands: Commands) {
    commands
        .spawn((
            Position { x: 40, y: 25 },
            Renderable {
                glyph: to_cp437('@'),
                fg: RGB::named(YELLOW),
                bg: RGB::named(BLACK),
            },
        ))
        .spawn_batch((0..10).map(|i| {
            (
                LeftMover,
                Position { x: i * 7, y: 20 },
                Renderable {
                    glyph: to_cp437('☺'),
                    fg: RGB::named(RED),
                    bg: RGB::named(BLACK),
                },
            )
        }));
}

fn render(mut ctx: ResMut<BTerm>, mut query: Query<(&Position, &Renderable)>) {
    ctx.cls();
    for (pos, render) in &mut query.iter() {
        ctx.set(pos.x, pos.y, render.fg, render.bg, render.glyph);
    }
}

fn main() -> BError {
    let context = BTermBuilder::simple80x50().with_title("Rustlike").build()?;

    App::build()
        .add_plugin(TypeRegistryPlugin::default())
        .add_plugin(CorePlugin::default())
        .add_plugin(DiagnosticsPlugin::default())
        .add_plugin(ScheduleRunnerPlugin::default())
        .add_resource(context)
        .add_startup_system(setup.system())
        .add_system(render.system())
        .run();

    Ok(())
}

That's going to be a tricky one to integrate. I haven't used Bevy yet, but it looks like it also wants to control the main loop. As-is, that's going to be problematic. A minimal bracket-terminal program looks like this:
use bracket_terminal::prelude::*;

struct State {}

impl GameState for State {
    fn tick(&mut self, ctx: &mut BTerm) {
        ctx.print(1, 1, "Hello Bracket World");
    }
}

fn main() -> BError {
    let context = BTermBuilder::simple80x50()
        .with_title("Hello Minimal Bracket World")
        .build()?;
    let gs: State = State {};
    main_loop(context, gs)
}

So main_loop refreshes the GL window every frame, and calls into your GameState's tick function on the way through. In the meantime, it's polling winit for window messages, doing housekeeping and handling IO. So it's doing quite a bit. Unfortunately, Bevy is also trying to do the same thing. You build your app, call the plugins, and it takes over main thread management - so main_loop isn't getting to do its updates. I think I'd have to basically rewrite bracket-terminal as a bevy plugin to get that pattern to work (maybe one day!).
I think you could use the ECS portion of Bevy, and integrate that in the same way as Specs in the RL Tutorial. I know it works with Legion (since 0.3, Legion is pretty easy to use). I'm pretty fully booked right now, but I'll see if I can find time to play with the two soon.

Reviving a dead issue but I figure I'd share some info for people using Google and the likes.
It's possible to integrate Bevy and Bracket by using a custom runner in Bevy rather than the default one. While I'm not going to share all my code, this should at least point people in the right direction.
I ended up making a Bevy plugin that sets up a runner that's driven by Bracket's main loop, and then launches that.
use bracket_lib::prelude::*;
use bevy::prelude::*;

struct BTermState {
    app: App
}

impl GameState for BTermState {
    fn tick(&mut self, ctx: &mut BTerm) {
        // Dispatch systems
        self.app.update();

        // Render screen
        render_draw_buffer(ctx).expect("Couldn't render draw buffer");
    }
}

fn bterm_runner(mut app: App) {
    let context = app.world.remove_resource::<BTerm>()
        .expect("BTerm context doesn't exist in the world, which is required in order to run");

    main_loop(context, BTermState { app })
        .expect("Could not start BTerm main loop");
}

pub struct BTermPlugin;

impl Plugin for BTermPlugin {
    fn build(&self, app: &mut AppBuilder) {
        app.set_runner(bterm_runner);
    }
}

Now, with the above plugin initialized correctly, you can do most of the usual Bevy related things, though you will have to reimplement rendering and such on your own.
use bracket_lib::prelude::*;
use bevy::prelude::*;

use crate::bterm_plugin::BTermPlugin;

fn hello_world() {
    let draw_batch = DrawBatch::new();
    draw_batch.print(Point::new(1, 1), "Hello Bevy World");
    draw_batch.submit(0).expect("Could not submit draw batch");
}

fn main() -> BError {
    let context = BTermBuilder::simple80x50()
        .with_title("Hello Bevy Bracket World")
        .build()?;

    App::build()
        .add_plugins(MinimalPlugins)
        .add_plugin(BTermPlugin)
        .insert_resource(context)
        .add_system(hello_world.system())
        .run();

    Ok(())
}

Also keep in mind that this is a multi-threaded environment, so you will have to use a DrawBatch.
Additionally, getting the BTerm context into the world as a resource is not really possible with this approach, my workaround has been editing GameState::tick to insert various newtypes before the systems are dispatched, like so:
// Example code to set up resources, don't copy paste :p
fn tick(&mut self, ctx: &mut BTerm) {
    self.app.world.insert_resource(Fps(ctx.fps));
    self.app.world.insert_resource(InputState {
        key: ctx.key,
        mouse: ctx.mouse_point()
    });
    // ... etc
}

That's pretty awesome, thank you. I've been considering writing a bracket-bevy crate to offer bracket-terminal as a native Bevy plugin. It would mean creating a native Bevy renderer (wgpu is a pretty good target; lots of boilerplate, but manageable), but that shouldn't be too painful.

I write this comment having just discovered https://github.com/amethyst/bracket-lib/tree/master/bracket-bevy which will probably make this information obsolete, but I'm posting here for posterity and to address the specific concerns in the context of this issue. I should also mention that this is my very first Rust project, so I've probably made some beginner mistakes here.
I hacked around the Resource BTerm borrowing limitation by creating two BTerms and cloning back and forth between them. This allows both bracket-lib's main_loop and bevy's Resource and Query system to interact with it, just not at the same time.
/// Used by bevy App.set_runner().run() to allow bracket-lib to control the game loop
fn bracketlib_runner(mut app: App) {
    let bterm = BTermBuilder::simple80x50().build().unwrap();
    app.insert_resource(BevyBracket {
        bterm: bterm.clone(),
    });
    let gs = BracketGameState { app };
    let _ = main_loop(bterm, gs);
}

/// Resource allowing bevy ecs to interact with bracket-lib functionality
// https://bevyengine.org/learn/book/getting-started/resources/ suggests using a Resource
// to allow the ECS access to globally unique data such as a renderer
#[derive(Resource)]
pub struct BevyBracket {
    pub bterm: BTerm,
}

/// Used by bracket-lib while running its game loop
pub struct BracketGameState {
    /// Makes bevy and bevy ecs functionality available to bracket-lib's main_loop and tick
    pub app: App,
}
impl GameState for BracketGameState {
    /// Called once per frame by bracket-lib's main_loop
    fn tick(&mut self, bterm: &mut BTerm) {
        // Reference lifetime problems arise if trying to put a reference to ctx into BracketLib Resource
        // Workaround is to clone from bterm into the resource, tick, then clone back.
        // bterm is stale between the clones here, and the resource is stale outside of this function,
        // but neither is used while stale so that's ok (for now).
        // TODO: Find a better way to handle this.
        self.app
            .world
            .resource_mut::<BevyBracket>()
            .bterm
            .clone_from(bterm);
        self.app.update();
        bterm.clone_from(&self.app.world.resource_mut::<BevyBracket>().bterm)
    }
}

/// Create the bevy App, set up plugins and systems, run the custom App runner
pub fn run() {
    App::new()
        .add_plugins(MinimalPlugins)
        .add_systems(Startup, add_things)
        .add_systems(Update, draw_things)
        .set_runner(bracketlib_runner)
        .run();
}


x/pkgsite: establish guidelines for feature development for pkgsite

Following up on https://github.com/golang/go/issues/40612#issuecomment-676587998, the pkgsite team is working on processes to give users time to give feedback on large feature changes, before these features are live in production. These processes include:

[x] Creating milestones for pkgsite

[ ] Correlate these milestones with the x/pkgsite Roadmap

[ ] Allowing users to opt-in to experiments before they are fully rollout: https://github.com/golang/go/issues/40905
[ ] Publishing documentation on expectations for feature development with x/pkgsite, in addition to the CONTRIBUTING.md

Thanks for the thoughtful feedback, @tooolbox! It’s great to hear that godoc.org was a big part of your workflow, and we really appreciate the feedback that you have given us here and on other pkgsite issues.
We certainly don’t want to lessen the core documentation experience. It’s the reason we announced our intent to eventually redirect godoc.org traffic in https://blog.golang.org/pkg.go.dev-2020, and asked everyone to start giving us feedback early, so that we could ensure that pkg.go.dev addresses all of our users' needs.
What we’re hearing is that it would be useful to give users a chance to give feedback earlier on the Go issue tracker, before the issue is shipped.
To do this, some things that we are experimenting with are posting mocks ahead of time, so that users can comment on the issue. #40905 is another feature we’d like to invest in. If you have additional suggestions, feel free to let us know.
Regarding a formal outline, we currently publish our plans in these places:

Roadmap in the pkgsite/README
Milestones with the pkgsite prefix

If you have additional suggestions, feel free to file an issue.
Again, thanks for all your feedback!

Thanks for the thoughtful feedback, @tooolbox! It’s great to hear that godoc.org was a big part of your workflow, and we really appreciate the feedback that you have given us here and on other pkgsite issues.
We certainly don’t want to lessen the core documentation experience. It’s the reason we announced our intent to eventually redirect godoc.org traffic in https://blog.golang.org/pkg.go.dev-2020, and asked everyone to start giving us feedback early, so that we could ensure that pkg.go.dev addresses users' needs.
What we’re hearing is that it would be useful to give users a chance to give feedback earlier on the Go issue tracker, before the issue is shipped.
To do this, some things that we are experimenting with are the ones described in https://github.com/golang/go/issues/40911#issue-682048562 (posting mocks ahead of implementation, #40905, etc.). These are processes we’d like to invest in, so that users can give us early feedback.
Regarding a formal outline, we currently publish our plans in these places:

Roadmap in the pkgsite/README
Milestones with the pkgsite prefix

If you have additional suggestions, feel free to file an issue.
Again, thanks for all your feedback!

Thanks very much.  I'm glad you want to maintain the same core documentation experience, and I've seen how you're gathering feedback and I really appreciate it.  I'm glad that mine has helped 👍

If you have additional suggestions, feel free to file an issue.

Done!


Add API change suggestions.

Thanks! A few suggestions. Feel free to self-merge, since I don't know when I can get back to this.


Segfault & memory leak hunting

A note for Monday @Cadair or @astrofrog
This PR has exposed bugs in our ~RICE and~ HCOMPRESS code, which are no longer segfaults but are now Python exceptions. run the tests, fix the errors.

I investigated a bit and ran into the error:
E       ValueError: encode: output buffer too small

for:
 test_compress[HCOMPRESS_1 {} <i2-shape: (12, 12) tile_dims: (4, 5)]

I dug a bit deeper and found that in the qwrite function in CFITSIO the comparison:
     if (noutchar + n > noutmax) {

is behaving weirdly - for example for: noutchar=0, n=3 and noutmax=110, noutchar  + n > noutmax evaluates as true even though it should be false. However, casting both sides in the inequality to (long) somehow fixes it:
     if ((long)(noutchar + n) > (long)noutmax) {
		return(0);  /* buffer overflow */
	 }

Ok I figured that one out and have pushed a commit, there was a simple mistyping in our C wrappers.

One of the remaining errors is:
        if compression_type == "HCOMPRESS_1":
            if self._image_header["NAXIS1"] < 4 or self._image_header["NAXIS2"] < 4:
                raise ValueError("Hcompress minimum image dimension is 4 pixels")
            elif tile_size:
                if tile_size[0] < 4 or tile_size[1] < 4:
                    # user specified tile size is too small
>                   raise ValueError("Hcompress minimum tile dimension is 4 p

is that just that we need to make this check not use [0] and [1] but actually check the non-1 dimensions of the tile_size? (i.e. for a tile shape of [1, 5, 4] we should check that exactly two values are >=4 and the rest are 1? I pushed a commit to fix this, but feel free to revert if we shouldn't.

The last error I see is:
E       ValueError: HCOMPRESS requires tiles of at least 4x4 pixels.

which occurs with an edge tile in HCOMPRESS (where the edge tile is <4x4). I'm not sure how we deal with that - if that is really true do we need to pad the data? or is the check incorrect?

is that just that we need to make this check not use [0] and [1] but actually check the non-1 dimensions of the tile_size?

Yes I think so. That's what we have where we calculate the nx ny arguments to the codec.

This code in hcompress puzzles me a bit:

            if (zbitpix == BYTE_IMG || zbitpix == SHORT_IMG) {
                fits_hcompress(idata, tilenx, tileny,
		  ihcompscale, (char *) cbuf, &hcomp_len, status);

            } else {
                 /* have to convert idata to an I*8 array, in place */
                 /* idata must have been allocated large enough to do this */

                fits_int_to_longlong_inplace(idata, tilelen, status);
                lldata = (LONGLONG *) idata;

                fits_hcompress64(lldata, tilenx, tileny,
		  ihcompscale, (char *) cbuf, &hcomp_len, status);
            }

because it looks like fits_hcompress is only used for byte or short, and for any other types fits_hcompress64 is used

Ok so it turns out the C code really can't real with tile sizes <4x4 - but I realized that in fact CompImageHDU checks to make sure that no edge tiles are <4x4 and will raise an error ("Last tile along 1st dimension has less than 4 pixels") - it's just that that code was written to check the first two dimensions and needed to be generalized.
See https://github.com/aperiosoftware/astropy/pull/49/commits/e0533e5c9adf657f1d75317381d0b441c9fd4451 for a generalized version of this which seems to get rid of the errors complaining about too small tiles.
This brings the number of failed/errored tests down from 23 to 10/11

A lot of the remaining failures are related to i4 dtype and some mention overflow. I wonder whether as mentioned in https://github.com/aperiosoftware/astropy/pull/49#issuecomment-1355715258 we should be using the '64' function for i4? (not clear).

As discussed on Matrix I think we probably should back out the changes here to allow arbitrary tile order for HCOMPRESS, and also only test tile shapes for HCOMPRESS where the data is a multiple of the number of tiles. I've opened #51 to remind us to add support for this afterwards.

@astrofrog I think we are good to go here and this is :crossed_fingers:  the last of the segfaults.


Politecnico di Torino

At Politecnico di Torino we are performing research on SystemC AMS, to build virtual prototypes and support the modeling of extra-functional properties such as power. The main contact person on the topic is Prof. Sara Vinco: https://www.polito.it/en/staff?p=032283
Politecnico main web page: https://www.polito.it/
Relevant projects:

MESSY: Multi-layer Extra-functional Simulator in SYstemc, https://github.com/eml-eda/messy

Relevant publications:

A novel virtual prototyping methodology for timing-accurate simulation of AMS circuits, https://ieeexplore.ieee.org/document/10528712
Integrating SystemC-AMS power modeling with a RISC-V ISS for virtual prototyping of battery-operated embedded devices, https://arxiv.org/abs/2404.01861
Modeling Cyber-Physical Production Systems with SystemC-AMS, https://ieeexplore.ieee.org/document/9969885
Modeling and Simulation of Cyber-Physical Electrical Energy Systems with SystemC-AMS, https://ieeexplore.ieee.org/document/8999635
A SystemC-AMS Framework for the Design and Simulation of Energy Management in Electric Vehicles, https://ieeexplore.ieee.org/document/8648435
SystemC-AMS thermal modeling for the co-simulation of functional and extra-functional properties, https://dl.acm.org/doi/10.1145/3267125
SystemC-AMS Simulation of Energy Management of Electric Vehicles, https://ieeexplore.ieee.org/document/8612387
A Layered Methodology for the Simulation of Extra-Functional Properties in Smart Systems, https://ieeexplore.ieee.org/document/7812663

thanks for sharing this initiative and publications. I've updated the projects and publications page accordingly.
Note that we only list open access publications at systemc.org. This means from your list we only reference to the paper listed at arxiv.org. If any of the other papers is published as open/free access, please let us know and we will add the link.


Add support for BUFGCTRL primitive

Add a pb_type for BUFGCTRL.   This is required for global clock network placement.  BUFHCE should not start as placeable, plan is to route through BUFHCE.

I have started to deal with this issue.
I have a couple of questions:

There are multiple modes in which a BUFGCTRL site can be instantiated. I have started to model the xml model/pb_type and I have currently modeled the BUFGCTRL and BUFG primitives. There is no need (for now) to support all the possible modes, right?
Until the PLL is modeled, the input clock will be driven from an IO pin, correct?
There are two CLK_BUFG_[(TOP)(BOT) tiles, each one of them containing 16 BUFGCTRL sites. The problem is that each signal incoming/outgoing to/from the CLK_BUFG tile is relative to a specific site. Is it correct to have something like the following to model the input/outputs of CLK_BUFG?:

<pb_type name="CLK_BUFG_TOP">
  <input name="BUFGCTRL0_I1" .../>
  ...
  <input name="BUFGCTRL1_I1" .../>
  ...
  <input name="BUFGCTRL2_I1" .../>
  ...
  <input name="BUFGCTRL3_I1" .../>
  ...
  <input name="BUFGCTRL4_I1" .../>
  ...
  <pb_type name="CLK_BUFG" num_pb="16">
    <input name="I1">
    ...
  </pb_type>
  <interconnect>
    <direct name="I1[0]" input="BUFGCTRL0_I1" output"CLK_BUFG[0].I1">
    ...
  </interconnect>
</pb_type>

How to make the BUFHCE not placeable but routable? The idea I had is to have pb_types representing BUFHCEs as children of CLK_BUFG tiles, but I am unsure whether this could be a good approach.

There are multiple modes in which a BUFGCTRL site can be instantiated. I have started to model the xml model/pb_type and I have currently modeled the BUFGCTRL and BUFG primitives. There is no need (for now) to support all the possible modes, right?

Given that BUFG is a subset of BUFGCTRL, I recommend we only implement BUFGCTRL, and techmap BUFG to BUFGCTRL.

Until the PLL is modeled, the input clock will be driven from an IO pin, correct?

The current ROI models the clock as the output of a BUFH.  In order to implement BUFG, you need to have an ROI (or ROI-less) setup.  I recommend as the first step to just create a BUFGCTRL leaf pb_type and yosys techmap for BUFG.

There are two CLK_BUFG_[(TOP)(BOT) tiles, each one of them containing 16 BUFGCTRL sites. The problem is that each signal incoming/outgoing to/from the CLK_BUFG tile is relative to a specific site. Is it correct to have something like the following to model the input/outputs of CLK_BUFG?:

I think it is time to get equiv tiles on upstream and then use them here.  In particular, I believe BUFG's should be implemented as capacity on tile, e.g. the cluster is just the 1 BUFG, and the placer can place in any of the 32 BUFG placement locations (two stacks of 16).  The routing import will need to be taught how to handle this.

How to make the BUFHCE not placeable but routable? The idea I had is to have pb_types representing BUFHCEs as children of CLK_BUFG tiles, but I am unsure whether this could be a good approach.

There are couple different ways to handle this.  The child approach is not suitable because of how tall 7-series parts work.  I would talk to the VPR devs, but I think the way to handle route through BUFH's is by creating a BUFH site, and then connecting the SOURCE to the SINK IPIN, and adding the correct FASM features.  Again, I would talk to the VPR devs about this.  They have some undocumented clock modelling stuff that may be helpful here.

@litghost I have started to look back at this issue.
I have a question: how does the https://github.com/YosysHQ/yosys/pull/1292 affects this issue?

YosysHQ/yosys#1292 is a synthesis change.  For now, focus on the place/route implications, e.g. assume that the BUFG/BUGFCTRL already exists and just needs to be place/routed by VPR.

@litghost Ok. For now I am adding BUFGCTRL to the architecture. What I am planning to get is something looking like this (I still need to figure out how to treat this during the routing_import phase).
<pb_type name="BUFGCTRL_TOP" capacity="16">
  <input/outputs/clocks />
  <pb_type name="BUFGCTRL_VPR" num_pb="1">
    <input/outputs/clocks />
  </pb_type>
  <interconnect .../>
</pb_type>

<pb_type name="BUFGCTRL_BOT" capacity="16">
  <input/outputs/clocks />
  <pb_type name="BUFGCTRL_VPR" num_pb="1">
    <input/outputs/clocks />
  </pb_type>
  <interconnect .../>
</pb_type>

Now, I have seen that there is no capacity support right now during the tile_import and I am trying to add that. The problem is that, pin_assignments is related to the whole CLK_BUFG_TOP/BOT_R (which I have named BUFGCTRL_BOT/TOP in the example) containing all the 16 BUFGCTRL sites.
What I am trying to do is to declare the BUFGCTRL pb_type only once, but the fact is that the pins of BUFGCTRL do not match with the ones of the corresponding tile.
Instead, I have also tried to generate 16 pb_type.xml from a BUFGCTRL template, and the tile_import correctly produced an architecture with 16 pb_types for each CLK_BUFG_R tile.
I am not sure on what would be the best approach here. I guess that, to have a solution as suggested here, I need also to modify how the pin_assignments file is generated to take into account the pins issue.

I am thinking that maybe this could be solved by splitting the CLK_BUFG_TOP/BOT tiles as it happened for the CLBL[ML].

I am thinking that maybe this could be solved by splitting the CLK_BUFG_[TOP/BOT] tiles as it happened for the CLBL[ML].

The site split is not the correct solution.  I think this is a good case for equivalent tiles support.  Is this possible:

CLK_BUFG_TOP and CLK_BUFG_BOT top level port names match their site pin wire names (e.g. CLK_BUFG_BUFGCTRL0_O, CLK_BUFG_BUFGCTRL1_O)
Inside of CLK_BUFG_TOP are 16 clusters of BUFGCTRL_VPR, and inside of CLK_BUFG_BOT are 16 clusters of BUFGCTRL_VPR. Each instance is given the correct FASM prefix (e.g. BUFGCTRL_X0Y0, BUFGCTRL_X0Y1, etc)
CLK_BUFG_TOP and CLK_BUFG_BOT are each instanced once inside the arch grid definition
Routing import should work as normal, because the top level port names match the expected wire names

@acomodi You ask in IRC about potentially reasons a P&R BUFG/BUFH might not work.  This morning I remembered that the REBUF_BUFG cells behavior weirdly, where if there is an active signal on one side of the pip, the rebuf features need to be turned on.
I expect if you do a bit2fasm -> fasm2v -> Vivavo -> bit2fasm and diff (e.g. <target>_vivado_diff_fasm), you'll see that the REBUF_BUFG features were missing.
See the rebuf fuzzer for details: https://github.com/SymbiFlow/prjxray/blob/master/fuzzers/043-clk-rebuf-pips/generate.py#L57

@litghost I have made further experiments and these are my results:

As by you suggested, those REBUF_BUFG cells do appear in the FASM generated with bit2fasm after having used the generated verilog to produce a design through Vivado. This means that we could need to handle to handle these fasm_features as well. They look to something like this:

...
CLK_BUFG_REBUF_X60Y13.GCLK0_ENABLE_BELOW

CLK_BUFG_REBUF_X60Y38.CLK_BUFG_REBUF_R_CK_GCLK0_BOT.CLK_BUFG_REBUF_R_CK_GCLK0_TOP
CLK_BUFG_REBUF_X60Y38.GCLK0_ENABLE_ABOVE
CLK_BUFG_REBUF_X60Y38.GCLK0_ENABLE_BELOW
...

I still didn't understand what is the logic behind their activation.
BELOW and ABOVE seem inverted to me as the GCLK0 completely traverses the CLK_BUFG_REBUF_X60Y38 tile (so it makes sense that both of the REBUFs sides are active), but the CLK_BUFG_REBUF_X60Y13 (which is the most bottom REBUF tile) should not be traversed by GCLK0 (meaning that the signal has just to reach the BUFHCE tile and not going further for the test to work correctly).
The fact though is that I have tried to use the top_bit.v.fasm file, remove these REBUF features and tried to generate another bitstream with fasm2frames and they actually do not seem to be needed to have a working test.

The issue with the non-working implemented design most probably was the fact that I didn't add correct fasm features to the BUFGCTRL and BUFHCE pb_types:

E.g:
CLK_BUFG_BOT_R_X60Y48.BUFGCTRL.BUFGCTRL_X0Y0.IS_IGNORE1_INVERTED
CLK_BUFG_BOT_R_X60Y48.BUFGCTRL.BUFGCTRL_X0Y0.ZINV_CE0
CLK_BUFG_BOT_R_X60Y48.BUFGCTRL.BUFGCTRL_X0Y0.ZINV_S0
CLK_BUFG_BOT_R_X60Y48.BUFGCTRL.BUFGCTRL_X0Y0.ZPRESELECT_I0

I'll need to regenerate everything from the beginning (with these features added to the pb_type) and see if this solves the problem.

There is also another issue (but I think that is not a critical). FASM does also activate all the unused BUFGCTRLs and BUFHCE.

I will do some other tests, but I think we are close to have a working clock driven by BUFGs

REBUF
The fact though is that I have tried to use the top_bit.v.fasm file, remove these REBUF features and tried to generate another bitstream with fasm2frames and they actually do not seem to be needed to have a working test.

I believe those features have to do with clock quality, rather than a binary work/not work.  So for BUFG support to be complete, we should be emitting those features.

Inverted features

You don't need to emit the inversions, but you do need to ensure that the correct signals are reaching the blackbox (e.g. CE0 = true, CE1 = false, S0 = true, S1 = false, IGNORE0 = false, IGNORE1 = true).  In the BUFGCTRL, you must use the invert features to convert the default VCC signal into the correct signal.  If you do not, Vivado will complain on the fasm2v input.
See https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc7/techmap/cells_map.v#L989

Too BUFGCTRL's many in use

The way I've solved this in the SLICE is is to have each BUFGCTRL be a mode select with 2 items, empty and the BUFGCTRL black box.  By default the empty mode will emit no FASM features.

@litghost So, I am very close to the solution.
I have discovered that there are features of the CLK_HROW_BOT_R that need to be enabled. They are relative to the clock wire that is being used.
...
CLK_HROW_BOT_R_X60Y26.CLK_HROW_CK_IN_R0_ACTIVE
CLK_HROW_BOT_R_X60Y26.CLK_HROW_R_CK_GCLK0_ACTIVE
...

I discovered that by adding these two line above to a fasm generated through counter_basys3_bin, the test correctly works.

@litghost
I have been able to implement the counter test which uses BUFGCTRL and BUFHCE and is working on HW. I had though to manually hack the .fasm by manually adding this line:
CLK_HROW_TOP_R_X60Y78.CLK_HROW_R_CK_GCLK0_ACTIVE

I am unsure on how to set these kind of fasm lines automatically.
I would say that the next steps will be the following:

Understand how to handle the REBUF fasm features.
As soon as we have break-out from the ROI, add support also for the HCLK_CMT and HCLK_IOI tiles.
Maybe also add the PLL support.
Find a way to make the BUFHCE not placeable, as by you suggested. The main issue with a BUFHCE placement is that if a tile is placed in a different clock region, it will become unroutable from the clock point of view.

I am unsure on how to set these kind of fasm lines automatically.

https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc7/utils/prjxray_routing_import.py#L83 can be use for attaching features that have a 1-to-1 pip to feature relationship.

@litghost Great. So basically I will need to add the regexp relative to the pip that is being used and add the fasm line (as it happens for CASCOOUT for instance).
I have stumbled upon an issue during channel.db creation after a rebase:
2019-09-17 18:50:13.874983 Annotate pin feeds
Dumping database to '/home/alessandro/projects/symbiflow/symbiflow-arch-defs/build/xc7/archs/artix7/devices/xc7a50t-basys3-roi-virt/channels.db'
100% (260212 of 260212) |############################################################################| Elapsed Time: 0:00:06 Time:  0:00:06
Traceback (most recent call last):
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1805, in <module>
    main()
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1788, in main
    annotate_pin_feeds(conn)
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1460, in annotate_pin_feeds
    tracks=list(),
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1386, in walk_and_mark_segment
    pin_graph_node_pkey, tracks
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1386, in walk_and_mark_segment
    pin_graph_node_pkey, tracks
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1397, in walk_and_mark_segment
    tracks=tracks
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1265, in set_pin_connection
    assert len(source_wires) <= 1
AssertionError

The parts of code that produce this assertion error have been added with this commit. Any idea on what could be cause this failure?

The parts of code that produce this assertion error have been added with this commit. Any idea on what could be cause this failure?

It's trying to annotate the connection box for an IPIN/OPIN (e.g. the connection to the routing interface) for, but it found an ambiguous case.  You'll need to see which wire it is referring too.  It is possible that the connection box logic needs some tweaking for the clock network.

@litghost Ok. As far as I could understand, the issue is indeed in the clocking tree. The fact is that there are many possible lookahead pin nodes for a node belonging to the CLK_HROW_TOP_R tile.
Now, the problem is that the clock network going out from the BUFHCE directly connects to all the logic tiles of each clock region.
I was thinking to skip, if possible, the creation of the lookahead for the clock tree. The problem with this is understanding if the wire is indeed relative to the clock network.
Moreover, I have tried to temporarily comment the assetion and got to another issue:
Traceback (most recent call last):
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1846, in <module>
    main()
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1829, in main
    annotate_pin_feeds(conn)
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1522, in annotate_pin_feeds
    tracks=list(),
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1427, in walk_and_mark_segment
    pin_graph_node_pkey, tracks
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1427, in walk_and_mark_segment
    pin_graph_node_pkey, tracks
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1427, in walk_and_mark_segment
    pin_graph_node_pkey, tracks
  [Previous line repeated 990 more times]
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/xc7/utils/prjxray_create_edges.py", line 1335, in walk_and_mark_segment
    graph_node_type = NodeType(cur.fetchone()[0])
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/build/env/conda/lib/python3.7/enum.py", line 310, in __call__
    return cls.__new__(cls, value)
  File "/home/alessandro/projects/symbiflow/symbiflow-arch-defs/build/env/conda/lib/python3.7/enum.py", line 530, in __new__
    if type(value) is cls:
RecursionError: maximum recursion depth exceeded while calling a Python object
xc7/archs/artix7/devices/xc7a50t-basys3-roi-virt/CMakeFiles/file_xc7_archs_artix7_devices_xc7a50t-basys3-roi-virt_channels.db.dir/build.make:66: recipe for target 'xc7/archs/artix7/devices/xc7a50t-basys3-roi-virt/channels.db' failed

Meaning that walk_and_mark_segment never gets to an end and is indefinitely called recursively.

I was thinking to skip, if possible, the creation of the lookahead for the clock tree. The problem with this is understanding if the wire is indeed relative to the clock network.

The was to do this is probably to blacklist clock sources and sinks (think BUFGCTRL.I[01], BUFGTRL.O, BUFHCE.[IO], etc) from walk_and_mark_segment , as walk_and_mark_segment and is really only correct for things that touch the general interconnect.  In the future, some form of clock network annotation is needed for the VPR 2-stage routing, and having the list of sinks/sources that belong to the dedicate clock network will likely be required, so the work isn't wasteful.

@litghost All right. For the time being I think I will blacklist the clock source/sink than, just to arrive at further stages of the build.
I'll open an issue about that, to keep track of the fact that we need to treat the clock network source/sinks annotations as well.


Adding custom env directory

I noticed that my envs are stored under ~/anaconda3/envs - is there some way to specify it too?

@Myzel394 currently not supported, pull-requests welcome.


Blueprint

Description

Target

[ ] I checked that the commit is targeting the correct branch (note that Camel 3 uses camel-3.x, whereas Camel 4 uses the main branch)

Tracking

[ ] If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

[ ] I checked that each commit in the pull request has a meaningful subject line and body.

[ ] I have run mvn clean install -DskipTests locally and I have committed all auto-generated changes

Interesting feature, I'm just wondering in which case we could need both spring and blueprint beans? Maybe replacing spring beans with something more generic like "external beans" could be good enough, WDYT?

they have different namespace so the model needs to be that naming, but the xml-io-dsl should moved the code into their own module (there is a JIRA) eg camel-xml-io-springxml camel-xml-io-blueprint
Also the point is not to run 100% but to assist users to migrate away via jbang


⚠ Bofrost.at has degraded performance

In 48a96f3, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1430 ms

Resolved: Bofrost.at performance has improved in 28a1ec5.


:pencil: Small corrections

Media is already plural, so "social medias" is not correct
A few typos

@all-contributors please add FofoDev for docs

Awesome, good job @FofoDev 👍

Nice job !


install esdsa root ca not supported

installing by supplying CAROOT when the root CA is of type esdsa yields error:
ERROR: failed to read the CA key: unexpected content

mkcert only supports roots it generated itself. This is intentional as it limits the maintenance cost. However, I'll work on extracting the truststore code into a library #45, so a more general-purpose CLI tool can be built on top of it.


Disable nerd font option

Is there anyway to disable the nerd font icons when using rose-pine theme for tmux? I don't really care for the icons I just want the colors.

Awesome, thank you! That fixed my problem.


Allow the span kind to be set via StartSpanOptions

This PR adds a Kind field to azcore's StartSpanOptions so that consumers of azcore.StartSpan can customize the span kind.
I plan to follow up with a PR against azcosmos where it can classify its spans as Client spans so that consumers of azcosmos have its spans show up like db client spans.

[X] The purpose of this PR is explained in this or a referenced issue.
[X] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[X] Tests are included and/or updated for code changes.
[X] Updates to module CHANGELOG.md are included.
[X] MIT license headers are included in each file.

@microsoft-github-policy-service agree company="GitHub"

Thanks for merging this! In order to use this within azcosmos, a new version of azcore will need to be published. What's the process there? Are new versions published on a specific cadence, or is there a process for requesting new releases be published?

Typical process is to release during the first week of every month. Can this wait for the next release cycle?

Yep, this can wait. Thanks for the info


Implement the necessary ONNX operations to import BERT trained models.

Currently burn-import is missing necessary operators (list to be provided here). This issue will track the list and be closed when fully completed.

Closing it as too open ended.


Clicking "Budget" takes me to June Budget

What happened?
This has been happening for about a month. When I click "Budget" in the upper left, it takes me to my JUNE budget, rather than the current month. I have tried turning Toolkit on and off, but it keeps happening.
Steps to Reproduce
Go to Account, click "budget"
What browsers are you seeing the problem on?
Chrome
What OSs are you seeing the problem on?
macOS 14.5
What Toolkit Version are you running?
3.13.1
Screenshots
No response
Setting Export
No response

If it happens when you turn the toolkit off, them is probably not a problem with the extension.
Have you tried to click on "Today"? Does it go to August?
Then if you move away from the budget and go back, does it goes Back to August or does it jump to June again?

@josesa Turning the toolkit off goes to the current month.  With the toolkit on, budget goes to the previous month, now July.

@josesa Turning the toolkit off goes to the current month. With the toolkit on, budget goes to the previous month, now July.


updated token key to opts.token

This allows the user to specify the token key in the opts, and uses that to pickup the token from the action.payload.

:shipit:

Published in v1.0.0


Update dev doc master branch

Changes proposed in this Pull Request:

Added language direction switcher
Added a section to refer to the React workflow package
Dependabot stuff

To Test:

Verify that the language direction switcher is working
Verify that the workflow page exists and is pointing to the correct page.

RTL view breaks icons. Are we supposed to check only LTR to RTL is breaking or do we need to test UI as well?
For example Icon space is breaking and the drawer RTL for the multilayer menu is breaking.

As far as I can tell, this code is not ready for a master merge. The LTR switcher still has pending work items before we want to ship it (it's really janky as Ekta has pointed out). It also looks like there's a bunch of half-baked code around Playground component refactoring which is not used/not hooked up (at least it appeared that way during some of the pair programming sessions I sat in with Andrew). If you want to get your workflows update in, I would suggest doing it as a hotfix or isolating the other items (in a clearly marked folder, or moving them to an experimental branch) until they are finished.

👍 I think half of these are beyond our control and the other half require some form of tweaking within our component library.

Ok, I am not sure how to do a hotfix in this case... leave that for others


.degit.yml

If a repo has a .degit.yml file, we could put a postinstall script in there that automated setup tasks like npm install. For security reasons, the script should be shown and the user should be prompted for confirmation (typing y, not just hitting Enter) before it happens.
We could also show a success message defined in the YAML file.
success: >
  Congratulations! Now install dependencies with `npm install`, then run `npm run dev` to
  start a development server and open http://localhost:5000 to see your app. Visit
  https://example.com for more information.
postinstall: npm install

As of 2.1.0 and the addition of actions, is this issue now a duplicate of the prompt action in https://github.com/Rich-Harris/degit/issues/30?

I think #30 debunks this

Fixes #


First prediction value too far from the latest known value

Hello and thank you for the model. I'm experimenting with my dataset, and one kind of systematic error I found are charts like below, where the first prediction point is way off the latest known point from the context. I'm wondering what could be the reason for this and if the problem could be alleviated somehow? Many thanks.

The images above are from 24-period prediction length and 4*24 context length, fine-tuned for 200 epochs on a dataset ~12,000 series. However, I saw similar behavior with zero-shot, and on varying context lengths with/without rope scaling. Interesting that sometimes the prediction is good, following the pattern, but it is offset for some reason.

I have the same problem, even without fine tuning. This increases CRPS and makes it difficult to compare performance across different context lengths.