ModuleNotFoundError, Windows Support

 "dependencies": {
    "mailing": "^0.7.7",
    "mailing-core": "^0.7.7",
    "next": "^12.3.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }

Node: v16.16.0, 14.20.0, 18.9.0
Shell: PowerShell v5.1.19041.1682
While running the development server i get this error

also while running npx mailing i get this error upon start:

Hi @Venipa , sorry to hear that you are experiencing a problem.  Could I ask you to check what the size of your   .mailing/src/moduleManifest.js is after you start the server, it should be around 15k, but I have sometimes seen a similar error when esbuild includes other packages that are installed on the system that it should ignore, curious to see if that is the same problem you are having.  If that is the case, then likely something is not working with this part of the code in buildManifest if that helps you debug: https://github.com/sofn-xyz/mailing/blob/af69b8fbcc0a09371b0c4c4cbe8547bdede16056/packages/cli/src/commands/preview/server/setup.ts#L210
Thanks for using mailing!  And if you have a moment to tell us a bit more about how you're using mailing, we'd love to hear more about it in this thread: https://github.com/sofn-xyz/mailing/discussions/121

Hi @Venipa , sorry to hear that you are experiencing a problem. Could I ask you to check what the size of your .mailing/src/moduleManifest.js is after you start the server, it should be around 15k, but I have sometimes seen a similar error when esbuild includes other packages that are installed on the system that it should ignore, curious to see if that is the same problem you are having. If that is the case, then likely something is not working with this part of the code in buildManifest if that helps you debug:
https://github.com/sofn-xyz/mailing/blob/af69b8fbcc0a09371b0c4c4cbe8547bdede16056/packages/cli/src/commands/preview/server/setup.ts#L210
Thanks for using mailing! And if you have a moment to tell us a bit more about how you're using mailing, we'd love to hear more about it in this thread: #121
5.45 MB (5,722,437 bytes)

isnt it better to use process.cwd() instead of "." ?

@Venipa thanks, I'm not sure if process.cwd() would behave differently from . but it is worth a shot.  I made a beta version "0.7.9-next.0" that does just that which you can use like this:
yarn add<EMAIL_ADDRESS><EMAIL_ADDRESS>would you let us know if it solves your problem?
if not, can you let me know if you have packages installed globally? we don't currently look for node_modules outside of the project and its parent directories, but that could be an issue if you are importing packages that live in a global node_module directory that is outside of the set of all parent directories from your project root.  Thanks!

I'm getting the same error on 0.8.0.
$ npx mailing
mailing starting preview server
event - compiled client and server successfully in 3.4s (175 modules)
mailing watching for changes to src\emails
mailing running preview at http://localhost:3883/
wait  - compiling / (client and server)...
error - ./src/moduleManifest.js
Module not found: Can't resolve './lib/beautify' in 'C:\Users\leeha\Development\poetz-lake-house\.mailing\src'
wait  - compiling /_error (client and server)...
error - ./src/moduleManifest.js
Module not found: Can't resolve './lib/beautify' in 'C:\Users\leeha\Development\poetz-lake-house\.mailing\src'
mailing 500 / 6482ms
mailing 500 /favicon.ico 21ms

I am also getting this error on windows machine did anyone find out a solution?

Unfortunately, I have not found a solution to this, but I can give you some notes on what I had tried debugging:

I was speculating it may have to do with mixing / and \ in those paths on Windows in the modulManifest.js file, which is generated by setup.ts.  However, in setup.ts we're using import { resolve, posix, relative } from "path"; which should choose the proper file delimeter for each platform.  I don't think it is related to this after all.
looking at the specific error you posted, that seems to be referenced in js-beautify, which is a dependency of mjml-cli:

 grep -R "./lib/beautify"  node_modules
node_modules/js-beautify/js/index.js:    "./lib/beautify",
node_modules/js-beautify/js/index.js:    "./lib/beautify-css",
node_modules/js-beautify/js/index.js:    "./lib/beautify-html"

It may have to do with the way that the .mailing folder includes its node_modules -- there is no directory .mailing/node_modules, instead we rely on module resolution traversing up to the root directory node_modules and finding those libraries correctly.  I might give a look in your project root node_modules directory to see if you have a js-beautify directory and it has all the right stuff in it:
ls node_modules/js-beautify/js/lib/*
node_modules/js-beautify/js/lib/beautifier.js		node_modules/js-beautify/js/lib/beautify-html.js
node_modules/js-beautify/js/lib/beautifier.min.js	node_modules/js-beautify/js/lib/beautify.js
node_modules/js-beautify/js/lib/beautify-css.js		node_modules/js-beautify/js/lib/cli.js

node_modules/js-beautify/js/lib/unpackers:
javascriptobfuscator_unpacker.js	p_a_c_k_e_r_unpacker.js
myobfuscate_unpacker.js			urlencode_unpacker.js

Sorry I don't know a concrete next step here, but hopefully that helps your debugging?

+1 facing the same issue here

Mailing does not currently run on Windows, however we would love a PR that fixes that.  I am closing this issue for now, but #172  is our ticket to support Windows.  Pull requests welcome!

current semi fix is to use wsl for development


Migrate empty memcache_server_opts to bind on localhost by default.

Instead of having memcached bind on <IP_ADDRESS>, we want <IP_ADDRESS> by default.
If a user configured their own options, it is left intact.
Followup to #1834
https://bugzilla.redhat.com/show_bug.cgi?id=1182330

:+1: Looks good  Thanks!


Add Selfcontained checks and misc fixes for race condition in AppNoti…

[(https://user-images.githubusercontent.com/26147119/157732742-8d74ffb6-21ad-4a24-919a-9b525a93dd68.png)Issue:
Self-Contained apps may not support notifications in some cases. Please refer to the matrix below:
Screenshot 2022-03-10 104221
In general, All local notification scenarios will be supported in self-contained mode. We will not support a subset of Push scenarios for Self-Contained apps.
Fix:
For local notifications, we gate the calls to the Long Running Singleton via a Self-Contained checks so that API calls don't blow up.
For Push notifications, we introduce an IsSupported gatekeeping API that the developer could use to infer Push functionality.
Also added some checks to prevent races in AppNotificationManager::Register() APIs.

/azp run

/azp run


General Grievance: Watch menudale.com

General Grievance requests the watch of the watch_keyword menudale\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

menudale\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Changing metadata

I want to change the -n   -N   -A attributes of a tile set. What's the easiest way?
Should tile-join work like this?
tile-join -n NEW_NAME -N NEW_DESCRIPTION -A NEW_ATTRIBUTION -o new.mbtiles old.mbtiles
Is the new tile set guaranteed to be exactly the same?

The new tileset is intended to be exactly the same, but the layers and features do get decoded and reencoded, so there is no guarantee that the new tileset will have exactly the same representation for each tile.
If you do need the tiles to be exactly the same, you could use sqlite3 to replace rows of the metadata table without decoding and reencoding the tiles.

Thanks, that is a much better approach
On Fri, May 10, 2019, 17:43 Eric Fischer<EMAIL_ADDRESS>wrote:

The new tileset is intended to be exactly the same, but the layers and
features do get decoded and reencoded, so there is no guarantee that the
new tileset will have exactly the same representation for each tile.
If you do need the tiles to be exactly the same, you could use sqlite3 to
replace rows of the metadata table without decoding and reencoding the
tiles.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mapbox/tippecanoe/issues/758#issuecomment-491354242,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACR3HGTGVWHVBCTZ4SIFB7TPUWQ4RANCNFSM4HMB2RRA
.


Introduce Python SetupTools

Testing and deployment can be simplified by using SetupTools.  This is a first attempt at organizing Python source and testing into its own folder.

Codecov Report

Merging #5 into master will decrease coverage by 0.12%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
- Coverage   94.83%   94.71%   -0.13%
==========================================
  Files          22       23       +1
  Lines        1723     1759      +36
==========================================
+ Hits         1634     1666      +32
- Misses         89       93       +4

Impacted Files
Coverage Δ

python/pywrappers.cc
88.88% <ø> (ø)

Continue to review full report at Codecov.

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


Volume per candle

Hello, Is there a possibility to obtain a variable for volume per candle or volume of the last 24 hours? Something like Price_Value variable.

Check out that: https://github.com/w1ld3r/crypto-signal#price-values. And you have IIV and Aroon Oscillator indicators that are based on volume.


Unable to create rules when container not started

Using this rule:
- network: default
  container: test_container

If the container 'test_container' isn't running whalewall can't create all the rules for this service.
That's correct but what happen when you have multiple stacks (docker compose files) and do a server reboot. Whalewall won't create the rules for some services because some containers isn't running (all the stacks are deployed at the same time)
So we can control the start order for services on the same docker compose file with 'depends_on' label, but not the services in other compose files. We could control this with a health check instead.
Is possible to create the rules only when the container is in healthy state? We can do a health check to check if the dependant container has already started and then create the whalewall rules when the service has the healthy label. This can be configurable with a label like 'whalewall.healthy: true' if true create the rules when container is in healthy state, and if isn't set create the rules when container starts.
Or do 3-5 retries until the container starts?
I don't know how to solve this problem, because if i use static ip for containers i need to set rules in both containers.

loki container: <IP_ADDRESS>
promtail container: <IP_ADDRESS>
Only outgoing traffic from promtail to loki:3100

Loki:
whalewall.enabled: true

Promtail:
      whalewall.enabled: true
      whalewall.rules: |
        output:
          # push to loki
          - ip: "<IP_ADDRESS>"
            proto: tcp
            port: 3100

Dec 27 11:17:11 xxxxxxx kernel: [ 5433.189077] whalewall-loki-16c68c683925 drop: IN=xxxxxxxx OUT=xxxxxxxx PHYSIN=xxxxxxx PHYSOUT=xxxxxxxx MAC=xxxxxxxxxxxxxx SRC=<IP_ADDRESS> DST=<IP_ADDRESS> LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=3100 DPT=47836 WINDOW=65160 RES=0x00 ACK SYN URGP=0
nft chain:
        chain whalewall-loki-16c68c683925 {
                counter packets 630 bytes 37800 log prefix "whalewall-loki-16c68c683925 drop: " level info drop
        }

        chain whalewall-promtail-4f3d6d98bee7 {
                ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp dport 3100 ct state established,related,new counter packets 32 bytes 1920 accept
                ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp sport 3100 ct state established,related counter packets 0 bytes 0 accept
                counter packets 33 bytes 1980 log prefix "whalewall-promtail-4f3d6d98bee7 drop: " level info drop
        }

Rule  "ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp sport 3100 ct state established,related counter packets 0 bytes 0 accept" not working because is blocking by "log prefix "whalewall-loki-16c68c683925 drop:" first.
Traffic will be blocked in the opposite side (idk the reason of this traffic because it's only promtail -> loki). But when using container label, everything works:
      whalewall.enabled: true
      whalewall.rules: |
        output:
          # push to loki
          - network: logging_network
            container: loki
            proto: tcp
            port: 3100

nft chain:
    chain whalewall-loki-16c68c683925 {
            ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp sport 3100 ct state established,related counter packets 0 bytes 0 accept
            counter packets 698 bytes 41880 log prefix "whalewall-loki-16c68c683925 drop: " level info drop
    }

    chain whalewall-promtail-24f8a974fb5d {
            ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp dport 3100 ct state established,related,new counter packets 0 bytes 0 accept
            counter packets 3 bytes 180 log prefix "whalewall-promtail-24f8a974fb5d drop: " level info drop
    }

I think it's possible to optionally wait until containers are in a healthy state to create rules for them, but I don't see how that'd solve your issue. How can you guarantee the order containers are started across multiple Docker Compose files by setting health checks? I don't understand that.
The reason you couldn't create container -> container rules by specifying the container's static IP is because the way whalewall creates nftables rules. Packets entering the 'whalewall' chain jump to the appropriate container chain based on the source IP. For established inbound traffic for an outbound rule the packets will originate from the container specified in the outbound rule, hence requiring nftables rules to be created in both container's chains.

Because I can do a health check using curl command to check if the other container is started, if success container will be in healthy state and then whalewall will create the rules.
This will avoid the problem if a dependant container started later than the container which has the whalewall rules.

Right, I understand how health checks work, I just don't see how setting a health check on a container will affect the order in which containers in different docker compose files will be started. How are you starting/stopping the different stacks? For each compose file, 'docker compose up '?
If a container specifies a rule mentioning a container that is not yet started, whalewall will continue handling container start events for up to 10 seconds. Basically it'll wait for the mentioned container to hopefully start. If the container doesn't start within 10 seconds, whalewall will return an error. This can be changed with the '-t' flag, you may be able to solve your problem by specifying a longer timeout.
I realize from the description of the '-t' flag that it affects waiting for containers isn't obvious, I think I should either update the description or add another flag only for container waiting timeouts.

When you use -t flag whalewall doesn't create db files.
version: "3.8"

services:
  whalewall:
    container_name: whalewall
    image: ghcr.io/capnspacehook/whalewall
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    command: '-t 45s'
    network_mode: host
    volumes:
      - whalewall_data:/data
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  whalewall_data:

Ah, because the location of the database is specified in the CMD in the Dockerfile, you overriding the command arguments causes -d /data to be removed and the database to be created somewhere else: https://github.com/capnspacehook/whalewall/blob/master/Dockerfile#L26. I may want to add environmental variables as a way to configure whalewall itself, so defaults can be set in the Dockerfile and gracefully overridden by users if they want.
As for your original issue, I've been thinking about it a bit, and I think I may have come up with a solution. Try pulling the latest Docker image and omitting the command line in your docker-compose.yml, increasing the timeout shouldn't be needed. I had to add to the DB schema, and I don't have migrations so I'd recommend running whalewall -clear in the old container to remove old firewall rules, then pulling the new container and running it with a new volume so the database is recreated fresh.
If that works I'll create a release soon.

Hello, thanks for your reply.
Now, whalewall only applies the rules when you restart the whalewall container not when you, update the labels of the containers that have rules.
Also when you restart the machine, no rule is applied.

Hmm that's weird, if anything I'd think that functionality would be working better now, not worse... Are you running whalewall as a container or a binary, and what arguments are you passing it?

I've tried both and the same behavior. No arguments, just running whalewall container or "./whalewall" if using the binary.
Can you test it by restarting the computer? There is no rule after rebooting the computer and whalewall does not create them until you run './whalewall -clear' and then './whalewall'.
Also when you add whalewall labels to a container it does not create the rules until you restart whalewall.

I will do some in depth testing, but note that whalewall has never acted on container label change events, whalewall only responds to container 'start' or 'die' events. If you want to change the rules of a container you'll have to update the labels and restart it.

Also just to confirm, if you didn't already can you confirm that the previous version of whalewall you were using didn't have this bug? If so can you post the output of 'whalewall -version' for both the working old version and the buggy new version? Thanks

I will do some in depth testing, but note that whalewall has never acted on container label change events, whalewall only responds to container 'start' or 'die' events. If you want to change the rules of a container you'll have to update the labels and restart it.

I know but when I update the labels and restart the containers whalewall doesn't update the rules (no log about rules in whalewall container), it only does if I restart the whalewall container.

Oh, I think I know what's wrong then, thanks for clarifying

Also just to confirm, if you didn't already can you confirm that the previous version of whalewall you were using didn't have this bug? If so can you post the output of 'whalewall -version' for both the working old version and the buggy new version? Thanks

No. In v0.2.3 version when you restart host machine, whalewall applies the rules using the database. In the newer version, whalewall doesn't apply any rule.
Buggy build:
Whalewall devel

Build Information:

Go version:   go1.20.3
-buildmode:   pie
Compiler:     gc
-trimpath:    true
CGO_ENABLED:  0
GOARCH:       amd64
GOOS:         linux
GOAMD64:      v1
Commit:       5c67e57f18ed5d6dcf392ea34250b26e3f77cdb3
Commit Time:  2023-04-05T23:37:13Z

Dependencies:

Name                                           Version                             Hash
github.com/docker/distribution                 v2.8.1+incompatible                 h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
github.com/docker/docker                       v20.10.22+incompatible              h1:6jX4yB+NtcbldT90k7vBSaWJDB3i+zkVJT9BEK8kQkk=
github.com/docker/go-connections               v0.4.0                              h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-units                     v0.4.0                              h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
github.com/dustin/go-humanize                  v1.0.0                              h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/gogo/protobuf                       v1.3.2                              h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/google/nftables                     v0.0.0-20221015190445-4f5cd5826fbd  h1:EWP0uTXu3ItJlSimbOvSFVejL5/Bc8eMui48EESr9R4=
github.com/google/uuid                         v1.3.0                              h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/josharian/native                    v1.0.0                              h1:Ts/E8zCSEsG17dUqv7joXJFybuMLjQfWE04tsBODTxk=
github.com/landlock-lsm/go-landlock            v0.0.0-20230212201647-821adaecc1a5  h1:8BDph6n7ZDRI7ppV9jLD4vFc4rjpu2CxY9anN2++FM4=
github.com/mattn/go-isatty                     v0.0.16                             h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mdlayher/netlink                    v1.6.2                              h1:D2zGSkvYsJ6NreeED3JiVTu1lj2sIYATqSaZlhPzUgQ=
github.com/mdlayher/socket                     v0.2.3                              h1:XZA2X2TjdOwNoNPVPclRCURoX/hokBY8nkTmRZFEheM=
github.com/opencontainers/go-digest            v1.0.0                              h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/image-spec           v1.0.2                              h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
github.com/pkg/errors                          v0.9.1                              h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/remyoudompheng/bigfft               v0.0.0-20230129092748-24d4a6f8daec  h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/sirupsen/logrus                     v1.8.1                              h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
go.uber.org/atomic                             v1.7.0                              h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/multierr                           v1.6.0                              h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/zap                                v1.24.0                             h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
go4.org/netipx                                 v0.0.0-20220812043211-3cc044ffd68d  h1:ggxwEf5eu0l8v+87VhX1czFh8zJul3hK16Gmruxn7hw=
golang.org/x/exp                               v0.0.0-20220827204233-334a2380cb91  h1:tnebWN09GYg9OLPss1KXj8txwZc6X6uMr6VFdcGNbHw=
golang.org/x/net                               v0.7.0                              h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
golang.org/x/sync                              v0.1.0                              h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sys                               v0.7.0                              h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
golang.org/x/time                              v0.0.0-20200630173020-3af7569d3a1e  h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s=
gopkg.in/yaml.v3                               v3.0.1                              h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gvisor.dev/gvisor                              v0.0.0-20221108212141-79965837f088  h1:S2KFXSdEiuahdJyngV98RrTVQnjWEdh3VtWqAtbv6AU=
kernel.org/pub/linux/libs/security/libcap/psx  v1.2.66                             h1:ikIhPzfkSSAEwBOU+2DWhoF+xnGUhvlMTfQjBVhvzQY=
modernc.org/libc                               v1.22.3                             h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY=
modernc.org/mathutil                           v1.5.0                              h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
modernc.org/memory                             v1.5.0                              h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
modernc.org/sqlite                             v1.21.1                             h1:GyDFqNnESLOhwwDRaHGdp2jKLDzpyT/rNLglX3ZkMSU=

Now working well, but rules still not working after a machine reboot.
I think whalewall is not using the database properly.
Here whalewall log before and after reboot:
2023-04-18T05:35:32.968011923Z INF undefined | msg=applied landlock rules
2023-04-18T05:35:32.968505273Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-18T05:35:32.96852473Z INF undefined | msg=starting whalewall version=devel commit=d36566f6cf5a906b00faa24849ec1719ba7a3f36
2023-04-18T05:35:56.028746215Z INF undefined | msg=creating rules container.id=a0cb791dc22c container.name=wiki_db
2023-04-18T05:35:56.345249172Z INF undefined | msg=creating rules container.id=fb50bd80a212 container.name=wiki
2023-04-18T05:36:32.483556137Z INF undefined | msg=shutting down
2023-04-18T05:37:04.695132263Z INF undefined | msg=applied landlock rules
2023-04-18T05:37:04.695703794Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-18T05:37:04.695718779Z INF undefined | msg=starting whalewall version=devel commit=d36566f6cf5a906b00faa24849ec1719ba7a3f36

nft table after reboot:
table ip filter {
        map whalewall-container-addrs {
                type ipv4_addr : verdict
        }

        chain DOCKER {
                iifname != "br-8a1207fb6cae" oifname "br-8a1207fb6cae" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 9000 counter packets 13 bytes 610 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 443 counter packets 0 bytes 0 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 80 counter packets 0 bytes 0 accept
        }

        chain DOCKER-ISOLATION-STAGE-1 {
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 157 bytes 13188 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 633 bytes 850954 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 29 bytes 4812 jump DOCKER-ISOLATION-STAGE-2
                counter packets 5108 bytes 2287968 return
        }

        chain DOCKER-ISOLATION-STAGE-2 {
                oifname "docker0" counter packets 0 bytes 0 drop
                oifname "br-e4726b4d1a2d" counter packets 0 bytes 0 drop
                oifname "br-8a1207fb6cae" counter packets 0 bytes 0 drop
                oifname "br-6281c5fa18c5" counter packets 0 bytes 0 drop
                oifname "br-498c5f61477f" counter packets 0 bytes 0 drop
                counter packets 819 bytes 868954 return
        }

        chain FORWARD {
                type filter hook forward priority filter; policy drop;
                counter packets 5108 bytes 2287968 jump DOCKER-USER
                counter packets 5108 bytes 2287968 jump DOCKER-ISOLATION-STAGE-1
                oifname "docker0" ct state related,established counter packets 0 bytes 0 accept
                oifname "docker0" counter packets 0 bytes 0 jump DOCKER
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 accept
                iifname "docker0" oifname "docker0" counter packets 0 bytes 0 accept
                oifname "br-e4726b4d1a2d" ct state related,established counter packets 1189 bytes 246566 accept
                oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 jump DOCKER
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 157 bytes 13188 accept
                iifname "br-e4726b4d1a2d" oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 accept
                oifname "br-8a1207fb6cae" ct state related,established counter packets 2973 bytes 1136514 accept
                oifname "br-8a1207fb6cae" counter packets 62 bytes 3550 jump DOCKER
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 633 bytes 850954 accept
                iifname "br-8a1207fb6cae" oifname "br-8a1207fb6cae" counter packets 49 bytes 2940 accept
                oifname "br-6281c5fa18c5" ct state related,established counter packets 14 bytes 1155 accept
                oifname "br-6281c5fa18c5" counter packets 2 bytes 120 jump DOCKER
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 accept
                iifname "br-6281c5fa18c5" oifname "br-6281c5fa18c5" counter packets 2 bytes 120 accept
                oifname "br-498c5f61477f" ct state related,established counter packets 42 bytes 30689 accept
                oifname "br-498c5f61477f" counter packets 0 bytes 0 jump DOCKER
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 29 bytes 4812 accept
                iifname "br-498c5f61477f" oifname "br-498c5f61477f" counter packets 0 bytes 0 accept
        }

        chain DOCKER-USER {
                counter packets 5108 bytes 2287968 jump whalewall
                counter packets 5108 bytes 2287968 return
        }

        chain whalewall {
                ip saddr vmap @whalewall-container-addrs
                ip daddr vmap @whalewall-container-addrs
        }

        chain INPUT {
                type filter hook input priority filter; policy accept;
                counter packets 565 bytes 41798 jump whalewall
        }

        chain OUTPUT {
                type filter hook output priority filter; policy accept;
                counter packets 901 bytes 181592 jump whalewall
        }
}

As you can see all rules are flushed after reboot and whalewall is not creating the existent rules using the database.
I'm using latest docker image with no command options because -d arg is specified in the DockerFile.

Hmm that's very weird, haven't noticed any behavior like that before... Can you share a minimal version of your docker compose file that still causes this issue, and test again with debug logging enabled? If you set the command of the whalewall container to '-d /new-data -debug', it will both ensure you're using a new database with the new schema and enable debug logs.
Also, is the last log snippet you shared edited at all? You mentioned you restarted whalewall twice but I don't see any messages regarding stopping or starting, and I do see multiple messages trying to create rules for the same container which I've never seen before. If that was on separate invocations though it'd make more sense.

My docker compose:
version: "3.8"
services:
  whalewall:
    container_name: whalewall
    image: ghcr.io/capnspacehook/whalewall:latest
    restart: unless-stopped
    privileged: true
    command:
      - "-debug"
      - "-d"
      - "/data"
    network_mode: host
    volumes:
      - whalewall_data:/data
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  whalewall_data:
    name: whalewall_data
    driver: local
    driver_opts:
      o: bind
      device: /mnt/docker/whalewall/volumes/whalewall_data
      type: none

whalewall log before reboot:
2023-04-18T17:39:36.11982076Z INF undefined | msg=applied landlock rules
2023-04-18T17:39:36.120974528Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-18T17:39:36.120993133Z INF undefined | msg=starting whalewall version=devel commit=d36566f6cf5a906b00faa24849ec1719ba7a3f36
2023-04-18T17:39:36.125314289Z DBG undefined | msg=creating chain chain.name=INPUT
2023-04-18T17:39:36.125372008Z DBG undefined | msg=creating chain chain.name=OUTPUT
2023-04-18T17:40:08.711817004Z INF undefined | msg=creating rules container.id=9c20208483af container.name=wiki_db
2023-04-18T17:40:08.788182422Z DBG undefined | msg=adding to database container.id=9c20208483af container.name=wiki_db
2023-04-18T17:40:09.060967133Z INF undefined | msg=creating rules container.id=b332c42f4347 container.name=wiki
2023-04-18T17:40:09.065707809Z DBG undefined | msg=creating rule container.id=b332c42f4347 container.name=wiki rule=[object Object]
2023-04-18T17:40:09.11459109Z DBG undefined | msg=adding to database container.id=b332c42f4347 container.name=wiki

nft table before reboot:
table ip filter {
        map whalewall-container-addrs {
                type ipv4_addr : verdict
                elements = { <IP_ADDRESS> : jump whalewall-wiki-b332c42f4347, <IP_ADDRESS> : jump whalewall-wiki_db-9c20208483af,
                             <IP_ADDRESS> : jump whalewall-wiki-b332c42f4347 }
        }

        chain DOCKER {
                iifname != "br-8a1207fb6cae" oifname "br-8a1207fb6cae" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 9000 counter packets 12 bytes 558 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 443 counter packets 0 bytes 0 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 80 counter packets 0 bytes 0 accept
        }

        chain DOCKER-ISOLATION-STAGE-1 {
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 784 bytes 1123412 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 30 bytes 4864 jump DOCKER-ISOLATION-STAGE-2
                counter packets 4148 bytes 2595535 return
        }

        chain DOCKER-ISOLATION-STAGE-2 {
                oifname "docker0" counter packets 0 bytes 0 drop
                oifname "br-e4726b4d1a2d" counter packets 0 bytes 0 drop
                oifname "br-8a1207fb6cae" counter packets 0 bytes 0 drop
                oifname "br-6281c5fa18c5" counter packets 0 bytes 0 drop
                oifname "br-498c5f61477f" counter packets 0 bytes 0 drop
                counter packets 814 bytes 1128276 return
        }

        chain FORWARD {
                type filter hook forward priority filter; policy drop;
                counter packets 5111 bytes 2738502 jump DOCKER-USER
                counter packets 4148 bytes 2595535 jump DOCKER-ISOLATION-STAGE-1
                oifname "docker0" ct state related,established counter packets 0 bytes 0 accept
                oifname "docker0" counter packets 0 bytes 0 jump DOCKER
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 accept
                iifname "docker0" oifname "docker0" counter packets 0 bytes 0 accept
                oifname "br-e4726b4d1a2d" ct state related,established counter packets 1030 bytes 233502 accept
                oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 jump DOCKER
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 0 bytes 0 accept
                iifname "br-e4726b4d1a2d" oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 accept
                oifname "br-8a1207fb6cae" ct state related,established counter packets 2184 bytes 1198263 accept
                oifname "br-8a1207fb6cae" counter packets 51 bytes 2898 jump DOCKER
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 784 bytes 1123412 accept
                iifname "br-8a1207fb6cae" oifname "br-8a1207fb6cae" counter packets 39 bytes 2340 accept
                oifname "br-6281c5fa18c5" ct state related,established counter packets 14 bytes 1155 accept
                oifname "br-6281c5fa18c5" counter packets 2 bytes 120 jump DOCKER
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 accept
                iifname "br-6281c5fa18c5" oifname "br-6281c5fa18c5" counter packets 2 bytes 120 accept
                oifname "br-498c5f61477f" ct state related,established counter packets 46 bytes 30901 accept
                oifname "br-498c5f61477f" counter packets 0 bytes 0 jump DOCKER
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 30 bytes 4864 accept
                iifname "br-498c5f61477f" oifname "br-498c5f61477f" counter packets 0 bytes 0 accept
        }

        chain DOCKER-USER {
                counter packets 2375 bytes 1260429 jump whalewall
                counter packets 4148 bytes 2595535 return
        }

        chain whalewall {
                ip saddr vmap @whalewall-container-addrs
                ip daddr vmap @whalewall-container-addrs
        }

        chain INPUT {
                type filter hook input priority filter; policy accept;
                counter packets 45 bytes 3432 jump whalewall
        }

        chain OUTPUT {
                type filter hook output priority filter; policy accept;
                counter packets 28 bytes 3024 jump whalewall
        }

        chain whalewall-wiki_db-9c20208483af {
                ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp sport 5432 ct state established,related counter packets 367 bytes 94004 accept
                counter packets 0 bytes 0 log prefix "whalewall-wiki_db-9c20208483af drop: " level info drop
        }

        chain whalewall-wiki-b332c42f4347 {
                ip saddr <IP_ADDRESS> ip daddr <IP_ADDRESS> tcp dport 5432 ct state established,related,new counter packets 586 bytes 48363 accept
                counter packets 10 bytes 600 log prefix "whalewall-wiki-b332c42f4347 drop: " level info drop
        }
}

Now after reboot, the ntf table:
table ip filter {
        map whalewall-container-addrs {
                type ipv4_addr : verdict
        }

        chain DOCKER {
                iifname != "br-8a1207fb6cae" oifname "br-8a1207fb6cae" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 9000 counter packets 0 bytes 0 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 443 counter packets 0 bytes 0 accept
                iifname != "br-498c5f61477f" oifname "br-498c5f61477f" meta l4proto tcp ip daddr <IP_ADDRESS> tcp dport 80 counter packets 0 bytes 0 accept
        }

        chain DOCKER-ISOLATION-STAGE-1 {
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 9 bytes 1109 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 jump DOCKER-ISOLATION-STAGE-2
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 29 bytes 4812 jump DOCKER-ISOLATION-STAGE-2
                counter packets 1183 bytes 381676 return
        }

        chain DOCKER-ISOLATION-STAGE-2 {
                oifname "docker0" counter packets 0 bytes 0 drop
                oifname "br-e4726b4d1a2d" counter packets 0 bytes 0 drop
                oifname "br-8a1207fb6cae" counter packets 0 bytes 0 drop
                oifname "br-6281c5fa18c5" counter packets 0 bytes 0 drop
                oifname "br-498c5f61477f" counter packets 0 bytes 0 drop
                counter packets 38 bytes 5921 return
        }

        chain FORWARD {
                type filter hook forward priority filter; policy drop;
                counter packets 1183 bytes 381676 jump DOCKER-USER
                counter packets 1183 bytes 381676 jump DOCKER-ISOLATION-STAGE-1
                oifname "docker0" ct state related,established counter packets 0 bytes 0 accept
                oifname "docker0" counter packets 0 bytes 0 jump DOCKER
                iifname "docker0" oifname != "docker0" counter packets 0 bytes 0 accept
                iifname "docker0" oifname "docker0" counter packets 0 bytes 0 accept
                oifname "br-e4726b4d1a2d" ct state related,established counter packets 980 bytes 230208 accept
                oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 jump DOCKER
                iifname "br-e4726b4d1a2d" oifname != "br-e4726b4d1a2d" counter packets 0 bytes 0 accept
                iifname "br-e4726b4d1a2d" oifname "br-e4726b4d1a2d" counter packets 7 bytes 420 accept
                oifname "br-8a1207fb6cae" ct state related,established counter packets 95 bytes 112889 accept
                oifname "br-8a1207fb6cae" counter packets 2 bytes 120 jump DOCKER
                iifname "br-8a1207fb6cae" oifname != "br-8a1207fb6cae" counter packets 9 bytes 1109 accept
                iifname "br-8a1207fb6cae" oifname "br-8a1207fb6cae" counter packets 2 bytes 120 accept
                oifname "br-6281c5fa18c5" ct state related,established counter packets 14 bytes 1155 accept
                oifname "br-6281c5fa18c5" counter packets 2 bytes 120 jump DOCKER
                iifname "br-6281c5fa18c5" oifname != "br-6281c5fa18c5" counter packets 0 bytes 0 accept
                iifname "br-6281c5fa18c5" oifname "br-6281c5fa18c5" counter packets 2 bytes 120 accept
                oifname "br-498c5f61477f" ct state related,established counter packets 45 bytes 30843 accept
                oifname "br-498c5f61477f" counter packets 0 bytes 0 jump DOCKER
                iifname "br-498c5f61477f" oifname != "br-498c5f61477f" counter packets 29 bytes 4812 accept
                iifname "br-498c5f61477f" oifname "br-498c5f61477f" counter packets 0 bytes 0 accept
        }

        chain DOCKER-USER {
                counter packets 1183 bytes 381676 jump whalewall
                counter packets 1183 bytes 381676 return
        }

        chain whalewall {
                ip saddr vmap @whalewall-container-addrs
                ip daddr vmap @whalewall-container-addrs
        }

        chain INPUT {
                type filter hook input priority filter; policy accept;
                counter packets 50 bytes 6866 jump whalewall
        }

        chain OUTPUT {
                type filter hook output priority filter; policy accept;
                counter packets 43 bytes 8787 jump whalewall
        }
}

And whalewall log (including log entries before reboot):
2023-04-18T17:39:36.11982076Z INF undefined | msg=applied landlock rules
2023-04-18T17:39:36.120974528Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-18T17:39:36.120993133Z INF undefined | msg=starting whalewall version=devel commit=d36566f6cf5a906b00faa24849ec1719ba7a3f36
2023-04-18T17:39:36.125314289Z DBG undefined | msg=creating chain chain.name=INPUT
2023-04-18T17:39:36.125372008Z DBG undefined | msg=creating chain chain.name=OUTPUT
2023-04-18T17:40:08.711817004Z INF undefined | msg=creating rules container.id=9c20208483af container.name=wiki_db
2023-04-18T17:40:08.788182422Z DBG undefined | msg=adding to database container.id=9c20208483af container.name=wiki_db
2023-04-18T17:40:09.060967133Z INF undefined | msg=creating rules container.id=b332c42f4347 container.name=wiki
2023-04-18T17:40:09.065707809Z DBG undefined | msg=creating rule container.id=b332c42f4347 container.name=wiki rule=[object Object]
2023-04-18T17:40:09.11459109Z DBG undefined | msg=adding to database container.id=b332c42f4347 container.name=wiki
2023-04-18T17:42:44.255708663Z INF undefined | msg=shutting down
2023-04-18T17:43:16.206933344Z INF undefined | msg=applied landlock rules
2023-04-18T17:43:16.207532818Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-18T17:43:16.207546234Z INF undefined | msg=starting whalewall version=devel commit=d36566f6cf5a906b00faa24849ec1719ba7a3f36
2023-04-18T17:43:17.824009057Z DBG undefined | msg=creating chain chain.name=INPUT
2023-04-18T17:43:17.82407979Z DBG undefined | msg=creating chain chain.name=OUTPUT

Thanks, but to reproduce your issue I need the docker compose details for your 'wiki' and 'wiki_db' services. Redact any personal info if it exists in the config as long as it doesn't change the behavior with whalewall.

Here you go:
version: "3.8"

services:
  db:
    container_name: wiki_db
    image: postgres:14.5-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wikijs
      POSTGRES_PASSWORD: somepassword
    networks:
      wiki_network:
    volumes:
      - wiki_db_data:/var/lib/postgresql/data
    labels:
      # WHALEWALL
      whalewall.enabled: true

  wiki:
    container_name: wiki
    image: ghcr.io/dti-ceis/wiki:latest
    restart: unless-stopped
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_NAME: wiki
      DB_USER: wikijs
      DB_PASS: somepassword
    networks:
      wiki_network:
      public:
    volumes:
      - wiki_data:/wiki/data/content
    labels:
      # WHALEWALL
      whalewall.enabled: true
      whalewall.rules: |
        output:
          # Permitir a la base de datos
          - network: wiki_network
            container: wiki_db
            proto: tcp
            port: 5432
      # TRAEFIK
      traefik.enable: true
      traefik.http.routers.wiki.rule: "Host(`wikidev.iamruben.local`)"
      traefik.http.routers.wiki.entrypoints: "web,websecure"
      traefik.http.routers.wiki.tls: true
      traefik.http.services.wiki.loadbalancer.server.port: 3000
      traefik.http.routers.wiki.service: "wiki"

networks:
  wiki_network:
    external: true
  public:
    external: true

volumes:
  wiki_data:
    name: wiki_data
    driver: local
    driver_opts:
      o: bind
      device: /mnt/docker/wiki/volumes/wiki_data
      type: none
  wiki_db_data:
    name: wiki_db_data
    driver: local
    driver_opts:
      o: bind
      device: /mnt/docker/wiki/volumes/wiki_db_data
      type: none

Hmm, maybe part of the problem is that I've never tested with external networks, didn't know they existed before now. How did you create the wiki_network and public networks?

From command line or portainer.
docker network create -d bridge wiki_network
docker network create -d bridge public

Thanks for troubleshooting for so long with me, I may have finally fixed everything. Pull the latest image and try again please, whalewall should recreate rules properly even after a reboot. If you're interested as to what the problem was, I detailed it in this commit message: https://github.com/capnspacehook/whalewall/commit/6515da855aa3529560e877af3e7b151fa048096f

Thanks for fix that. Now seems to be working, but when using traefik container as a reverse proxy and reboot the machine, whalewall fails to create some rules and I need to restart traefik container to recreate it.
2023-04-19T06:15:30.2662584Z INF undefined | msg=applied landlock rules
2023-04-19T06:15:30.266763006Z INF undefined | msg=applied seccomp filters syscalls.allowed=48
2023-04-19T06:15:30.266776769Z INF undefined | msg=starting whalewall version=devel commit=6515da855aa3529560e877af3e7b151fa048096f
2023-04-19T06:15:31.925579204Z INF undefined | msg=creating rules container.id=1989b04f3b1a container.name=wiki_db container.is_new=false
2023-04-19T06:15:31.992739438Z INF undefined | msg=creating rules container.id=f0c817abe650 container.name=wiki container.is_new=false
2023-04-19T06:15:32.040634863Z INF undefined | msg=creating rules container.id=f5dce7cca5b7 container.name=portainer_agent container.is_new=false
2023-04-19T06:15:32.042937391Z INF undefined | msg=creating rules container.id=ba534fb07e8e container.name=traefik container.is_new=true
2023-04-19T06:15:32.066852959Z ERR undefined | msg=error creating output rules container.id=ba534fb07e8e container.name=traefik error=conn.Receive: netlink receive: no such file or directory stacktrace=github.com/capnspacehook/whalewall.(*RuleManager).createContainerRules
	github.com/capnspacehook/whalewall/create.go:244
github.com/capnspacehook/whalewall.(*RuleManager).createRules
	github.com/capnspacehook/whalewall/create.go:62
github.com/capnspacehook/whalewall.(*RuleManager).Start.func1
	github.com/capnspacehook/whalewall/manager.go:123
2023-04-19T06:15:32.067495761Z ERR undefined | msg=error creating rules container.id=ba534fb07e8e container.name=traefik error=error adding container addr to database: constraint failed: UNIQUE constraint failed: addrs.addr (1555) stacktrace=github.com/capnspacehook/whalewall.(*RuleManager).createRules
	github.com/capnspacehook/whalewall/create.go:63
github.com/capnspacehook/whalewall.(*RuleManager).Start.func1
	github.com/capnspacehook/whalewall/manager.go:123
2023-04-19T06:15:32.067519563Z INF undefined | msg=creating rules container.id=77f5c1fab2b0 container.name=portainer container.is_new=false

After restart traefik container:
2023-04-19T06:16:45.758924262Z INF undefined | msg=not deleting container that isn't in database container.id=ba534fb07e8e
2023-04-19T06:16:46.088931279Z INF undefined | msg=creating rules container.id=ba534fb07e8e container.name=traefik container.is_new=true
2023-04-19T06:16:46.109140661Z ERR undefined | msg=error creating rules container.id=ba534fb07e8e container.name=traefik error=error adding container addr to database: constraint failed: UNIQUE constraint failed: addrs.addr (1555) stacktrace=github.com/capnspacehook/whalewall.(*RuleManager).createRules
	github.com/capnspacehook/whalewall/create.go:63
github.com/capnspacehook/whalewall.(*RuleManager).Start.func1
	github.com/capnspacehook/whalewall/manager.go:123

I don't know what is the meaning of this error conn.Receive: netlink receive: no such file or directory
Also, I think -clear flag is not working properly (not flushing nft table).
Thanks in advance.

Try to restart traefik container and reboot host machine to reproduce the error.
Below the environment details:

Create networks using:

docker network create -d bridge public
docker network create -d bridge wiki_network

Traefik stack:

version: "3.8"

services:
  traefik:
    container_name: traefik
    image: traefik:latest
    restart: unless-stopped
    environment:
      - TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80
      - TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS=:443
      - TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_TO=websecure
      - TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME=https
      - TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT=true
      - TRAEFIK_PROVIDERS_DOCKER=true
      - TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=false
      - TRAEFIK_PROVIDERS_DOCKER_NETWORK=public
      - TRAEFIK_API_DASHBOARD=true
      - TRAEFIK_LOG_LEVEL=info
      - TZ=Europe/Madrid
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
      - target: 443
        published: 443
        protocol: tcp
        mode: host
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      public:
    labels:
      # WHALEWALL
      whalewall.enabled: true
      whalewall.rules: |
        mapped_ports:
          external:
            allow: true
        output:
          - network: public
            container: portainer
            proto: tcp
            port: 9000
          - network: public
            container: wiki
            proto: tcp
            port: 3000
          # Permite el trafico HTTP
          - log_prefix: "http"
            proto: tcp
            port: 80
          # Permite el trafico HTTPS
          - log_prefix: "https"
            proto: tcp
            port: 443
      # TRAEFIK
      traefik.enable: true
      traefik.http.routers.traefik.entrypoints: "web,websecure"
      traefik.http.routers.traefik.tls: true
      traefik.http.routers.traefik.rule: "Host(`traefik.iamruben.local`)"
      traefik.http.routers.traefik.service: "api@internal"
      traefik.http.services.traefik.loadbalancer.server.port: 8080

networks:
  public:
    external: true

Wiki stack:

version: "3.8"

services:
  db:
    container_name: wiki_db
    image: postgres:14.5-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wikijs
      POSTGRES_PASSWORD: somepassword
    networks:
      wiki_network:
    volumes:
      - wiki_db_data:/var/lib/postgresql/data
    labels:
      # WHALEWALL
      whalewall.enabled: true

  wiki:
    container_name: wiki
    image: ghcr.io/dti-ceis/wiki:latest
    restart: unless-stopped
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_NAME: wiki
      DB_USER: wikijs
      DB_PASS: somepassword
    networks:
      wiki_network:
      public:
    volumes:
      - wiki_data:/wiki/data/content
    labels:
      # WHALEWALL
      whalewall.enabled: true
      whalewall.rules: |
         output:
          - network: wiki_network
            container: wiki_db
            proto: tcp
            port: 5432
      # TRAEFIK
      traefik.enable: true
      traefik.http.routers.wiki.rule: "Host(`wikidev.iamruben.local`)"
      traefik.http.routers.wiki.entrypoints: "web,websecure"
      traefik.http.routers.wiki.tls: true
      traefik.http.services.wiki.loadbalancer.server.port: 3000
      traefik.http.routers.wiki.service: "wiki"

networks:
  wiki_network:
    external: true
  public:
    external: true

volumes:
  wiki_data:
  wiki_db_data:

I tried to reproduce with your exact Compose configs and did find and fix a bug related to what you mentioned, but I'm not sure if it's the exact issue your described. Can you test again please? Note that you'll have to update the whalewall configs slightly since I've added and renamed port related fields to support multiple source and destination ports per rule, see the README for details.


Confused about GetServiceTicket

I am trying to get a base 64 Kerberos Ticket for my test user so I can automate some tests.
The samples show to call client.GetServiceTicket, but that call expects an SPN value.  I looked up what an SPN is and I don't think that my test user has any of them.  (A call to setspn -L "myDomain\myTestUser" returned an empty list.)
But when do a Run as different user on Chrome and let the browser do integrated windows authentication, it works.  (So it seems it can get a Kerberos Token somehow.)
I may be trying to do something that this library does not help with, but I thought I would ask, is there way to get a Kerberos token that can be passed in a header (like Authorize: Negotiate KESWFS.......) WITHOUT an SPN on the user?

User's don't have SPNs. SPNs are service principal names. The SPN is for the thing the user is getting a ticket to. So you're connecting to https://someserver.com/. The browser or HTTP client is going to infer what the SPN is based on the host name and service, and pick http/someserver.com. The client will send a request to Active Directory and ask for a service ticket for that particular SPN. In AD that SPN is registered to the service account or machine for that particular endpoint.
Active Directory then generates a service ticket and encrypts it to the password of the service or machine account that has the SPN registered. AD returns it to the client, the client encodes it into the header, the service receives it, and the service decrypts it using it's service or machine password that was configured separately.
In other words from the client's perspective you're not asking for a generic ticket to nothing/everything (that's what .Authenticate(Credential...) does). GetServiceTicket needs to know what service you want a ticket to.

WOW!  Thank you for the incredibly fast response!
That cleared it up for me.  I put in:
var ticket = await client.GetServiceTicket("http/myServerThatWantsTheKerberosToken.myDomain.net");

And got a ticket back!
Thank you so much for the fantastic library and for the amazingly fast response!


Compress binary using upx

Leverage https://upx.github.io/ for a smaller binary.

Codecov Report

Merging #4 (b75263b) into master (5a4d2f1) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           13        13
  Lines          292       292
=========================================
  Hits           292       292

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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


Conjure: get_themes() method silently failing

No exception is generated, but it looks like the ScenarioList is not actually used -- the question does not include parameters for it:

Good catch - so it looks like I'm actually just passing the values using an f-string and not using the Scenario?

Exactly.
We should also consider improving to remove nulls. In our example, they are stored as "missing", so it should be a broad net.
I'm still getting empty results, haven't figured out why yet because the question looks ok.

Closing this as I've got it working now. Not sure if it was a version update issue or what but will reopen if it reappears. We can delete the unnecessary line in the method though.


Opened Channel and Appearing as Zombie

Background
I opened a channel last night.  It doesn't show any fees.  In Thunderhub, when I try to edit the fees, it returns the following error:
"Error getting channel information. Try refreshing the page."
I've tried refreshing, I've tried restarting node, same results.
The log returns:
"2022-08-25 21:48:14.764 [ERR] RPCS: [/lnrpc.Lightning/GetChanInfo]: edge marked as zombie"
Your environment

version of lnd:  0.15.0-beta
which operating system (uname -a on *Nix):  Voltage.Cloud
version of btcd, bitcoind, or other backend:  Unsure
any other relevant environment details

Steps to reproduce
Unsure as node is hosted via Voltage
Expected behaviour
It should have opened a screen for me to set fees.
Actual behaviour
Produced a Zombie error.

So typically a channel only shows as a "zombie" after it's been open for 2 weeks, but hasn't sent any channel updates. Given that, I think these errors might be uncorrelated.
Was the node offline for a long time?
If you have CLI access, are you able to do lncli getchaninfo <scid> locally to see if your node knows of the channel?
Do you have any logs for around the time of the channel open?

It's definitely that channel that is marked as a zombie.  I just tried to edit fees twice:
2022-08-26 12:31:15.933 [ERR] RPCS: [/lnrpc.Lightning/GetChanInfo]: edge marked as zombie
2022-08-26 12:31:12.628 [ERR] RPCS: [/lnrpc.Lightning/GetChanInfo]: edge marked as zombie
I had a channel open to them previously and it was closed out a few weeks ago.  Maybe that has something to do with it?

what chain are you on

I mean mainnet or testnet. do you have debug logs youd be willing to share

Sorry about that.  Mainnet.  I'll send you logs, now.

Emailed logs.

I mean mainnet or testnet. do you have debug logs youd be willing to share

Just making sure you received the logs @Crypt-iQ

Yes I've received the logs, thanks

I am the other party
On my end I see the channel on my node but it does not appear in graph (hence not visible anywhere). On my end I am able to set fees but cannot route through this channel because it is not on graph.
lncli getchaninfo returns node2 policy as null (which implies my peers is unable to setup fees on this channel)
umbrel@umbrel:~/utils $ lncli getchaninfo<PHONE_NUMBER>18261505
{
    "channel_id": "825706844218261505",
    "chan_point": "1bae01e863444d89f5d3612ed27adc5f1553396f16feb774a0dbba93d7632805:1",
    "last_update":<PHONE_NUMBER>,
    "node1_pub": "03c5528c628681aa17ab9e117aa3ee6f06c750dfb17df758ecabcd68f1567ad8c1",
    "node2_pub": "03f64f9cba205695b89f0208f0326d09c45e6ebf104f79f73eb204dfa2c0badee5",
    "capacity": "8000000",
    "node1_policy": {
        "time_lock_delta": 144,
        "min_htlc": "1000",
        "fee_base_msat": "9999000",
        "fee_rate_milli_msat": "966",
        "disabled": false,
        "max_htlc_msat": "7920000000",
        "last_update":<PHONE_NUMBER>
    },
    "node2_policy": null
}

I can also see the channel in lncli listchannel
{
  "active": true,
  "remote_pubkey": "03f64f9cba205695b89f0208f0326d09c45e6ebf104f79f73eb204dfa2c0badee5",
  "channel_point": "1bae01e863444d89f5d3612ed27adc5f1553396f16feb774a0dbba93d7632805:1",
  "chan_id": "825706844218261505",
  "capacity": "8000000",
  "local_balance": "0",
  "remote_balance": "7998160",
  "commit_fee": "1510",
  "commit_weight": "772",
  "fee_per_kw": "1050",
  "unsettled_balance": "0",
  "total_satoshis_sent": "0",
  "total_satoshis_received": "0",
  "num_updates": "21",
  "pending_htlcs": [],
  "csv_delay": 961,
  "private": false,
  "initiator": false,
  "chan_status_flags": "ChanStatusDefault",
  "local_chan_reserve_sat": "80000",
  "remote_chan_reserve_sat": "80000",
  "static_remote_key": false,
  "commitment_type": "ANCHORS",
  "lifetime": "98220",
  "uptime": "98149",
  "close_address": "",
  "push_amount_sat": "0",
  "thaw_height": 0,
  "local_constraints": {
    "csv_delay": 961,
    "chan_reserve_sat": "80000",
    "dust_limit_sat": "354",
    "max_pending_amt_msat": "7920000000",
    "min_htlc_msat": "1",
    "max_accepted_htlcs": 483
  },
  "remote_constraints": {
    "csv_delay": 961,
    "chan_reserve_sat": "80000",
    "dust_limit_sat": "354",
    "max_pending_amt_msat": "7920000000",
    "min_htlc_msat": "1",
    "max_accepted_htlcs": 21
  },
  "alias_scids": [],
  "zero_conf": false,
  "zero_conf_confirmed_scid": "0"
}

since you are using voltage.cloud, is voltage running the node for you on their servers with their own full-node backends?

since you are using voltage.cloud, is voltage running the node for you on their servers with their own full-node backends?

That is correct. I think.  I have their standard full node plan:
Standard Node
Backed by a Bitcoin full node on a shared platform with Tor only

Just following up on this.  I can't co-op close, force close, set fees, rebalance, nothing ...  Thank you!

This is the error it gives me.

@itshig this error shown above sounds like an issue with the UI (RTL or Voltage UI?) itself, trying to fetch channel information to display, then not showing the buttons because of the error. You should be able to close the channel with lncli (if you choose to do so).
We're still trying to find out what exactly happened though.

@itshig this error shown above sounds like an issue with the UI (RTL or Voltage UI?) itself, trying to fetch channel information to display, then not showing the buttons because of the error. You should be able to close the channel with lncli (if you choose to do so). We're still trying to find out what exactly happened though.

Thanks, I'll try to close it via lncli sometime this weekend.  Have a really busy day today.

The issue is that the funding manager receives confirmations, but then the router can't find the funding tx with btcd, meaning it's marked as a zombie

@itshig this error shown above sounds like an issue with the UI (RTL or Voltage UI?) itself, trying to fetch channel information to display, then not showing the buttons because of the error. You should be able to close the channel with lncli (if you choose to do so). We're still trying to find out what exactly happened though.

What is the proper way to close a channel via lncli?  I've tried it about every way I can think of:
 lncli closechannel G-Spot-21_69_420 --sat_per_vbyte 1
[lncli] rpc error: code = Unknown desc = encoding/hex: invalid byte: U+0047 'G'
 lncli closechannel ⚡G-Spot-21_69_420⚡ --sat_per_vbyte 1
[lncli] rpc error: code = Unknown desc = encoding/hex: invalid byte: U+00E2 'â'
 lncli closechannel<PHONE_NUMBER>02809601 --sat_per_vbyte 1
[lncli] rpc error: code = Unknown desc = channel not found
 lncli closechannel 736617x2828x1 --sat_per_vbyte 1
[lncli] rpc error: code = Unknown desc = encoding/hex: invalid byte: U+0078 'x'


You need to split the channel_point into its two parts:
lncli closechannel --funding_txid 1bae01e863444d89f5d3612ed27adc5f1553396f16feb774a0dbba93d7632805 --output_index 1

Thank you!  This worked!  Where did you get the funding_txid from?  This is all confusing to me lol.

Also, would this work on a channel that is stuck in closing?  I have another channel that has been stuck for a few months that I can't seem to figure out how to get it to move out of pending close.

Thank you! This worked! Where did you get the funding_txid from? This is all confusing to me lol.

You can get the channel_point (funding transaction id + output index) from the listchannels command.

Also, would this work on a channel that is stuck in closing? I have another channel that has been stuck for a few months that I can't seem to figure out how to get it to move out of pending close.

It looks like this channel is still open. If your peer is offline, you can try to force close the channel with the --force flag (see lncli closechannel -h). Note that this incurs higher transaction fees for the one who opened the channel than for a normal close.

I really appreciate the help.  I think all of my issues are in the process of being rectified.  This being the last of them:
 lncli closechannel --funding_txid 16932e23337fa01183be57c92a48a2d1b8e4bf5818ebee271c996f88c121c042 --conf_target 1
[lncli] rpc error: code = Unknown desc = unable to gracefully close channel while peer is offline (try force closing it instead): channel link not found
 lncli closechannel --funding_txid 16932e23337fa01183be57c92a48a2d1b8e4bf5818ebee271c996f88c121c042 --force
{
"closing_txid": "db462cf8fd432a207c898eb5b3ad4c75e198026ba9965b4696ef6e8f28277eab"
}


I really appreciate the help. I think all of my issues are in the process of being rectified. This being the last of them:
 lncli closechannel --funding_txid 16932e23337fa01183be57c92a48a2d1b8e4bf5818ebee271c996f88c121c042 --conf_target 1 [lncli] rpc error: code = Unknown desc = unable to gracefully close channel while peer is offline (try force closing it instead): channel link not found  lncli closechannel --funding_txid 16932e23337fa01183be57c92a48a2d1b8e4bf5818ebee271c996f88c121c042 --force { "closing_txid": "db462cf8fd432a207c898eb5b3ad4c75e198026ba9965b4696ef6e8f28277eab" } 

It looks like that's the expected outcome.
In general, make sure to also explicitly specify the output index --output_index so you won't accidentally close a channel should multiple channels have been opened in a batch (if the output index is zero, it's not strictly needed).


Library situation

a) Instead of having "android-support-v4.jar" inside the libs folder, we should use the one provided by the Android SDK using a proper dependency definition with a version code.
b) I am not sure how to handle the other libs correctly. I think it's good enough for now to include the precompiled jars, but it would be much nicer to rely on libs from JCenter or including them with git submodules. At least we should document how they were build inside the README (I saw your specific instructions in https://github.com/dschuermann/ical-import-export/commit/f50ec5724d6722f0824d59150831a08a9b33547d and https://github.com/dschuermann/ical-import-export/commit/3e36642a15c5195f3372e93d9ca3677a75591a58 )
@jgriffiths

BTW: https://github.com/ical4j/ical4j/wiki/Android

Thanks for the link, local libs are now replaced.


Last Week in Pony - April 28, 2019

The recording of this week's Pony developer sync is available here: https://sync-recordings.ponylang.io/r/2019_04_23.m4a


Request to add Argo resource health checks for Ionos resources

Please may you look into contributing resource health checks to the ArgoCD project for the resources provided by this provider?
At present if you use Argo to manage your crossplane resources, they will all show as healthy even if they are currently failing. Argo provides a mechanism for third parties to submit custom resource health checks, see https://argo-cd.readthedocs.io/en/stable/operator-manual/health/#way-2-contribute-a-custom-health-check
The Argo repo contains examples of health checks for other crossplane providers see https://github.com/argoproj/argo-cd/tree/master/resource_customizations
Thanks

Hello, this is now currently in the works, however if you'd like to have health checks for the ionoscloud resources available in Argocd in the meantime, the argo-cd ConfigMap can be edited as shown here.
I've also created this PR for ArgoCD usage examples where I add the health checks as a value for the argocd helm chart. The ionoscloud resources created here all have tracking and health checks enabled.

It seems bundling health checks for managed resources is not something other providers do. One of the reasons for this is that Claims or Composite resources don't inherit their health state.
Managed Resources are also fully covered by the script provided in the Crossplane docs so it's probably better if users include these as settings of their Argocd installation.


[libpq] Update to 16.3

And fix non-msvc builds on windows: Rely on perl from vcpkg_acquire_msys.
Resolves https://github.com/microsoft/vcpkg/issues/40155.

Except readline,bonjour, other features are tested successfully in the following triplet:
x86-windows
x64-windows
x64-windows-static


Support creating D3D9 device without a window

In spite of what the documentation says, it's possible to create a D3D9 device with NULL passed for both PresentationParams::hDeviceWindow and FocusWindow. This will still create an implicit swapchain and you can query the backbuffers and render to those. You can even call Present and that returns S_OK.
According to Wine commit logs, Planetary Annihilation: Titans depends on this. This also makes the "visuals" Wine test crash with DXVK.

I seem to remember this not working for me which is why the DXVK tests all have windows.


MPD / Can't find media_duration attribute

More in this topic https://github.com/KoljaWindeler/ytube_music_player/issues/108
Is there any chance to enable this media_duration attribute?

All attributes of the mpd integration are coming from the build-in integration of Home Assistant.
The addon just provides just an player which can be controlled via http requests. Home Assistant Core is controlling it and takes care about the right metadata.


Apply breakdown sum validation to QBS

What is the context of this PR?
As a respondent
I want my answers validated before I submit
So that ONS does not contact me after submission
How to review
Enter a value for total number of employees.
The sum of the breakdown answers must then total less than or equal to that value. Otherwise a correct error message should be displayed.

@shahi645 is there a reason the label isn't piped into the error message anymore? I have used a bespoke message to the same effect.

@dwyeradam We went through the content me Charlotte and Will, we agreed to take it out

@shahi645 Bespoke error message removed so ready for review please.


Enable transaction request exchange functionality.

Issue/Task Number: #373
Overview
Since transaction request creation can't input exchange address before, it is not possible to consume with different token. This PR add a field when creating transaction request.
Changes

Add exchange address transaction request.
Change loading style for table.
Change loading style for button.
Minor bug fix.

Usage

Move around to see new loading style.
Create transaction request with exchange address, consume it with different token.
Save something to see loading button style.

Impact
Deploy as usual.

Amount is incorrect when consuming a different token. (wrong token and wrong subunit to unit)
I created a new account but it didn't show up in the list of addresses that I can pick for the Exchange address. I had to reload the page.
When consuming a request that DOESN'T allow amount override: it'd be nice to update the amount box when selecting different token using the calculate_amount endpoint
Also would be nice to have the exchange address in the additional request details
Also I think the consumption box should be redesigned to have a better view of the exchange (to discuss with Noei)


fix: fix android footer position bug

Fixes #24
@haivle

:rocket: This pull request is included in v0.11.3. See Release 0.11.3 for release notes.


qbittorrent 404 error

Can't update/install qbittorrent:
>scoop install qbittorrent
Installing 'qbittorrent' (4.1.4) [64bit]
The remote server returned an error: (404) Not Found.
URL https://downloads.sourceforge.net/project/qbittorrent/qbittorrent-win32/qbittorrent-4.1.4/qbittorrent_4.1.4_x64_setup.exe#/dl.7z is not valid

https://github.com/qbittorrent/qBittorrent/issues/9872
https://github.com/qbittorrent/qBittorrent/issues/9865

Update service downgraded it to 4.1.3 https://github.com/lukesampson/scoop-extras/commit/198828af98d876d7870d069ba294335ccd27d5a8
Should work again after running scoop update

thx!


Editable keybindings for code completion / suggestions: Next/Previous item in list

My appologies if this already exists. I was not able to find such a thing in VS Code settings or as an existing request.
Consider following scenario:
You are editing code.
You want to move up / down a line using the Up/Down arrow keys.
You press the Up/Down arrow keys many times to move through multiple lines previously.
If I push "Down" 5 times, I intuitively expect to move down 5 lines.
Sometimes this does not happen, because the code suggestion pop-up appears and it "steals" the Up/Down arrow key presses from the code editing window behind it.
One solution is to disable the code completion / suggestions (or whatever it is called I wasn't able to find the "official" name. In Visual Studio it is called "intellisense" I think.)
My feature request is to be able to change the assigned keybindings to move "up"/"down" the code suggestions pop up from "Up"/"Down" arrow key to "Shift+Up"/"Shift+Down" arrow key.
This would enable the user to still use the pop up window and select an item, while also preventing the pop up from stealing keypresses from the main window.
Thanks

There are some Stack Overflow questions on this.  For example, see https://stackoverflow.com/questions/48097507/visual-studio-code-use-tab-instead-of-arrow-keys-to-select-intellisense-sugge/48098133#48098133

Sometimes this does not happen, because the code suggestion pop-up appears and it "steals" the Up/Down arrow key presses from the code editing window behind it.

When using up/down to go to the lines above/below should not trigger IntelliSense and I curious to know how/when that happens for you.


Add @rules_proto//proto:universal_tools flag to allow building protoc as an universal binary

Similar to https://github.com/bazelbuild/rules_swift/pull/712

I would really prefer to not add more dependencies. Hopefully, we can toolchainify proto rules soon, at which point it's very easy for users to provide their own protoc (like an universal binary)

I can vendor that rule in rules_proto if you prefer that way.

I would really prefer to not add more dependencies. Hopefully, we can toolchainify proto rules soon, at which point it's very easy for users to provide their own protoc (like an universal binary)

I agree with that.

That makes sense, I'm closing this. Looking forward to the proto rules toolchainification!


Create bootstrap android application

Comitted: https://github.com/hk1997/GenerativePlayground/commit/10384fd98cfd8047710f2351d11ea9b66826a1ed


Add workflow to automate module documentation

And add READMEs to modules that did not have them

Looks great Zuri, just wondered if you'd considered a way around hard-coding the module names in the workflow? Are there technical/process reasons for doing so?

Updated the workflow to use find-dir configuration to automatically find READMEs within the given directory.

Looks great Zuri, just wondered if you'd considered a way around hard-coding the module names in the workflow? Are there technical/process reasons for doing so?

Updated the workflow to use find-dir configuration to automatically find READMEs within the given directory.

Nice one. Could you use this for the terraform module path triggers as well, again to avoid the specific mod names?
/terraform/modules/*/**.md


Failed to activate controller - joint_state_broadcaster and diffdrive_controller

Robot Model
Standard
ROS distro
Humble
Networking Configuration
Unknown
OS
Ubuntu 22.04
Built from source or installed?
Built from source
Package version
not sure
Expected behaviour
Should launch gazebo simulator and let me move the robot through the keyboard
Actual behaviour
Gazebo launches but cant use anything to move
Command used
ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py

spawner-32] [INFO] [1726126627.879960764] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster [ruby $(which ign) gazebo-1] [INFO] [1726126627.883165417] [controller_manager]: Configuring controller 'joint_state_broadcaster' [ruby $(which ign) gazebo-1] [INFO] [1726126627.883490512] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published [ruby $(which ign) gazebo-1] [ERROR] [1726126632.895651088] [controller_manager]: Switch controller timed out after 5.000000 seconds! [spawner-32] [ERROR] [1726126632.897863114] [spawner_joint_state_broadcaster]: Failed to activate controller [ERROR] [spawner-32]: process has died [pid 71355, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner joint_state_broadcaster -c controller_manager --ros-args -r __ns:=/']. [INFO] [spawner-46]: process started with pid [72187] [spawner-46] [INFO] [1726126633.320203930] [spawner_diffdrive_controller]: waiting for service /controller_manager/list_controllers to become available... [ruby $(which ign) gazebo-1] [INFO] [1726126634.078819296] [controller_manager]: Loading controller 'diffdrive_controller' [spawner-46] [INFO] [1726126634.162491993] [spawner_diffdrive_controller]: Loaded diffdrive_controller [ruby $(which ign) gazebo-1] [INFO] [1726126634.164698182] [controller_manager]: Configuring controller 'diffdrive_controller' [ruby $(which ign) gazebo-1] [ERROR] [1726126639.171874358] [controller_manager]: Switch controller timed out after 5.000000 seconds! [spawner-46] [ERROR] [1726126639.174520307] [spawner_diffdrive_controller]: Failed to activate controller [ERROR] [spawner-46]: process has died [pid 72187, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner diffdrive_controller -c controller_manager --ros-args -r __ns:=/ --params-file /opt/ros/humble/share/irobot_create_control/config/control.yaml'].

Same Problem here. i got it to work once with just retrying the command, but it would not work again with the same command.
Ubuntu: 22.04
ROS: Humble
Gazebo: Fortress
spawner-32] [ERROR] [1726758548.129574063] [spawner_joint_state_broadcaster]: Failed to activate controller

[ERROR] [spawner-32]: process has died [pid 3706, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner joint_state_broadcaster -c controller_manager --ros-args -r __ns:=/'].

[INFO] [spawner-47]: process started with pid [4509]

[spawner-47] [INFO] [1726758548.879439345] [spawner_diffdrive_controller]: waiting for service /controller_manager/list_controllers to become available...

[ruby $(which ign) gazebo-1] [INFO] [1726758550.548382120] [controller_manager]: Loading controller 'diffdrive_controller'

[spawner-47] [INFO] [1726758550.581728758] [spawner_diffdrive_controller]: Loaded diffdrive_controller

[ruby $(which ign) gazebo-1] [INFO] [1726758550.583345119] [controller_manager]: Configuring controller 'diffdrive_controller'

[ruby $(which ign) gazebo-1] [ERROR] [1726758555.588789834] [controller_manager]: Switch controller timed out after 5.000000 seconds!

[spawner-47] [ERROR] [1726758555.589389964] [spawner_diffdrive_controller]: Failed to activate controller

Also having the same issue. Maybe all the controller stuff needs to be delayed in its spawning till gazebo is up and running? I think it's spawning too early and is timing out before it gets the feedback it needs from gazebo.

I'm having the same issue, did anyone find a solution?

Also having the same issue. Maybe all the controller stuff needs to be delayed in its spawning till gazebo is up and running? I think it's spawning too early and is timing out before it gets the feedback it needs from gazebo.

After some trial and error I found a way to make it work, by launching the ignition simulation and the turtlebot spawn separately:
ros2 launch turtlebot4_ignition_bringup ignition.launch.py
Wait for the simulator to start.
START THE SIMULATION with the small play button on the left. If the simulation is not running the controllers fail to load for some reason.
Then, after the simulation is up and running:
ros2 launch turtlebot4_ignition_bringup turtlebot4_spawn.launch.py
If someone with more experience could chime in and maybe explain what is happening would be nice.
I'd like to keep everything in a single launch file and remove any chance of human error.

@JohannesH1998 If you modify the ignition.launch.py launch, if you add the -r flag to the ign_arg Ignition starts when it is launched and it seems that now everything is working.
Like this
    # Ignition gazebo
    ignition_gazebo = IncludeLaunchDescription(
        PythonLaunchDescriptionSource([ign_gazebo_launch]),
        launch_arguments=[
            ('ign_args', [LaunchConfiguration('world'),
                          '.sdf',
                          ' -r,
                          ' -v 4',
                          ' --gui-config ',
                          PathJoinSubstitution(
                            [pkg_turtlebot4_ignition_bringup,
                             'gui',
                             LaunchConfiguration('model'),
                             'gui.config'])])
        ]
    )

Then you can use the turtlebot4_ignition.launch.py.
I think I will open a pull request tomorrow in the morning.

This works for me. I am going to merge it.

Same problem here, installing from binaries

I've applied this change to the Jazzy branch too. It looks like this may be related to (yet another) change from ros_control? I haven't looked into what they've changed recently, but if this only recently broke that would be my first hypothesis as to a root cause.

So basically the simulation will not work with the -r flag?

@paoloelle that's effectively the situation right now; there was a recent change to ros_controls that added a hard-coded 5s timeout to the startup. If the simulation starts paused, and is not started within 5s, the controllers may timeout, resulting in problems.
We're not sure why ros_control made this change, but we're looking into it and will hopefully submit a merge request to at the very least parameterize it so it can be extended (if this hasn't been done already).


examples, local variable doesn't get to global space where it should be used

HI,
I am starting with your client/server c example, and porting to a kiss uart.
your example code calls csp_usart_open_and_add_kiss_interface() to add the interface but does not pass the configuration variable "conf" to the global that will  use it, "csp_conf" so its not really added.
How I figured this out was, I ran the code and the loopback driver was called, not the kiss driver, I then traced the code
to the bait, i.e. "conf" called after csp_init() that remains local while there is a switch as csp_init()'s parameters copied to  "csp_conf" will still be used. Very clever, very subtle.
Am I wrong? And if not wrong, then any help?

not quite true after I added diagnostics, it appears the drivers are added to a list, the first driver is loopback.
How do I pick the driver out I want (not the loopback driver) before it is used?

You use the routing table to specify which interface should be used to send to which destinations.

Hi Johan,
The default address added to the routing table is loopback set via csp_init(), and selecting the uart via the command line also
seems to add the same address to the routing table. So, the example adds two addresses to the routing table, both routes the same.
in csp_init():
csp_route_set(csp_conf.address, &csp_if_lo, CSP_NO_VIA_ADDRESS);
/* Also register loopback as default, until user redefines default route */
csp_route_set(CSP_DEFAULT_ROUTE, &csp_if_lo, CSP_NO_VIA_ADDRESS);
in csp_server_client.c
else if (default_iface) {
csp_rtable_set(CSP_DEFAULT_ROUTE, 0, default_iface, CSP_NO_VIA_ADDRESS);
There appears no key-collision check to prevent adding two identical addresses with different intent.
The address selected for ping (also in the example) finds the first entry in the routing table, which is loopback.
Are there any non-trivial examples for using the routing table for setting destinations?
bob s.
On Nov 3, 2020, at 10:23 AM, Johan De Claville Christiansen <notifications<EMAIL_ADDRESS>wrote:
You use the routing table to specify which interface should be used to send to which destinations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/libcsp/libcsp/issues/174#issuecomment-721196066, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMS2KEKX4MACRYJAXAV74OLSOAOA5ANCNFSM4TCZJMOA.

of course I may be wrong, running the code again, I see two different addresses, but I’m not sure how the loopback
address gets into the ping call.
Route table
1/5 LOOP
0/0 KISS
On Nov 3, 2020, at 11:03 AM, Robert P. Schaefer <rps<EMAIL_ADDRESS>wrote:
Hi Johan,
The default address added to the routing table is loopback set via csp_init(), and selecting the uart via the command line also
seems to add the same address to the routing table. So, the example adds two addresses to the routing table, both routes the same.
in csp_init():
csp_route_set(csp_conf.address, &csp_if_lo, CSP_NO_VIA_ADDRESS);
/* Also register loopback as default, until user redefines default route */
csp_route_set(CSP_DEFAULT_ROUTE, &csp_if_lo, CSP_NO_VIA_ADDRESS);
in csp_server_client.c
else if (default_iface) {
csp_rtable_set(CSP_DEFAULT_ROUTE, 0, default_iface, CSP_NO_VIA_ADDRESS);
There appears no key-collision check to prevent adding two identical addresses with different intent.
The address selected for ping (also in the example) finds the first entry in the routing table, which is loopback.
Are there any non-trivial examples for using the routing table for setting destinations?
bob s.
On Nov 3, 2020, at 10:23 AM, Johan De Claville Christiansen <notifications<EMAIL_ADDRESS>wrote:
You use the routing table to specify which interface should be used to send to which destinations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/libcsp/libcsp/issues/174#issuecomment-721196066, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMS2KEKX4MACRYJAXAV74OLSOAOA5ANCNFSM4TCZJMOA.

I see no issue here.
That routing table looks normal.


Alternative description

A JS package built on Vue for building a docs site using a base index.html, a configured theme and all your pages as markdown files.

Docsify works great on GH Pages. It is an alternative to Jekyll though - you have to set a .nojekyll value to prevent the site rendering through Jekyll (same as if you have a React site built to a gh-pages branch using a build step, though Docsify doesn't need have a build step)
It supports some advanced things but generally I find I get a professional docs site than out writing any includes or layouts like one has to in Jekyll. (Yes you can use a theme in a Jekyll but I think every time I switch a theme something breaks or needs installing or configuring, docsify has 4 themes but it is only one line change to switch between them).
it is accessible as it doesn't need Ruby or Jekyll and you don't even need a local install step. Docsify gets fetched in the browser.

Docsify works great on GH Pages. It is an alternative to Jekyll though - you have to set a .nojekyll value to prevent the site rendering through Jekyll (same as if you have a React site built to a gh-pages branch using a build step, though Docsify doesn't need have a build step)
It supports some advanced things but generally I find I get a professional docs site than out writing any includes or layouts like one has to in Jekyll. (Yes you can use a theme in a Jekyll but I think every time I switch a theme something breaks or needs installing or configuring, docsify has 4 themes but it is only one line change to switch between them).
it is accessible as it doesn't need Ruby or Jekyll and you don't even need a local install step. Docsify gets fetched in the browser.


OracleRestDataServices build fails with : failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

Building docker image fails with : failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed. I am logged in:
atael@ATAEL-mac dockerfiles % docker login container-registry.oracle.com
Authenticating with existing credentials...
Login Succeeded

The output produced:
atael@ATAEL-mac dockerfiles % ./buildContainerImage.sh -i
Checking Docker version.
Ignored MD5 checksum.
==========================
Container Runtime info:
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.8.2)
  compose: Docker Compose (Docker Inc., v2.5.0)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 20.10.14
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc version: v1.0.3-0-gf46b6ba
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.10.104-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 7.774GiB
 Name: docker-desktop
 ID: XRTP:CUSN:JJR3:S3ED:CADE:XKNA:GDUV:KPX6:HR6F:YFYF:EY5A:KCOP
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  <IP_ADDRESS>/8
 Live Restore Enabled: false

==========================
Building image 'oracle/restdataservices:latest' ...
[+] Building 6.2s (4/4) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 37B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => ERROR [internal] load metadata for container-registry.oracle.com/java/serverjre:latest                                                                 5.9s
 => [auth] java/serverjre:pull token for container-registry.oracle.com                                                                                0.0s
------
 > [internal] load metadata for container-registry.oracle.com/java/serverjre:latest:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
There was an error building the image.

For some reason I had problems with Oracle Standard Terms and Restrictions. Once fixed it started working

#2373


The special field name

Hey @jsayol,
Is it safe to use __name__ as the document id? Where did this idea come from?
Is it possible that they change __name__ internally on Firestore and it stops working?

Hey @filipealva. The __name__ field is mentioned in several places in the official documentation, so I don't see that changing unless they intentionally decide to introduce a breaking change (and I highly doubt that will be the case here).


ios native modules: Expose "AppIdentifierPrefix".

Following discussion 1 about a SO answer (not currently the
accepted one) 2, we find it's not too hard, when we want the App
ID prefix (sometimes called the Team ID), to

Add a custom entry in ios/ZulipMobile/Info.plist that gets set to
that string at build time, and
Write some minimal Objective-C to add a native module that calls
an iOS API to grab that custom entry and exposes it to the
JavaScript.

We followed a very clear React Native doc 3 on how to do this.
We also considered using a different doc 4 that would have helped
us package our code up very conveniently for distribution to NPM,
with a third-party tool called create-react-native-module. The
output of that tool seemed to have all the appropriate metadata that
we're used to seeing in modules in the React Native ecosystem, such
as a "podspec" file.
But our goal isn't to distribute this code for wide use. It would
still be possible to, e.g., host it on GitHub (or even locally) and
point to it in dependencies in our package.json. But this seems
like a lot more overhead than it'll ever be worth, and we avoided
doing something like that in 0b84717e4, an already-merged part of
issue #4124, where we just wrote some Kotlin code and a few lines in
our MainApplication.java to import it.
We put the two new files in the same directory that has
UtilManager.h and UtilManager.m; these were also created for
needs particular to Zulip. This time, we follow the pattern of
adding a short, all-caps prefix ZM, for ZulipMobile, as seen in

Expo -> EX
Unimodules -> UM
React Native -> RCT or RN

To link the new files, we used the Xcode UI:

Found the PBXGroup called "ZulipMobile" in the left sidebar; in
Xcode 11.5, it has a folder icon and includes the
Info.plist as well as UtilManager.h and UtilManager.m.

Right-clicked it and selected Add files to "ZulipMobile"...,
and chose those files.

Selected the ZulipMobile target in the "project and targets
list", and went to Build Phases -> Compile Sources to add the
files there.

Saw that, surprisingly, they were already added there. So, job
done.

Then, we tested with some in-app logging to see that we can indeed
access the Team ID. With NativeModules imported from react-native,
we see it at NativeModules.ZMInfoProperties.appIdentifierPrefix.

Thanks for the review (in chat)! Just pushed a new revision; ready for another review.

Looks good, thanks! Merged.


PIVOT Bug Fix

Description
Previously, Babelfish PIVOT operator has many bug and limitation. In this PR, we fixed the bugs and block some unsupported edge cases.
Issues Resolved
BABEL-284-bug-fix

fixed pivot used in function/procedure will cause server restart
fixed table/schema name used in 'FOR (colname)' will cause server restart

Test Scenarios Covered
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Please mention the bug JIRA, not the original pivot feature jira in the commit
Add test cases for each bug fix