error Proxing a keyboard: ioctl(USB_RAW_IOCTL_EP0_WRITE): Cannot send after transport endpoint shutdown

first of all thanks for sharing your work, I successfuly proxied a ethernet adapter but fails with all HID i have
pi@raspberrypi:~/usb-proxy $ sudo ./usb-proxy --device=fe980000.usb --driver=fe980000.usb --vendor_id=1997 --product_id=2433
Device is: fe980000.usb
Driver is: fe980000.usb
vendor_id is: 6551
product_id is: 9267
Device opened successfully
Start hotplug_monitor thread, thread id(2326)
Setup USB config successfully
Start for EP0, thread id(2324)
event: connect, length: 0
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_CONFIG
ioctl(USB_RAW_IOCTL_EP0_WRITE): Cannot send after transport endpoint shutdown
Any idea whats causing this?

I noticed in this block: `	setup_host_usb_desc();
printf("Setup USB config successfully\n");
int fd = usb_raw_open();
usb_raw_init(fd, USB_SPEED_HIGH, driver, device);
usb_raw_run(fd);

`
that the USB_SPEED_HIGH mode is hard-coded changed that to low speed and seems better at least tries to transfer data but sill the target machine doesn't identifies the device. (this test was made with a mini wireless keyboard i suspect it uses USB LOW SPEED)

the project is unique,  and have learn a lot about USB thanks to this project
lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M < ------------------------- this is the mini keyboard
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
the mini keyboard shows as 2 devices, I guess the first is a internal hub then the keyboard itself and the touch pad as a mouse.
lsusb -v -d 1997:2433
Bus 001 Device 004: ID 1997:2433 Shenzhen Riitek Technology Co., Ltd wireless mini keyboard with touchpad
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               1.10
bDeviceClass            0
bDeviceSubClass         0
bDeviceProtocol         0
bMaxPacketSize0        32
idVendor           0x1997 Shenzhen Riitek Technology Co., Ltd
idProduct          0x2433 wireless mini keyboard with touchpad
bcdDevice            1.10
iManufacturer           1
iProduct                2 mini keyboard
iSerial                 0
bNumConfigurations      1
Configuration Descriptor:
bLength                 9
bDescriptorType         2
wTotalLength       0x003b
bNumInterfaces          2
bConfigurationValue     1
iConfiguration          0
bmAttributes         0xa0
(Bus Powered)
Remote Wakeup
MaxPower              100mA
Interface Descriptor:
bLength                 9
bDescriptorType         4
bInterfaceNumber        0
bAlternateSetting       0
bNumEndpoints           1
bInterfaceClass         3 Human Interface Device
bInterfaceSubClass      1 Boot Interface Subclass
bInterfaceProtocol      1 Keyboard
iInterface              0
HID Device Descriptor:
bLength                 9
bDescriptorType        33
bcdHID               1.01
bCountryCode            0 Not supported
bNumDescriptors         1
bDescriptorType        34 Report
wDescriptorLength      77
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength                 7
bDescriptorType         5
bEndpointAddress     0x81  EP 1 IN
bmAttributes            3
Transfer Type            Interrupt
Synch Type               None
Usage Type               Data
wMaxPacketSize     0x0020  1x 32 bytes
bInterval               8
Interface Descriptor:
bLength                 9
bDescriptorType         4
bInterfaceNumber        1
bAlternateSetting       0
bNumEndpoints           1
bInterfaceClass         3 Human Interface Device
bInterfaceSubClass      1 Boot Interface Subclass
bInterfaceProtocol      2 Mouse
iInterface              0
HID Device Descriptor:
bLength                 9
bDescriptorType        33
bcdHID               1.01
bCountryCode            0 Not supported
bNumDescriptors         1
bDescriptorType        34 Report
wDescriptorLength     116
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength                 7
bDescriptorType         5
bEndpointAddress     0x82  EP 2 IN
bmAttributes            3
Transfer Type            Interrupt
Synch Type               None
Usage Type               Data
wMaxPacketSize     0x0020  1x 32 bytes
bInterval               1

update: ran it with level 2 verbose and this is the output
Device is: fe980000.usb
Driver is: fe980000.usb
vendor_id is: 0x1997
product_id is: 0x2433
verbose_level: 2
5 Devices in list
Target device not found
Device opened successfully
Setup USB config successfully
Start hotplug_monitor thread, thread id(2697)
Start for EP0, thread id(2695)
ep #0:
name: ep1in
addr: 1
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #1:
name: ep1out
addr: 1
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #2:
name: ep2in
addr: 2
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #3:
name: ep2out
addr: 2
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #4:
name: ep3in
addr: 3
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #5:
name: ep3out
addr: 3
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #6:
name: ep4in
addr: 4
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #7:
name: ep4out
addr: 4
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #8:
name: ep5in
addr: 5
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #9:
name: ep5out
addr: 5
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #10:
name: ep6in
addr: 6
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #11:
name: ep6out
addr: 6
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
ep #12:
name: ep7in
addr: 7
type: iso blk int
dir : in  ___
maxpacket_limit: 1024
max_streams: 0
ep #13:
name: ep7out
addr: 7
type: iso blk int
dir : ___ out
maxpacket_limit: 1024
max_streams: 0
event: connect, length: 0
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
Control transfer succeed
Sending data to EP0(control_in): 12 01 10 01 00 00 00 20 97 19 33 24 10 01 01 02 00 01
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
Control transfer succeed
Sending data to EP0(control_in): 12 01 10 01 00 00 00 20 97 19 33 24 10 01 01 02 00 01
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_CONFIG
Control transfer succeed
Sending data to EP0(control_in): 09 02 3b 00 02 01 00 a0 32 09 04 00 00 01 03 01 01 00 09 21 01 01 00 01 22 4d 00 07 05 81 03 20 00 08 09 04 01 00 01 03 01 02 00 09 21 01 01 00 01 22 74 00 07 05 82 03 20 00 01
ioctl(USB_RAW_IOCTL_EP0_WRITE): Cannot send after transport endpoint shutdown
the error comes from proxy.cpp > void ep0_loop(int fd) >rv = usb_raw_ep0_write(fd, (struct usb_raw_ep_io *)&io); //line: 379
seems like somehow host or device closes fd, i been doing tests with USBPCAP and Wireshark and in the capture taken from the target host machine doesn't even get any traffic from the proxy.
would you point me were to look at?
if helps this is the traffic of the device conected directly to the host (no proxy) in PCAP format.
https://www.sendspace.com/file/7pguoa

Hi,
Thanks for sharing the info, sorry that I don't have time recently because I am on a business trip in Europe, I will check this out when I am back to my hometown

don't worry bro, good luck in your travel, I feel this project is unique and has future there are only 2 proxy USB projects with this one included available, just remember to throw a hand to the project when you have time.

update: I think i found the problem but cant figure the solution, the problem comes when the interface descriptor has a subclass descriptor in this case HID descriptor.
in the "setup_host_usb_desc" function there is not setting for this descriptor, but the libusb_interface_descriptor does includes this descriptor in the field "extra" which is a pointer managed to compare its contents with the ones of the USBPCAP capture of that device and it matches but i have no idea how to set this descriptor in the setup_host_usb_desc "YET but ill keep trying"

update:
The problem happens when the descriptor to send by this function: usb_raw_ep0_write is bigger than the max packet size for EP0
In this particular case with the mini keyboard the device responds with usb.bMaxPacketSize0=32 (sniffed from windows with USBPCAP) and the descriptor usb_raw_ep0_write is trying to send is 59 bytes when this condition happens:
Configuration descriptor > usb.bMaxPacketSize0
we get this error: ioctl(USB_RAW_IOCTL_EP0_WRITE): Cannot send after transport endpoint shutdown it feels like the endpoint is expecting the configuration descriptor in 2 parts one of the full packet size and other with the rest but when it tries to send all the 59 at once it fails. i tested with other devices and this issue repeats when such conditions meet.
all devices that work on high speed have 64 bytes in ep0, haven't found a device that fails for having a configuration descriptor bigger than 64bytes but I'm guessing it could happen too.
but most high speed devices pass this part then fail somewhere else but I'm trying to solve this issue first but i lack of the knowledge YET to complete this.

Hi,
May I know where did you get the mini keyboard? I am thinking that if it is not too expensive, I might buy one to debug this issue
For the bMaxPacketSize0 that you mentioned, maybe you can try to manually set this value higher
https://github.com/AristoChen/usb-proxy/blob/6aecd455b2ef3d6734ab92105ca00c01464d4030/usb-proxy.cpp#L65
BTW, I am not a USB expert as well, and AFAIK there are some buggy USB devices that might require special driver to work, or possibly need to setup some USB quirks in kernel module, which means that this project might not be able to handle that special case

this is the mini keyboard:
https://www.amazon.es/Rii-K12-Mini-touchpad-inoxidable/dp/B00ZCFTT00/
but may be you don't need to buy it, I can run any tests for you and provide logs or pcaps.
My mouse has a issue that looked like the same problem but now i made deeper tests.
The mouse is a death adder V2 which has a bMaxPacketSize0 of 64 bytes but its configuration descriptor is 84 bytes but in this case it manages to send the descriptor even though is bigger than the bMaxPacketSize0.
so after running it with verbose level 2:
event: control, length: 8
bRequestType: 0x21 (OUT), bRequest: 0x09, wValue: 0x0300, wIndex: 0x0000, wLength: 90
type = USB_TYPE_CLASS
req = unknown = 0x9
Sending data to EP0(control_out): 00 1f 00 00 00 08 0f 03 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fb 00
Control transfer succeed
ep0: transferred 90 bytes (out)
it seems to be sending the descriptor without problem...
but crashes only after I move the mouse
in this case crashes when trying to send a interrupt with the movement data:
EP81(int_in): enqueued 8 bytes to queue
Sending data to EP81(int_in): 00 fe 00 00 fe ff 00 00
ioctl(USB_RAW_IOCTL_EP_WRITE): Cannot send after transport endpoint shutdown.
now this makes me wonder if the problem is the size of the descriptor or if is something else because in this case the descriptor is also bigger than the bMaxPacketSize0 but it sends the descriptor.
.bMaxPacketSize0 =	device_device_desc.bMaxPacketSize0,  about this line i tried that already harcoded it to 64 bytes and also hardcoded usb.bcdDevice = 0x0200 but it gives the same result.
I made this test because this project: https://github.com/nesto-software/USBProxy manages to proxy that mini keyboard  just fine but that project fails with every other device I have, it uses GadgetFS instead of Raw Gadget, Proxied using that project to see whats different and how it sends the descriptor and what I found in the pcap was that the mini keyboard shows in the device descriptor MaxPacketSize0 = 64 which is weird because that device conected directly reports its MaxPacketSize0 = 32 and also usb.bcdDevice = 0x0200 instead of usb.bcdDevice = 0x0110 (which is its original value) its like that other proxy somehow changes these values.
This problems are interesting every time I get a hypothesis it always results in something else after few days.

@Alphadan28 Could you change USB_SPEED_HIGH to USB_SPEED_FULL in the arguments of usb_raw_init and see if that makes any difference?

sure this is the result: connecting as USB_SPEED_FULL instead of USB_SPEED_HIGH
Device is: fe980000.usb
Driver is: fe980000.usb
vendor_id is: 6551
product_id is: 9267
Device opened successfully
Start hotplug_monitor thread, thread id(2631)
Setup USB config successfully
Start for EP0, thread id(2629)
event: connect, length: 0
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_DEVICE
ep0: transferred 18 bytes (in)
event: control, length: 8
bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 255
type = USB_TYPE_STANDARD
req = USB_REQ_GET_DESCRIPTOR
desc = USB_DT_CONFIG
ioctl(USB_RAW_IOCTL_EP0_WRITE): Cannot send after transport endpoint shutdown
and dmesg output:
[ 3458.920575] hwmon hwmon1: Undervoltage detected!
[ 3467.240672] hwmon hwmon1: Voltage normalised
[ 3471.400790] hwmon hwmon1: Undervoltage detected!
[ 3483.880773] hwmon hwmon1: Voltage normalised
[ 3603.254003] dwc2 fe980000.usb: bound driver raw-gadget.0
[ 3603.433015] dwc2 fe980000.usb: new device is full-speed
[ 3603.487987] dwc2 fe980000.usb: new device is full-speed
[ 3603.522760] dwc2 fe980000.usb: new address 45
[ 3604.042229] raw-gadget.0 gadget: Gadget Disconect
[ 3604.047030] dwc2 fe980000.usb: new device is full-speed
[ 3604.047062] raw-gadget.0 gadget: Gadget Disconect

Alphadan28, could you please try proxying the device with the Dummy HCD controller instead of dwc2 (you need to build and load dummy_hcd from the Raw Gadget repository and provide no --device/driver arguments to USB-Proxy)? And if it fails, could you please share the PCAP of the USB traffic?

And also, could you apply the following patch to raw_gadget.c and share dmesg output (there will be a lot of WARNINGs printed, please include them all):
diff --git a/raw_gadget/raw_gadget.c b/raw_gadget/raw_gadget.c
index 5eedee5..d79b690 100644
--- a/raw_gadget/raw_gadget.c
+++ b/raw_gadget/raw_gadget.c
@@ -7,6 +7,8 @@
  * Author: Andrey Konovalov<EMAIL_ADDRESS>  */

+#define DEBUG
+
 #include <linux/compiler.h>
 #include <linux/ctype.h>
 #include <linux/debugfs.h>
@@ -365,10 +367,26 @@ out:
 }

 /* These are currently unused but present in case UDC driver requires them. */
-static void gadget_disconnect(struct usb_gadget *gadget) { }
-static void gadget_suspend(struct usb_gadget *gadget) { }
-static void gadget_resume(struct usb_gadget *gadget) { }
-static void gadget_reset(struct usb_gadget *gadget) { }
+static void gadget_disconnect(struct usb_gadget *gadget)
+{
+       dev_dbg(&gadget->dev, "gadget disconnected\n");
+       WARN_ON(1);
+}
+static void gadget_suspend(struct usb_gadget *gadget)
+{
+       dev_dbg(&gadget->dev, "gadget suspended\n");
+       WARN_ON(1);
+}
+static void gadget_resume(struct usb_gadget *gadget)
+{
+       dev_dbg(&gadget->dev, "gadget resumed\n");
+       WARN_ON(1);
+}
+static void gadget_reset(struct usb_gadget *gadget)
+{
+       dev_dbg(&gadget->dev, "gadget reset\n");
+       WARN_ON(1);
+}

 /*----------------------------------------------------------------------*/

I got the K12+ keyboard, and it's being proxied perfectly with Dummy HCD. So I suspect the issue is either with the dwc2 driver or with Raw Gadget. I don't have a full-size Raspberry Pie to check, but I'll try to get my hands on one.

This project https://github.com/patryk4815/usb-proxy manages to proxy my logitech mouse without issues. This usb-proxy project results in the error described above.

I have experienced the same issue with a wireless mouse & keyboard. It works perfectly with dummy driver but not with the project by patryk4815. I ran the patch above. dmesg.
This was done on kernel 5.15.89, rasbarian (bullseye), Raspberry Pi 4B.

Very thanks, I also make my mouse work, but i think @xairy code is good, i will test the code. i have a ic card reader, which have a bEndpointAddress 0x85, but raw_gadget use driver musb-hdrc max bEndpointAddress 0x84, this make raw_gadget ep addr enable failed in process_eps
ep->thread_info.ep_num = usb_raw_ep_enable(fd, &ep->thread_info.endpoint);
Is there a good solution?

Hi @imatespl, thanks for confirm that the fix works for you! could you please open another issue to discuss your question? we may discuss there further, because I think it is not related to this issue
Just a quick reply to your question, I guess your hardware only support endopoints address from 0x01 to 0x04, and from 0x81 to 0x84. Your IC card reader uses 0x85, which may not be supported on your hardware. There may be 2 solutions

Use other hardware that supports address 0x85, such as raspberry pi 4, or IIRC, Bananapi M1 should support as well
Previously, I was planning to allow users to manually mapping endpoint addresses to some other addresses by themselves if this issue happen, but I don't have a plan to implement it in near future, and IMO it is highly possible that the driver from the host may not be able to work normally since the address is different.

very thanks，I will open a new issue，I ic card reader have three endpoints, 0x01 0x82 0x85, I hard code map 0x85 to 0x81, in usb_raw_ep_enable(fd, &ep->thread_info.endpoint), and injection USB_DT_CONFIG response set 0x85 to 0x81, it work good

I test @xairy  https://github.com/AristoChen/usb-proxy/pull/6, and should change the MaxPackageSize0 from 0x08 to 0x40, 0x08 make the raw_gadget which use device musb-hdrc.4.auto  dead loop, and ignore  usb_raw_ep0_stall when SET_IDLE request to interface 1， it like in linux libusb don't support this request, in proxy.cpp:499
event: control, length: 8
bRequestType: 0x21 (OUT), bRequest: 0x0a, wValue: 0x0000, wIndex: 0x0001, wLength: 0
type = USB_TYPE_CLASS
req = unknown = 0xa
ep0: stalling
I add this code in ep0_loop
`diff --git a/proxy.cpp b/proxy.cpp
index e3dbd57..d703445 100644
--- a/proxy.cpp
+++ b/proxy.cpp
@@ -368,6 +368,12 @@ void ep0_loop(int fd) {
break;
}
}

                          if ((event.ctrl.bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD &&

                                  event.ctrl.bRequest == USB_REQ_GET_DESCRIPTOR &&

                                  (event.ctrl.wValue >> 8) == USB_DT_DEVICE) {

                                  struct usb_device_descriptor* pdata = (struct usb_device_descriptor*)&io.data;

                                  pdata->bMaxPacketSize0 = 64;

                          }

                          if (verbose_level >= 2)
                                  printData(io, 0x00, "control", "in");

@@ -495,7 +501,14 @@ void ep0_loop(int fd) {
printf("ep0: transferred %d bytes (out)\n", rv);
}
else {

                                  usb_raw_ep0_stall(fd);

                                  if (event.ctrl.bRequestType == 0x21

                                          && event.ctrl.bRequest == 0x0a

                                          && event.ctrl.wIndex != 0) {

                                          continue；

                                  }

                                  else {

                                          usb_raw_ep0_stall(fd);

                                  }
                          }
                  }
          }

`

Hi @imatespl , thanks for reviewing the code, if the issue you have mentioned is introduced by #6, could you please leave a comment there instead of here? I think it will be easier for us to discuss the code changes in a single place, thanks!


ORC-1078: Row group end offset doesn't accommodate all the blocks

What changes were proposed in this pull request?

To calculate the row group end offset differently by the buffer size. Current implementation assumes stretching the slop by a factor of 2 can safely accommodate the compression block.
Why are the changes needed?

When compression size is smaller than 2048 and two blocks are not enough for all the values left in last row group, we might end up seeking outside of range.
How was this patch tested?

A problematic file "orc-small-compression-size.orc" is generated and a unit test for it is added to TestRecordReaderImpl.

I added a milestone label, 1.6.13.

Could you resolve the conflicts, @hsnusonic ?

To @pgaref , the due date is next Monday (2022-01-17).

Could you resolve the conflicts, @hsnusonic ?

Done. @dongjoon-hyun Could you please approve the test run?

It seems to be running now, @hsnusonic . Maybe, one one did approve already.

Gentle ping, @pgaref .
As we discussed on dev@orc mailing list, we can have this at 1.6.14 if this is not merged until 17th January.

Thank you, @hsnusonic and @pgaref !

FYI, branch-1.6 seems to be broken on MacOS 10.5 after this commit, but it looks irrelevant to this PR.

https://github.com/apache/orc/commits/branch-1.6


addmm test fails with CUDA 7

Tested on OS X and Ubuntu with latest cutorch and CUDA 7 driver 346.6, another machine which is on CUDA 6.5 and 340.29 is fine
addmm
 Function call failed
/usr/local/share/lua/5.1/cutorch/test.lua:112: /opt/rocks/cutorch/lib/THC/THCBlas.cu(249) : cublas runtime error : the GPU program failed to execute
stack traceback:
	[C]: at 0x123b2bb0
	/usr/local/share/lua/5.1/cutorch/test.lua:112: in function 'compareFloatAndCudaTensorArgs'
	/usr/local/share/lua/5.1/cutorch/test.lua:976: in function </usr/local/share/lua/5.1/cutorch/test.lua:960>
	[C]: in function 'xpcall'
	/usr/local/share/lua/5.1/torch/Tester.lua:115: in function 'pcall'
	/usr/local/share/lua/5.1/torch/Tester.lua:172: in function 'run'
	/usr/local/share/lua/5.1/cutorch/test.lua:1555: in function 'f'
	[string "local f = function() return cutorch.test() en..."]:1: in main chunk
	[C]: in function 'xpcall'
	/usr/local/share/lua/5.1/trepl/init.lua:608: in function 'repl'
	/usr/local/lib/luarocks/rocks/trepl/scm-1/bin/th:185: in main chunk
	[C]: at 0x010f502400

fixed via https://github.com/torch/cutorch/pull/131


Feature/5819 improvements fixes

This PR relats to #5819 and covers the fixes:

Prevent exception for missing PortalSetting PageHeadText
Fix UpdatePortalInfo for new language when en-US not present
Fix mail Null Reference exception in SendMail found in upgraded portals
When NodeManipulator adds items they have no tabid, do not filter on null.
Scheduler Fix for error thrown when no servers active

What did the frequency of the monitor get changed to? Was it more than 10
minutes? What were the initial reasons why the frequency of that got
changed? Just want to make sure we have the whole picture. I don't want a
side effect of this change to let the scheduler run when there are no
active servers in the list but a schedule has been told to run on a
specific server.
On Mon, Oct 16, 2023 at 12:09 AM Stefan Kamphuis @.***>
wrote:

@.**** commented on this pull request.
In DNN Platform/Library/Services/Scheduling/Scheduler.cs
https://github.com/dnnsoftware/Dnn.Platform/pull/5821#discussion_r1360156370
:

@@ -128,6 +128,12 @@ public static bool ValidateServersAreActiveForScheduledItem(ScheduleItem schedul
// Get the enabled servers with recent activity.
var enabledServers = ServerController.GetEnabledServersWithActivity();

           if (!enabledServers.Any())

Sorry for the delay,I had to dive into that.
We experienced that after changing the frequency of the Montior Web
Servers task. It looks like if that task isn't running (or not frequently
enough?) it might occur that there are no enabled servers and the exception
that I'm catching here, is thrown.
—
Reply to this email directly, view it on GitHub
https://github.com/dnnsoftware/Dnn.Platform/pull/5821#discussion_r1360156370,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQIT7RBNBHNBJG6RTIVQYTX7TFTHANCNFSM6AAAAAA5CY4COM
.
You are receiving this because you were mentioned.Message ID:
@.***>

@mtrutledge sorry, missed your questiojn again. I'll get back at this.

@skamphuis I am gong to close this for now, you can re-open if you would like to adjust/submit for merging


Compatibility with SQLPackage 161 version

Connection Security Improvements in SqlPackage 161. More information is available at https://aka.ms/dacfx-connection

:white_check_mark: Organization membership check passed
Requester is not a member of the MicrosoftDocs organization.

Reviewed and approved!


Help to modify a docx file

HI, I'm trying to understand how to modify text in a Word doc file but looking at the libopc samples i could only see examples for read and write, they use separate objects/functions.
Its not possible to modify a document on-the fly, without creating a reader and a writer?
If not, what's the easiest way to copy the original and make the change with a new writer?

The opc container can be opened in read/write mode using opcContainerOpenMode::OPC_OPEN_READ_WRITE
It's defined in container.h
I am editing PowerPoint files, not docx but I open mine like this:
	mContainer = opcContainerOpen(_X(fileName.value()), OPC_OPEN_READ_WRITE, this, nullptr);

Yes i did it like that , but don't know how to modify the text values of nodes and commit the changes to the docx file.
The samples dso not provide this and there is no API documentation yet as far as i know.
Seems the xml is wrapped around mce typedefs for reader and writer.
If you tell me i can use mceWriter to open and existing part and keep the original values i'll try but seems writer is to write new things.
I'm confused.

Sorry, didn't mean to close this one.  libopc is focused on the packaging-of the files and managing the relationship pieces. ex.  inserting an image requires setting up relationsships and adding the image into the package.
To work on the actual document, you end up reading the part of interest as xml content into an , changing the xml and then re-writing that xml document.
It's been a while and I have my own C++ wrapper code but it looks roughly like:

opcPartFind + opcContainerOpenInputStream() a to get to a specifc named part of the file.
Pass the stream's buffer to xmlReadMemory to read the part's xml into a libxml2 object.
Find and change the piece of text (or whatever) with xpath queries updating the xml document with new content.
Create a stream/buffer to save out the xml using opcContainerCreateOutputStream for the desired part.
Get the xml to write using xmlDocDumpMemory()
Write that xml to the doc using opcContainerWriteOutputStream then close with opcContainerCloseOutputStream.

Sorry it's not clearer but libopc is pretty general and mainly helps manage overall document container and looking up parts and adding contained images etc.


Cannot Determine the Currently Active Plugin

90% of the time I get this error while trying to do anything with builder.  Yes I select the plugin first. And the database tab will show already created tables, but when trying to Add+ another I get the error.

What browser and OS you use?

Chrome on Windows 10.  I'm trying Firefox now and it seems to be working.

Currently I don't have access to Chrome on Windows 10.  We would greatly appreciate it if you help us to debug the problem.

Not sure what to look for, here is my console.  I don't see anything in system.log.

@coycash - there's another relevant issue #128. Could you check if your session lifetime is not zero?

Please reopen this issue if needed.

it is same issues;
storage/framework/sessions
Directory not writable
use
chmod -R 777  storage/
fix it!


Implicitly convert to floats in shaders

Godot version:
3.1 beta8
Issue description:
Godot's shading language is designed to be more friendly than normal GLSL, but while it simplifies a lot of things, I get a feeling there's stuff that's still needlessly made more difficult. Something that I always disliked when working with Godot shaders is that you need to write every float operation explicitly. So for example you can't do
1.0 + 2
but you need
1.0 + 2.0
What's worse, after recent beta Godot enforces you to have all method arguments be of the same type. So my shader with this line
COLOR = vec4(value, value, 1, max(color.a, 0.5));
has broken as a result. I know it's not a big deal to add .0, but why is it even necessary? Is there any technical reason to not implicitly convert integers to floats where needed, other than for the sake of enforcing type matching? (like in Java, which is terrible on that matter)
Do people care so much about (sometimes unexpected) implicit conversions as to make life harder?

Is there any technical reason to not implicitly convert integers to floats where needed, other than for the sake of enforcing type matching?

Yes. It is to be compliant with the GLSL ES3 specification. https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf&ved=2ahUKEwj6mq6bp93gAhUKuJ4KHUa9DiUQFjAAegQIBBAB&usg=AOvVaw3dKLJq9fZByoO6OTRyu4SM
We need to be compliant with the specification so that code written on one computer will work on all others. Before the change, random machines just wouldn't run Godot because they mixed ints and floats. Writing .0 is a small price to pay for being cross-platform.

Godot's shading language is designed to be more friendly than normal GLSL

Godot doesnt have its own shading language. It uses GLSL, but it makes shaders easier to write by simplifying shader programs by providing built in functionality, not by using an easier syntax. We are still stuck with raw GLSL syntax.

Godot doesnt have its own shading language. It uses GLSL, but it makes shaders easier to write by simplifying shader programs by providing built in functionality, not by using an easier syntax.

The syntax definitely looks like GLSL, but still has some differences. Don't shaders get some conversion magic before they are sent to GPU, like changing all Godot's symbols into proper stuff etc.? Why wouldn't it be possible to change integers into floats during that conversion?

The syntax definitely looks like GLSL, but still has some differences. Don't shaders get some conversion magic before they are sent to GPU, like changing all Godot's symbols into proper stuff etc.?

The variable names are changed slightly so they do not conflict with the built in functions. Other than that, I don't think there is much if anything that happens, other than making sure everything gets inserted into the proper place.

Why wouldn't it be possible to change integers into floats during that conversion?

It would be possible, but then what if I wanted to use an int and not a float? There are many ambiguous cases where the pre-processor wouldn't be able to tell which to use. Additionally, it would make a shaders slower.

I mean, if the editor tells you that it expects float somewhere, it as well could put it itself.

Newer versions of GLSL actually do this for function arguments. It may be possible for function arguments, but you would still be left without it for regular use. But, if it is useful enough for people in may be worthwhile to consider adding implicit conversions in function arguments.

It would be possible, but then what if I wanted to use an int and not a float?

I meant whenever it's needed. Obviously there's no reason to convert all integers, but the one's that would otherwise cause type error.

I meant whenever it's needed. Obviously there's no reason to convert all integers, but the one's that would otherwise cause type error.

But there is no way of knowing from looking at the code what it is supposed to be. At some point the pre-processor will have to guess, and then you, the user, will get unexpected output and you won't know why.
For example take the code 1+2.0, from that code, should the result be 3 or 3.0? Or a more concrete example
if(3.0<2) {
    return max(3.0, 2);
}

What would the expected output be? Even inferring what the types are from the function call is impossible.
That being said. I'm not trying to rain on your parade. I understand your desire for implicit type conversion. I really do. Languages like GDScript are a pleasure to code in. GLSL is much less of a pleasure, however, GLSL is designed to be fast and to give the user full control over the program. Those things are not as easy to provide with implicit type conversion.

Isn't this fixed by ffb9f342a already?

That works only for vector constructors, so fixes only the COLOR line I wrote at the beginning.
color.g = 1; doesn't work
color.g /= 2; doesn't work
It would be nice if they did.

@clayjohn Is this still considered intended behavior, for consistency with GLSL? I think we should just close this.

I'd put usability over consistency here. I run into conversion errors every time I write a shader and it's annoying :I
Also I noticed some questions were unanswered.

For example take the code 1+2.0, from that code, should the result be 3 or 3.0? Or a more concrete example

3.0. Only 1 + 2 would produce 3.

if(3.0<2) {
return max(3.0, 2);
}
What would the expected output be? Even inferring what the types are from the function call is impossible.

No output, because the condition is false xd
Right now it produces an error. What I proposed is to convert mixed expressions to float. Only integer-only expressions would be processed as integers. So in this example, 2 would become 2.0.

It would be possible, but then what if I wanted to use an int and not a float?

Then use integers. In (almost?) every programming language, operations with integer and float will result in a float.

@KoBeWi Thanks for following up.
I honestly go back and forth on this issue. Some days I feel like it is okay to trade shader speed to make it easier for users. Other days I feel like shaders should be kept fast and powerful so that users who are willing to work with them can get the most out of their shaders.
I am also concerned that abstracting shaders too much does a disservice to users. GPUs are very particular pieces of hardware. The strangest things can take a shader from running at 60+ FPS to making the GPU crawl. By taking control away from users, we make it more likely they will write shaders that slow down the GPU or outright break rendering in unexpected ways.
On the other hand. Auto detecting when floats and ints are used together for basic arithmetic should be easy and not slow down the pre-compile process too much. But if we add type-inferenceing for basic arithmetic, users will expect type inferenceing everywhere and then we end up with an extremely slow and complex pre-compiler.
So, all that to say, I am not sure if this is a good idea or not. At this point it is probably best to go the Godot-Proposals route and see how important this is to other users. Alternatively, we need to test it out and see if it leads to a realistic decrease in speed. In may not.

Ok, made the proposal: https://github.com/godotengine/godot-proposals/issues/1223


Fixed a typo

... matrices wich shape ... -> ... matrices with shape ...

Thanks. Actually, you only need to change source/exercises100.ktx and the other files will be updated.

Please make a PR for the typo only (and only kth file) and then you can open a new PR for the alternative solution.

Please make a PR for the typo only (and only kth file) and then you can open a new PR for the alternative solution.

Ok. Please consider merging this commit: https://github.com/rougier/numpy-100/commit/683f473a6f682f0994069c22c4251971d52ff690

Thanks.


Mixin error on getters and setters

Hello, I'm trying use mixing to combine a class with 2 outer classes like so:
export default class JustContext extends ContextDecorator implements ChangeNotifyingContext, RedrawableContext {
// Some code
}

I then apply the mixin
``
`applyMixins(JustContext, [ChangeNotifyingContext, RedrawableContext]);```
ChangeNotifyingContext extends ContextDecorator as well, that has a getter:
export default class ContextDecorator {
    private context:CanvasRenderingContext2D;

    get strokeStyle() : string | CanvasGradient | CanvasPattern{

        return this.context.strokeStyle;
    }

At runtime I get the error :
Uncaught (in promise) Error: Cannot set property 'strokeStyle' of undefined(…)

at the apply mixing method:
applyMixins(derivedCtor:any, baseCtors:any[]) {
    baseCtors.forEach(baseCtor => {
        Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
            if (name !== 'constructor') {
                derivedCtor.prototype[name] = baseCtor.prototype[name]; // Error is here
            }
        });
    });

For some reason the mixin tries to run the getter method but for no instance so the property of canvas is undefined.
Why dos this happen ?

Apparently derivedCtor.prototype is undefined. Try adding this:
derivedCtor.prototype = derivedCtor.prototype || {};

Should solve the error, but won't make what you want happen.
AFAIK, getters/setters are not prototype methods. They use Object.defineProperty in the constructor function. You can't use them like this.

Hi, thanks for the replay, I tried your suggestion but like I said it not
the prototype that is undefined.
You call also see this here in this picture I took from the debugger:
[image: תמונה מוטבעת 1]
2015-12-27 18:18 GMT+02:00 Louy Alakkad<EMAIL_ADDRESS>
Apparently derivedCtor.prototype is undefined. Try adding this:
derivedCtor.prototype = derivedCtor.prototype || {};
Should solve the error, but won't make what you want happen.
AFAIK, getters/setters are not prototype methods. They use
Object.defineProperty in the constructor function. You can't use them
like this.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript/issues/6262#issuecomment-167422289
.

From the information available here looks like you never initialize the context. also this kind of issues would be more suited to StackOverFlow.


Ignoring unknown field "executable" in package description

I have simple package.yaml file:
name: test
version: <IP_ADDRESS>

dependencies:
  - base >=4.8 && <4.9

library:
  source-dirs: src-lib
  exposed-modules:
    - Game

executable:
  main: Main.hs
  source-dirs: src-exec
  dependencies:
    - test

Running stack build result in:
WARNING: Ignoring unknown field "executable" in package description
I am not sure this is hpack or stack issue. Maybe I am doing something wrong?

@koxu1996 Thank you for taking the time to open this issue!  The executable-field is only support since hspack-0.18.0, which is not used by stack yet.   For now you may want to use
executables:
  test:
    main: Main.hs
    source-dirs: src-exec
    dependencies:
      - test

instead.


Fixed Navigation Scrolling Issue

Hi,
My site has a fixed navigation bar which will change its background color while scrolling through the browser window. It works on both desktop and mobile device.
After added the Skrollr function, on mobile device the navigation bar is still fixed on top of the browser window, but the background color won't change. The fixed navigation bar also placed outside of the #skrollr-body element.
Is it something wrong with my JavaScript code below?
jQuery(window).load(function () {
    "use strict";
    var header = jQuery(".navbar");
    jQuery(window).scroll(function () {
        var scroll = jQuery(window).scrollTop();

        if (scroll >= 80) {
            header.addClass("navbar-scroll");
        } else {
            header.removeClass("navbar-scroll");
        }
    });
});

Is it something wrong with my JavaScript code below?

Yes. You need to use skrollrs render event instead of the native scroll event. With skrollr on mobile you won't get native scrolling.

After I tried to use Skrollrs render event as the code below, it seems like working fine on mobile device. Thank you so much!
jQuery(window).load(function () {
    "use strict";
    var header = jQuery(".navbar");
    skrollr.init({
        forceHeight: false,
        smoothScrolling: false,
        render: function (scrollMobile) {
            if (scrollMobile.curTop >= 80) {
                header.addClass("navbar-scroll");
            } else {
                header.removeClass("navbar-scroll");
            }
        }
    });
});


BaseSettings: Support Field(env=...) in nested sub models

Fixes #4982
This MR fixes the issue of environment variable names defined in nested sub-models of a BaseSettings class via Field(env=...) not being recognised.
I implemented some recursion mechanism to get those environment variables specified in nested models. This may not be the best way but it works. Of course, I'm happy for any feedback and suggestions to make this fix cleaner.
Additional Details / Questions
I noticed that if the nested models are subclasses of BaseSettings (instead of BaseModel), the recursive call of BaseSettings.Config.prepare_field() would not be needed. I also saw people using nested BaseSettings, however, the docs only show this with BaseModel. Are both ways supposed to work? Or should we use BaseSettings only for the "root" class?

Humm, bit worried this could be considered a breaking change - we're really trying to limit changes in V1.10 to the simplest/most obvious bugs.
Definitely keen to fix this in V2, but settings has moved to pydantic-settings.
Happy to hear what others think ... @pydantic/pydantic-maintainers?

Same feeling @samuelcolvin. by checking the implementation it doesn't seem simple to me. I am afraid of introducing a hidden bug.

I understand your concerns. I have to admit that I'm not fully happy with my solution - although I can not think of a much simpler implementation for this based on the current logic of loading the environment variables. But it's also my first time touching the code here.
Maybe we should leave this for V2, i.e. implement it in pydantic-settings then? Not sure if there is a greater refactoring planned which potentially would change how env variables are loaded.

Maybe we should leave this for V2, i.e. implement it in pydantic-settings then? Not sure if there is a greater refactoring planned which potentially would change how env variables are loaded.

There is, see https://github.com/pydantic/pydantic-settings/pull/10.
I think we're agreed on this one.


[Relay,Topi][OP] affine_grid and grid_sample

This PR added the affine_grid and grid_sample operator introduced in Spatial Transformer Networks.
API reference:
MXNet: GridGenerator, BilinearSampler
Pytorch: affine_grid, grid_sample
cc @masahi @icemelon9

interesting.

Thanks @vinx13


Merge/1.5.10

ping @tannerburson @mattcarbone @jjrussell for people who have worked on this with changes in the merge
ping @Tapjoy/eng-group-services since we own this and should make sure people are comfortable with whats being merged.

my part lgtm.
other changes also lgtm

Yep. Looks good to me as well.

I'm gonna give the slackers who aren't checking their commits over a
holiday weekend the chance to chime in prior to merging.
On Jul 4, 2015 10:28 PM, "Tanner Burson"<EMAIL_ADDRESS>wrote:

Yep. Looks good to me as well.
—
Reply to this email directly or view it on GitHub
https://github.com/Tapjoy/chore/pull/3#issuecomment-118571688.

lgtm :+1:

Eh?

Why are you still following our pull requests?

Don't you have DOTA 2 to play or something?

This is public, he's able to see it
I'm gonna merge this guy in this afternoon and do a tag + release to ruby gems afterward

Actually - by now everyone has seen it who contributed.
Lets get this puppy merged

Done and done.
Happy Choring, all


A way to suppress parameter types

Summary of the new feature / enhancement
If a cmdlet exposes a SwitchParameter, this type is included in the final XML help:
-Force
This is confusing to the user ("SwitchParameter" is a programming concern), and other built-in commands don't show type names at all for SwitchParameter.
Proposed technical implementation details (optional)
No response

Can you show an example of what you are talking about?

This is by design.


Is it OK to call trigger inside a coordinator?

Hello,
I don't know how to solve this problem.
I have 3 coordinators:
AppCoordinator
LoginCoordinator
DashboardCoordinator
The AppCoordinator is run by the app delegate
When running the app, if we have a user in userdefaults (or whatever), we present the dashboard coordinator, otherwise, we present the login coordinator.
Problem I have is this one:
In the login screen, I want to press a button and then that view controller and login coordinator are dismissed, at the same time, I want that the dashboard coordinator is presented. Ideally, I would like to present the dashboard coordinator, and behind that, I would like to dismiss the login controller and release the login coordinator.
How should I do that?
My idea is this:
enum LoginRoute: Route {
    case login
    case dismiss
}

final class LoginCoordinator: NavigationCoordinator<LoginRoute> {

    weak var appCoordinator: AppCoordinator?

    init(appCoordinator: AppCoordinator, initialRoute: RouteType? = nil) {
        self.appCoordinator = appCoordinator
        super.init(initialRoute: initialRoute)
    }

    override func prepareTransition(for route: LoginRoute) -> NavigationTransition {
        switch route {
        case.login:
            var vc = LoginViewController.instantiateController()
            let model = LoginViewModel(coordinator: anyRouter)
            vc.bind(to: model)
            return .push(vc)
        case .dismiss:
        	self.appCoordinator.trigger(.dashboard) // This is not working
            return .dismiss()
        }
    }
}

But it is not working.
What is the proper way to do this?
Thanks a lot.

It's a moment, where RxSwift shines ;)
`
enum LoginRoute: Route {
case presentDashboard(onDidAppear: (() -> Void)?)
}
    // in coordinator
    switch route {
    case let .presentDashboard(completion):
        var vc = DashBoardController()
        if let onDidAppear = onDidAppear {
            let firstDidAppear = vc.rx.methodInvoked(#selector(viewWillAppear(_:)))
                .voidValues()
                .take(1)
                .subscribe(onNext: { _ in onDidAppear() })
                .disposed(by: disposeBag)
        }

`

@iniko83  thanks but I am not using rxswift and in your code, it appears you are not doing anything with onDidAppear variable.
@pauljohanneskraft Can you help me with this please? Basically, I cannot create a coordinator that controls 2 other coordinators properly. Can you check this small app I created as an example?
The app coordinator should present the dashboard coordinator and then close the login coordinator, but it is closing the dashboard, I don't understand the reason. Thanks a lot for your time.
CoordinatorTest.zip

@Ricardo1980 I'm not quite sure how this is supposed to work with UIKit, maybe you can elaborate? Did you test this setup in another app not using XCoordinator, where this is working?
Please have a look at the implementations of the individual presentations you are calling (see https://github.com/quickbirdstudios/XCoordinator/blob/master/XCoordinator/Classes/TransitionPerformer%2BTransition.swift, especially the difference between present and presentOnRoot / dismiss and dismissToRoot). Make sure to first think which methods should be called in what order on which viewControllers - then check which transition fits best (since XCoordinator transitions mostly wrap UIKit method calls). If you need more control, take a look at Transition.init(presentables:animationInUse:perform:) where you can directly access the rootViewController and execute whichever method you'd like.
PS: I also noticed that you use DispatchQueue.main.asyncAfter(...) to execute code after a transition, you may want to have a look at the completion handler of the trigger method instead.

Not sure, if that helps you, but the following adaption first dismisses the loginCoordinator, then presents the dashboard. However, it shortly shows a black screen as it is showing the AppCoordinator's rootViewController, maybe you can tweak the animations and the AppCoordinator.rootViewController's appearance to make this work?
override func prepareTransition(for route: AppRoute) -> NavigationTransition {
        switch route {
        case .login:

            let showDashboardCoordinator: (() -> Void) = { [weak self] in
                print("--opening the dashboard coordinator and closing the login coordinator")
                self?.loginCoordinator?.trigger(.dismiss) {
                    self?.trigger(.dashboard)
                }
            }

            loginCoordinator = LoginCoordinator(showDashboardCoordinator: showDashboardCoordinator, initialRoute: .login)
            return .present(loginCoordinator!)

        case .dashboard:
            let dashboardCoordinator = DashboardCoordinator(initialRoute: .dashboard)
            return .present(dashboardCoordinator)
        }
    }

Hello, I will check what you said. Meanwhile, I want that the root view controller presents a navigation controller, then, later, another navigation controller is presented from the root view controller and the first navigation controller is then released.
What I am trying to solve is the problem of loading a lot of unnecesary view controllers in memory, a common example is login and dashboard. When you present the dashboard, we don't want the login behind anymore. How can I solve that? Thanks.

@Ricardo1980 How are you solving such a problem at the moment in other apps, where you want to achieve this? Like which methods/segues or whatever you are using there are executed in what order?

In a similar way to the code I attached.
The only difference is that I dismiss the first navigation controller in the presentation completion block of the second navigation view controller, and works fine.

@Ricardo1980 Can you send me an example of this?

I tried reworking your approach and it did not work (doing nothing) and printed the following output:
2019-06-21 16:27:46.363760+0200 CoordinatorTest[14005:146252] Warning: Attempt to present <UINavigationController: 0x7fe74f813200> on <UINavigationController: 0x7fe74e80e200> whose view is not in the window hierarchy!

This means that the AppCoordinator's rootViewController is not in the view hierarchy, since it is presenting the LoginCoordinator's rootViewController, which makes sense.
What I tried is the following:
case .dashboard:
   let coordinator = DashboardCoordinator(initialRoute: .dashboard)
    rootViewController.present(coordinator.rootViewController, animated: true) {
        self.loginCoordinator?.rootViewController.dismiss(animated: true, completion: nil)
    }
    return .none()

I am creating another example, I upload it as soon as I have it!

@pauljohanneskraft
OK, I tried to do it without your library and I receive exactly the error you described. It seems you are right.
Checking an old app I created ages ago, I see that to achieve this properly, it is not using present first/dismiss second, but addChildViewController, apply animation, removeFromParentViewController and everything is released properly. I didn't remember that, but I was completely sure the memory management was done perfectly.
So, is this technically possible with your library?
In the worse case scenario, can I use dismiss and present, both without any kind of animation? I prefer that rather than a memory problem or watching a strange black background.
In my current scenario it is really important to release completely the previous coordinator/viewcontrollers/viewmodes, because they use web sockets and I have to release everything, including that network connection. That's why I need a proper AppCoordinator that, well, coordinates.
Thank you very much for your ideas.

Yes, but it requires a bit more work (not much, it's just not fully provided by default). You can create custom transitions using Transition.init(presentables:animationInUse:perform:) (You can read the documentation for this method for more information about what to specify when calling this initializer). To keep a similar style as used for the default transitions, you can wrap this into static functions on Transition. To concatenate different transitions together, have a look at Coordinator.chain(routes:), Transition.multiple and Coordinator.deepLink.
Worst-case scenario (present/dismiss without animation): You can simply specify to not animated the routes being triggered:
let showDashboardCoordinator: (() -> Void) = { [weak self] in
    print("--opening the dashboard coordinator and closing the login coordinator")
    self?.loginCoordinator?.trigger(.dismiss, with: TransitionOptions(animated: false)) {
        self?.trigger(.dashboard, with: TransitionOptions(animated: false))
    }
}

Another idea in general would be to have an AppCoordinator as a separate class without rootViewController (not a Coordinator at all), which holds a reference to the window and sets its rootViewController. Since at the moment the AppCoordinator has an empty UINavigationController which is not really used at all - just an idea.

I assume that this issue is hereby resolved - if you have follow-up questions, feel free to reopen or write additional comments.

Yes, thanks a lot for your time. I am going to try what you said. Thanks!

@pauljohanneskraft @Ricardo1980 thank you for this conversation, I was struggling to create a smooth transition in the following scenarios without leaving unnecessary views in memory:

login -> dashboard
dashboard -> login
some view -> app suspended -> user triggers home shortcut action -> some deep link

I got most of the way except the black blank screen on root... until I found this conversation. Thank you, I love to see more of these techniques surfaced in the doc and example (unless I missed it)!

@elishaterada can you explain to us the approach you selected?
Thanks :)

Basically used this part in conjunction with notification pattern so that child view controller can dispatch an event that triggers AppRoute level route change.
    self?.loginCoordinator?.trigger(.dismiss, with: TransitionOptions(animated: false)) {
        self?.trigger(.dashboard, with: TransitionOptions(animated: false))
    }


rte: config: fix setting of TM scope

We used to have the default TM scope "container".
This works - and it is actually the k8s default, but prevents the overriding from every source.
Fix the code allowing override of TM scope.
Note this now requires the value to be always provided in some form. Since we always provide the configmap with the scope and policy settings, this should be ho harm.
Signed-off-by: Francesco Romani<EMAIL_ADDRESS>

Note this now requires the value to be always provided in some form. Since we always provide the configmap with the scope and policy settings, this should be no harm.

what about when the kubeletconfig doesn't set the TMscope/policy? it should be a reasonable configuration, but in this PR the fields are not optional. do I miss something?

Note this now requires the value to be always provided in some form. Since we always provide the configmap with the scope and policy settings, this should be no harm.

what about when the kubeletconfig doesn't set the TMscope/policy? it should be a reasonable configuration, but in this PR the fields are not optional. do I miss something?

that would cause a RTE crash. The operator needs to ensure something is always set. Let me ensure this.


Morocco phone pattern is wrong

The pattern given for Morocco is +212-......... (notice that the phone code is already in the pattern, while in, e.g. UK pattern, it is given as +.. .... ...... without the phone code). This will make formatNumber return the wrong phone number (e.g. +212-212 when only entering +212) and therefore will make inputting certain phone numbers impossible.
The fix is simply to remove the numbers from the pattern (change it to +...-.........).

@geiszla Thanks for this, I had created a fork to work on this then I saw you had a fix already 😄

Quick question @geiszla Did you have to install the peerDependencies before building the package again? if not, what steps did you follow?

Quick question @geiszla Did you have to install the peerDependencies before building the package again? If not, what steps did you follow?

Tbh because this was just a string change, I search and replaced every occurrence, didn't build again 😅. However, we are not using this fix, as this PR didn't get any reaction (and just overall this package is not maintained anymore), we switched to react-phone-number-input.

Tbh because this was just a string change, I search and replaced every occurrence, didn't build again 😅. However, we are not using this fix, as this PR didn't get any reaction (and just overall this package is not maintained anymore), we switched to react-phone-number-input.

@geiszla Totally makes sense, building this is another hustle 😅 .
Thanks for the update


SCSS - Parser breaks on lines with 2 string interpolations

Example:
https://github.com/zurb/foundation-sites/blob/develop/scss/grid/_classes.scss#L85
https://github.com/zurb/foundation-sites/blob/develop/scss/grid/_flex-grid.scss#L195
.#{$-zf-size}-#{$i} { }

Here's a slightly different string interpolation that also throws a fatal error:
https://github.com/zurb/foundation-sites/blob/develop/scss/grid/_layout.scss#L25
&:nth-of-type(#{$n}n+1) { }

Interestingly, the 3 interpolated strings in one line here don't break the parser:
https://github.com/zurb/foundation-sites/blob/develop/scss/grid/_classes.scss#L70
.#{$column}.#{$row}.#{$row} { }

There goes the hope that we'd knocked all those interpolation parse errors on the head! Thanks for the report :+1:

I'm also seeing this when linting SCSS with the 'stylish' formatter. If you believe that there is any additional information that I may be able to provide, please don't hesitate to request it.
Thanks.
LN# 259:
&:nth-of-type(#{$n}n+1) { }
    [exec] [11:47:47] Finished 'sass' after 3.27 s
    [exec] _responsive_grid_functions.scss
    [exec]   259:1  error  Please check validity of the block starting from line #259  Fatal
    [exec] ✖ 1 problem (1 error, 0 warnings)
    [exec] [11:47:48] 'sass-lint' errored after 3.98 s
    [exec] [11:47:48] Error in plugin 'sass-lint'

I also encountered this issue after updating today, is there any work around for this issue?
#{$btn-namespace}-#{$btn-name} {
    @include button($btn-color-set);
}

FWIW, as per @colin-marshall 's second example, I've encountered it as well.
&:nth-of-type(#{$per-row}n+1) {
	clear: both;
}

No error is thrown if the string-concatenation is performed in the interpolated block.
&:nth-of-type(#{$per-row + "n+1"}) {
	clear: both;
}

@scottyeck good find! So would using the syntax that makes it break be considered "bad" SCSS? Or would it not compile if that was the case?

From a readability perspective, I'd say the first of my two options is preferable, since it's more obvious that the interpolation is part of the construction of an _n_th of type formula. The pickiest of picky, I'm aware.
That said, my guess thus far is that the parser is breaking on the + token, as it's interpreting it as an operator when, in this case, we just want regular old output. I'm going to file a bug with gonzales-pe and try to track it down.

Just to let you guys know, I'm working on a fix for this. Seem to have fixed the the hyphen issue and now looking at the pseudo class issue. If you have any more examples I'd really appreciate if you could post them so I can make sure the testing is thorough :+1:

@bgriffith Thanks. I'm happy to lend a hand if necessary as well. Lmk. 👌

Thanks for the offer @scottyeck ! Only just come up for air... so I've fixed the AST output and have tests for the following pseudo combos:
:nth-child(#{$i})
:nth-child(#{$i}n)
:nth-child(#{$i}n+1)
:nth-child(#{$i}n-1)
:nth-child(-#{$i}n)
:nth-child(-#{$i}n+1)
:nth-child(-#{$i}n+#{$j})
:nth-child(-#{$i}n-1)
:nth-child(-#{$i}n-#{$j})

Hopefully be able to get a patch out to gonzales in next few days.

Same issue for this example:
.square-component {
  @mixin size($diameter) {
    &-#{$diameter} {
      height: $diameter + px;
      width: $diameter + px;
    }
  }

  @include size(70);
}

@bgriffith any update on the status of this? Thanks!!!

@colin-marshall So I think it's all fixed 🌟! I've run the latest build of Sasslint (develop branch) and linted the foundation-sites scss folder with no parse issues. Just looking to merge a few more PR's before we release a new version.
I also plan on checking and closing all the related issues here and on the gonzales repo just to make doubly sure I've not missed anything :+1:

@colin-marshall So in short - stay tuned haha

So all of the examples in this issue are now parsing correctly in sass-lint 1.9.0 except for the issue highlighted by @nmcclay

Thanks guys! I'll test it out this week.

@DanPurdy @bgriffith Came across the same fatal error with the code below. Running version 1.10.2
.#{$spacing}-#{$orientation}-#{$type} { #{$spacing}-#{$orientation}: $size !important; }

Looks like the problem is with the property rule (BTW this is usually something like padding-left, margin-right, etc.). It doesn't error out if it's a straightforward property.
Any workaround?

@abpetkov It's a fatal error with our AST gonzales-pe If you could file an issue there that would be really helpful.
It's the second piece of interpolation in your property that is causing it.
.#{$spacing}-#{$orientation}-#{$type} {
  #{$spacing}: $size !important;
}

The above parses fine for example

@DanPurdy Right, confirming that the property interpolation causes it. Will open an issue about that. Thanks!

Any update on the status of property interpolation?
I run into it in the following line:
border-#{opposite($d-y)}-#{opposite($d-x)}-radius: 0;

Which forces me to use this uglier line as a workaround:
border-#{opposite($d-y) + '-' + opposite($d-x)}-radius: 0;

This is fixed in the newly released version v1.11.0. Please let me know if you still have issues. Thanks!


chore: bumping length of the message we store on the nodeclaim

Fixes #N/A
Description
Azure Returns back long errors on the nodeclaim, and they are truncated to 300 characters. The Azure SDK For Go error messages have some wrappers around them that add quite a few additional characters onto the error message.
So as a result, we get a very abruptly truncated error message.
Status:
  Conditions:
    Last Transition Time:  2023-11-21T22:06:39Z
    Message:               Node not launched
    Reason:                NotLaunched
    Status:                False
    Type:                  Initialized
    Last Transition Time:  2023-11-21T22:06:39Z
    Message:               creating instance, virtualMachine.BeginCreateOrUpdate for VM "aks-general-purpose-ljm95" failed: PUT https://management.azure.com/subscriptions/xxxxxxx1/resourceGroups/MC_sillygoose-rg-2_sillygoose-nap-cluster_uksouth/providers/Microsoft.Compute/virtualMachines/aks-genera...
    Reason:                LaunchFailed
    Status:                False
    Type:                  Launched
    Last Transition Time:  2023-11-21T22:06:39Z

I would prefer to extend this to 1000 characters to show the important bits of the azure errors.

How was this change tested?

make presubmit
inflate scale up to view nodeclaim.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
To ensure accuracy in future PRs, please see these guidelines.
A quick fix for this PR: rebase it; your next report should be accurate.

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.171%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/controllers/nodeclaim/lifecycle/launch.go
1
2
50.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8349

Relevant Lines:
10414

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
To ensure accuracy in future PRs, please see these guidelines.
A quick fix for this PR: rebase it; your next report should be accurate.

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.152%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/controllers/nodeclaim/lifecycle/launch.go
1
2
50.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8347

Relevant Lines:
10414

💛  - Coveralls

Discussed offline. Looking at the upstream API guidance documentation, there is an ask that the message that is returned by the status condition be in a "human readable" format. I wonder if we should parse down some of the information that we are sending back from the CloudProvider Create call right now since it looks like we are sending back a JSON body which might not fit the standard for human readable.

@jonathan-innis I agree and its not exactly great to increase etcd load at scale to store long messages. Wondering how these crds perform at 5k cluster scale.
I think the real solution is to add some string parsing and construct our own error messages. Not returning the sdk errors directly, and instead return a more selective message in the cloud provider. Since we detect the type, its fairly easy to return our own human readable error message.


Fix jpeg conformance.

Previous code will convert all output to i420, using software, it assume all decoder output is NV12. However, this not true for jpeg, jpeg will output many formats like IMC3, 422H, 422V, 444P etc. This patch and related patch in libyami-utils will skip the conversion if user do not assign one. So we can compare the yuv with software decoder.

Hi @uartie
I have related code in https://github.com/01org/libyami-utils/pull/18/files. Please help to review it if you have time.
thanks

Hi @uartie ,
All things fixed, except unit test. I will sent a separate pull request after this merged.

lgtm +1

+1

@wudping , please help do a full round regression test base on this and https://github.com/01org/libyami-utils/pull/18
thanks.

@xuguangxin , okay, you are welcome.

verify + 1

merged and closed.


Fix/mip 16/bugs on remote tables.py

Changelog:

Renamed decorator for sql injection to sql_injection_guard
Renamed url to db_location.
Now the db_location should not include mapi:monetdb// or /db_name
The format of the db location should be : :

@ThanKarab @apmariglis @jassak
This is a bug.
Whenever I push this happens

It's not a bug, just black rejecting your code and reformatting it. If you want to avoid this, setup black on your editor to format before committing. Instructions here.


Variable declarations only parse a single construct

Fixed this once before... what happened.

Created a branch with a hacky fix, cleaning up and fixing what it broke. We'll select between ours at final implementation David. Actually, you will. Merger.


Help

When i try to compile it, it says Cannot find d3dx9.h

https://www.microsoft.com/en-au/download/details.aspx?id=6812


IRGen: Hint condfail branches.

Mark the condfail condition as expected-false, and arrange the generated code so that the trap
basic block is emitted out-of-line, and the happy path falls through.

@swift-ci Please test


Re-enable IntegrationTests

Summary of the changes

Just seeing if things pass on CI for now.

Fixes: https://github.com/dotnet/razor-tooling/issues/6793

Why is the Protocol redirect needed? Shouldn't there already be one in devenv.exe.config?

The Protocol redirect was an experiment. I wasn't able to get the issue I'm seeing on CI to repro locally so I was working blind (that kind of "I dono, lets just see" experiment is why I left this as a draft).

I think the code-folding thing is a real issue, we may be returning before the C# response is complete, and the client doesn't seem to query us until we make an edit.

It appears that our Initialize step might be made flaky by the "What's New?" page stealing focus. I'll look into if I can disable that (preferred since it will probably interfere with other scenarios too) or find some way to ensure we're focusing on the proper window when evaluating the ContentType.

I figured out why SetBreakpoint_FirstCharacter_SpanAdjusts was randomly selected to fail initialization: it's the first test. So skipping it will just select a new test to fail. Roslyn uses a built-in retry system which should hopefully save us here though.

I was worried that might have been it :(

Actually, knowing that this is a problem that happens on first VS launch, and knowing what we know now about the CodeFolding thing I bet it's the same root cause with C# document de-sync. Regardless, the retry seems to be fixing it (makes sense since the Roslyn LS stays spun up) so we can go ahead an ship it once I get an approving review (forgot this was a draft).


acrobat:0.1.0

I am submitting

[x] a new package
[ ] an update for a package

I have read and followed the submission guidelines and, in particular, I

[x] selected a name in conformance with the guidelines
[x] added a typst.toml file with all required keys
[x] added a README.md with documentation for my package
[x] have chosen a license and added a LICENSE file or linked one in my README.md
[x] ensured that my submission does not infringe upon the rights of a third party
[x] tested my package locally on my system and it worked
[x] named this PR as name:version of the submitted package
[x] agree that my package will not be removed without good reason

Description: Explain what the package does and why it's useful.

Package for typesetting system yielding PDFs, called Acrobat, may infringe on Adobe Trademark

Possible infringement on Adobe Trademark

Package for typesetting system yielding PDFs, called Acrobat, may infringe on Adobe Trademark

Good point. I was so happy with my pun that I genuinely forgot Acrobat reader existed. I'll find another name.

Thank you!


common gRPC stuff ?

Basically I have an appli with 2 clients, connected to 2 etcd (2 etcd::Clients), say etcd1 and etcd2. The stores are not in the same cluster (run as mono instance in docker containers, 1 node per cluster).
problem: When I shut down etcd1 all the watchers of etcd2 are cancelled and restarted  !
The error 14 is raised from etcd1 client, but how come it can affect the other ? Is it sth in common with gRPC ?
Thanks in advance

Do you have to different etcd instance and compose them into the same etcd cluster?
Can you share the piece of code about how you

setup those two clients
how you setup those watchers
and how you close/shutdown the first etcd client?

Do you have to different etcd instance and compose them into the same etcd cluster?
Can you share the piece of code about how you
* setup those two clients

* how you setup those watchers

* and how you close/shutdown the first etcd client?

Basically, I run 2 etcd in isolated containers. Each etcd is its own cluster (so 1 etcd per cluster only). The shutdown is realized by stopping the docker container. The 2 clients are created based on the IPv4 of each etcd (using Docker local network).

Let me understand the case, you have two etcd, e.g., http://etcd-1:2379 and http://etcd-2:2379, and two watchers are created as
// ...
auto watcher1 = etcd::Watcher("http://etcd-1:2379;http://etcd-2:2379", "key", callback)

// ...
auto watcher2 = etcd::Watcher("http://etcd-1:2379;http://etcd-2:2379", "key", callback);

And when you stop etcd-1, the watcher 2 is triggered for reconnect as well, right?
If the above assumption is true, it is a known issue that multi-endpoints doesn't work very well for failover for watcher and keepalive (see also: https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/issues/134).

As a workaround, you use use different endpoints order to initialize those two different client to avoid the second reconnect.
// ...
auto watcher1 = etcd::Watcher("http://etcd-1:2379;http://etcd-2:2379", "key", callback)

// ...
auto watcher2 = etcd::Watcher("http://etcd-2:2379;http://etcd-1:2379", "key", callback);

And if the two etcd instances belong to two isolated clusters, you should never use both endpoints to the same client...

And if the two etcd instances belong to two isolated clusters, you should never use both endpoints to the same client...

This is the point, 2 different clients also are used !!!! But still the second one has its watchers wait callbacks called with the cancelled flag.
The clients only have in common that they live in the same application. So I was wondering if sth in the gRPC library, maybe a static thing, can be the cause of this.

Could you please share the code/minimal example that can reproduce the issue?\
Failed to reproduce the error with the following code:
TEST_CASE("create two watcher")
{
  etcd::Watcher w1("http://<IP_ADDRESS>:24799", "/test", printResponse, true);
  etcd::Watcher w2("http://<IP_ADDRESS>:25799", "/test", printResponse, true);

  std::this_thread::sleep_for(std::chrono::seconds(120));
}

Closing as lack of response from the end-user and the issue itself cannot be reproduced.


🐛 BUG: First commit of Create-Cloudflare contains node_modules

Which Cloudflare product(s) does this pertain to?
Other
What version(s) of the tool(s) are you using?
cloudflare@2
What version of Node are you using?
v20.5.1
What operating system are you using?
Mac
Describe the Bug
Create a Cloudflare worker project with npm create cloudflare@2. Initial commit (by Create-Cloudflare CLI) of generated project contains npm node_modules.
The executed command
❯ npm create cloudflare@2

using create-cloudflare version 2.0.14

╭ Create an application with Cloudflare Step 1 of 3
│
├ In which directory do you want to create your application?
│ dir ./test-cf
│
├ What type of application do you want to create?
│ type "Hello World" Worker
│
├ Do you want to use TypeScript?
│ yes typescript
│
├ Copying files from "hello-world" template
│
├ Do you want to use TypeScript?
│ yes typescript
│
├ Retrieving current workerd compatibility date
│ compatibility date 2023-08-21
│
├ Do you want to use git for version control?
│ yes git
│
╰ Application created

╭ Installing dependencies Step 2 of 3
│
├ Installing dependencies
│ installed via `npm install`
│
├ Committing new files
│ git initial commit
│
╰ Dependencies Installed

╭ Deploy with Cloudflare Step 3 of 3
│
├ Do you want to deploy your application?
│ no deploy via `npm run deploy`
│
├  APPLICATION CREATED  Deploy your application with npm run deploy
│
│ Navigate to the new directory cd test-cf
│ Run the development server npm run start
│ Deploy your application npm run deploy
│ Read the documentation https://developers.cloudflare.com/workers
│ Stuck? Join us at https://discord.gg/cloudflaredev
│
╰ See you again soon!

git logs
❯ git log --stat
commit 3208adc98421f4f95f12d4bf3d98022e1ded3ede (HEAD -> main)
Author: FDKevin<EMAIL_ADDRESS>Date:   Mon Aug 28 21:18:18 2023 +0800

    Initial commit (by Create-Cloudflare CLI)

 .editorconfig                                                                       |     13 +
 .prettierrc                                                                         |      6 +
 node_modules/.bin/acorn                                                             |      1 +
 node_modules/.bin/esbuild                                                           |      1 +
 node_modules/.bin/mime                                                              |      1 +
 node_modules/.bin/mustache                                                          |      1 +
 node_modules/.bin/nanoid                                                            |      1 +
 node_modules/.bin/prebuild-install                                                  |      1 +
 node_modules/.bin/rc                                                                |      1 +
 node_modules/.bin/semver                                                            |      1 +
 node_modules/.bin/tsc                                                               |      1 +
 node_modules/.bin/tsserver                                                          |      1 +
 node_modules/.bin/workerd                                                           |      1 +
 node_modules/.bin/wrangler                                                          |      1 +
 node_modules/.bin/wrangler2                                                         |      1 +
 node_modules/.package-lock.json                                                     |   1277 +
 node_modules/@cloudflare/kv-asset-handler/LICENSE_APACHE                            |    176 +
 node_modules/@cloudflare/kv-asset-handler/LICENSE_MIT                               |     25 +
<EMAIL_ADDRESS>                               |    329 +
<EMAIL_ADDRESS>                         |     36 +
<EMAIL_ADDRESS>                           |    267 +
<EMAIL_ADDRESS>                         |     14 +
<EMAIL_ADDRESS>                           |    146 +
<EMAIL_ADDRESS>  |      1 +
<EMAIL_ADDRESS>    |     22 +
<EMAIL_ADDRESS>           |      1 +
<EMAIL_ADDRESS>             |    446 +
<EMAIL_ADDRESS>        |      1 +
<EMAIL_ADDRESS>          |     34 +
<EMAIL_ADDRESS>       |      1 +

Additional information
❯ node -v
v20.5.1
❯ git -v
git version 2.42.0
❯ npm -v
9.8.0
❯ sw_vers (macOS info)
ProductName:            macOS
ProductVersion:         14.0
BuildVersion:           23A5328b

Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
No response

I think this is currently blocked by #3539.


RHEL8/Centos8/OEL8 nftables.conf filepath

I've been testing out firewall cookbook version 5.0.0 with OEL8. My goal is to use nftables, but I had to modify where the resource lands the created nftables.conf file. It appears that OEL8's nftables uses a different default filepath(shared with RHEL8 and CentOS8).
https://github.com/sous-chefs/firewall/blob/62a3799cf4afb0f6bd121fc4c0c3179c25e070a9/resources/nftables.rb#L43
RHEL8/Centos8/OEL8 = /etc/sysconfig/nftables.conf
Debian = /etc/nftables.conf
I understand that Debian was the only OS tested with nftables, but I'd like to expand it to OEL8. I'm curious to see what approach might be best to add this into the nftables resource.

Duplicate the resource and make it OS specific?
Add a OS/version check to that action?
Something else entirely?

The way to go with it would be to move the file path to a resource property, then set the default value of the property to the OS specific default (via a helper method).
This should fix the bug but also allow others to override the path should they need to in the future.

I wouldn't use value_for_platform here as it doesn't fit nicely into a resource property definition (useful for recipe/attribute though). Just a normal library helper and a case will do the job cleanly example.

Thanks for the info! I'll see what I can whip up based off the examples.

Finally got around adding a resource property for the nftables.conf file. Created PR: https://github.com/sous-chefs/firewall/pull/255


Shortcut's reset button closes the alert without saving the change.

https://github.com/code-charity/youtube/blob/417ae81c536bb0a04751157bb7002f15cd75d3a9/js%26css/satus.js#L2337
satus.storage.remove(component.storage); expects key, not whole .storage element, trivial fix incoming

same

same?🤔 (cancel doesnt need to change storage like reset does)

yep, cancel didnt work either satus.storage.get needs a key string, but what was being passed was key/value pair.


Peras formal spec update

Updated the formal specification

@bwbush : Probably we should drop the link with the exact reference to the the Peras specification and just link the repository.  The two specifications are diverging (here we use the Agda stdlib, whereas in peras-design I started to mostly use the Haskell Prelude from agda2hs)

@bwbush : Probably we should drop the link with the exact reference to the the Peras specification and just link the repository. The two specifications are diverging (here we use the Agda stdlib, whereas in peras-design I started to mostly use the Haskell Prelude from agda2hs)

Fixed in 065153be6573768408735618be208e904222c6a5.


[Question] Rationale Behind Clippy.toml and type-complexity-threshold = 5000

Hey there, this is just a question, I was fixing Bevy clippy lints for a project and I was curious about the decision to use the Clippy.toml and type-complexity-threshold = 5000 instead of just allowing clippy::type_complexity. Is there an advantage to setting it so high and not just allowing it?
This is low priority question so get to this whenever you can. :)

IIRC this worked better in CI, because it would be read there? I don't remember now!


i18n(ko-KR): update editor-setup.mdx

Description (required)

update editor-setup.mdx
#8238

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ko
editor-setup.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


New SQLite Backend + 24 Word Seed Option

Added new SQLite backend from stackmate-core 0.12.2 release.
Affects the following cubits:

info
receive
send

Receive uses both Sqlite and MemoryDb. Memory Db is used to manually increment indexes while SQLite loads LastUnusedAddress.
This update results in a significant speed improvement since network sync keeps track of last_synced_block in SQLite.
Pending: SQLite db file encryption.
AFAIK Android uses a permissions folder to store the sqlite db, which other apps cannot access. This raises the questions about how necessary encrypting the db file is. More research needs to be done on this.
Please extensively test this update as SQLite implementation is still in BETA.

I have also added the update to support 24 word seed phrase in this update.

LGTM. Tested all updates.

Tested new updates. UID is better than using fingerprint and path. This will also serve as a unique reference when cypherpost wants to attach to a wallet.

ACK from my side.
@yashwanthambati You can merge after you test.

burger/recovery/12/import/privatekeys

Joy don Lap

?


Delayed response from localai

LocalAI version:

Additional context

I am using helm chart (latest image) and localai pod is running fine in kubernetes cluster
curl http://local-ai.local-ai.svc.cluster.local:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ggml-koala-7b-model-q4_0-r2.bin",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
}'
i am getting response of any question i am asking lets say "what is artificial intelligence" but  very delayed response ( 3-4 minutes i am getting from local ai

helm command :- helm install local-ai go-skynet/local-ai -f values.yaml

any update on this ?

any update on this ?

@harshsing2891 Still waiting on the requested files. We need to look at the models yaml file. and if you are using docker, docker compose file <3 If you are running the model raw, please set up a model per - https://localai.io/howtos/easy-model-import-downloaded/ and try again after restarting localai.

Hi
I m working on kubernetes cluster v 1.24 . I have deployed local ai using
helm template with latest image. Can you please provide values.yaml file of
any llm based models. As in helm template only gpt4all modle is included. I
need prompt response from local ai for some random questions (text
generator).
On Thu, Oct 19, 2023, 12:03 AM lunamidori5 @.***> wrote:

any update on this ?
@harshsing2891 https://github.com/harshsing2891 Still waiting on the
requested files. We need to look at the models yaml file. and if you are
using docker, docker compose file <3 If you are running the model raw,
please set up a model per -
https://localai.io/howtos/easy-model-import-downloaded/ and try again
after restarting localai.
—
Reply to this email directly, view it on GitHub
https://github.com/go-skynet/LocalAI/issues/1157#issuecomment-1769107655,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALTMKY7M5H6VCWME2GBTPADYAAOGHAVCNFSM6AAAAAA5Z2VKIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRZGEYDONRVGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

please find below values.yaml file
replicaCount: 1
deployment:
image: quay.io/go-skynet/local-ai:latest
env:
threads: 4
context_size: 512
modelsPath: "/models"
download_model:
# To use cloud provided (eg AWS) image, provide it like:<PHONE_NUMBER>.dkr.ecr.us-REGION-X.amazonaws.com/busybox
image: busybox
prompt_templates:
# To use cloud provided (eg AWS) image, provide it like:<PHONE_NUMBER>.dkr.ecr.us-REGION-X.amazonaws.com/busybox
image: busybox
pullPolicy: IfNotPresent
imagePullSecrets: []
# - name: secret-names
resources:
{}
We usually recommend not to specify default resources and to leave this as a conscious
choice for the user. This also increases chances charts run on environments with little
resources, such as Minikube. If you do want to specify resources, uncomment the following
lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
Prompt templates to include
Note: the keys of this map will be the names of the prompt template files
promptTemplates:
ggml-gpt4all-j.tmpl: |
{{.Input}}
Models to download at runtime
models:
Whether to force download models even if they already exist
forceDownload: false
The list of URLs to download models from
Note: the name of the file will be the name of the loaded model
list:
- url: "https://gpt4all.io/models/ggml-gpt4all-j.bin"
# basicAuth: base64EncodedCredentials
Persistent storage for models and prompt templates.
PVC and HostPath are mutually exclusive. If both are enabled,
PVC configuration takes precedence. If neither are enabled, ephemeral
storage is used.
persistence:
pvc:
enabled: false
size: 6Gi
accessModes:
- ReadWriteOnce
  annotations: {}

  # Optional
  storageClass: ~

hostPath:
  enabled: false
  path: "/models"

service:
type: ClusterIP
If deferring to an internal only load balancer
externalTrafficPolicy: Local
port: 80
annotations: {}
If using an AWS load balancer, you'll need to override the default 60s load balancer idle timeout
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "1200"
ingress:
enabled: false
className: ""
annotations:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
- secretName: chart-example-tls
hosts:
- chart-example.local
nodeSelector: {}
tolerations: []
affinity: {}
image:
pullPolicy: IfNotPresent

I am not sure why you keep asking for values.yaml We are requesting your models yaml file you made by following the how to, on how to set up a model...

Hi
I m using kubernetes cluster and have deployed local ai using helm template.
So I m not using any model yaml. Please suggest how I can use better
methods In kubernetes cluster.
On Sun, Oct 22, 2023, 4:18 AM lunamidori5 @.***> wrote:

I am not sure why you keep asking for values.yaml We are requesting your
models yaml file you made by following the how to, on how to set up a
model...
—
Reply to this email directly, view it on GitHub
https://github.com/go-skynet/LocalAI/issues/1157#issuecomment-1773939516,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALTMKY37NBSII4FVGLKWACDYARGNJAVCNFSM6AAAAAA5Z2VKIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTHEZTSNJRGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

any update on this ?

any update on this ?????????????????????????????????????????


can't export embedded power bi dashboard to powerpoint in sharepoint online

Unbale to export embedded power bi dashboard to powerpoint in sharepoint online
Could any one help me in this ?
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 0fc5abbd-e082-d1e1-109d-6f6cec8854a1
Version Independent ID: f8affce3-98f2-0cc6-b4de-d9af7ced0fbe
Content: Embed a report web part in SharePoint Online - Power BI
Content Source: powerbi-docs/collaborate-share/service-embed-report-spo.md
Service: powerbi
Sub-service: pbi-collaborate-share
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Thanks for your comment, @Kizar123. This issue has been assigned to the doc author for review.

Hi, @Kizar123 -- just trying to understand the scenario. You were able to embed the Power BI report in a SharePoint site page successfully, yes? Was it a report, or a dashboard? This article is specifically about embedding a report, not a dashboard.
And after that, you want to export the report to PowerPoint?

Unfortunately, we have been unable to review this issue in a timely manner. We sincerely apologize for the delayed response. Both the product and documentation has changed since this issue was opened. Therefore, we are closing this issue. If you feel that the problem persists, please respond to this issue with additional information.
Please continue to provide feedback about the documentation. We appreciate your contributions to our community.


Deployment tweaks

remove pull secret from int/prod
remove rpImageAuth secret, grant AcrPull to RP managed identity instead
convert rpImage configurable to rpImagePrefix so that we don't specify the RP commit in the config

@mjudeikis ptal, will merge tomorrow.  There are probably some bugs here, either you might spot them or we'll fix when we deploy to int.

@jim-minter I don't see anything obviuos here, test in production? :)


Fix test discovery crash in pytest adapter on doctest (lineno is None)

For #7487

~[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)~
~[x] Title summarizes what is changing~
~[x] Has a news entry file (remember to thank yourself!)~
~[x] Appropriate comments and documentation strings in the code~
[ ] Unit tests & system/integration tests are added/updated

I am not sure how to change the test suite to add a none regression for this one.

Codecov Report

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

@@            Coverage Diff             @@
##           master    #8920      +/-   ##
==========================================
- Coverage   58.16%   57.85%   -0.31%
==========================================
  Files         529      529
  Lines       27634    27634
  Branches     4162     4157       -5
==========================================
- Hits        16073    15988      -85
- Misses      10671    10755      +84
- Partials      890      891       +1

Impacted Files
Coverage Δ

src/client/testing/serviceRegistry.ts
49.09% <0%> (-47.28%)
:arrow_down:

src/client/testing/codeLenses/main.ts
40% <0%> (-30%)
:arrow_down:

src/client/datascience/jupyter/jupyterUtils.ts
64.7% <0%> (-29.42%)
:arrow_down:

...t/datascience/jupyter/jupyterDataRateLimitError.ts
50% <0%> (-25%)
:arrow_down:

src/client/formatters/serviceRegistry.ts
75% <0%> (-25%)
:arrow_down:

...ience/jupyter/jupyterDebuggerRemoteNotSupported.ts
60% <0%> (-20%)
:arrow_down:

...cience/jupyter/jupyterDebuggerNotInstalledError.ts
50% <0%> (-16.67%)
:arrow_down:

src/client/common/utils/icons.ts
83.33% <0%> (-16.67%)
:arrow_down:

src/client/api.ts
78.57% <0%> (-14.29%)
:arrow_down:

src/client/datascience/cellFactory.ts
58.75% <0%> (-12.5%)
:arrow_down:

... and 7 more

Continue to review full report at Codecov.

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

The Smoke Smoke Linux-Py3.7 failure seems unrelated but I am not sure where is the actual failure in the CI log.

@ogrisel Thanks for the PR!


Ensure only managedby objects are handled by VRG and DRPC (where applicable)

DRPC has annotations based on which MW and MCV are managed
(from HackMD list)

DRPC cloned placement rule can be managed by DRPC as it is in the same namespace?

Closing this as required resources are created appropriately.


Features/middlewares

[x] Load generic middleware from config
[x] Load prometheus middleware from config
[ ] Forward authorization from config
[ ] Add a HttpAddHeader from config

Codecov Report

Merging #4 (80fcdba) into main (c5e4ff1) will decrease coverage by 0.20%.
The diff coverage is 98.18%.

@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
- Coverage   98.29%   98.08%   -0.21%
==========================================
  Files           2        5       +3
  Lines         117      157      +40
==========================================
+ Hits          115      154      +39
- Misses          2        3       +1

Impacted Files
Coverage Δ

src/pyramid_blacksmith/binding.py
97.43% <94.73%> (-0.78%)
:arrow_down:

src/pyramid_blacksmith/__init__.py
100.00% <100.00%> (ø)

src/pyramid_blacksmith/middleware.py
100.00% <100.00%> (ø)

src/pyramid_blacksmith/typing.py
100.00% <100.00%> (ø)

src/pyramid_blacksmith/utils.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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