upg-vpp doesn't encap gtpu header for downlink traffic

Hi,
I set up upg-vpp as UPF with free5GC SMF, and used UERANSIM to test UE traffic by sending ping requests.
The uplink tunnel worked well, but the downlink did not.
Below is my setting and if there was anything wrong?
My startup.conf file
unix {
  interactive
  cli-listen /run/vpp/cli-vpp-upf.sock
  exec /home/upf/init.conf
}

cpu {
  main-core 1
  corelist-workers 2-3
}

dpdk {
  socket-mem 2048,2048,2048

  dev 0000:0b:00.0 {
    num-rx-queues 2
    num-rx-desc 1024
    num-tx-queues 2
    num-tx-desc 1024
  }

  dev 0000:13:00.0 {
    num-rx-queues 2
    num-rx-desc 1024
    num-tx-queues 2
    num-tx-desc 1024
  }

  dev 0000:1b:00.0 {
    num-rx-queues 2
    num-rx-desc 1024
    num-tx-queues 2
    num-tx-desc 1024
  }
}

My init.conf file
set int state GigabitEthernet13/0/0 up
set int state GigabitEthernetb/0/0 up
set int state GigabitEthernet1b/0/0 up

set int ip table GigabitEthernet13/0/0 0
set int ip table GigabitEthernetb/0/0 0
set int ip table GigabitEthernet1b/0/0 0

set int ip address GigabitEthernet13/0/0 <IP_ADDRESS>/24
set int ip address GigabitEthernetb/0/0 <IP_ADDRESS>/24
set int ip address GigabitEthernet1b/0/0 <IP_ADDRESS>/24

ip route add <IP_ADDRESS>/0 table 0 via <IP_ADDRESS> GigabitEthernet1b/0/0

upf pfcp endpoint ip <IP_ADDRESS> vrf 0

upf nwi name access vrf 0
upf nwi name core vrf 0

upf gtpu endpoint ip <IP_ADDRESS> nwi access teid 0x00000001/2

upf node-id ip4 <IP_ADDRESS>

After tracing with vpp debug tools, I found that upg-vpp did not have encap node after interface-output node and thus DL packets were dropped. (vpp gtup plugin has this node)
------------------- Start of thread 2 vpp_wk_1 -------------------
Packet 1

00:07:21:817644: dpdk-input
  GigabitEthernetb/0/0 rx queue 1
  buffer 0x6a2e6: current data 0, length 142, buffer-pool 0, ref-count 1, totlen-nifb 0, trace handle 0x2000001
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct
  PKT MBUF: port 0, nb_segs 1, pkt_len 142
    buf_len 2176, data_len 142, ol_flags 0x182, data_off 128, phys_addr 0x9108ba00
    packet_type 0x291 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x9e668c47 fdir.hi 0x0 fdir.lo 0x9e668c47
    Packet Offload Flags
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without extension headers
      RTE_PTYPE_L4_UDP (0x0200) UDP packet
  IP4: 00:0c:29:5e:21:45 -> 00:0c:29:5d:4b:f1
  UDP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 128, checksum 0x941d dscp CS0 ecn NON_ECN
    fragment id 0x24cc, flags DONT_FRAGMENT
  UDP: 2152 -> 2152
    length 108, checksum 0x2cd1
00:07:21:817657: ethernet-input
  frame: flags 0x1, hw-if-index 1, sw-if-index 1
  IP4: 00:0c:29:5e:21:45 -> 00:0c:29:5d:4b:f1
00:07:21:817664: ip4-input
  UDP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 128, checksum 0x941d dscp CS0 ecn NON_ECN
    fragment id 0x24cc, flags DONT_FRAGMENT
  UDP: 2152 -> 2152
    length 108, checksum 0x2cd1
00:07:21:817666: ip4-lookup
  fib 0 dpo-idx 8 flow hash: 0x00000000
  UDP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 128, checksum 0x941d dscp CS0 ecn NON_ECN
    fragment id 0x24cc, flags DONT_FRAGMENT
  UDP: 2152 -> 2152
    length 108, checksum 0x2cd1
00:07:21:817669: ip4-local
    UDP: <IP_ADDRESS> -> <IP_ADDRESS>
      tos 0x00, ttl 64, length 128, checksum 0x941d dscp CS0 ecn NON_ECN
      fragment id 0x24cc, flags DONT_FRAGMENT
    UDP: 2152 -> 2152
      length 108, checksum 0x2cd1
00:07:21:817670: ip4-udp-lookup
  UDP: src-port 2152 dst-port 2152
00:07:21:817672: upf-gtpu4-input
  GTPU decap from gtpu_session0 teid 0x00000001 next 1 error 0
00:07:21:817676: upf-ip4-flow-process
  upf_session0 cp-seid 0x0000000000000001
  FlowInfo - sw_if_index 1, next_index = 2
  proto 0x1, <IP_ADDRESS>:0 <-> <IP_ADDRESS>:0, seid 0x0000000000000001
  00000000:<PHONE_NUMBER>0000000000000000000000000000003c3c00010000000000000000
  00000020: 00000000c0a8020a0000000001000000
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x9829 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817680: upf-ip4-input
  upf_session0 cp-seid 0x0000000000000001 pdr 1 far 1
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x9829 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817682: upf-ip4-forward
  upf_session0 cp-seid 0x0000000000000001 pdr 1 far 1
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x9829 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817684: ip4-input
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x9829 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817684: ip4-lookup
  fib 0 dpo-idx 9 flow hash: 0x00000000
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x9829 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817685: ip4-rewrite
  tx_sw_if_index 3 dpo-idx 9 : ipv4 via <IP_ADDRESS> GigabitEthernet1b/0/0: mtu:9000 next:5 000c29232347000c295d4b050800 flow hash: 0x00000000
  00000000: 000c29232347000c295d4b05080045000054a39040003f0199293c3c0001c0a8
  00000020: 020a08003d3340bd0002eb80c1600000000006590800000000001011
00:07:21:817688: GigabitEthernet1b/0/0-output
  GigabitEthernet1b/0/0
  IP4: 00:0c:29:5d:4b:05 -> 00:0c:29:23:23:47
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 63, length 84, checksum 0x9929 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573
00:07:21:817690: GigabitEthernet1b/0/0-tx
  GigabitEthernet1b/0/0 tx queue 2
  buffer 0x6a2e6: current data 44, length 98, buffer-pool 0, ref-count 1, totlen-nifb 0, trace handle 0x2000001
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 l3-hdr-offset 58
  PKT MBUF: port 0, nb_segs 1, pkt_len 98
    buf_len 2176, data_len 98, ol_flags 0x182, data_off 172, phys_addr 0x9108ba00
    packet_type 0x291 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x9e668c47 fdir.hi 0x0 fdir.lo 0x9e668c47
    Packet Offload Flags
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without extension headers
      RTE_PTYPE_L4_UDP (0x0200) UDP packet
  IP4: 00:0c:29:5d:4b:05 -> 00:0c:29:23:23:47
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 63, length 84, checksum 0x9929 dscp CS0 ecn NON_ECN
    fragment id 0xa390, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x3d33 id 16573

Packet 2

00:07:21:818087: dpdk-input
  GigabitEthernet1b/0/0 rx queue 1
  buffer 0x3dd18: current data 0, length 98, buffer-pool 0, ref-count 1, totlen-nifb 0, trace handle 0x2000002
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct
  PKT MBUF: port 2, nb_segs 1, pkt_len 98
    buf_len 2176, data_len 98, ol_flags 0x82, data_off 128, phys_addr 0xa4974680
    packet_type 0x91 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0xb8ab52c9 fdir.hi 0x0 fdir.lo 0xb8ab52c9
    Packet Offload Flags
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without extension headers
  IP4: 00:0c:29:23:23:47 -> 00:0c:29:5d:4b:05
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x1f9c dscp CS0 ecn NON_ECN
    fragment id 0x5c1e
  ICMP echo_reply checksum 0x4533 id 16573
00:07:21:818097: ethernet-input
  frame: flags 0x1, hw-if-index 3, sw-if-index 3
  IP4: 00:0c:29:23:23:47 -> 00:0c:29:5d:4b:05
00:07:21:818099: ip4-input
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x1f9c dscp CS0 ecn NON_ECN
    fragment id 0x5c1e
  ICMP echo_reply checksum 0x4533 id 16573
00:07:21:818099: ip4-lookup
  fib 0 dpo-idx 6 flow hash: 0x00000000
  ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
    tos 0x00, ttl 64, length 84, checksum 0x1f9c dscp CS0 ecn NON_ECN
    fragment id 0x5c1e
  ICMP echo_reply checksum 0x4533 id 16573
00:07:21:818106: ip4-arp
    ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
      tos 0x00, ttl 64, length 84, checksum 0x1f9c dscp CS0 ecn NON_ECN
      fragment id 0x5c1e
    ICMP echo_reply checksum 0x4533 id 16573
00:07:21:818111: ip4-drop
    ICMP: <IP_ADDRESS> -> <IP_ADDRESS>
      tos 0x00, ttl 64, length 84, checksum 0x1f9c dscp CS0 ecn NON_ECN
      fragment id 0x5c1e
    ICMP echo_reply checksum 0x4533 id 16573
00:07:21:818131: error-drop
  rx:GigabitEthernet1b/0/0
00:07:21:818133: drop
  ip4-arp: ARP requests sent

PFCP create PDR message
0: handle_session_modification_request:2502: CP F-SEID: 0x0000000000000001 (1) @ <IP_ADDRESS>
UP F-SEID: 0x0000000000000001 (1) @ <IP_ADDRESS>
  SIdx: 0
  Pointer: 0x7fffb8ad10c0
  PDR: 0x7fffb5b46c70
  FAR: 0x7fffbc9f0b60
  PFCP Association: 0
                  (prev:4294967295,next:4294967295)
PDR: 1 @ 0x7fffb5b46c70
  Precedence: 255
  PDI:
    Fields: 0000000d
    Source Interface: Access
    Network Instance: access
    Local F-TEID: 1 (0x00000001)
            IPv4: <IP_ADDRESS>
    UE IP address (source):
      IPv4 address: <IP_ADDRESS>
    SDF Filter [1]:
      permit out ip from any to assigned
  Outer Header Removal: GTP-U/UDP/IPv4
  FAR Id: 1
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7fffbcc389b0
PDR: 2 @ 0x7fffb5b46cf0
  Precedence: 255
  PDI:
    Fields: 0000000c
    Source Interface: Core
    Network Instance: access
    UE IP address (source):
      IPv4 address: <IP_ADDRESS>
    SDF Filter [1]:
      permit out ip from any to assigned
  Outer Header Removal: no
  FAR Id: 2
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7fffbcc38a50
FAR: 1 @ 0x7fffbc9f0b60
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: access
    Destination Interface: 2
FAR: 2 @ 0x7fffbc9f0bd0
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: access
    Destination Interface: 0
    Outer Header Creation: [GTP-U/UDP/IPv4],TEID:00000001,IP:<IP_ADDRESS>
    Rewrite Header: UDP: <IP_ADDRESS> -> <IP_ADDRESS>
                      tos 0x00, ttl 254, length 0, checksum 0x3b69 dscp CS0 ecn NON_ECN
                      fragment id 0x0000
                    UDP: 2152 -> 2152
                      length 0, checksum 0x0000
0: encode_ie:7693: PFCP: Cause: 1.
0: enqueue_response:464: Msg Seq No: 3, idx 2

ping pacp file
ping.zip

Looks like a bug in your SMF, PDR 2 is wrong:

Source Interface need to be SGi-LAN/N6-LAN
UE IP Address needs to have S/D flag set to make it a destination IP

Thanks, it's work. :)

@redbag-2 can you share please how you changed these two settings on the smf ? thank you in advance

@redbag-2 - Can you kindly share how you resolved the networkInstance encoding format on Free5gc SMF?

Sorry reply so late..
I modify free5gc/NFs/smf/context/datapath.go file, to add Sd flag in UEIPAddress IE.
			ULPDR.PDI = PDI{
				SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceAccess},
				NetworkInstance: []byte(smContext.Dnn),
				LocalFTeid: &pfcpType.FTEID{
					V4:          true,
					Ipv4Address: upIP,
					Teid:        curULTunnel.TEID,
				},
				UEIPAddress: &pfcpType.UEIPAddress{
					Sd:          false,
					V4:          true,
					Ipv4Address: smContext.PDUAddress.To4(),
				},

				DLPDR.PDI = PDI{
					SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceCore},
					LocalFTeid: &pfcpType.FTEID{
						V4:          true,
						Ipv4Address: upIP,
						Teid:        curDLTunnel.TEID,
					},

					UEIPAddress: &pfcpType.UEIPAddress{
					 	Sd:          true,
					 	V4:          true,
					 	Ipv4Address: smContext.PDUAddress.To4(),
					 },
				}
			}

	if curDataPathNode.DownLinkTunnel != nil {
		if curDataPathNode.DownLinkTunnel.SrcEndPoint == nil {
			DNDLPDR := curDataPathNode.DownLinkTunnel.PDR
			DNDLPDR.PDI = PDI{
				SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceCore},
				NetworkInstance: util_3gpp.Dnn(smContext.Dnn),
				UEIPAddress: &pfcpType.UEIPAddress{
					Sd:          true,
					V4:          true,
					Ipv4Address: smContext.PDUAddress.To4(),
				},
			}
		}
	}

@redbag-2 - Can you kindly share how you resolved the networkInstance encoding format on Free5gc SMF?

Sorry, I didn't encounter any problems about networkInstance encoding format on Free5gc SMF.
Can you explain your problems more clearly?

@redbag-2 - First of all, thanks for sharing how you got it working.
With regards the NWI encoding please see the issue below:
https://github.com/travelping/upg-vpp/issues/118#issuecomment-834344277
Can you also kindly share the upg-vpp and Freee5gc software version (or commit) that you used? Also if possible the Free5gc SMF config, I will like to compare it with what is currently available in the Free5gc repo.

@infinitydon
Hi,
UPG-VPP NWI setting must be equal to smfcfg.conf networkInstance.
And I use ip format in node_id, so UPG-VPP need to setup node_id address.
Below is my init.conf and smfcfg.conf, you can refer it.
init.conf

set int state GigabitEthernet13/0/0 up // data_plane
set int state GigabitEthernetb/0/0 up // control_plane
set int ip table GigabitEthernet13/0/0 0
set int ip table GigabitEthernetb/0/0 0
set int ip address GigabitEthernetb/0/0 <IP_ADDRESS>/24
set int ip address GigabitEthernet13/0/0 <IP_ADDRESS>/24
ip route add <IP_ADDRESS>/0 table 0 via <gw_ip> GigabitEthernet13/0/0
upf pfcp endpoint ip <IP_ADDRESS> vrf 0
upf nwi name internet vrf 0
upf gtpu endpoint ip <IP_ADDRESS> nwi internet teid 0x00000001/2
upf node-id ip4 <IP_ADDRESS>

smfcfg.conf

userplane_information: # list of userplane information
up_nodes: # information of userplane node (AN or UPF)
gNB1: # the name of the node
type: AN # the type of the node (AN or UPF)
UPF:  # the name of the node
type: UPF # the type of the node (AN or UPF)
node_id: <IP_ADDRESS> # the IP/FQDN of N4 interface on this UPF (PFCP) -> It must equal to upg-vpp node-id
sNssaiUpfInfos: # S-NSSAI information list for this UPF
- sNssai: # S-NSSAI (Single Network Slice Selection Assistance Information)
sst: 1
sd: 010203
dnnUpfInfoList: # DNN information list for this S-NSSAI
- dnn: internet
pools:
- cidr: <IP_ADDRESS>/16
- sNssai: # S-NSSAI (Single Network Slice Selection Assistance Information)
sst: 1
sd: 112233 # Slice Differentiator
dnnUpfInfoList: # DNN information list for this S-NSSAI
- dnn: internet
pools:
- cidr: <IP_ADDRESS>/16
interfaces: # Interface list for this UPF
- interfaceType: N3 # the type of the interface (N3 or N9)
endpoints: # the IP address of this N3/N9 interface on this UPF
- <IP_ADDRESS>                                                                  -> It must equal to upg-vpp gtpu ip address
networkInstance: internet # Data Network Name (DNN) -> It must equal to upg-vpp NWI

Best regards

Thanks @redbag-2 - Now SMF is able to create PDU session successfully on the upg-vpp:
vpp# show upf association
Node: <IP_ADDRESS>
  Recovery Time Stamp: 2021/08/25 09:44:54:000
  Sessions: 0
vpp#
vpp# show upf association
Node: <IP_ADDRESS>
  Recovery Time Stamp: 2021/08/25 09:44:54:000
  Sessions: 1
vpp# show upf session
CP F-SEID: 0x0000000000000001 (1) @ <IP_ADDRESS>
UP F-SEID: 0x0000000000000001 (1) @ <IP_ADDRESS>
  PFCP Association: 0
PDR: 1 @ 0x7fe45dd3cd80
  Precedence: 255
  PDI:
    Fields: 0000000d
    Source Interface: Access
    Network Instance: internet
    Local F-TEID: 1 (0x00000001)
            IPv4: <IP_ADDRESS>
    UE IP address (source):
      IPv4 address: <IP_ADDRESS>
    SDF Filter [1]:
      permit out ip from any to assigned
  Outer Header Removal: GTP-U/UDP/IPv4
  FAR Id: 1
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7fe45dd6c7f0
PDR: 2 @ 0x7fe45dd3ce00
  Precedence: 255
  PDI:
    Fields: 0000000c
    Source Interface: Core
    Network Instance: internet
    UE IP address (destination):
      IPv4 address: <IP_ADDRESS>
    SDF Filter [1]:
      permit out ip from any to assigned
  Outer Header Removal: no
  FAR Id: 2
  URR Ids: [] @ 0x0
  QER Ids: [1] @ 0x7fe45dd6c880
FAR: 1
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: internet
    Destination Interface: 2
FAR: 2
  Apply Action: 00000002 == [FORWARD]
  Forward:
    Network Instance: internet
    Destination Interface: 0
    Outer Header Creation: [GTP-U/UDP/IPv4],TEID:00000001,IP:<IP_ADDRESS>

But ping request is not working, I think this could be because the source interface should be SGi-LAN/N6-LAN in PDR 2

@redbag-2 - Sorry to bother you again, please I want to ask about the throughput speed you were able to achieve with the DPDK deployment?

I am using ueransim to test.. Any idea what could be causing the low throughput? I tried running the ueransim on a system with 16 CPU cores but that did not help.

HI @infinitydon
The performance bottleneck is on UERANSIM,  you can try free5gc's gtp5g and libgtp5gnl tool to simulate UE.
Or using T-rex, It powerful test tool.
Two way will get better throughput via my test.
Good luck

Sorry reply so late.. I modify free5gc/NFs/smf/context/datapath.go file, to add Sd flag in UEIPAddress IE.
			ULPDR.PDI = PDI{
				SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceAccess},
				NetworkInstance: []byte(smContext.Dnn),
				LocalFTeid: &pfcpType.FTEID{
					V4:          true,
					Ipv4Address: upIP,
					Teid:        curULTunnel.TEID,
				},
				UEIPAddress: &pfcpType.UEIPAddress{
					Sd:          false,
					V4:          true,
					Ipv4Address: smContext.PDUAddress.To4(),
				},

				DLPDR.PDI = PDI{
					SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceCore},
					LocalFTeid: &pfcpType.FTEID{
						V4:          true,
						Ipv4Address: upIP,
						Teid:        curDLTunnel.TEID,
					},

					UEIPAddress: &pfcpType.UEIPAddress{
					 	Sd:          true,
					 	V4:          true,
					 	Ipv4Address: smContext.PDUAddress.To4(),
					 },
				}
			}

	if curDataPathNode.DownLinkTunnel != nil {
		if curDataPathNode.DownLinkTunnel.SrcEndPoint == nil {
			DNDLPDR := curDataPathNode.DownLinkTunnel.PDR
			DNDLPDR.PDI = PDI{
				SourceInterface: pfcpType.SourceInterface{InterfaceValue: pfcpType.SourceInterfaceCore},
				NetworkInstance: util_3gpp.Dnn(smContext.Dnn),
				UEIPAddress: &pfcpType.UEIPAddress{
					Sd:          true,
					V4:          true,
					Ipv4Address: smContext.PDUAddress.To4(),
				},
			}
		}
	}

fixed in https://github.com/free5gc/smf/pull/57


TH Doctor Update - July 2024

TH Doctor Update - July 2024
Changes:

Updates outdated container names
Re-works TH version info to show version info for each of the containers
Splits system and network option into their own options
Fixes multi-line commit messages breaking the frame
Adds new option to show last 100 lines of each container's logs

Default usage:
$ ./scripts/th/th-doctor.sh
       _____         _     _   _                                  ____             _
      |_   _|__  ___| |_  | | | | __ _ _ __ _ __   ___  ___ ___  |  _ \  ___   ___| |_ ___  _ __
        | |/ _ \/ __| __| | |_| |/ _` | '__| '_ \ / _ \/ __/ __| | | | |/ _ \ / __| __/ _ \| '__|
        | |  __/\__ \ |_  |  _  | (_| | |  | | | |  __/\__ \__ \ | |_| | (_) | (__| || (_) | |
        |_|\___||___/\__| |_| |_|\__,_|_|  |_| |_|\___||___/___/ |____/ \___/ \___|\__\___/|_|

                                      Tue Jul  2 13:31:39 PDT 2024

+---------------------------------------- Test Harness Version ----------------------------------------+
|                                                                                |
|  Version: 2.10.1+spring2024                                                                          |
|  SHA: f75d4da                                                                                |
|                                                                                |
|  certification-tool-backend-1                                                                        |
|       Docker Compose Version: 2.28.1                                                                 |
|       Image: ghcr.io/project-chip/csa-certification-tool-backend:f75d4da                             |
|       OS: ubuntu 22.04                                                                               |
|       SDK SHA: 50bcad170e6def6d56f2f5b34522a82aea9f3190                                              |
|                                                                                |
|  certification-tool-frontend-1                                                                       |
|       Docker Compose Version: 2.27.1                                                                 |
|       Image: ghcr.io/project-chip/csa-certification-tool-frontend:980df53                            |
|                                                                                |
|  certification-tool-db-1                                                                             |
|       Docker Compose Version: 2.27.1                                                                 |
|       Image: postgres:12                                                                             |
|       DB App Version: 12.19-1.pgdg120+1                                                              |
|                                                                                |
|  certification-tool-proxy-1                                                                          |
|       Docker Compose Version: 2.27.1                                                                 |
|       Image: traefik:v2.2                                                                            |
|                                                                                |
+------------------------------------------------------------------------------------------------------+

+----------------------------------------- Repository Details -----------------------------------------+
|                                                                                |
|  +-----------------------------------------------------------------------------------------------+   |
|  |  Test Harness: certification-tool                                                             |   |
|  +-----------------------------------------------------------------------------------------------+   |
|  Commit SHA: c3640b3f3d01d0a09b9b39020142d5b9aa0c6d86                                                |
|  Commit Message: Removes unused comment                                                              |
|  Commit Author: Raul Marquez                                                                         |
|  Commit Date: 2024-07-02 13:28:48 -0700                                                              |
|  Contained in branches:                                                                              |
|      * th-doctor-update-jun-2024                                                                     |
|      Tracking: origin/th-doctor-update-jun-2024                                                      |
|                                                                                |
|  +-----------------------------------------------------------------------------------------------+   |
|  |  Frontend: certification-tool-frontend                                                        |   |
|  +-----------------------------------------------------------------------------------------------+   |
|  Commit SHA: 980df53af26a11786a04bf180f8abf930abb7aef                                                |
|  Commit Message: V1.3 te1 -->> main (#17)* Updates create and repeat test run execution to matc...   |
|  Commit Author: Raul Marquez                                                                         |
|  Commit Date: 2023-12-01 10:02:02 -0800                                                              |
|  Contained in branches:                                                                              |
|      * (HEAD detached at 980df53)                                                                    |
|        main                                                                                |
|      Tracking: Not set or not a tracking branch                                                      |
|                                                                                |
|  +-----------------------------------------------------------------------------------------------+   |
|  |  Backend: certification-tool-backend                                                          |   |
|  +-----------------------------------------------------------------------------------------------+   |
|  Commit SHA: f75d4da083ae53a7c13b918d30255b396a8374c9                                                |
|  Commit Message: Update SDK SHA and TAG                                                              |
|  Commit Author: Hilton Lima                                                                          |
|  Commit Date: 2024-07-01 08:27:32 -0300                                                              |
|  Contained in branches:                                                                              |
|      * (HEAD detached at f75d4da)                                                                    |
|      Tracking: Not set or not a tracking branch                                                      |
|                                                                                |
|  +-----------------------------------------------------------------------------------------------+   |
|  |  Cli: certification-tool-cli                                                                  |   |
|  +-----------------------------------------------------------------------------------------------+   |
|  Commit SHA: c950624201dc3c4a3bc0cf8af985a146bca0494e                                                |
|  Commit Message: Updating CLI Exceptions Logic And Some Fixes (#9)* Updating exceptions logic t...   |
|  Commit Author: antonio-amjr                                                                         |
|  Commit Date: 2024-01-29 09:24:26 -0300                                                              |
|  Contained in branches:                                                                              |
|      * (HEAD detached at c950624)                                                                    |
|        main                                                                                |
|      Tracking: Not set or not a tracking branch                                                      |
|                                                                                |
+------------------------------------------------------------------------------------------------------+

Displays Test Harness setup information.

Usage:

    Show TH version and repository details:    ./scripts/th/th-doctor.sh
    Show TH host OS system information:        ./scripts/th/th-doctor.sh --system
    Show TH host OS network information:       ./scripts/th/th-doctor.sh --network
    Show TH host OS environment details:       ./scripts/th/th-doctor.sh --environment
    Show TH DUT configuration details:         ./scripts/th/th-doctor.sh --more
    Show TH Docker Container Logs:             ./scripts/th/th-doctor.sh --docker-logs
    Show all TH details:                       ./scripts/th/th-doctor.sh --complete

Important and necessary improvements.
However we are releasing an update to version v2.10.1+spring2024. That's why we need to change the PR target to branch fall2024

@raul-marquez-csa could you please change the target branch?

Important and necessary improvements.
However we are releasing an update to version v2.10.1+spring2024. That's why we need to change the PR target to branch fall2024

@raul-marquez-csa could you please change the target branch?

I changed the target branch and resolved merge conflicts.


Installation docs

Download and import the VR Builder package from the package manager.

Unless I'm mistaken - this isn't correct. The Package Manager is for UPM packages and VR-Builder is currently an old-style .unitypackage.
Should say something like:

Download the .unitypackage from the Releases page [link] and then go to Assets > Import Package > Custom Package.

(Ideally you'd mention any other prerequsites here as well. Min/max Unity version? Do I need to choose the VR Template or add the VR packages before importing VR-Builder?. Which render pipelines are required/supported? etc.)
And a distinction between "creating a new project with VR-Builder" vs "adding VR-Builder to an existing project would also be useful.

Hi, thanks for the feedback! VR Builder is also available from the Unity Asset Store, and in that case the user would have to add the package to their account, then download it from the package manager. It's true that this doesn't apply when getting the package from GitHub.
The documentation is written from an asset store user's perspective, but you are right that we could be more specific as the information you mention is not reported anywhere. We will make updates!

The documentation has been updated and will be in the next release. Thanks again for raising the issue!


Update German translation

Feel free to ping me whenever there is something new to translate!

LGTM, thanks!


feat: Update Code Scanner Docs

Changes for #651.

@dilippitchika - Please review once, as we did some rewriting.

Looks good @jnikhila @harshilp24


Error TS2322 (Union type in function return values) not showing in VS Code

VSCode Version: 1.6.1
OS Version: Ubuntu 16.04.1 (Linux 4.4.0-42-generic)

Given the following code snippet:
let a: number | Date = 10;
let b: number;
b = a;

Running tsc will show the corresponding error error TS2322: Type 'number | Date' is not assignable to type 'number', but VS Code is not showing anything at all.

Is your global tsc version the same as the version being used in vscode? You can see the version number in the lower right corner. Do you see other errors?

My bad, you are right.
As soon as both versions match, the error starts appearing. Thanks!


[bug] Some AutoLoads are removed when WAT is enabled

When WAT is enabled at the same time as another addon which defines an AutoLoad (at the very least, when the Firebase addon is enabled), the non-WAT AutoLoad is removed from the save file.
More specifically said: This is problematic as I require a specific order of AutoLoads, and because somehow WAT is removing this Firebase AutoLoad. While the Firebase addon automatically adds it back since it sees it is missing, it just puts it at the end, when I need it to be ordered first.
Are you sure this isn't a Firebase addon issue?
Mostly. See the related issue here for more context: https://github.com/GodotNuts/GodotFirebase/issues/270
Firebase works fine on its own, only when WAT is enabled does this issue occur. That's why I think it may affect any addon that defines an AutoLoad, but I don't know of another addon to test that assumption.
Reproducible example
See the uploaded zip file and follow this sequence, zip contains all latest versions of all addons involved including WAT:
autoload-issue.zip

Inspect the godot.project file, notice that the Firebase="*res://addons/godot-firebase/firebase/firebase.tscn" line exists under the AutoLoad section.
Load the project.
Notice how there are no errors on open
Go into Project Settings, addons: See that WAT is disabled. Enable it
Save the project
Inspect the godot.project file, notice there are no changes (yet)
Quit the project/godot
Now when you inspect the godot.project file, notice that the Firebase="*res://addons/godot-firebase/firebase/firebase.tscn" line was somehow removed.
Re-open godot, and notice that the Firebase autoload was moved to the end (as the Firebase addon recognized it was missing, and so it re-added it.. but at the end of course). Also notice all the errors on startup.

Right now, the net result is that I can't run all tests, especially those built on top of Firebase, and the project always opens with excessive errors. This behavior also occurs even when I'm exporting games by the command line, as after each export command completes it resets the autoload (removes the Firebase one).
It is worth calling out that in my 'real' project, I don't have any other AutoLoads defined by addons, so I have no idea if this somehow specifically clashes with the GodotNut Firebase addon, or if it would interfere with any addon that defines an AutoLoad Singleton. But the issue goes away if I disable WAT altogether, pointing to some issue here. It does NOT appear to affect AutoLoads defined by my project outside the addons folder, as you would find in the sequence of steps above.

Also, not to complicate this more, but this also uncovered another somewhat concerning behavior:
I have a command line script like so:
echo "Running tests"
"$GODOT_EXEC" addons/WAT/cli.tscn run=all

When I'm running it such that the Firebase="*res://addons/godot-firebase/firebase/firebase.tscn" line is presently saved to the godot.project file, I get 4 test outputs:
-------RESULTS-------
Took 6 second(s)
0 Tests Crashed
2 / 4 Tests Passed
-------RESULTS-------

But if I open and close the project, or even just run an export (even if the export is run from command line... which is actually part of this same script itself), this same "$GODOT_EXEC" addons/WAT/cli.tscn run=all call  claims there was 1 fewer test, along with the slew of printouts related to my first (due to the firebase autoload being loaded later than other autoloads which depend on it):
-------RESULTS-------
Took 2 second(s)
0 Tests Crashed
2 / 3 Tests Passed
-------RESULTS-------

The thing that is concerning, is that the CLI WAT test doesn't recognize it failed to load/run this test. It doesn't even show up under the "Tests Crashed" section. So I might not even realize some tests files are being entirely skipped if they are fatally broken. Not sure if there's a way around that, realize this may be more a restriction of how the addon works.

This is reproducible on my machine using Godot 3.4, Windows 10. However, this is a Godot engine bug. WAT doesn't even deal with Autoloads in any way, it's very self-contained. This is further cemented by the fact that commenting out remove_autoload_singleton() on line 8 of the GodotFirebase's plugin.gd resolves the issue. So @TheDuckCow can use this as a workaround for now.
The thing is, _exit_tree() of Godot EditorPlugin is always called when the editor is closed, and I've confirmed that this is the case by adding code to create a file in _exit_tree() - the file is created every time the Godot editor is closed. So why does remove_autoload_singleton() not remove the Firebase autoload on exit? That is the bug with Godot engine here. It is only when WAT is enabled, remove_autoload_singleton() begins to work as intended and removes Firebase autoload on exit.
This issue should thus be addressed back to @WolfgangSenff. To address https://github.com/GodotNuts/GodotFirebase/issues/270, I think instead of creating and removing the singleton in plugin.gd _enter_tree() and _exit_tree(), perhaps it should only be done during plugin enable and disable by overriding enable_plugin() and disable_plugin()? It doesn't make sense for the Firebase singleton to be recreated every time the Godot engine is restarted. I've opened a pull request for your review if this simple change is acceptable. Feel free to reject/edit if unfit: https://github.com/GodotNuts/GodotFirebase/pull/273

Thanks a bunch for going the extra mile opening a PR in the other repo, and finding a solution for me here. Also appreciate the quick work addressing the point of failing tests not being picked up.
Ignoring the autoload/firebase thing for now since the other PR address this, I went ahead and tried out your change from the improve-test-detection branch. I realize there are also other changes in that branch, so could be a few things going on, but I'm happy to see another bug fixed that I hadn't yet commented about (where dropdowns fail to populate after first running a script when one of them has a fatal error).
The only thing I do notice is I get an unexpected number of "total tests" via command line. I see 8 being referenced, suspiciously the same as the number of tests from the first file:

And command line run all results via "$GODOT_EXEC" addons/WAT/cli.tscn run=all is:
-------RESULTS-------
Took 2 second(s)
0 Test Scripts Crashed
3 / 8 Test Scripts Passed
-------RESULTS-------

From prior behavior, I expect the number to be 4 instead of 8, regarding the total number of test files; if it's intended to now represent the total number of individual tests (which I would definitely say would be preferred!), the total numbers don't seem to add up. In the UI screenshot, I would expect the numbers to say (in order left to right):
| (8/8) res://... |(2/2) res://... |(4/4) res://... | (1/3) res://...  |
And thus I'd expect the Test Scripts Passed to be more like 15/17 instead of 3/8 (I really have no idea where the 3 comes from... maybe 8 is coming from the first test total somehow?).

Hm one fast follow, I just ran my command line script again, and now am seeing
-------RESULTS-------
Took 7 second(s)
0 Test Scripts Crashed
2 / 4 Test Scripts Passed
-------RESULTS-------
I tried rerunning a couple times on command line, and getting the same. 2 /4 (vs being 3/8). Seems odd, but there is one flaky tests in one of the other files which could be a culprit.
I just ran one more time after closing the interface (so only command line is running), and I'm once more seeing:
-------RESULTS-------
Took 0 second(s)
0 Test Scripts Crashed
2 / 8 Test Scripts Passed
-------RESULTS-------
Running again, I get 3 / 8 (again, possibly due to one flaky test I've got). Just figure I'd share!

@TheDuckCow The total number of test should maintain the current behavior, so it seems that it is a bug in my fork. Hmm, it's very strange that the number of tests being picked up will change if you just close the Godot interface. I've pushed some new commits to my fork, you can give it a test to see if this problem still persists: https://github.com/RailKill/WAT/tree/improve-test-detection.
Let me know if there's any output that catches your eye. Whenever a test fails, it should show the test script name, followed by its reason. If not, try scrolling up to see if you find any errors output by Godot itself which can help narrow down the issue for me. Thanks!

Just tried it again using the latest from that branch., seems to be the same.
I then tried again after applying your patch here to my local firebase plugin. Now I'm consistently getting the expected 2/4 and printouts now of the tests failing (which, the failing tests make sense and are expected). So I wonder if there's still some other complicating factor with the other plugin...
--
Something I do note is when I open the project, or when running tests from the command line, I get these prinouts in the Output window or terminal console (I get x7 of these in printouts):
SCRIPT ERROR: Trying to assign value of type 'SceneTree' to a variable of type 'Node'.
          at: _get_test_script (res://addons/WAT/filesystem/filesystem.gd:94)

To further test/validate, I just now replaced my WAT install with the code from this most recent release. Now,  I'm not seeing the above errors.
If I revert back to the latest from the improve-test-detection branch, the above error comes back, but consistently prints out 2/4 tests (which is the expected behavior) via command line.

so the latest commits implemented a RegEx check to look at the source code of broken scripts,
Just want to say, that's super going the extra mile by doing that, amazing! I'll try to give it a try soon, but apologies if it takes me awhile as I'm getting caught up with some other items. But your explanation and approach makes sense to me.

Please check if this is solved from the commit 790b30094931b5da1d6913c377174da12d0c3908

I'm going to assume this is resolved based on your prior discussions. I'll reopen if the problem persists.


Run time issue

[ INFO] [1670392428.698230570]: Connected to master at [localhost:11311]
WARNING: Logging before InitGoogleLogging() is written to STDERR
I1207 11:23:48.699414  4357 global_data.cc:150] [cyber_ros_bridge] host ip: <IP_ADDRESS>
W1207 11:23:48.699474  4357 environment.h:33] [cyber_ros_bridge] Environment variable [CYBER_PATH] not set, fallback to
E1207 11:23:48.699488  4357 file.cc:64] [cyber_ros_bridge] Failed to open file /apollo/cyber/conf/cyber.pb.conf in text mode.
E1207 11:23:48.699506  4357 file.cc:90] [cyber_ros_bridge] Failed to open file /apollo/cyber/conf/cyber.pb.conf in binary mode.
E1207 11:23:48.699517  4357 global_data.cc:156] [cyber_ros_bridge] read cyber default conf failed!
F1207 11:23:48.699522  4357 global_data.cc:58] Check failed: InitConfig()
*** Check failure stack trace: ***
Aborted (core dumped)

[/home/apollo_ros_bridge/bazel-bin/cyber_ros_bridge/cyber_ros_bridge               --flagfile=/home/apollo_ros_bridge/cyber_ros_bridge/conf/bridge_gflags.conf              --flagfile=/home/apollo_ros_bridge/cyber_ros_bridge/conf/trajectory_bridge.conf]  COULD NOT CREATE A LOGGINGFILE 20221213-183541.113!Could not create logging file: No such file or directory ^C[cyber_launch_112] INFO Keyboard interrupt received. Stop all processes.


[Testing Platform] Count tests

It'd be useful to pass in a flag to return a simple count of test nodes. This could help users/build systems perform things like parallel execution batching.
We could probably derive this from --list-tests but it would involve more cumbersome console output parsing.
This could be its own flag, such as --count-tests, or a more granular option for --list-tests
e.g. --list-tests count

I do prefer the option to the --list-tests command. Relates to #3221.

Works for me 😄


write test for gsp_data_source.drop_gsp_north_of_boundary

I did it in #497

Oops, sorry, great work!  Thank you!


IllusionDiffusion Colab - More options

Could the following options be implemented into the following sections?
Argument parser:

All settings in the Settings tab

This image can be interpreted as:

!python src/app.py --share --model "monster-labs/control_v1p_sd15_qrcode_monster"
--default-stable-diffusion-model "runwayml/stable-diffusion-v1-5"
--output-directory "/content/diffusionmagic/results"
--output-format png
--save-separated --enable-low-vram
```bash
!python src/app.py -s -m "monster-labs/control_v1p_sd15_qrcode_monster" \
     -dsdm "runwayml/stable-diffusion-v1-5" \
     -o "/content/diffusionmagic/results" \
     -f png \
     -ss -lvram

Gradio Web UI

Image height and width
I have seen the lines responsible for it in the other files, but I don't see them implemented in the IllusionDiffusion notebook.
https://github.com/rupeshs/diffusionmagic/blob/7b0571e0f6e5cbaeafdfc6e7fcc8066001ac559c/src/frontend/web/image_inpainting_ui.py#L43-L48
Importing options from the json files.
Original SD webui notebook had this feature and in my opinion it would increase workflow.
Even in Colab, user could change settings by #@params and writing a wrapper using the json module.

This image can be interpreted as:
{
  "prompt": {
  	"positive": "",
  	"negative": "low quality,bad, deformed, ugly, bad anatomy"
  },
  "quality": {
  	"inference_steps": 20,
  	"guidance_scale": 7.5,
  	"sampler": "EulerAncestralDiscrete"
  },
  "seed": {
  	"value": -1,
  	"use_random": true
  },
  "controlnet": {
  	"start": 0.0,
  	"end": 1.0
  }
}

I would love to see these changes coming in - I could make a fork, edit and then do a pull request, but there are several files in with the similiar content listed in the src/frontend/web directory.

Argument parser

It can be extended to contain all main settings it was(model arg) mainly added to switch models in colab.
Gradio Web UI
Not sure about its performance with high resolutions.
What is the actual use of JSON settings, do you have an example or collab link?
Also, note that low VRAM is not supported for illusion diffusion.
Feel free to create PR, I'll check that.

@rupeshs

It can be extended to contain all main settings it was(model arg) mainly added to switch models in colab.

Yes, that's what I meant - the model could be changed using the dropdown menu:

DefaultModel = "stabilityai/stable-diffusion-xl-base-1.0" #@param ["stabilityai/stable-diffusion-2-1-base", "stabilityai/stable-diffusion-2-inpainting", "stabilityai/stable-diffusion-2-depth", "timbrooks/instruct-pix2pix", "runwayml/stable-diffusion-v1-5", "runwayml/stable-diffusion-inpainting", "CompVis/stable-diffusion-v1-4", "prompthero/openjourney-v2", "pcuenq/pokemon-lora", "sayakpaul/sd-model-finetuned-lora-t4", "prompthero/openjourney-v4", "lllyasviel/sd-controlnet-canny", "lllyasviel/sd-controlnet-mlsd", "lllyasviel/sd-controlnet-normal", "lllyasviel/sd-controlnet-hed", "lllyasviel/sd-controlnet-openpose", "lllyasviel/sd-controlnet-depth", "lllyasviel/sd-controlnet-scribble", "lllyasviel/sd-controlnet-seg", "stabilityai/stable-diffusion-xl-base-1.0", "warp-ai/wuerstchen"]"

Not sure about its performance with high resolutions.

It could enable panoramic or portrait modes of the pictures.
width and height could be sliders with limited values, which the user will have to control responsibly.

What is the actual use of JSON settings, do you have an example or colab link?

SD WebUI loaded settings from the json files, such as prompt, negative_prompt etc.
I forgot how it was loaded, but as an example I can say that the user wants to change the negative prompt to more extended, but not to be forced with default one on each launch.
In fact, it used styles.csv file, such as this one.

Feel free to create PR, I'll check that.

I cannot, as I do not know which file is directly responsible for the IllusionDiffusion. As I stated, many of them contain very similar contents, so I do not know which to edit.
A considerable idea would be to create a new branch dedicated to the IllusionDiffusion, but I guess it would cost time.


Models cannot serialize sparse features

Models inheriting from "ModelLabelsFeatures" cannot be serialized if they contain a sparse features array.

https://github.com/X-DataInitiative/tick/pull/284


[sycl-free-inference-for-llms] integrate triton gemm/attention in pytorch for xpu

This ticket is part of umbrella ticket:

#2170


[WIP] Improving documentation. Part 2.

Continuation of #328.

LGTM!
Can you add #[allow(unused_macro_rules)] to suppress the warning that is making CI fail? This warning was recently added to nightly Rust, which is why is it failing now.

@bors r+

:clipboard: Looks like this PR is still in progress, ignoring approval.
Hint: Remove [WIP] from this PR's title when it is ready for review.

@bors r+

Sorry, I'm still working on it :-) I'm a little busy at work so I can't finish.

Ready. I will continue to improve the documentation in another pull request.

@bors r+

:pushpin: Commit eaa1eef9fcfdbb117ba304c5f6e2550f7a269b69 has been approved by Amanieu

:hourglass: Testing commit eaa1eef9fcfdbb117ba304c5f6e2550f7a269b69 with merge 3dbcdcce09028b39e1640f8a6e4fc8e69a372844...

:sunny: Test successful - checks-actions
Approved by: Amanieu
Pushing 3dbcdcce09028b39e1640f8a6e4fc8e69a372844 to master...


Documentation - Stochastic RSI (StochRSI)

@Cal231995 please review the documentation for StochRSI strategy. If there are any changes required do let me know.


default http server view do not have correct tags

According to spec default view should have following tags.
http_route
http_status
http_method
Instead, implementation has
http_path
http_method

there is a similar issue with the default client views.


probe issue

after running
./fortigate-exporter -auth-file fortigate-key.yaml
I got
2024/07/18 17:06:27 Probe of "https://myforti.com" failed, took 0.014 seconds
2024/07/18 17:06:42 Error: API connectivity test failed, Get "https://myforti.com/api/v2/monitor/system/status": tls: failed to verify certificate: x509: certificate signed by unknown authority

Also mine was:
API connectivity test failed, Get "https://xxx.xxx.xxx.xx/api/v2/monitor/system/status": x509: certificate is not valid for any names, but wanted to match xxx.xxx.xxx.xx

Th solution is :
with valid certificate
./fortigate-exporter -auth-file fortigate-key.yaml -extra-ca-certs certificate.pem
or to turn off security
./fortigate-exporter -auth-file fortigate-key.yaml -insecure
Enjoy


Three errors when configuring cabl rules

Each error appears one a at a time, and after I remove each rule from .vscode/cabl.json the next one appears.  Only after removing the three rules mentioned in the below call stacks are we able to scan effectively.
The first two errors appear when the language server starts.  The third appears when scanning any file.
Json files (with .txt extension to make GitHub happy to accept the upload):

cabl-with-errors.json.txt
cabl-without-errors.json.txt

These rules aren't super important to us or anything, but figured you'd want to the bug report for possible mitigation next time you're working with this code.
[2023-01-17T08:31:43.373-0500] [ERROR] Unable to parse cabl.json...
java.lang.ClassNotFoundException: eu.rssw.cabl.security.DebuggerKeyword
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at eu.rssw.openedge.ls.a.m.h(SourceFile:558)
	at eu.rssw.openedge.ls.a.m.k(SourceFile:748)
	at eu.rssw.openedge.ls.a.m.e(SourceFile:668)
	at eu.rssw.openedge.ls.proparse.n.a(SourceFile:287)
	at java.base/java.util.HashMap$Values.forEach(HashMap.java:977)
	at eu.rssw.openedge.ls.proparse.n.a(SourceFile:285)
	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:212)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
	at org.eclipse.lsp4j.jsonrpc.TracingMessageConsumer.consume(TracingMessageConsumer.java:114)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

[2023-01-17T08:36:51.044-0500] [ERROR] Unable to parse cabl.json...
java.lang.ClassNotFoundException: eu.rssw.cabl.security.PropathAssignment
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at eu.rssw.openedge.ls.a.m.h(SourceFile:558)
	at eu.rssw.openedge.ls.a.m.k(SourceFile:748)
	at eu.rssw.openedge.ls.a.m.e(SourceFile:668)
	at eu.rssw.openedge.ls.proparse.n.a(SourceFile:287)
	at java.base/java.util.HashMap$Values.forEach(HashMap.java:977)
	at eu.rssw.openedge.ls.proparse.n.a(SourceFile:285)
	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:212)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
	at org.eclipse.lsp4j.jsonrpc.TracingMessageConsumer.consume(TracingMessageConsumer.java:114)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

[2023-01-17T08:39:11.994-0500] [ERROR] Rule exception:
java.lang.UnsupportedOperationException
	at eu.rssw.openedge.ls.b.d.contents(SourceFile:96)
	at eu.rssw.antlr.proparse.checks.TabsIndent.execute(SourceFile:1024)
	at org.sonar.plugins.openedge.api.checks.OpenEdgeProparseCheck.sensorExecute(OpenEdgeProparseCheck.java:57)
	at eu.rssw.openedge.ls.a.k.a(SourceFile:67)
	at eu.rssw.openedge.ls.a.k.apply(SourceFile:37)
	at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)
	at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
	at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2094)
	at eu.rssw.openedge.ls.a.u.run(SourceFile:141)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

The current situation with VSCode / SonarLint is temporary. The rules are currently embedded in the language server (except security rules), and you have to declare the quality profile in cabl.json. As security rules are not included, you're getting this ClassNotFoundException.
What will come in future versions is the ability to bind a VSCode project to a SonarQube project (exactly as in Eclipse, or in VSCode with Java, Javascript, TS, ...). The LS will then be able to execute the rules that are configured in the project, no need to configure cabl.json anymore. Though it will still be possible to use cabl.json for unbound projects (i.e. in standalone mode).

Sounds cool, look forward to seeing it.  Thanks for the info!


[App] It becomes a horrible experience that, sometimes it keeps on reloading the collab while logginf wandb, or session crashed, and the wandb backend shutdown, I am utterly dissapointed into these, it's becoming worse day by day, and also can't log transfer learning model, and session crashed then even though model weights are not logged, please help me to fix that frequent issue

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Operating System

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@sayan0506 can you share an example colab where this is happening for you?

This issue has gone stale and we are now closing it. Please comment to reopen.


[New term] Trunk based Development

1. Please describe why this term needs to be added
What this term is about? (briefly)

Trunk-based Development is a  development practice where developers merge small, frequent updates to a core “trunk” or main branch.

Why this term needs to be added? (briefly)

Trunk-based Development is a popular development practice and helps achieve CI/CD.

2. Checklist

[X] There is no existing issue yet. (shift+click to check existing issues)
[X] I understand that maintainers will assess if the term should be part of the Glossary. (Please be patient)
[X] I want to work on this term. (If not checked, maintainers will assign another volunteer)

(Note)
Maintainers will assign a label after assessment procedure.
(from triage/awaiting to triage/accepted or triage/not accepted)
A contributor can be assigned to this issue after the issue get the triage/accepted label.
The assignee needs to check Style Guide.

Hi @prabin-acharya
I am one of maintainers of this repository.
In a maintainers' meeting, we decided not to include the term you suggested because the term is not highly (directly) related with cloud native technology and seems to a broad concept for development. If we include this term, we eventually need to include terms for other development practices which make the Glossary project cover too broad concepts.
Thank you for your interest for the Cloud Native Glossary. We will look forward your suggestions and contributions!
(cc @CathPag)


Documentation: es6 module usage

Many repos are es6 module based, but provide a Rollup bundle for legacy/universal usage. Three for example.
My repo is similar, es6 modules with an optional bundle for those needing a legacy format. (i.e. within my team, es6 modules are the preferred way to access my project).
Looking at Three's source on unpkg:
<EMAIL_ADDRESS>
.. it is entirely es6 based, with relative imports of their modules. Can I use these modules?
I don't know if these are answered somewhere, but if not, this is a documentation request/issue:

UMD: UMD is apparently the required form for use in unpkg-capable repos. Can es6 modules be used instead?
module import: Can my es6 modules import unpkg source files? I.e. could I use:
import BoxGeometry from<EMAIL_ADDRESS>module import's imports: if yes to above, will the repo-local imports used by the module also resolve correctly? I.e. BoxGeometry above has:

import { Geometry } from '../core/Geometry';
import { BufferGeometry } from '../core/BufferGeometry';
import { Float32BufferAttribute } from '../core/BufferAttribute';
import { Vector3 } from '../math/Vector3';

If even the last two are correct, still requiring UMD for unpkg, es6 module users will flock to unpkg due to the many es6 module deployment strategy issues!
I realize these are "fine points" but quite important to those of us deploying es6 modules.

We've been discussing ES6 module usage in #24 but I haven't started working on it in earnest yet. Basically, the idea is that you'll use a special query param when requesting an ES6 module from unpkg and it will automatically transform your import statements in that module to do "the right thing".

Thanks for the discussion here, @backspaces. For now, we provide the ?module flag for packages that ship ES modules. For example, you can use
https://unpkg.com/three@0.85.2/src/geometries/BoxGeometry.js?module

which translates all of the import statements in that file to relative imports with the ?module flag, like this:
import { Geometry } from '../core/Geometry?module';
import { BufferGeometry } from '../core/BufferGeometry?module';
import { Float32BufferAttribute } from '../core/BufferAttribute?module';
import { Vector3 } from '../math/Vector3?module';

Any module in the tree that uses a "bare" module specifier will get an unpkg.com URL with the version of that dependency from the package.json in the URL.
This approach works with native ES modules in browsers that ship support for them, but it requires that all your dependencies be ES modules all the way down. Otherwise the browser will try to load some other format as ESM and fail.
Hopefully that helps! I agree there are still outstanding issues to resolve, but let's please discuss in a separate issue. Thanks!


Error In Readme WRT Deleting Serverless App

Hi There,
You have an error in your readme. It says that to delete the app you should run this command:
$ twilio rtc:apps:delete

But it appears the command is actually:
$ twilio rtc:apps:video:delete

I was persistent enough to figure out so my trial account wouldn't have credits wasted. Others may not be so persistent.

Apologies for the typo. The issue was fixed in #102
Thank you for filing the issue!


GGML README

Rendered document can be viewed here https://github.com/danforbes/llama-rs/blob/dfo/doc/ggml/crates/ggml/README.md

I need help with (at least) vocabulary-scoring before this is ready to come out of draft.

This is really well done! Awesome work, and sorry about not looking at it earlier!
Honestly, it's so thorough I'm wondering if I should encourage you to submit it to upstream GGML instead. They could certainly benefit from the documentation!

Can you write one sentence that describes the purpose of token-scoring? Is this correct?

Depending on the GGML version, the token may also include a 32-bit floating point score, which impacts how likely that token is to appear in text generated by the model.

Can you write one sentence that describes the purpose of token-scoring? Is this correct?

Depending on the GGML version, the token may also include a 32-bit floating point score, which impacts how likely that token is to appear in text generated by the model.

I'd say more "how likely that token is to appear in the dataset that the model was trained on", but otherwise yeah that's fine

I'm ready for this to be merged if you are 👍🏻

Honestly, it's so thorough I'm wondering if I should encourage you to submit it to upstream GGML instead. They could certainly benefit from the documentation!

Oh, that was always part of the plan 😉 https://github.com/ggerganov/ggml/pull/177


[Task]: Add granular level spans in the actions execute endpoint flow

SubTasks
We do not have spans inside the appsmith.total.plugin.execution span which mostly times out with 60 seconds. We need to add granular level spans to know more on what is happening internally.

This is not required for the current epic as logs mentioning the thread information is already added.
It is required more from a performance perspective and not stability as of now, hence closing this task.
The thread related information is added here.


Support for GitHub Enterprise in github module

It would be great to have that work offloaded to github module instead of using curl scripts.
I guess the only change would be a URL string, pointing to github enterprise installation.
So https://github.com/polybar/polybar/blob/3f9f2dc37fd8a82b7f7c7688d9bc633c67e55738/src/modules/github.cpp#L44
would become
 string content{m_http->get("https://hub.domain.tld/api/v3/notifications?access_token=" + m_accesstoken)};

We could add a key api-url with the default value https://api.github.com/, and users could add their github enterprise endpoints there. We would appreciate a PR ;)

I'm working on it.

Hello @vaygr.
Can you test my PR #1841. I don't have an access to the github of an enterprise. I just want to know if this work correctly.

This is superb. Works fine for me.
I have one subsequent feature request for this. It'd be great to alter color when the number is non-zero (I have mine in red). So with a custom script it's super easy, but not here.
Can we add an option for that real quick?

This is superb. Works fine for me.

Nice

I have one subsequent feature request for this. It'd be great to alter color when the number is non-zero (I have mine in red). So with a custom script it's super easy, but not here.
Can we add an option for that real quick?

I don't really like the idea of introducing an exception just for that but maybe we could try to introduce a sort of conditional syntax but I don't know how to do it.
I was thinking about something like that, I took the inspiration from beamer:
%notifications:<0>% // only display if 0
%notifications:<1-2>% // display if the number is 1 or 2
%notifications:<0->% // 0 to infinity

Maybe not overcomplicate things. As it usually mostly matters whether this value is zero or not (like with zero inbox for e-mail).
I was going through the modules, and it seems we kinda favor specific settings with split config options, i.e. format-connected-... + format-disconnected-..., etc. So maybe this could be achieved with adding something like:
format-empty = <label-empty>
label-empty-foreground = ${colors.alert}

given we already have empty-notifications setting. And refactor that later if need be.

That's make sense indeed. So we just have to deprecate empty-notifications and replace it by a formatter.

@vaygr
The code for the empty formatter is (almost) ready but I have a lot of conflicts with https://github.com/polybar/polybar/pull/1825. So I'll wait until this is merged to publish my PR (I also need to clean the code). If I forgot to publish the PR don't hesitate to notify me. ^^

Cool, I put this on my list, thanks.

@Lomadriel I think #1825 was just merged. Just pinging you here.


md-nav-bar is lost on the last version of Angular Material?

Well... I try to use md-nav-bar in my aplication, but the navitor doesn't recognize the item. Why? I import all things to use angular material, and the others itens its ok.
Now I need use Tabs? or the navItem change?

We do have md-tab-nav-bar, but we don't have a md-nav-bar. Are you perhaps thinking of AngularJS Material instead?
You can see md-tab-nav-bar docs here: https://material.angular.io/components/component/tabs

@kara , But i think it do exist, md-nav-bar: https://material.angularjs.org/latest/api/directive/mdNavBar,
@lukecorf , i just tried to use md-nav-bar, unfortunately it seems related module missing, which i still haven't find yet. AND i don't see it in the components list of Angular Material(Tabs do exist and it works just like nav, but i still feel something ..strange, cause it belongs to )

@kara why doesn't Angular Material have a Nav? It just seems like a common, core feature that a modern UI framework should have


Release version 0.1.0

LSP6Signer library is operational and its version should not be called under 'development' anymore.
This PR changes the version number of the library from 0.0.2-development to 0.1.0. This change will be automatic when develop is merged to main as a commit message contains Release-As: x.x.x.
It also changes the way versioning works :
-> bump-minor-pre-major is set to true (meaning breaking changes before 1.0.0 should produce minor bumps)
-> bump-patch-for-minor-pre-major is set to false (default) (meaning feat changes before 1.0.0 should not produce patch bumps instead of minor bumps)

You can see it when you click inside the commit message

.0

Ah yeah indeed. Thanks

@magalimorin18 Ah yeah indeed. Thanks


Phoniebox does not play any sounds

Hi everyone,
Thanks for this great application and great documentation.
I personally though have a problem getting the Phoniebox playing any sounds.
I have a Raspberry Pi 3 Model B and I first installed the "2018-03-13-raspbian-stretch"
and afterwards "Phoniebox +Spotify Edition" via One Line Command Installation.
Everything looked good so far.

I am able to access the web frontend
RFID reader works fine
Cards can be assigned to MP3s and Spotify playlists

The only problem is, that the phoniebox is not playing anything. When manually pressing on play in the front end, the page reloads but nothing happens. THe play button remains the play button and doesnt change to Pause button. No sound comes out of the speakers (VLC player in raspbian plays sounds - so no hardware issue here).
I am completely new to Raspberry and Linux so I was not really able to deep dive into the settings and logs. But what I was able to find in one of the logs i found is the following:
_Line 2539: Aug  5 20:34:43 raspberrypi mopidy[437]: ERROR    GStreamer error: gst-core-error-quark: Your GStreamer installation is missing a plug-in. (12)
Line 2580: Aug  5 20:34:56 raspberrypi mopidy[437]: WARNING  GStreamer warning: gst-stream-error-quark: No decoder available for type 'text/html'. (6)_
I dont know if this of any help...
Another thing I noticed which looks strange is the amount of entries of new MPD connections. I have four entries per second like this:
Aug  6 21:00:41 raspberrypi mopidy[486]: INFO     New MPD connection from [::ffff:<IP_ADDRESS>]:6600
I installed the raspbian and Phoniebox(spotify) three times now on two different sd cards and still the same issue.
Do you have an idea what I might have done incorrectly?
Thanks in advance for your help!
SmartCookie

Spotify Iris Plays Sound - btw.

Hi @Sm4rtCookie
before I put my thinking cap on, did you read the trouble shooting section?
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Troubleshooting-FAQ#audio-is-not-working

Hi @MiczFlor ,

Version: 1.1.9
Internal Soundcard (=PCM)
Raspberry plays sound via VLC and also the SpotifyIris player plays sounds
I also tried to find any other solution in the issues here - but no luck so far.

Another observation: After a reboot the volume is set to 0% and I cannot set it higher.
When trying to reload the data with mpc update, the following message comes:
pi@raspberrypi:~ $ mpc update
#mpd error: Connection closed by the server

do you use a powerbank ?

do you use a powerbank ?

No, but I plan to use one once it is working.

Hey everyone,
I did another installation with the same result.
Afterwards I went through some parts of the manual installation instructions and noticed that the etc/mpd.conf file did not contain the according entries. I had to change the values manually. Unfortunately this still didn't help...
Today in the evening I will run the Analytics_AfterInstallScript.sh script

Try ‚Speaker‘ instead of ‚PCM‘ when installing.
Also have a read here:
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/519
I can‘t think of anything else at tje moment - miles away from a phoniebox :/

I accidentally manually installed the version without spotify. here everything works fine. AFter pressing the play button (or scanning a card via RFID) the mp3 file is being played and the track status is shown (in three second steps). This exactly what is not working with the spotify version (not even playing mp3s).
I think this has something to do with mpd and mopidy.
Do I need to install and run MPD even if I want to use mopidy for spotify (I hope this question makes sense)?

I have no Spotify myself. But I recall from  another conversation that mpd and mopidy require that the conf is set in more than one place. Possibly you can find more about this when searching the web.

I dont know what exactly the issue was but now it is working. I exactly wrote down what my steps were - maybe it helps someone else:
- Install raspbian stretch -> 2018-03-13-raspbian-stretch.zip
- SSH and wpa_supplicant.conf copied to boot
- Sudo raspi-config
	○ Boot options changed
	○ Keyboard options adjusted
- sudo apt-get update
- Sudo apt-get upgrade
- sudo systemctl enable mopidy
- One line command spotify
	○ cd; rm stretch-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/stretch-install-spotify.sh; chmod +x stretch-install-spotify.sh; ./stretch-install-spotify.sh
- No WIFI configuration
- reboot
- cd /home/pi/RPi-Jukebox-RFID/scripts/helperscripts/; ./CreateSampleAudiofoldersStreams.sh
- sudo systemctl disable mpd
- sudo systemctl enable mopidy

Hi @Sm4rtCookie ,
thanks for sharing the steps. Seems that you had your very own "ghost in the machine" haunting your Pi.
All the best, micz

Hello, I seem to have the same issue.
I cannot play music via webinterface or with a RFID card.
raspian buster,
PRI-Jukebox version 2.0 - ed888da - master . ,
with Spotify.

I hear sound when the system boots.
Spotify Iris plays sounds,
command line mpg123 also plays sounds.
Card gets detected and cofigured ( I created a folder "test" with only one file "test.mp3" and connected it to the card.

But when I swipe the card: nothing happens (cards get recognized, but no sound, no play/pause button change.
When click the play button nothing happens.
In the command line the command "mpc playlist test" lists the playlist.
But "mpc playlist" shows an empty list.
So it seems that somehow mpd does not get the playlist.
But when I manually add the file via "mpc add" I can start the music over the webinterface (not with the card).
Any ideas ?
Maybe the audio files need certain ownerships (I gave the 777 permissions to rule out access issues) .

What’s the output of journalctl -u mopidy?


Perform search for setResolution linearly?

As mentioned in #193 the issue stems from repeated usage of getAddress(). It doesn't seem to me to be necessary to use iterators to sort out the performance issue in the library, just a general avoidance of getAddress() outside index based functions.
Since getAddress() appears to be used to do a bit more than iterate through addresses I added validAddress() as an additional condition, it might not be needed.
I only found two locations where this appears to happen. both are in setResolution functions. So #193 may be resolved entirely by this. General advice to users of the library may be to avoid index based functions inside loops. This might be where an "iterator" interface may be useful inside the class, such that performing functions across devices remains somewhat linear.

@milesburton
Can you approve the build ?

Thanks all, merged

No problem, I am using the library after all. Since the original issue mentioned it I gave iterators a thought because search() would function like ++, but since any call to search() or reset_search() messes with following calls I didn't bother.
I didn't find that other one wire library that was mentioned, if you know where or what that was I'd be happy to take a look at it to see if it does anything different. The current one seems fairly small so I don't get the impression there's much that could be different.
My adhoc solution for ease of use for making everything else linear was this template function.
	template<typename Callback>
	bool forEachValidAddress(Callback callback) {
		bool last_result = false;
		DeviceAddress addr;

		_wire->reset_search();
		while(_wire->search(addr)) {
			if (validAddress(addr) && !(last_result = callback((uint8_t*)addr))) {
				break;
			}
		}

		return last_result;
	}

So that I could things like this:
bool process_address(uint8_t* addr) {
    float temp = sensors.getTempF(addr);

    if (temp < min_temp)
      min_temp = temp;
    if (temp > max_temp)
      max_temp = temp;

    device_count++;
    return true;
}

sensors.forEachValidAddress(process_address);

Nice construct.
Question, if the call back fails - for whatever reason - the while loop is ended.
I assume this can be prematurely as not all are processed?
Should break not be continue?
A variation on your template, returns true only if all valid addresses are processed correctly
  template<typename Callback>
  bool forEachValidAddress(Callback callback) {
    bool last_result = true;     //  changed
    DeviceAddress addr;

    _wire->reset_search();
    while(_wire->search(addr)) {
      if (validAddress(addr) && !(last_result &&= callback((uint8_t*)addr))) {   //  changed
        continue;   // changed
      }
    }
  return last_result;
  }

https://github.com/pstolarz/OneWireNg  this one?

Well, it's a boolean so the logic can be flipped eaither way,  I was using false to exit the loop prematurely if needed. Say for example we were writing a loop to check if any temperature probe met some threshold, past the point you've seen a temperature probe hit the threshold you might not need to check any of the remaining devices.
Since we ignore invalidAddresses that case would always be continue. The edit you made with your continue actually doesn't even need the continue since it's about to jump to the top of the loop anyway, at which point the callback doesn't need to have a return value. Which actually could be a way you specialize the template, you could for example have explicitly added these to the header:
bool forEachValidAddress(void(*callback)(uint8_t*)) {
    bool last_result = true;
    DeviceAddress addr;

    _wire->reset_search();
    while(_wire->search(addr)) {
      if (validAddress(addr) && !(last_result &&= callback((uint8_t*)addr))) {
        break;
      }
    }
  return last_result;
}
bool forEachValidAddress(bool(*callback)(uint8_t*)) {
    bool last_result = true;
    DeviceAddress addr;

    _wire->reset_search();
    while(_wire->search(addr)) {
      if (validAddress(addr)) {
        callback((uint8_t*)addr)
      }
    }
  return last_result;
}


Create LIP2: Libra roles and permissions

Hi @sblackshear - yeah, it looks like Docusaurus is not happy with the formatting of your markdown file. See https://app.netlify.com/sites/libra-lip/deploys/5f10e29beaaf540008748ae0
I think for some, maybe even the majority, of the places you use raw HTML, you could use markdown syntax. Did you find that it wasn't working?

Hi @sblackshear - yeah, it looks like Docusaurus is not happy with the formatting of your markdown file. See https://app.netlify.com/sites/libra-lip/deploys/5f10e29beaaf540008748ae0
I think for some, maybe even the majority, of the places you use raw HTML, you could use markdown syntax. Did you find that it wasn't working?

Unfortunately, the raw HTML comes from the autogenerated doc for the Roles module. I was hoping I could use that directly, but it looks like I either need to manually edit it or fix the doc generator first...

Ah - didn't realize they were generated. Maybe let's dig into where the markdown parser is struggling and see if we can modifier your generator to output something more consumable.
Barring that, maybe we can see if we can update the markdown parser, but that would be a bit more work maybe.
Maybe first, though, we try to fix manually to see how many times the markdown parser struggles - if it is only a few, then we can at least edit manually and get your PR merged while we see if we can make any long term fixes.

Created this one in GH UI and couldn't figure out how to update in my local repo--see https://github.com/libra/lip/pull/24 instead.


[Source Request] animixplay

Source name: animixplay
Link: https://animixplay.to/
Language(s): English

I would like to work on it.

It's one of the best sites I've visited hopefully we get the source on aniyomi as fast as possible


Update redcat version to fix bug

Codecov Report
Patch has no changes to coverable lines.
:loudspeaker: Thoughts on this report? Let us know!.


[CPO] Update go version to 1.16

1.16 go version required for CPO jobs. This PR updates the same.

@bzhaoopenstack need a zuul restart

@bzhaoopenstack @wangxiyuan Is zuul restarted? I see the same error in tests


⚠ AlphaRatio has degraded performance

In e301d30, AlphaRatio ($AR) experienced degraded performance:

HTTP code: 200
Response time: 2134 ms

Resolved: AlphaRatio performance has improved in cfe05e2 after 12 minutes.


Draft: Add logs

Description
The description of the main changes of your pull request
Related Issue(s)

Documentation

I personally do not agree with making these warning from debug.


[NeoForge][1.21.1] World shows as corrupted, game crashes when attempting to make a new world.

I am playing on a modified version of Craftoria (Most recent update) and am trying to swap curios for accessories so I can use a mod that only supports accessories. I have installed the curios compat layer and removed the curios mod, and there are no curios in my curios inventory, but it still fails to load. I attempted to generate a new world to see what would happen, which resulted in the game promptly crashing. Crashlog attached below.
crash-2024-10-11_16.18.45-client.txt

Here is a log from that same run.
2024-10-11-5.log.gz

Um that log zip has not Accessories installed

My bad, I forgot that it stores the latest one separately.
2024-10-11-5.log.gz

This should be the right one
2024-10-11-6.log.gz

@DanL3m0n
Ah it's related to FFAPI incompat with Tectonic, I believe I have a possible fix for such. This PR should fix the issue.
Here is a download for the fixed mod while I wait for the PR to get merged: https://github.com/Dragon-Seeker/ForgifiedFabricAPI/releases/tag/4.3.0%2B59440bcc19

It worked, Thanks!


Unable to use ffmpeg.run on rtsp input stream

Describe the bug
Unable to use ffmpeg.run to use rtsp stream as the input, and output the transcoded stream over an http stream using mpeg1video encoding.
In ffmpeg, I can do the following
ffmpeg  -i rtsp://<IP_ADDRESS>/av0_1 -f mpegts -codec:v mpeg1video -b 800k -r 30 http://localhost:8081/password

However, when I try doing the same thing using ffmpeg.wasm, I get the following:
[info] load ffmpeg-core
[info] ffmpeg-core loaded
starting
[info] ffmpeg command: ./ffmpeg -nostdin -hide_banner -i rtsp://<IP_ADDRESS>/av0_1 -f mpegts -codec:v mpeg1video -b 800k -r 30 http://localhost:8081/password
[ffmpeg-stdout] Assertion failed: undefined
[ffmpeg-stderr] Assertion failed: undefined
[ffmpeg-stdout] RuntimeError: abort(Assertion failed: undefined). Build with -s ASSERTIONS=1 for more info.
[ffmpeg-stderr] RuntimeError: abort(Assertion failed: undefined). Build with -s ASSERTIONS=1 for more info.
// then prints out ffmpeg-core.js file

The code I used is below:
example_stream.js:
const { createFFmpeg } = require('@ffmpeg/ffmpeg');
const ffmpeg = createFFmpeg({ log: true });
(async () => {
    await ffmpeg.load();
    console.log("starting");
    await ffmpeg.run("-i rtsp://<IP_ADDRESS>/av0_1 -f mpegts -codec:v mpeg1video -b 800k -r 30 http://localhost:8081/password");
  })();

To Reproduce
Steps to reproduce the behavior:

Create a new node project
2. npm install "@ffmpeg/ffmpeg"
Run code above
See error

Expected behavior
Output similar to ffmpeg terminal command:
eng6@eng6-ThinkPad-P50s:~$ ffmpeg  -i rtsp://<IP_ADDRESS>/av0_1 -f mpegts -codec:v mpeg1video -b 800k -r 30 http://localhost:8081/password
ffmpeg version 2.8.15-0ubuntu<IP_ADDRESS> Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
...
Input #0, rtsp, from 'rtsp://<IP_ADDRESS>/av0_1':
  Metadata:
    title           : av0_1
  Duration: N/A, start: 0.034000, bitrate: N/A
    Stream #0:0: Video: h264 (High), yuvj420p(pc, bt709), 1280x720, 29.97 tbr, 90k tbn, 180k tbc
Output #0, mpegts, to 'http://localhost:8081/password':
  Metadata:
    title           : av0_1
    encoder         : Lavf56.40.101
    Stream #0:0: Video: mpeg1video, yuv420p, 1280x720, q=2-31, 800 kb/s, 30 fps, 90k tbn, 30 tbc
    Metadata:
      encoder         : Lavc56.60.100 mpeg1video
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mpeg1video (native))
Press [q] to stop, [?] for help

Desktop (please complete the following information):

OS: Ubuntu 16.04
Browser Firefox
Version 75
Node version: 12.7.0
NPM version: 6.14.5
"@ffmpeg/ffmpeg" version: "^0.8.3",

Additional context
Add any other context about the problem here.

Right now rtsp/rtmp is not supported due to the external libraries is unable to integrate with ffmpeg.wasm, I am still looking for possibilities.

@jeromewu jeromewu Is it possible to Screen Capture API and MediaStream Recording API to recorder screen recording and then use FFmpeg.wasm or ffmpeg.js to stream any RTMP server like youtube, Facebook at once?

Same request here, see https://github.com/ffmpegwasm/ffmpeg.wasm/issues/61

Hi, does ffmpeg.wasm support rtmp stream as input now?
I am encountering a connection refused problem now:
(async () => {         await ffmpeg.load();         await ffmpeg.run(             '-re',             '-i', 'rtmp://x.xx.xx.xxx:1935/live/stream_id',             ...         ); })();
However, I got following error:
[fferr] [tcp @ 0x1a67100] Starting connection attempt to x.xx.xx.xxx port 1935 [fferr] [tcp @ 0x1a67100] Connection attempt to x.xx.xx.xxx port 1935 failed: Connection refused [fferr] [tcp @ 0x1a67100] Connection to tcp://x.xx.xx.xxx:1935 failed: Connection refused [fferr] [rtmp @ 0x1a66c40] Cannot open connection tcp://x.xx.xx.xxx:1935 [fferr] rtmp://x.xx.xx.xxx:1935/live/stream_id: Connection refused [ffout] FFMPEG_END
I have no problem connecting to the rtmp stream using ffmpeg itself in command line though.
Any help would be greatly appreciated!

Right now rtsp/rtmp is not supported due to the external libraries is unable to integrate with ffmpeg.wasm, I am still looking for possibilities.

@jeromewu is rtmp supported now?

Is rtsp working now or not implemented yet?

somebody can give an answer please?


CLOUD-52922 failing service start in case of dead nodes

@doktoric @biharitomi
If few nodes are dead it's not possible to start the service.

Jenkins build failed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2187/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2188/


Possibly use Antrl?

I've been wanting to try and make a version Helm in Java so I started looking around for gotemplate implementations in Java and here we go! I'm going to give it a try this weekend.

Sorry I can't give a help.😂 I found the current lexer and parser work just fine, so I've given up to change it.
I think Helm is no more than a template engine with some predefined funcs, and some file handling methods, do you have any progress?


mat-select - Allow use this in compareWith function

Bug, feature request, or proposal:
Proposal & bug?
What is the expected behavior?
In my compareWith function, this should be the component instance
What is the current behavior?
In my compareWith function, this is an instance of MatSelect
What are the steps to reproduce?
Use this in the compareWith function
https://stackblitz.com/edit/angular-material2-issue-r8d7v2
What is the use-case or motivation for changing an existing behavior?
Allow to use this in compareWith function
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
All? Until 6.1.2
Is there anything else we should know?
The solution is change
this._compareWith(option.value,  value);

// by

this._compareWith.call(this._compareWith, option.value, value);

https://github.com/angular/material2/blob/d5c5f317b0b22bd92a65200422400aadd84cdcd5/src/lib/select/select.ts#L825

There's no way for mat-select to get the context of the component it's in. If you want a proper this, you can change the compareWith to an arrow function:
compareWith = (obj1: any, obj2: any) => {
    console.log(this);
    // return obj1 === obj2; // uncomment to see the difference
    return this.complexComparator(obj1, obj2);
}

Temporary solution
export class AppComponent implements OnInit {
  options = [1, 2, 3, 4];
  _compareWith: (obj1: any, obj2: any) => boolean;

  ngOnInit() {
    const self = this;
    this._compareWith = (obj1: any, obj2: any): boolean => {
      return self.compareWith(obj1, obj2);
    };
  }

  compareWith(obj1: any, obj2: any): boolean {
    console.log(this);
    return this.complexComparator(obj1, obj2);
  }

  private complexComparator(obj1: any, obj2: any): boolean {
    return obj1 === obj2;
  }
}

And use _compareWith in template


Move "Search Active Users" to Archive

/users/active has been locked down, needs to be archived.

Do you need the link in UserList related to /users/active commented out?

Sorry, this has been fixed in #77
The problem is that they have locked down this specific endpoint, so only administrators can use it. The normal /users search is still possible though.
They probably locked this down if it was possible to search for a person's active status even if you weren't friend with them. That, or it was removed and it simply is throwing "Invaild Admin Credentials" because idk. But either way it shouldn't be in the main sidebar at the top anymore.


go/oasis-node/cmd/config/migrate: Add runtime P2P seed address too

When running the config migrate command, an additional P2P runtime seed address is added when migrating seed nodes.

Fixed :)


Error on keyboard on iOS 9

Hi, I am having some trouble with the keyboard on iOS 9, the thing is that when I open the keyboard and use the arrows in it to move between the fields and then I click done there is like this 'space' left there, it looks like a class or something doesn't gets removed or something, I made a gif to show you what I'm talking about, and I hope someone can help me out with this, as I am just days from releasing my production version and this came out.
*This error doesn't occur on iOS 8

I have the same issue (also on iOS 9). When the keyboard is open the content div is as follows:

When I close the keyboard it is:

This fix, found in issue #89, works for me:
.content.overflow-scroll.has-header {
    bottom: 0px !important;
}

But it is a hack of course.

Thank you @pors this resolved it for the moment!

With this fix I have a new error, now the last two inputs don't scroll correctly into the view as you can see on the images, is there anyway to fix this? Thanks in advance!

+1

Having the same issue with keyboard blocking inputs on a page similar to yours- removing the ionic package and displaying the page fixes the problem, but then adding the ionic framework again creates this problem. It's definitely a problem with ionic.

Figured out the source of the issue on my end. In components/ionKeyboard.js, there's a function call that actually disables keyboard scrolling on startup.
Meteor.startup(function () {
if (Meteor.isCordova) {
IonKeyboard.disableScroll();
}
});
I wrote a custom implementation of meteoric-ionic that simply comments out this line, and it fixed the issue for me. The IonKeyboard object is attached to the window object, so if you want to save yourself the trouble of creating your own custom package, you can probably just call "this.IonKeyboard.enableScroll()" in a Meteor.startup call or something similar.
I'm curious as to why this is here in the first place - is the intended behavior for us to enable scrolling in our own startup function? Might want to include some documentation that references this behavior.

@pors which view are you using UIWebView or WKWebview  ? if WKWebview, which implementation, there are so many forks for meteor and none of them is working out-of the-box for me... thanks

@danlg I had this issue on iOS, and I use the default choice in Xcode, which is "blank".
It works will all recent version of Meteor.


Install GAMS through setup.py

In #154, we discussed adding an extra target in setup.py that triggers the script (currently in ci/) for installing GAMS:
$ pip install .[gams]

This would allow installing GAMS, and in turn running & rendering the tutorials, on infrastructure like ReadTheDocs.
References on how to do this:

https://jichu4n.com/posts/how-to-add-custom-build-steps-and-commands-to-setuppy/

On reflection, this is an abuse of the Python packaging system, so closed.
Things like iiasa/actions/setup-gams (for GitHub Actions) serve these needs, and can be used directly or adapted in new workflows for things like rendering tutorials. #490 would involve such an adaptation for Docker.


Feature/linter files

@apinf/developers please review. I added JSHint configuration files, so our project can be automatically linted for code quality/standards.