publishing UDP port does not work in rootful container, but does work in rootless

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
For context, I am trying to set up a Minecraft server, which runs on UDP port 19132. I have noticed that when I create a rootful container using the flag -p 19132:19132/udp, the port forwarding does not seem to work. I confirmed this by running tcpdump  udp port 19132 -vv on both the host and the container. The host did receive UDP packets on port 19132, but the container did not.
However, when I do the same thing on a rootless container, it does receive the packets. I assume it is because rootless containers use slirp4netns to handle forwarding instead of iptables/nftables.
Here is my nftables rules output with a container running with port 19132/udp forwarded, and all other containers stopped:
# podman run -itd -p 19132:19132/udp debian /sbin/init
45cf7c783b574e6c6c65ff149dba8df82a56742fcc1caa6b1b42b95f0df75c66
# podman ps
CONTAINER ID  IMAGE                              COMMAND     CREATED         STATUS             PORTS                     NAMES
45cf7c783b57  localhost/debian:latest  /sbin/init  16 seconds ago  Up 16 seconds ago  <IP_ADDRESS>:19132->19132/udp  elated_diffie
# nft list ruleset
table ip nat {
	chain PREROUTING {
		type nat hook prerouting priority -100; policy accept;
		fib daddr type local counter packets 32161 bytes 2221409 jump CNI-HOSTPORT-DNAT
	}

	chain INPUT {
		type nat hook input priority 100; policy accept;
	}

	chain POSTROUTING {
		type nat hook postrouting priority 100; policy accept;
		counter packets 55289 bytes 6138901 jump CNI-HOSTPORT-MASQ comment "CNI portfwd requiring masquerade"
		ip saddr <IP_ADDRESS> counter packets 0 bytes 0 jump CNI-4dfd04fcd08ad9767e1acdfe comment "name: "podman" id: "45cf7c783b574e6c6c65ff149dba8df82a56742fcc1caa6b1b42b95f0df75c66""
	}

	chain OUTPUT {
		type nat hook output priority -100; policy accept;
		fib daddr type local counter packets 18105 bytes 1085140 jump CNI-HOSTPORT-DNAT
	}

	chain CNI-HOSTPORT-SETMARK {
		counter packets 17839 bytes 1070340 meta mark set mark or 0x2000  comment "CNI portfwd masquerade mark"
	}

	chain CNI-HOSTPORT-MASQ {
		mark and 0x2000 == 0x2000 counter packets 17839 bytes 1070340 masquerade
	}

	chain CNI-HOSTPORT-DNAT {
		meta l4proto udp udp dport 19132 counter packets 0 bytes 0 jump CNI-DN-4dfd04fcd08ad9767e1ac comment "dnat name: "podman" id: "45cf7c783b574e6c6c65ff149dba8df82a56742fcc1caa6b1b42b95f0df75c66""
	}

	chain CNI-4dfd04fcd08ad9767e1acdfe {
		ip daddr <IP_ADDRESS>/16 counter packets 0 bytes 0 accept comment "name: "podman" id: "45cf7c783b574e6c6c65ff149dba8df82a56742fcc1caa6b1b42b95f0df75c66""
		ip daddr != <IP_ADDRESS>/4 counter packets 0 bytes 0 masquerade  comment "name: "podman" id: "45cf7c783b574e6c6c65ff149dba8df82a56742fcc1caa6b1b42b95f0df75c66""
	}

	chain CNI-DN-4dfd04fcd08ad9767e1ac {
		meta l4proto udp ip saddr <IP_ADDRESS>/16 udp dport 19132 counter packets 0 bytes 0 jump CNI-HOSTPORT-SETMARK
		meta l4proto udp ip saddr <IP_ADDRESS> udp dport 19132 counter packets 0 bytes 0 jump CNI-HOSTPORT-SETMARK
		meta l4proto udp udp dport 19132 counter packets 0 bytes 0 dnat to <IP_ADDRESS>:19132
	}
}
table ip filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}

	chain FORWARD {
		type filter hook forward priority 0; policy accept;
		counter packets 16645016 bytes<PHONE_NUMBER>9 jump CNI-FORWARD comment "CNI firewall plugin rules"
	}

	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}

	chain CNI-FORWARD {
		counter packets 16645016 bytes<PHONE_NUMBER>9 jump CNI-ADMIN comment "CNI firewall plugin rules"
		ip daddr <IP_ADDRESS> ct state related,established counter packets 0 bytes 0 accept
		ip saddr <IP_ADDRESS> counter packets 0 bytes 0 accept
	}

	chain CNI-ADMIN {
	}
}
table ip6 nat {
	chain PREROUTING {
		type nat hook prerouting priority -100; policy accept;
	}

	chain INPUT {
		type nat hook input priority 100; policy accept;
	}

	chain POSTROUTING {
		type nat hook postrouting priority 100; policy accept;
	}

	chain OUTPUT {
		type nat hook output priority -100; policy accept;
	}
}
table inet myfilter {
	chain myinput {
		type filter hook input priority 0; policy accept;
		ct state { established, related } accept
		ct state invalid drop
		iifname "wan0" jump myfirewall
	}

	chain myfirewall {
		tcp dport { http, https } accept
		tcp dport 4322 accept
		tcp dport 4323 accept
		udp dport 19132 accept
		tcp dport 19132 accept
		reject
	}

	chain myforward {
		type filter hook forward priority 0; policy accept;
		iifname "wan0" ct state { established, related } accept
		iifname "wan0" drop
	}

	chain myoutput {
		type filter hook output priority 0; policy accept;
		udp dport mdns drop
	}
}
table ip mynat {
	chain myprerouting {
		type nat hook prerouting priority -100; policy accept;
	}

	chain mypostrouting {
		type nat hook postrouting priority 100; policy accept;
		oifname "wan0" masquerade
	}
}

Steps to reproduce the issue:

Run container with a UDP port forwarded.

Send packets to that port, and see if the container receives them.

Describe the results you received:
The container did not receive packets on the forwarded port.
Describe the results you expected:
I expected the container to receive packets on the forwarded port.
Additional information you deem important (e.g. issue happens only occasionally):
Output of podman version:
# podman version
Version:            1.9.3
RemoteAPI Version:  1
Go Version:         go1.11.6
OS/Arch:            linux/amd64

Output of podman info --debug:
# podman info --debug
debug:
  compiler: gc
  gitCommit: ""
  goVersion: go1.11.6
  podmanVersion: 1.9.3
host:
  arch: amd64
  buildahVersion: 1.14.9
  cgroupVersion: v1
  conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.16, commit: '
  cpus: 4
  distribution:
    distribution: debian
    version: "10"
  eventLogger: file
  hostname: medusa
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 4.19.0-9-amd64
  memFree:<PHONE_NUMBER>
  memTotal:<PHONE_NUMBER>2
  ociRuntime:
    name: runc
    package: 'runc: /usr/sbin/runc'
    path: /usr/sbin/runc
    version: |-
      runc version 1.0.0~rc6+dfsg1
      commit: 1.0.0~rc6+dfsg1-3
      spec: 1.0.1
  os: linux
  rootless: false
  slirp4netns:
    executable: ""
    package: ""
    version: ""
  swapFree: 0
  swapTotal: 0
  uptime: 166h 1m 59.91s (Approximately 6.92 days)
registries:
  search:
  - docker.io
  - quay.io
store:
  configFile: /etc/containers/storage.conf
  containerStore:
    number: 6
    paused: 0
    running: 1
    stopped: 5
  graphDriverName: overlay
  graphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: 'fuse-overlayfs: /usr/bin/fuse-overlayfs'
      Version: |-
        fusermount3 version: 3.4.1
        fuse-overlayfs: version 0.7.6
        FUSE library version 3.4.1
        using FUSE kernel interface version 7.27
    overlay.mountopt: nodev,metacopy=on
  graphRoot: /var/lib/containers/storage
  graphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  imageStore:
    number: 48
  runRoot: /var/run/containers/storage
  volumePath: /var/lib/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):
# apt show podman
Package: podman
Version: 1.9.3~1
Priority: optional
Section: devel
Maintainer: Lokesh Mandvekar<EMAIL_ADDRESS>Installed-Size: 89.2 MB
Depends: libseccomp2, libdevmapper1.02.1, libgpgme11, catatonit, conmon (>= 2.0.16~2), containers-common (>= 1.0.0~2), containernetworking-plugins (>= 0.8.6~1), runc | cri-o-runc, iptables, podman-plugins
Recommends: crun, slirp4netns, uidmap, varlink
Conflicts: podman-rootless
Homepage: https://github.com/containers/libpod.git
Download-Size: 19.6 MB
APT-Manual-Installed: yes
APT-Sources: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10  Packages
Description: Manage pods, containers and container images.

Additional environment details (AWS, VirtualBox, physical, etc.):
I am running podman on Debian 10 (stable), installed via the repository provided by the Kubic project.

		meta l4proto udp udp dport 19132 counter packets 0 bytes 0 dnat to <IP_ADDRESS>:19132

Rule seems to be there, but 0 packets hit it.
I'm really familiar with nftables, though, so I'm not sure what the cause of that could be.

Can I ask for more details about your system - are you entirely on nftables, or do you have iptables installed with the nftables-compatible backend? A dump of firewall rules in iptables format would be somewhat more useful, because I (and the other maintainers) are a bit more familiar with that.

Rule seems to be there, but 0 packets hit it.

This may be because I dumped the rules immediately after creating a new container, since I deleted the old container I was using when I encountered the bug, and created a fresh container to get the nftables output for the bug report.
. . . I just tried it again, and it seems the port forwarding is now working. Unfortunately, I don't remember if there was anything I did differently to cause the problem a few nights ago, but it seems to be working now.
Apologies for the spurious bug report. Feel free to close this issue.

I'll go ahead and close, but feel free to re-open if it reoccurs. Thanks!

@mheon I've run into the bug again today. After a reboot, a container that used to be working now is no longer working, so it seems to be an intermittent problem. I did test it a few times first this time, so the packets should have had a chance to hit the relevant rules. Here is a full dump of my iptables rules:
# iptables -t filter -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  945  945K CNI-FORWARD  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI firewall plugin rules */

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain CNI-FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination
  945  945K CNI-ADMIN  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI firewall plugin rules */
    8   828 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
    8   528 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0
    8   828 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
    8   528 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0
    8   828 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
    8   528 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0
  130  547K ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
  126  6862 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0

Chain CNI-ADMIN (1 references)
 pkts bytes target     prot opt in     out     source               destination

# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   84  6149 CNI-HOSTPORT-DNAT  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  110  8941 CNI-HOSTPORT-MASQ  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI portfwd requiring masquerade */
    8   528 CNI-7d75dc8f764f8227b3c3164b  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "b021f2b93283fb138c301e94e539af076292660b1469a701380662d44f9db0f9" */
    8   528 CNI-1042abc1a348d6c7266412ea  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "1ea71f4e50f0bb8138c7c0db707d7e92b2feb67b7f22403e84ba2e19bf788447" */
    8   528 CNI-d00da941ed7d34b3e86651e8  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "537ebd4d799feee5d0424228d7acb581455dd44bbaafee6bfe383465aaff313d" */
    0     0 CNI-31c59a9bb56402cc1e47a0ca  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "9b699e6e5243d07e68608c1da58b99d29ec1505e0382a54674ca0eb7ff566e28" */
    2   120 CNI-372c038a5de88af2ec6d9907  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   19  1078 CNI-HOSTPORT-DNAT  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ADDRTYPE match dst-type LOCAL

Chain CNI-7d75dc8f764f8227b3c3164b (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "b021f2b93283fb138c301e94e539af076292660b1469a701380662d44f9db0f9" */
    8   528 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "b021f2b93283fb138c301e94e539af076292660b1469a701380662d44f9db0f9" */

Chain CNI-HOSTPORT-SETMARK (12 references)
 pkts bytes target     prot opt in     out     source               destination
   17  1020 MARK       all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI portfwd masquerade mark */ MARK or 0x2000

Chain CNI-HOSTPORT-MASQ (1 references)
 pkts bytes target     prot opt in     out     source               destination
   17  1020 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            mark match 0x2000/0x2000

Chain CNI-HOSTPORT-DNAT (2 references)
 pkts bytes target     prot opt in     out     source               destination
   17  1020 CNI-DN-7d75dc8f764f8227b3c31  tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 9080 /* dnat name: "podman" id: "b021f2b93283fb138c301e94e539af076292660b1469a701380662d44f9db0f9" */
    0     0 CNI-DN-1042abc1a348d6c726641  tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 9081,9022 /* dnat name: "podman" id: "1ea71f4e50f0bb8138c7c0db707d7e92b2feb67b7f22403e84ba2e19bf788447" */
    0     0 CNI-DN-d00da941ed7d34b3e8665  tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 9045 /* dnat name: "podman" id: "537ebd4d799feee5d0424228d7acb581455dd44bbaafee6bfe383465aaff313d" */
    0     0 CNI-DN-31c59a9bb56402cc1e47a  tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 9082 /* dnat name: "podman" id: "9b699e6e5243d07e68608c1da58b99d29ec1505e0382a54674ca0eb7ff566e28" */
    0     0 CNI-DN-372c038a5de88af2ec6d9  udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 19132 /* dnat name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain CNI-DN-7d75dc8f764f8227b3c31 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            tcp dpt:9080
   17  1020 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            tcp dpt:9080
   17  1020 DNAT       tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:9080 to:<IP_ADDRESS>:80

Chain CNI-1042abc1a348d6c7266412ea (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "1ea71f4e50f0bb8138c7c0db707d7e92b2feb67b7f22403e84ba2e19bf788447" */
    8   528 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "1ea71f4e50f0bb8138c7c0db707d7e92b2feb67b7f22403e84ba2e19bf788447" */

Chain CNI-DN-1042abc1a348d6c726641 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            tcp dpt:9081
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            tcp dpt:9081
    0     0 DNAT       tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:9081 to:<IP_ADDRESS>:80
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            tcp dpt:9022
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            tcp dpt:9022
    0     0 DNAT       tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:9022 to:<IP_ADDRESS>:22

Chain CNI-d00da941ed7d34b3e86651e8 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "537ebd4d799feee5d0424228d7acb581455dd44bbaafee6bfe383465aaff313d" */
    8   528 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "537ebd4d799feee5d0424228d7acb581455dd44bbaafee6bfe383465aaff313d" */

Chain CNI-DN-d00da941ed7d34b3e8665 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            tcp dpt:9045
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            tcp dpt:9045
    0     0 DNAT       tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:9045 to:<IP_ADDRESS>:445

Chain CNI-31c59a9bb56402cc1e47a0ca (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "9b699e6e5243d07e68608c1da58b99d29ec1505e0382a54674ca0eb7ff566e28" */
    0     0 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "9b699e6e5243d07e68608c1da58b99d29ec1505e0382a54674ca0eb7ff566e28" */

Chain CNI-DN-31c59a9bb56402cc1e47a (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            tcp dpt:9082
    0     0 CNI-HOSTPORT-SETMARK  tcp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            tcp dpt:9082
    0     0 DNAT       tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:9082 to:<IP_ADDRESS>:80

Chain CNI-372c038a5de88af2ec6d9907 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */
    2   120 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain CNI-DN-372c038a5de88af2ec6d9 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  udp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            udp dpt:19132
    0     0 CNI-HOSTPORT-SETMARK  udp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            udp dpt:19132
    0     0 DNAT       udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:19132 to:<IP_ADDRESS>:19132
```
```
# iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
```
```
# iptables -t raw -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
```
```
# iptables -t security -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
```
Thanks

Actually, here's a dump of the tables with all containers other than the offending container stopped. This should be more readable, hopefully:
# iptables -t filter -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 2906 1571K CNI-FORWARD  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI firewall plugin rules */

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain CNI-FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination
 2906 1571K CNI-ADMIN  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI firewall plugin rules */
  130  547K ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>          ctstate RELATED,ESTABLISHED
  126  6862 ACCEPT     all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0

Chain CNI-ADMIN (1 references)
 pkts bytes target     prot opt in     out     source               destination

# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  128  8813 CNI-HOSTPORT-DNAT  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  214 18245 CNI-HOSTPORT-MASQ  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI portfwd requiring masquerade */
    2   120 CNI-372c038a5de88af2ec6d9907  all  --  *      *       <IP_ADDRESS>          <IP_ADDRESS>/0            /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   48  2818 CNI-HOSTPORT-DNAT  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ADDRTYPE match dst-type LOCAL

Chain CNI-HOSTPORT-SETMARK (2 references)
 pkts bytes target     prot opt in     out     source               destination
   40  2400 MARK       all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            /* CNI portfwd masquerade mark */ MARK or 0x2000

Chain CNI-HOSTPORT-MASQ (1 references)
 pkts bytes target     prot opt in     out     source               destination
   40  2400 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            mark match 0x2000/0x2000

Chain CNI-HOSTPORT-DNAT (2 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-DN-372c038a5de88af2ec6d9  udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            multiport dports 19132 /* dnat name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain CNI-372c038a5de88af2ec6d9907 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/16         /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */
    2   120 MASQUERADE  all  --  *      *       <IP_ADDRESS>/0           !<IP_ADDRESS>/4          /* name: "podman" id: "7f91f0c77ea8f2408af056380def9a6566edb3c7ceb8376d9cd354e20d608768" */

Chain CNI-DN-372c038a5de88af2ec6d9 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 CNI-HOSTPORT-SETMARK  udp  --  *      *       <IP_ADDRESS>/16         <IP_ADDRESS>/0            udp dpt:19132
    0     0 CNI-HOSTPORT-SETMARK  udp  --  *      *       <IP_ADDRESS>            <IP_ADDRESS>/0            udp dpt:19132
    0     0 DNAT       udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:19132 to:<IP_ADDRESS>:19132

Other tables are omitted since they seem to be empty.

0 packets are hitting CNI-HOSTPORT-DNAT, which appears to be our problem. I can see 128 packets hit the rule targetting it in PREROUTING but none of them were sent on...
@mccv1r0 Any advice here? The rules here seem correct, but it doesn't seem like packets are getting to the dnat rules.

This: I just tried it again, and it seems the port forwarding is now working.  is interesting.  Leads one to believe that rules are setup properly and something else is going on.
What type of traffic are you sending to udp/19132?   Is there a test case that doesn't work?
Things to look out for;

Make sure the MTU is small enough to fit on the podman0 interface.
Make sure your tests are using IPv4.  (since you only show IPv4 firewall rules)

I tried using: $ sudo  podman run --detach --name="udp-test" -p 19132:19132/udp [debug-image] and things work.
Version:            1.8.0
RemoteAPI Version:  1
Go Version:         go1.12.15
OS/Arch:            linux/amd64
$

I thought I reproduced the problem using netcat only to find out the client was sending using IPv6 (because I didn't use nc -4 localhost 19132 .  I did see IPv6 packets in the container, but my test app wasn't listening on so things didn't work.   Once I changed to use IPv4, worked as expected.

What type of traffic are you sending to udp/19132? Is there a test case that doesn't work?

I'm trying to set up a Minecraft Bedrock Edition server. I know the game uses UDP port 19132 to communicate with IPv4 clients, and UDP port 19133 to communicate with IPv6 clients. Using tcpdump udp port 19132 -vv on both the host and the container shows that the host is receiving packets on UDP port 19132, but the container is not. I believe tcpdump should display both IPv4 and IPv6 packets, no?
Networking is not my strong suit unfortunately, so I'm not quite sure what else I could do to test it further. Feel free to let me know what further tests I should run!

Make sure your tests are using IPv4. (since you only show IPv4 firewall rules)

I am trying to access a server I have set up on my LAN from a different computer in my LAN. The router should be assigning only IPv4 addresses on the LAN.
Using ip6tables shows that all tables are empty. Is that expected? It would seem that means Podman does not by default support publishing rootful container ports on an IPv6 network?

Make sure the MTU is small enough to fit on the podman0 interface.

I'm not sure what this means. How would I test this? The case when it was working earlier was with the exact same server and client; I'm not sure if that resolves the question.

Actually, I think I may have just found the source of the problem. There seems to be some sort of interference between the rules defined by Podman and the firewall rules I defined using nftables. When I define the firewall rules before starting the container, I am unable to access the published port on the container, but when I define the firewall rules after starting the container, everything seems to work fine. I also have other containers providing services via TCP, ports and they still work in either case.
Here are the firewall rules I am defining, for reference:
# cat /etc/nftables.conf
#!/usr/sbin/nft -f

# flush all rules
#flush ruleset

# flush only my tables
table inet myfilter
delete table inet myfilter
table ip mynat
delete table ip mynat

table inet myfilter {
        chain myinput {
                # accepts packets by default, because we don't want
                # to have to keep track of all interfaces we don't want
                # firewalled (lan0, wlan0, veths, etc)
                type filter hook input priority 0; policy accept;

                # allow established/related connections
                ct state {established, related} accept

                # drop invalid connections
                ct state invalid drop

                # packets that are received on a firewalled interface
                # are sent to the firewall chain for evaluation
                iifname "wan0" jump myfirewall
        }
        chain myfirewall {
                # accept incoming HTTP(s) connections
                tcp dport {80, 443} accept

                # accept incoming [redacted] connections
                tcp dport 4322 accept
                tcp dport 4323 accept

                # accept incoming minecraft MP connections
                udp dport {19132, 19133} accept
                tcp dport {19132, 19133} accept

                # reject everything else
                reject
        }

        chain myforward {
                # forward everything by default
                type filter hook forward priority 0; policy accept;

                # forward incoming on wan0 for established/related connections
                iifname wan0 ct state {established, related} accept

                # drop everything else
                iifname wan0 drop
        }
        chain myoutput {
                # let everything out by default
                type filter hook output priority 0; policy accept;

                # block outgoing mDNS broadcasts
                udp dport 5353 drop
        }
}

table ip mynat {
        chain myprerouting {
                type nat hook prerouting priority -100;

                # if I wanted to do port forwarding I could do it like this:
                # forward http to <IP_ADDRESS>
                #tcp dport http dnat to <IP_ADDRESS>
        }
        chain mypostrouting {
                type nat hook postrouting priority 100;

                # masquerade outbound packets going to WAN
                oifname "wan0" masquerade
        }
}

Okay, I believe I have found the problem. It was due to the
iifname wan0 ct state {established, related} accept
iifname wan0 drop

rules. Since UDP packets don't have a state, the packets were being rejected. Adding a udp dport {19132, 19133} accept rule to the forward chain seems to have solved the problem.


Feature: make WLAN access data projectable

.../.../projectors/detail/...
Feature description
In the sidebar of the projector control it is possible to display the WLAN access data as a full screen message. If the field in the sidebar is expanded, then a button for projection is displayed. Similar to countdowns. It is also not possible to delete the message.

In the message is displayed:

QR code
Network (SSID)
Password
Encryption

If no WLAN access data is entered under .../.../settings/participants, a note is displayed when the field is expanded: Enter access data in the settings so that they can be projected.

Given that the slidedata is calculated in the autoupdate-service this will absolutely multi-service feature.
The wifi settings are saved in the meeting model which AFAIK already serves as a content object for the current list of speakers slide, so the autoupdate would probably need to recognize a new value for the projections type attribute in this case and return exactly the thee wifi settings in the content.
I don't know if there actually have to be any backend changes since the meeting model already has projection_ids. What do you think about this @r-peschke ?
The client would also have to register a new type of slide.

Talked to @r-peschke this will probably not require backend changes


Support symfony/cache 7.0

Symfony released v7 in November 2023. This project is currently limited to using symfony/cache up to v6.

It is possible to add symfony/cache:7 to allowed versions?

Hi @dqualmann , I've just tagged the 2.6.3 release. Please feel free to use it ,and let me know any feedback.
Enjoy programming with Symfony 7 :)
https://github.com/storyblok/storyblok-php-client/releases/tag/v2.6.3


FCM.presentLocalNotification is undefined

I am trying to show notification in android app.  Following event is triggering when I am receiving notification. I have used FCM.presentLocalNotification({}) inside but I am getting error undefined not a function. I console FCM object but did not found many function which is described in github
this.notificationUnsubscribe = FCM.on('notification', (notif) => {
  FCM.presentLocalNotification({
           id: "UNIQ_ID_STRING",
            title: "My Notification Title",
            body: "My Notification Message",
            sound: "default",
            .....
    })
});

are you having the latest version v2.1.1?

I am running RN < 0.33.0 so as document suggested I am using v1.1.0. However when I am running following command then it is pointing to v1.1.1 which is giving error
npm install react-native-fcm then it is pointing to v1.1.1
error

/Users/jitendra/Desktop/hostmakerco/ops-mobile/node_modules/react-native-fcm/android/src/main/java/com/evollu/react/fcm/FIRMessagingModule.java:30: error: FIRMessagingModule is not abstract and does not override abstract method onActivityResult(int,int,Intent) in ActivityEventListener
public class FIRMessagingModule extends ReactContextBaseJavaModule implements LifecycleEventListener, ActivityEventListener {
       ^
/Users/jitendra/Desktop/hostmakerco/ops-mobile/node_modules/react-native-fcm/android/src/main/java/com/evollu/react/fcm/FIRMessagingModule.java:158: error: method does not override or implement a method from a supertype
    @Override
    ^
Note: /Users/jitendra/Desktop/hostmakerco/ops-mobile/node_modules/react-native-fcm/android/src/main/java/com/evollu/react/fcm/FIRMessagingModule.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors
:react-native-fcm:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-fcm:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

use specific version "1.1.0" rather than "^1.1.0"

I changes "react-native-fcm": "^1.1.0" to "react-native-fcm": "1.1.0" but still not able to get it working. I am getting only few methods in FCM object.

U need to upgrade RN to 33 to use the latest version that includes local notification on RN-FCM

right... Sorry I don't have time to maintain different RN version support

hi @evollu , I am in the same problem but
"react-native": "^0.32.0",
"react-native-fcm": "^1.0.15"
Now i cannot upgrade my react native as it will break other module. Please help me out. I am getting same object as @jitenderchand1.

you can use 1.1.0

@evollu  Still giving error.
using this code
FCM.on('notification', (notif) => {
console.log('notif on foreground', notif);
console.log('checking fcm', FCM);

  FCM.presentLocalNotification({
    title: 'My Notification Title',                     // as FCM payload
    body: 'My Notification Message',                    // as FCM payload (required)
    sound: 'default',                                   // as FCM payload
    priority: 'high',                                   // as FCM payload
    click_action: 'New',                             // as FCM payload
    number: 10,                                         // Android only
    ticker: 'My Notification Ticker',                   // Android only
    auto_cancel: true,                                  // Android only (default true)
    large_icon: 'ic_launcher',                           // Android only
    icon: 'ic_notification',                            // as FCM payload
    big_text: 'Show when notification is expanded',     // Android only
    sub_text: 'This is a subText',                      // Android only
    color: 'red',                                       // Android only
    vibrate: 300,                                       // Android only default: 300, no vibration if you pass null
    tag: 'some_tag',                                    // Android only
    group: 'group',                                     // Android only
    my_custom_data:'my_custom_field_value',             // extra data you want to throw
    lights: true                                      // Android only, LED blinking (default false)
  });

@evollu package json
"react-native": "^0.32.0",
"react-native-fcm": "1.1.0",

local notification is only supported in v2.

for V2 i need RN 33?

yes

@evollu I need foreground notification and for that i need local notification, is there any other work around ?
I can't upgrade to RN 33

you may use another local notification library. why do you stuck with old RN? ask the blocking repo to upgrade or fork it yourself. It is easy

ok. Thanks


Review OxO API to define initial set of services

Review the OxO API and create a list of services we need to implement. (Just a bullet point list in this ticket)

https://www.ebi.ac.uk/spot/oxo/docs/api

/datasources
/datasources/{datasource-id}
/mappings
/mappings/{mapping-id}
/terms
/terms/{term-id}
/search

After meetings, it was decided that we'll build the OxO 2, which will use only the SSSOM API that not follows the previous API.


Version Packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#561 70dbd60 Thanks @threepointone! - fix: set this.worker sigil only after onStart has finished

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add largest-series-product

For #48in24

@exercism/euphoria merge conflict resolved

@BNAndras thank you very much for all your contributions. I have not had any time for anything much lately except for the occasional COBOL mentoring.


Portal optimization

@ahussein This is looking really good!
Can we use j.logger instead of prints everywhere? Also do you have any profiling about difference in performance with this approach? I'm very curious to see the changes.
Did you handle already the case of changed parameters but unchanged macro content?

I updated the prints to j.logger.log, I didnt originally use it since I couldnt figure out where these logs go to (still dont)
Macros are always executed, the optimization that has been done is to skip parsing the doc for macros if the doc did not change.
the profiler did not work out of the box, I still need to check what needs to be done to make it work.

The current Dependency graph

When I tried to edit a page, the output was still the same. Contents of macro DID change, though.


AWSELB log format doesn't work

goaccess currently has a common name for Amazon ELB logs AWSELB       | Amazon Elastic Load Balancing
ELB logs are slightly different and this format works:
log-format %^ %dT%t.%^ %v %h:%^ %^ %T %^ %^ %s %^ %b %^ "%r" "%u" %^
date-format %Y-%m-%d
time-format %T

Can this be updated please?

Hi @mrchief
AWS ELB logs work fine on my side, which version of goaccess you have ?
I use --log-format=AWSELB -p /usr/local/etc/goaccess/goaccess.conf

I'm on 1.3

The default format doesn't account for type it seems and the error message confirms that. Am I missing something here?

Awesome, thanks for confirming this. I have updated the format upstream. Please feel free to build from development and let me know if that works on your end.
Closing this.


Documentation enhancement

Gonna work on adding comments to the newly-added code now :) expects questions from me haha

@KamiliArsyad is there any difference when using req.body.user_id and req.user.user_id? I just notice that we often have some code that use body and then there is also user. If there is actually no difference, then we can just decide on one convention whether to call it body or user and I could make the changes.

@KamiliArsyad for this code in Login.jsx,
 useEffect(() => {
  setMessage(user.message);
  return () => setMessage("");
 }, [user.message]);
is this like setting the message to the message from the authentication process (loginUser) and then emptied it again? I am not really sure how to explain it.

The return clause in React's useEffect is a cleanup function i.e. a function that we want to execute once we are done with the component (unmount the component) and thus we want to clear the message back to an empty string every time we are unmounting the component.

Okay, so after it setMessage to user.message, it then clean it up again by making setMessage to empy string, correct?

You can think of it more or less that way yeah. I believe clean up functions are also executed right before the effect is being done.

But then what is exactly user.message referring to?

user is an object that represents the authentication state of the user. You can think of it as a global authentication variable that can be accessed by any component that subscribes to the authContext using our custom useAuthContext hook and is a descendant of the AuthProvider component (we can see in the RouteManager file that every page is a descendant of the AuthRoute, thus every component in every page has access to the value provided by the context). The value provided by the authentication context are specified in the authProvider file: the state, user, and the dispatcher, dispatch (poor naming system yes because every feature has the same dispatcher name; we shall change that later).
The authReducer file is where the initial state and all the possible state modifications are listed. You can see that the authentication object (one that is being "broadcasted" to the whole project) has a message property that could sometimes be filled with the error message it might get when authServices is making a request to the API. In short, yes, it's the message returned by the authentication process.
You can view the context and reducer documentation if you wish to learn more. We're basically replacing redux by creating our own state management system using these powerful hooks (useContext and useReducer) because I figure out it's a good chance to learn everything from the ground up for these things.
note: I believe the codes I made for the pages to handle the error messages are still quite poor because I haven't had the time to improve on it, that's why I decided to make a bare-minimum working code that displays the raw messages from the API straight to the user when there's an error. This shouldn't be the final code and should you think there's a better way to handle the messages on the pages component, feel free to mess around with stuff.

It's because we use the nav function which exists outside of the effect. The recommended practice is to make each useEffect hooks independent and list each of its dependency on the array of the second argument. It's a little complicated to fix but we we should be able to clear this warning later using useCallback (I believe Dan Abramov has written an extensive article about this so don't worry we can refer to it later to fix).

Here's the link  to the article.

Inside the DisplayBusinessParticular.jsx, what does this code mean?
   {/* right side of the screen (details)*/}
    <div
      className={
        selectedBusiness !== "No selected business"
          ? "col-md-8"
          : "container"
      }
    >
      <div className="container">
        <Outlet context={[selectedBusiness]} />
      </div>
    </div>
  </div>

Is it referring to the thing that happen when you click the business then suddenly the details pop up beside them on the right side?

Yup. Since there will most likely be a change there, I've been thinking on how to modify that part since the past few days so for now just think of that as an incomplete code

Inside the businessController, what exactly does this dateParser do?
const dateRangeParser = (date_range) => {
  switch (date_range) {
    case 0:
      return 86400000;
    case 1:
      return 604800000;
    case 2:
      return<PHONE_NUMBER>;
    case 3:
      return<PHONE_NUMBER>0;
    default:
      return 86400000;
  }
};

const dateMinusDateRange = new Date(
  new Date(getDate()) - dateRangeParser(date_range)
);

The date_range is a categorical data, and we want to convert that into miliseconds so that we can use that for working with the Date object

So the case 0, 1, 2, 3 is referring to the daily, weekly, monthly and yearly, right? The number is from the 60 * 60 * 24 * number of days. But where is the 0000 ... behind comes from? And why do we need to subtract the date with the number from date parser?
Also, what is the difference between bestCategoricalPlatform and bestPlatformForBusinessCategory? I think bestPlatformForBusinessCategory function is more well-crafted, but are they intended to do different things?

The Date object is interacting using milliseconds as the unit and hence the extra 000.
As for those two functions, there was a design error; sorry it was my bad to not write any comments there.
I wrote the bestCategoricalPlatform function first. The function takes in a list of all sales filtered by a certain product category, and then returns the best platform that produces the most profit for that product category.
I then decided that it's more relevant to take in the list of sales filtered by a certain business category instead and return the platform that produces the most profit for that business category. However I don't think I want to delete the previous function because it might be useful for future product recommendations and so I just leave it there and named it ambiguously similar :))


Integrity constraint violation: 1062 Duplicate entry for key 'visits_ip_visitable_id_visitable_type_date_unique'

I've had a few errors in the last week where there's a duplicate entry from the ip address combined with the model name, for example 2a02:1810:9c07:c000:21e8:a1e4:9c43:26f4-45893-App\Models\NewsItem
Any idea what might cause this? I didn't modify the migration that comes with the package

@jordanmiguel Do you have any idea how a duplicate key entry like this one above can occur?

@notflip I don't know, because the unique constraint is tied to the IP + date + visitable_type + visitable_id, and when we are going to register a visit, we use FirstOrCreate on this 4 fields, so, it should find it if it already exists, not try to re-add. Is this happening with frequency?

Thanks for getting back to me, it happened 68 times, around 12 times per day in the last 15 days. But what you say is correct, the firstOrCreate should have to catch it 🤔

@notflip it might have something to do with https://freek.dev/1087-breaking-laravels-firstorcreate-using-race-conditions, is this website a high traffic one?

It is a high traffic one! Thanks for the advice will check it out

@jordanmiguel I get this on LaraChat.co and DevopsChat.co from time to time. I assume it happens when I have an influx of traffic.

@jordanmiguel I get this on LaraChat.co and DevopsChat.co from time to time. I assume it happens when I have an influx of traffic.

I found a fix for this based on this snippet: https://gist.github.com/RuGa/5354e44883c7651fd15c#file-massinsertorupdate-php.
If I add this code to my model, we don't get the errors anymore. It indeed has something to do with high traffic on the website.
public function visit($ip = '')
{
    if (empty($ip)) {
        $ip = request()->ip();
    }

    return self::insertOrUpdateVisit([
        [
            'ip' => $ip,
            'date' => Carbon::now()->toDateString(),
            'visitable_id' => $this->id,
            'visitable_type' => (new \ReflectionClass($this))->getName(),
            'created_at' => now(),
            'updated_at' => now(),
        ]
    ]);
}

public static function insertOrUpdateVisit(array $rows)
{
    $table = 'visits';

    $first = reset($rows);

    $columns = implode(
        ',',
        array_map(function ($value) {
            return "$value";
        }, array_keys($first))
    );

    $values = implode(
        ',',
        array_map(function ($row) {
            return '(' . implode(
                ',',
                array_map(function ($value) {
                    return '"'.str_replace('"', '""', $value).'"';
                }, $row)
            ) . ')';
        }, $rows)
    );

    $updates = implode(
        ',',
        array_map(function ($value) {
            return "$value = VALUES($value)";
        }, array_keys($first))
    );

    $sql = "INSERT INTO {$table}({$columns}) VALUES {$values} ON DUPLICATE KEY UPDATE {$updates}";

    return DB::statement($sql);
}

I found a fix for this based on this snippet: https://gist.github.com/RuGa/5354e44883c7651fd15c#file-massinsertorupdate-php.
If I add this code to my model, we don't get the errors anymore. It indeed has something to do with high traffic on the website.
public function visit($ip = '')
{
    if (empty($ip)) {
        $ip = request()->ip();
    }

    return self::insertOrUpdateVisit([
        [
            'ip' => $ip,
            'date' => Carbon::now()->toDateString(),
            'visitable_id' => $this->id,
            'visitable_type' => (new \ReflectionClass($this))->getName(),
            'created_at' => now(),
            'updated_at' => now(),
        ]
    ]);
}

public static function insertOrUpdateVisit(array $rows)
{
    $table = 'visits';

    $first = reset($rows);

    $columns = implode(
        ',',
        array_map(function ($value) {
            return "$value";
        }, array_keys($first))
    );

    $values = implode(
        ',',
        array_map(function ($row) {
            return '(' . implode(
                ',',
                array_map(function ($value) {
                    return '"'.str_replace('"', '""', $value).'"';
                }, $row)
            ) . ')';
        }, $rows)
    );

    $updates = implode(
        ',',
        array_map(function ($value) {
            return "$value = VALUES($value)";
        }, array_keys($first))
    );

    $sql = "INSERT INTO {$table}({$columns}) VALUES {$values} ON DUPLICATE KEY UPDATE {$updates}";

    return DB::statement($sql);
}

@jyrkidn can you send a PR with the correction?

@jyrkidn can you send a PR with the correction?

Sorry it took me so long @jordanmiguel, but finally found some time for this: check https://github.com/jordanmiguel/laravel-popular/pull/19


Adding Dockerfile

A Dockerfile provides a standardized and efficient way to package, distribute, and run your project, simplifying development, deployment, and maintenance processes.

assign this to me, i can do that.


Stop using AuthenticateResult.Success(ticket: null)

The whole new AuthenticateResult.Success(ticket: null) is used in multiple places (e.g https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.OpenIdConnect/OpenIdConnectHandler.cs#L397 or https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.OpenIdConnect/OpenIdConnectHandler.cs#L437)
Sadly, this doesn't seem to be a legal operation, as Success throws an exception when ticket is null: https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication/AuthenticateResult.cs#L40
/cc @HaoK @Tratcher

Yeah we should definitely be phasing those out...

In the OIDC case, what does it actually mean to Skip a message, is that really a failure now in the new sense that no ticket is produced?

Note: JwtBearer also has this usage still.

Ahah, I just had the same concern when updating ASOS. I simply decided to return null :smile:

In the OIDC case, what does it actually mean to Skip a message, is that really a failure now in the new sense that no ticket is produced?

I'm really tempted to say no. Actually, it wouldn't be an issue if the authenticate result wasn't a binary thing.
The cookies middleware suffers from the same symptom: I don't think returning a "failure" is semantically appropriate when no cookie was received: https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.Cookies/CookieAuthenticationHandler.cs#L110

Well we don't actually treat a "Failure" any differently than a success.  It just means there was no Ticket.  Its up to the caller to use the exception if desired.  In the cookies case, it doesn't care about errors, so it just calls context.Failed instead of the old NotAuthenticated, which is pretty much the same thing in that you get a result with no ticket.  Perhaps Success/Failure isn't the right names.  Its basically "Ticket/NoTicket" which is the definition for success/failure now...

Previously we used to just return null or non null, which maps to Success/Failure, except we used to have a 'success' with no ticket which was a bit ambiguous.

It is also in all of the JWT Token validation events where it absolutely doesn't matter if you call context.HandledResponse() with no ticket set (crashes due to null ticket) or call context.SkipToNextMiddleware() where it crashes because the caller code passes a null ticket explicitly.
https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.JwtBearer/JwtBearerHandler.cs#L74-L83
https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.JwtBearer/JwtBearerHandler.cs#L118-L127
https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNet.Authentication.JwtBearer/JwtBearerHandler.cs#L151-L159
The last one is especially nasty because now there (finally, hah) is a place to return 401 errors in case of invalid tokens, but no matter what you do, it still throws an exception, resulting in a 500 instead ...

This is on me to create a sample and test for Skip so we can properly implement it across the stack.


rate limiter

Can you make a rate limiter adjustable on the request polling so we can adjust to attempt to avoid being blocked? I also don't see rate limiters on indeed and glassdoor?

Ok interesting. Ill dig into glassdoor and see if theres a way to do it another way. I'm getting blocked by the api on indeed, too many requests. Even after I've tried to change IP but there really is not point if they know exactly which key is causing the commotion lol. LinkedIn usually works and ziprecruiter I don't find helpful so might not be worth it for just linkedIn. Also it seems you randomly chose a variable rate limit within a frequency band so honestly that is already the best solution right now.

Yea I meant to say there is indeed rate limiting when doing the searches as I haven't transitioned the repo to use the API for the job search. But fetching the descriptions when we use the api key doesn't have rate limits.

i personally don't use easy apply, I'm more interested in jobs people can't easily apply for. What are the limits to the API? If everyone is using the same one they won't block/limit search requests?

glassdoor the problem is the cookies need to be generated on initialization of scraping. it's hardcoded. Indeed has no rate limiting, we have the api key. but it's good addition for linkedin and ziprecruiter in particular and could be used for all the modules. how do you envision the interface for the user?

I think you mean ziprecruiter that was the only one that I found that had cookies hardcoded. Looking to generating new ones...

I believe the Indeed API key is the global public key used by everyone on the site, could be wrong here though, haven't checked in a minute.

I believe the Indeed API key is the global public key used by everyone on the site, could be wrong here though, haven't checked in a minute.

"on the site" meaning on indeed or jobspy?

I believe the Indeed API key is the global public key used by everyone on the site, could be wrong here though, haven't checked in a minute.

"on the site" meaning on indeed or jobspy?

Indeed

closing as I only see issues with LinkedIn and increasing the delay still results in being blocked.


fix: removed height auto default theme

Removed height auto css rule from the default theme.

@riodeuno I don't know why it was added by you, but the things are working fine I suppose.


docs(bpdm-cm)url updated

Description
In this pull request, i have addressed the broken link issue on the software development view page within the business partner kit. The previous link was broken, i have replaced it with the correct URL.

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[X] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[X] Copyright and license header are present on all affected files

@Unsharm can you please resolve the conflicts? Thx


[MINOR] Move Experiemental to javadoc

LGTM when CI pass

Curious how the CI passes for original PR ?

@danny0405 this annotation is available in higher java 8 version, which CI uses probably.


Finalize repo QA compliance

As part of the TM issue https://github.com/api3dao/tasks/issues/849 for QA, some requirements need to be addressed:
Repo setup requirements as per [new_repo_creation_checklist.md]

[x] Verify Renovate setup for automated security vulnerability scanning to detect vulnerabilities in the codebase and dependencies.

Package setup requirements as per new_package_creation_checklist.md:
@api3/airnode-abi

[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-adapter

[x] Add if needed prettier and the .prettierrc configuration file
[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-admin

[x] Add and edit if needed the key configuration files such as .eslintrc, .prettierrc.
[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-deployer

[x] Add and edit if needed the key configuration files such as .eslintrc, .prettierrc.
[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-examples

[x] Add and edit if needed the key configuration files such as .eslintrc, .prettierrc.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-node

[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-operation

[x] Add and edit if needed the key configuration files such as .prettierrc.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-protocol

[x] Add and edit if needed the key configuration files such as .prettierrc.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-utilities

[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@api3/airnode-validator

[x] Add and edit if needed the key configuration files such as .prettierrc.
[ ] Edit the README.md if needed so that it looks well presented on www.npmjs.com, and provides a clear and comprehensive description about the package, including installation instructions, usage examples, and any other relevant information. Package update changesets should not be included in the README.md.
[ ] Add relevant package.json fields if applicable (e.g. such that repo links, description, keywords, and author show up in NPM, compare this to this)

@dcroote This is not urgent, so I've un-assigned you from this issue.


Static files can`t be found if finatra server starts at Windows

Error is here: https://github.com/twitter/finatra/blob/master/src/main/scala/com/twitter/finatra/FileService.scala#L105
if finatra starts at Windows then 'path' value contains backslashes(\) as a separator. But it must contains slashes(/) for correct resource loading here: https://github.com/twitter/finatra/blob/master/src/main/scala/com/twitter/finatra/FileService.scala#L42

No longer pertinent in Finatra v2.x.


Graph API to Defender ATP error in logs

Hi,
I'm using the graph API to try push IOCs to Defender ATP, i've set up the config.py file to only include the Graph API supported sections.
When running the script and checking the logs in /tmp I can see there is a response error but not sure what the exact details of this error are. Is there a way to see further details of this error?

There's one indicator synchronised and one not. This means the sync connection work.
The error is most likely an indicator type of MISP not supported by Sentinel (fe. YARA or Sigma rules). Check the folder "log", there should be an output of the JSON error.
If not, also set write_post_json and verbose_log to True and run the script again.

Closing pending feedback


Capability Inquiry: Retrieving Specific JSON Records Based on Text

Hi I am considering using the BM25 library for a project where I need to efficiently retrieve JSON records based on textual content matches. My data is structured in JSON format, each with several fields.
Use Case
When I input a query, such as "mountain cycling", I want to retrieve the top K JSON records that best match this query based on the content of the 'chunk' field.
Example of json
    {
        "chunk_id": 1,
        "chunk": "mountain cycling",
        "vocabulary_id": "SPORTS001",
        "vocabulary_name": "Global Sports Vocabulary",
        "concept_code": "MTCYCL001",
        "concept_name": "Mountain Cycling",
        "domain": "Outdoor Sports",
        "validity": true,
        "source": "Sports Encyclopedia"
    },

Questions

Does the BM25 library support indexing and retrieving directly from JSON structures like the ones provided above, particularly focusing on a specific field for text matching?

Setup Advice: If direct JSON handling is supported, could you provide guidance or documentation on how to set up the library for this specific use case?

Am i doing this correctly
corpus_tokens = bm25s.tokenize([item['chunk'] for item in json_data])
retriever = bm25s.BM25()
retriever.index(corpus_tokens)

query = "mountain cycling"
query_tokens = bm25s.tokenize(query)

# Perform the retrieval
results, scores = retriever.retrieve(query_tokens, k=100)
print("Results:", results)
print("Results:", scores)

# Map results indices to JSON data
top_k_json = [json_data[int(index)] for index in results[0]]

for doc in top_k_json:
    print(json.dumps(doc, indent=4))

I was able to do it closing this.

To answer your original question, bm25s does not provide utility for indexing json files. However, the built-in json library should be good for what you have in mind.

To answer your original question, bm25s does not provide utility for indexing json files. However, the built-in json library should be good for what you have in mind.

Thank you for for replying. I was able to get the results. 😊


pygtrie: don't rely on _SENTINEL

We don't define a proper root node when using Trie, which makes us rely on an obscure behaviour like this https://github.com/iterative/dvc-data/blob/2e6d0ca29dfdc51de84bbfdffbff9d6cc522ad80/src/dvc_data/hashfile/tree.py#L101 , where the only way to iterate from the root is not specify the prefix at all (which interally in Trie results in _SENTINEL being used as a prefix). We are pretty much misusing Trie right now and instead should use some kind of root convention. We didn't use / before to avoid associating it with POSIX paths, but we might indeed want to use that unless there are better ideas in mind. Obviously can just go with ROOT = "/" defined for now and rename it any time later in the future if needed.

Or use ROOT = "", so that this is compatible with the result of "/some/path".split("/")


"du" displays "0 bytes" for all files in FUSE mounted snapshots

I tried mounting the snapshots and verify with "du" if certain directories contain plausible amounts of data and if there might be any directories with a lot of big files (like games) that I could exclude. That didn't work in the first attempt as "du" shows 0 bytes for every file:
# du /mnt/t/snapshots/2016-02-13T09:08:18+01:00/bin
0       /mnt/t/snapshots/2016-02-13T09:08:18+01:00/bin

The original directory:
# du /bin
11468   /bin

Google found me an explanation at https://github.com/MediaFire/mediafire-fuse/issues/15 and the recommended flag did work here, too:
# du --apparent-size /mnt/t/snapshots/2016-02-13T09:08:18+01:00/bin
11289   /mnt/t/snapshots/2016-02-13T09:08:18+01:00/bin

Maybe you can fix this by providing a faked blocksize. If not a note regarding --apparent-size in the User Manual would be nice.

Hey, thanks for raising this issue. This seems indeed a good idea to have.

"apparent size" is the file size. The amount of bytes in the file. That's correct for du.
Du without parameters should report the disk space used instead of file sizes, which may be tricky to define in restic.


UnauthorizedOperation error generates an UnknownAWSHTTPServiceError

Describe the bug
When I call an API for which I don't have authorization, the code receives  an  UnknownAWSHTTPServiceError that wraps a typeName of UnauthorizedOperation
Is it possible to directly catch a more descriptive error type than UnknownAWSHTTPServiceError ?
UnknownAWSHTTPServiceError(typeName: Optional("UnauthorizedOperation"), message: Optional("You are not authorized to perform this operation. User: arn:aws:sts::486652066693:assumed-role/amplify-ec2manager-dev-191541-authRole/CognitoIdentityCredentials is not authorized to perform: ec2:DescribeInstances because no identity-based policy allows the ec2:DescribeInstances action"), requestID: Optional("a97a0f5a-7c3b-4819-a437-2a90da59abc3"), requestID2: nil, httpResponse:
Status Code: http_status_403
 Transfer-Encoding: chunked,
Content-Type: text/xml;charset=UTF-8,
Cache-Control: no-cache, no-store,
Strict-Transport-Security: max-age=31536000; includeSubDomains,
vary: accept-encoding,
x-amzn-RequestId: a97a0f5a-7c3b-4819-a437-2a90da59abc3,
Date: Wed, 27 Dec 2023 16:53:13 GMT,
Server: AmazonEC2)

Code Example, run with temporary credentials that don't have ec2:DescribeInstance permission.
        let request = AWSEC2.DescribeInstancesInput()
        do {
            let response = try await ec2Client().describeInstances(input: request)
            // do something with response
        } catch let error as AWSServiceError {
            print("AWSServiceError")
            print(type(of:error)) // UnknownAWSHTTPServiceError
            print(error) // UnknownAWSHTTPServiceError(typeName: Optional("UnauthorizedOperation"), message: Optional("You are not authorized to perform this operation. User: arn:aws:sts::486652066693:assumed-role/amplify-ec2manager-dev-191541-authRole/CognitoIdentityCredentials is not authorized to perform: ec2:DescribeInstances because no identity-based policy allows the ec2:DescribeInstances action"), requestID: Optional("a97a0f5a-7c3b-4819-a437-2a90da59abc3"), requestID2: nil, httpResponse:
        }

Expected Behavior
I expected an UnauthorizedOperation error to allow to provide a specific error message back to the caller
Current Behavior
The UnauthorizedOperation is wrapped into a generic ````swift
let request = AWSEC2.DescribeInstancesInput()
do {
let response = try await ec2Client().describeInstances(input: request)
// do something with response
} catch let error as AWSServiceError {
print("AWSServiceError")
print(type(of:error)) // UnknownAWSHTTPServiceError
print(error) // UnknownAWSHTTPServiceError(typeName: Optional("UnauthorizedOperation"), message: Optional("You are not authorized to perform this operation. User: arn:aws:sts::486652066693:assumed-role/amplify-ec2manager-dev-191541-authRole/CognitoIdentityCredentials is not authorized to perform: ec2:DescribeInstances because no identity-based policy allows the ec2:DescribeInstances action"), requestID: Optional("a97a0f5a-7c3b-4819-a437-2a90da59abc3"), requestID2: nil, httpResponse:
}

### Reproduction Steps

Run this code with credentials that don't have `ec2:DescribeInstance' permission.

```swift
        let request = AWSEC2.DescribeInstancesInput()
        do {
            let response = try await ec2Client().describeInstances(input: request)
            // do something with response
        } catch let error as AWSServiceError {
            print("AWSServiceError")
            print(type(of:error)) // UnknownAWSHTTPServiceError
            print(error) // UnknownAWSHTTPServiceError(typeName: Optional("UnauthorizedOperation"), message: Optional("You are not authorized to perform this operation. User: arn:aws:sts::486652066693:assumed-role/amplify-ec2manager-dev-191541-authRole/CognitoIdentityCredentials is not authorized to perform: ec2:DescribeInstances because no identity-based policy allows the ec2:DescribeInstances action"), requestID: Optional("a97a0f5a-7c3b-4819-a437-2a90da59abc3"), requestID2: nil, httpResponse:
        }
```

### Possible Solution

Unwrap the `UnknownAWSHTTPServiceError` and write a `switch` case to handle the different error types

### Additional Information/Context

_No response_

### AWS SWIFT SDK version used

0.31.0

### Compiler and Version used

Xcode 15.1

### Operating System and version

macOS 14.2.1

Thanks for your report.
We don't recommend catching the UnknownAWSHTTPServiceError by type when you're catching an error that's not modeled by the SDK.  (In fact, we are considering making UnknownAWSHTTPServiceError private in a future release, to prevent catching that concrete type.)
The reason is that catching a concrete UnknownAWSHTTPServiceError will cause your code to break if the service converts an unmodeled error into a modeled one in the future.  We want services to be able to improve their APIs by modeling previously unmodeled errors, but also to be able to do so without breaking customers who already handle those errors.
A more future-proof method of error triage is to cast the error to AWSServiceError and handle errors based on their errorCode:
do {
    let output = try await client.performOperation(input: input)
} catch let error as AWSServiceError {
    switch error.errorCode {
    case "ExpiredToken":
        print("The security token for your AWS credentials expired, renew them")
    default:
        print("Unknown error: \(error)")
    }
}

Triaging unmodeled errors by their errorCode ensures that if an error is converted from unmodeled to modeled by the service in the future, it will still be caught, since all modeled service errors and UnknownAWSHTTPServiceError all conform to AWSServiceError.  The errorCode for an error will not change when it is modeled.
cc: @shepazon

Thank you for the explanation @jbelkins
So this is not a bug but a feature.
@shepazon can you udate the doc? This page in particular
https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/using-client-services.html
Thanks !

Sorry to bump this.
I'm getting a ValidationException from DynamoDB when trying to use BatchWriteItem which is wrapped in an UnknownAWSHttpServiceError.
I'd like to resolve it but I have no idea what the validation error is. I was hoping to snoop at the http response but I can't access it.

@deevus this is not related to the original message posted.
ValidationError means your data do not match the schema.  You can probably get a more detailed message in the error.message property


installer.py: output aqt's version and CWD when unhandled exceptions occur

Starting from v2.0.0rc4 (57f4224d2c89e4b9e59ce5298257af8da9da41dd), aqtinstall recommends users report bugs on GitHub when unhandled exceptions occur. However, the content of the output is not detailed enough. For example, there is no version number of aqt and the current working directory. We can learn how npm does when writing the "~/.npm/_logs/(UTC-datetime)-debug.log" file (ignore the log level indicator "verbose"):
...
verbose stack Error: ...
verbose stack     at ... (...)
verbose cwd ...
verbose ...
verbose argv ...
verbose node v16.3.0
verbose npm  v7.15.1
error ...
verbose exit 1

For aqt's version, we can reuse the show_aqt_version() function.


Boxes

Purpose/implementation Section
What changes are being implemented in this Pull Request?
Want to add the option for my style boxes to make statement stand out.
What was your approach?
updated style.css file, as well as the one for ITN and added images for them to the assets folder

Going to merge this!


Update main.yml

ON RHEL 7.6 and may be earlier. The current block does not work. I came across this in another project. The only way I found it does work is a shell script like the one provided.

I think I noted something similar, but cannot remember the specifics.
Instead of using the command, look at this URL, I will try it in the next couple of days
https://stackoverflow.com/questions/41053331/ansible-how-to-restart-auditd-service-on-centos-7-get-error-about-dependency

I just tested the code that I recommended for PR on RHEL 7.6. It ran with a warning, but worked.

Hi Roman
Let me test it with the Ansible Devs recommended solution and get back to you.
I know the shell will work, but we do want to reduce the warnings.
Best
Ben

Can also do.
- name: Restart auditd
  shell: service auditd restart
  args:
    warn: no

Runs as:
RUNNING HANDLER [Ansible-RHEL7-CIS-Benchmarks : Restart auditd] ************************************
changed: [<IP_ADDRESS>]

Hi Roman
I have updated the latest master to version 1.1.36, by updating the handlers/main.yml in the way the Ansible Developers indicated it should be done

service:
name: auditd
state: restarted
use: service
I do understand that "shell" can be used, but I am trying to keep to the modules written, otherwise we could simply do everything via a "command" or a "shell".
Please remember this is about "state".
I really thank you for raising the issue, please continue to contribute, this challenge you identified I had noted before but forgot to address.
Many thanks!
Best
Ben


Compilation error

I'm trying to install compile the latest version on linux (Debian). When I run yarn install, all I got is
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=6.0.0".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

You need a newer version of node.

thank you


/metrics do not return http_requests_total and http_response_time_seconds

Describe the bug
/metrics do not return http_requests_total and http_response_time_seconds
To Reproduce
Steps to reproduce the behavior:

Use main branch
Launch Meilisearch with --enable-metrics-route
Make some search requests (Ps: processingTimeMs seems to be always 0)
GET /metrics

Expected behavior
Seems that http_response_total and http_response_time_seconds should be returned.
Additional context
[Observability, Prometheus]

Hey,
We found the bug this morning with @gmourier and we decided that it is not a bug on the Meilisearch but rather on the Postman/cURL side. The URL that was used to call the /metrics routes was containing two slashes i.e. localhost:7700//metrics, and was therefore breaking the stats collector.
https://github.com/meilisearch/meilisearch/blob/c4453340707f0b8ed6168118dff2e4d2ae634f8d/meilisearch-http/src/route_metrics.rs#L50-L52


Fixing the is_dir() calls.

Fixing https://github.com/henrikbjorn/Lurker/issues/15

@burzum would you mind looking at the failing tests?

I have no idea why the remaining tests fail, but I get a ton of them failing as well locally for the commit d13372695bf7853edc104bd6ee2ac3deaa92acc2 before my change.

Seems like the test was correct before you branch, would you mind looking in to it?

I might come back to the tests when I have enough time to fix 3rd party libs, which might take a few weeks up to month.


Create the frontend for the Signup page

The signup page needs to have a form with the following fields -

Backend field name
To be rendered as

firstName
First Name

lastName
Last Name

email
E-mail

password
Password

passwordConfirm
ConfirmPassword

On clicking the 'Register' button, the /signup route should be called.
There should also be options to register using the Google account and the GitHub account.
For Google account, the request should be sent to the /auth/google endpoint.
For GitHub account, the request should be sent to the /auth/github endpoint.
Refer README.md for more details about routes.

@dhruvsol, You can take this one up, right? As discussed, the integration with the backend was yet to be done for this one.


DailyQuests Reset

Hello,
Now that the quests work pretty well, the reset should work too.
Because it's been months now that we expect to be able to reset the quests every day.
I allow myself to propose if you can not run your "timer" to reset the quests at each reload of the plugin for example or at a time that you set yourself.
This would only be temporary but we would be able to use the quests.
Because at this moment the DailyQuest are unusable without reset.
Thank you in advance for your answer.

Known issue: https://github.com/Zrips/Jobs/issues/512

Yes I know this has already been posted several months ago.
But I do not understand why this is still not fixed? This is not a gray problem, however, I think

Same here

I am also experiencing this issue.

c598b45fc71b15e7d00852135456a3f0b0749c41


ReadOnly/Disabled remove 'x'

When a  or  field is disabled or read-only can the 'x' be removed as this is confusing for the end-user who sees an 'x' and just wants to click it with enthusiasm.
It would also be very nice if we could initialize and update the tags with 'x', 'o', ' '

I agree with removing the X so users know they can't touch the tags. I don't quite understand what you mean with the following though:

It would also be very nice if we could initialize and update the tags with 'x', 'o', ' '

Sorry, classic case of thinking it and not typing it. When initializing, an option could be created that allows different characters to replace the 'x'. This would give the developer the flexibility to convey various messages/meaning to the end user i.e. readonly could be 'o' while disabled could be ' ' (nothing)
$('input').tagsinput({
tagChar: 'o'
});
And thanks for your efforts.

I'm a little weary of adding too many options to the lib... we've already added a good bunch over the past few weeks. I agree that the X should be removed but I think that changing the char should be left to the dev to do as needed. I'm not sure it fits in the scope of the plugin.

Have a great Holiday break and thanks for considering the issue.

My hack for this one is adding the static class on the bootstrap tags-input parent and put this on my css file:
  .bootstrap-tagsinput.static .tag [data-role="remove"] {
    margin-left: 0px;
  }

  .bootstrap-tagsinput.static .tag [data-role="remove"]:after {
    content: none;
    padding: 0px 2px;
  }

Its a work around, simply 'hides' the x button. Hope it helps.


add Full Stack TypeScript with AWS Cloud Development Kit course

Adding a link to my newly released Full Stack TypeScript with AWS Cloud Development Kit course for egghead.io
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@tlakomy bounce


ImportError: failed to find libmagic.  Check your installation

backend error:
ImportError: failed to find libmagic.  Check your installation
info:
mac m1
ollama qwen:32b
[ERROR]{'message': 'Failed To Process File:book.txt or LLM Unable To Parse Content ', 'error_message': 'Error while reading the file content or metadata', 'file_name': 'book.txt', 'status': 'Failed', 'db_url': 'neo4j://<IP_ADDRESS>:7687', 'failed_count': 1, 'source_type': 'local file', 'source_url': None, 'wiki_query': None, 'logging_time': '2024-12-27 11:31:00 UTC'}
2024-12-27 19:31:00,641 - File Failed in extraction: {'message': 'Failed To Process File:book.txt or LLM Unable To Parse Content ', 'error_message': 'Error while reading the file content or metadata', 'file_name': 'book.txt', 'status': 'Failed', 'db_url': 'neo4j://<IP_ADDRESS>:7687', 'failed_count': 1, 'source_type': 'local file', 'source_url': None, 'wiki_query': None, 'logging_time': '2024-12-27 11:31:00 UTC'}
Traceback (most recent call last):
File "/Users/Documents/workplace/gouwu-python/llm-graph-builder/backend/src/document_sources/local_file.py", line 38, in get_documents_from_file_by_path
unstructured_pages = loader.load()
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/langchain_core/document_loaders/base.py", line 31, in load
return list(self.lazy_load())
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/langchain_community/document_loaders/unstructured.py", line 107, in lazy_load
elements = self._get_elements()
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/langchain_community/document_loaders/unstructured.py", line 228, in _get_elements
return partition(filename=self.file_path, **self.unstructured_kwargs)
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/partition/auto.py", line 181, in partition
file_type = detect_filetype(
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 98, in detect_filetype
return _FileTypeDetector.file_type(ctx)
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 131, in file_type
return cls(ctx)._file_type
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 141, in _file_type
if file_type := self._file_type_from_guessed_mime_type:
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 181, in _file_type_from_guessed_mime_type
mime_type = self._ctx.mime_type
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/utils.py", line 154, in get
value = self._fget(obj)
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 362, in mime_type
import magic
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/magic/init.py", line 209, in
libmagic = loader.load_lib()
File "/Users/miniforge3/envs/llm-graph-builder0/lib/python3.10/site-packages/magic/loader.py", line 49, in load_lib
raise ImportError('failed to find libmagic.  Check your installation')
ImportError: failed to find libmagic.  Check your installation
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/Documents/workplace/gouwu-python/llm-graph-builder/backend/score.py", line 209, in extract_knowledge_graph_from_file
uri_latency, result = await extract_graph_from_file_local_file(uri, userName, password, database, model, merged_file_path, file_name, allowedNodes, allowedRelationship, retry_condition)
File "/Users/Documents/workplace/gouwu-python/llm-graph-builder/backend/src/main.py", line 227, in extract_graph_from_file_local_file
file_name, pages, file_extension = get_documents_from_file_by_path(merged_file_path,fileName)
File "/Users/Documents/workplace/gouwu-python/llm-graph-builder/backend/src/document_sources/local_file.py", line 41, in get_documents_from_file_by_path
raise Exception('Error while reading the file content or metadata')
Exception: Error while reading the file content or metadata
INFO:     <IP_ADDRESS>:58037 - "POST /extract HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:58040 - "GET /update_extract_status/book.txt?url=neo4j://<IP_ADDRESS>:7687&userName=neo4j&password=bW9uYXJjaC1zdG9jay1leHBsb3JlLWZsdXRlLXRleGFzLTc3NDI=&database=neo4j HTTP/1.1" 200 OK
2024-12-27 19:31:01,121 - Exception in post_processing tasks: local variable 'api_name' referenced before assignment
Traceback (most recent call last):
File "/Users/Documents/workplace/gouwu-python/llm-graph-builder/backend/score.py", line 347, in post_processing
json_obj = {'api_name': api_name, 'db_url': uri, 'userName':userName, 'database':database, 'tasks':tasks, 'logging_time': formatted_time(datetime.now(timezone.utc)), 'elapsed_api_time':f'{elapsed_time:.2f}'}
UnboundLocalError: local variable 'api_name' referenced before assignment
INFO:     <IP_ADDRESS>:58037 - "POST /post_processing HTTP/1.1" 200 OK
2024-12-27 19:31:01,298 -  SSE Client disconnected

Same mistake. Did you fix it?

We have added sudo apt-get install libmagic1 command in dockerfile. https://github.com/neo4j-labs/llm-graph-builder/blob/main/backend/Dockerfile
Try running dockerfile once.


Can I use conditionMatchedLog?

Hey there!
I'm trying to create an alertPolicy via AlertPolicyServiceClient and its createAlertPolicy method.
If I include the conditionMatchedLog as condition key,  i'm getting the error:
{"code":3,"details":"Field alert_policy.conditions[0].condition_case had an invalid value of \"0\": Condition subtype (e.g. \"condition_absent\",\"condition_threshold\", etc.) is absent or unknown.","metadata":{}}

But in the documentation https://cloud.google.com/logging/docs/alerting/log-based-alerts#lba-by-api it sounds like it should be possible.... Am I missing something?
Thanks in advance,
Sebi

👋  I'd also like to use a conditionMatchedLog in the IAlertPolicy's ICondition.
I'm currently using npm's "@google-cloud/monitoring": "^3.0.0", which appears to be the latest release.
Any sense of if/when this will be added to the node sdk?
Thanks.

Hi there! We're migrating this repo over to googleapis/google-cloud-node, and closing any stale questions. Please feel free to reopen over there if it's still giving you trouble! Thank you!


Retry transactions when they don't get included

Expected Behavior
Valora should be able to gracefully handle the case where a transaction that it signed+broadcast was not mined. Under high load, this may happen when the gas price minimum increases beyond the gas price included in the signed tx.
Current behavior
No retry logic

Closing as this as retries are now possible: https://github.com/valora-inc/wallet/pull/4373


deploy android QA branch app to beta stream

[ ] update github actions flow to deploy qa/staging onto app store

@sirpy re-assigned this to you, as you're dealing now with the GooglePlay

@serdiukov-o-nordwhale i'm just fixing it so org.gooddollar is a public app


Make Settings fetching pluggable [phab:D1845]

Created by djrenren at 2017-08-08 21:03:31:
By adding SettingsProvider, the behavior the server uses
to fetch settings can be customized. This simplifies testing and the implementation of
alternate settings schemes

djrenren wrote at 2017-08-08 21:09:59:

Remove out of date comment

zarko commented inline (context lost during migration) at 2017-08-08 21:45:15:
If you want to leave this in, it's probably useful to add a descriptive message to it.

zarko accepted this revision at 2017-08-08 21:45:15

djrenren closed via commit e855c0989cbb6ddc0c6aa89e25f0b1fd29874200 at 2017-08-08 21:48:11


problem in local kvstore

In MXNet V1.0 and V1.1-rc0, when training with kvstore='local' or kvstore='device'  .
The computation of update can not overlap the backward computation.

Do you have some profiling output regarding this? What kind of network are you using?

We train resnet50 in imageclassification with kvstore=local.


React-scroll not working with Material UI swipeable drawer

I am working on creating a responsive navbar for my portfolio, using react-scroll to implement smooth scrolling to a point on the webpage.
That said when I test the code both locally and on the live site on my desktop browser, the burger menu works (using the Chrome dev tools to inspect and check across various sizes).  However, when I test on my iPhone/smaller screen sizes on the deployed version, the menu is not working/will not scroll to the appropriate anchor element.
I recognize this is a strange issue but I've tried everything and cannot find what is wrong.  Any insights would be extremely helpful.  Relevant links are below.
Github repo: https://github.com/emblair96/portfolio-playground
Deployed link: https://emblair96.github.io/portfolio-playground/
Material UI Swipeable drawer API: https://material-ui.com/api/swipeable-drawer/

Animating scroll on a mobile device is a bit tedious, I don't even think the examples work on a mobile device.
I suggest you detect if it's a mobile device, given a mobile device you scroll normal, without animating it.


B 20016 go upgrade 1.22.2

B-20016
Summary
INT PR- linter updates
INT PR
GO 1.22.2 UPGRADE
https://dp3.atlassian.net/wiki/spaces/MT/pages/1931673649/How+to+Upgrade+Go+Version#3.-Update-transcom%2Fmymove-Repo

There is some move locking stuff in here that has not been PO accepted yet - thoughts?

Warnings

:warning:
This PR does not include changes to storybook, even though it affects component code.

  Generated by :no_entry_sign: dangerJS against 79fa76a1b2b9a03b0d321bbd997fb691dfd2a509


Support JAVA_OPTS ?

It would be nice to have a place to set JAVA_OPTS
https://mesosphere.github.io/marathon/docs/command-line-flags.html
For now, I'm adding it to my environment but that doesn't seem very safe overall.

@jolexa, enhancement coming with PR #19.

Merged!


Fix links

👷 Deploy Preview for gladia processing.

Name
Link

🔨 Latest commit
4c87fc401f31ff72f6fb7c6ad179358ab744dec5

🔍 Latest deploy log
https://app.netlify.com/sites/gladia/deploys/643068f65377b20008e1289b


Ignore hidden directories and hidden files

Codecov Report

Merging #45 into master will decrease coverage by 0.31%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   83.49%   83.17%   -0.32%
==========================================
  Files          13       13
  Lines         521      523       +2
  Branches       43       43
==========================================
  Hits          435      435
- Misses         79       81       +2
  Partials        7        7

Impacted Files
Coverage Δ

markdownreveal/commands.py
46.07% <0%> (-0.93%)
:arrow_down:

markdownreveal/__init__.py
100% <100%> (ø)
:arrow_up:

markdownreveal/convert.py
78.26% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: type 'Null' is not a subtype of type 'String'

E/flutter ( 5090): #0      User.fromSnap
package:connect/models/user.dart:40
E/flutter ( 5090): #1      AuthMethods.getUserDetails
package:connect/resources/auth_methods.dart:18
E/flutter ( 5090):
E/flutter ( 5090): #2      UserProvider.refreshUser
package:connect/providers/user_provider.dart:12
E/flutter ( 5090):
E/flutter ( 5090): #3      _ResponsiveLayoutState.addData
package:connect/responsive/responsive_layout_screen.dart:28
E/flutter ( 5090):
E/flutter ( 5090):
Please I need help to solve this problem

This doesn't look like the problem is caused by window_manager