sketch on face extrude semantics

from user of app
some of these might be behaving as intended until we have subtract
fn rect = (sk, pos, l, w) => {
  const rr = sk
    |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %)
    |> lineTo([pos[0] + w / 2, pos[1] - (l / 2)], %, 'edge1')
    |> lineTo([pos[0] + w / 2, pos[1] + l / 2], %, 'edge2')
    |> lineTo([pos[0] - (w / 2), pos[1] + l / 2], %, 'edge3')
    |> close(%, "edge4")
  return rr
}

// ✅
const p1 = rect(startSketchOn('XY'), [0, 0], 50, 50)
  |> extrude(10, %)
const p1_1 = rect(startSketchOn(p1, "end"), [0, 0], 20, 20)
  |> extrude(10, %)

// ✅
const p2 = rect(startSketchOn('XY'), [60, 0], 50, 50)
  |> extrude(10, %)
const p2_1 = rect(startSketchOn(p2, "end"), [60, 0], 20, 20)
  |> extrude(-10, %)

// ❌ negative extrude through more than width of extrusion
const p5 = rect(startSketchOn('XY'), [120, 0], 50, 50)
  |> extrude(10, %)
const p5_1 = rect(startSketchOn(p5, "end"), [120, 0], 20, 20)
  |> extrude(-20, %)

// ❌ extrude with edge coincident boundary this shows red lines
const p3 = rect(startSketchOn('XY'), [0, 60], 50, 50)
  |> extrude(10, %)
const p3_1 = rect(startSketchOn(p3, "end"), [0, 45], 20, 20)
  |> extrude(10, %)

// ❌ negative extrude with edge coincident boundary (this doesn't cut out)
const p4 = rect(startSketchOn('XY'), [60, 60], 50, 50)
  |> extrude(10, %)
const p4_1 = rect(startSketchOn(p3, "end"), [60, 45], 20, 20)
  |> extrude(-10, %)

// ❌ extrude with overhang (seems to work as expected [tested via export] but shows red lines)
const p6 = rect(startSketchOn('XY'), [0, -60], 50, 50)
  |> extrude(10, %)
const p6_1 = rect(startSketchOn(p6, "end"), [0, -40], 20, 20)
  |> extrude(10, %)

// ❌? extrude with no overlap (visually looks like two solids, exports as one)
const p7 = rect(startSketchOn('XY'), [60, -60], 50, 50)
  |> extrude(10, %)
const p7_1 = rect(startSketchOn(p7, "end"), [60, -100], 20, 20)
  |> extrude(10, %)

// ❌ negative extrude with overhang (shows red lines and does an xor-like thing, would expect either cut or join)
const p8 = rect(startSketchOn('XY'), [120, -60], 50, 50)
  |> extrude(10, %)
const p8_1 = rect(startSketchOn(p8, "end"), [120, -40], 20, 20)
  |> extrude(-10, %)

// ❌? negative adjacent extrude (shows red lines but seems to work)
const p9 = rect(startSketchOn('XY'), [180, -60], 50, 50)
  |> extrude(10, %)
const p9_1 = rect(startSketchOn(p9, "end"), [180, -95], 20, 20)
  |> extrude(-10, %)

// ❌ negative overlapping extrude (shows red lines and exports the edges)
const p10 = rect(startSketchOn('XY'), [240, -60], 50, 50)
  |> extrude(10, %)
const p10_1 = rect(startSketchOn(p10, "end"), [240, -60], 50, 50)
  |> extrude(-10, %)

assigning @jgomez720 to go thru and find out whether its an engine behavior, a real bug, or something where we are waiting on ssi

// ❌ negative extrude through more than width of extrusion
const p5 = rect(startSketchOn('XY'), [120, 0], 50, 50)
  |> extrude(10, %)
const p5_1 = rect(startSketchOn(p5, "end"), [120, 0], 20, 20)
  |> extrude(-20, %)

Technically, working as intended. Engine does not supporting negative extrudes past the geometry. It should always assume cutting the existing geometry, and that's it. Subtract should solve this
// ❌ extrude with edge coincident boundary this shows red lines
const p3 = rect(startSketchOn('XY'), [0, 60], 50, 50)
  |> extrude(10, %)
const p3_1 = rect(startSketchOn(p3, "end"), [0, 45], 20, 20)
  |> extrude(10, %)

I consider this a bug now. This works, so it shouldn't show red lines. Filed here:
https://github.com/KittyCAD/engine/issues/2130
// ❌ negative extrude with edge coincident boundary (this doesn't cut out)
const p4 = rect(startSketchOn('XY'), [60, 60], 50, 50)
  |> extrude(10, %)
const p4_1 = rect(startSketchOn(p3, "end"), [60, 45], 20, 20)
  |> extrude(-10, %)

We will need subtract for this. If we implement a quick fix now, it's going to look similar to the first case above, where the extrusion passes the geometry, and still leaves behind artifacts.
// ❌ extrude with overhang (seems to work as expected [tested via export] but shows red lines)
const p6 = rect(startSketchOn('XY'), [0, -60], 50, 50)
  |> extrude(10, %)
const p6_1 = rect(startSketchOn(p6, "end"), [0, -40], 20, 20)
  |> extrude(10, %)

Filed in the same issue above. This seems to work now, so the red lines are no longer needed.
// ❌? extrude with no overlap (visually looks like two solids, exports as one)
const p7 = rect(startSketchOn('XY'), [60, -60], 50, 50)
  |> extrude(10, %)
const p7_1 = rect(startSketchOn(p7, "end"), [60, -100], 20, 20)
  |> extrude(10, %)

Not entirely sure what to categorize this as, because I think I've seen multiple behaviors when you do something like this. The moment you create an extrude or revolve in OnShape that isn't connected to an existing body, it creates a new body entirely. I don't know how this is distinguished in a STEP file, but I have a feeling we aren't doing it the same way as OnShape is handling it.
// ❌ negative extrude with overhang (shows red lines and does an xor-like thing, would expect either cut or join)
const p8 = rect(startSketchOn('XY'), [120, -60], 50, 50)
  |> extrude(10, %)
const p8_1 = rect(startSketchOn(p8, "end"), [120, -40], 20, 20)
  |> extrude(-10, %)

This is a bug. Should be fixed with SSI.
// ❌? negative adjacent extrude (shows red lines but seems to work)
const p9 = rect(startSketchOn('XY'), [180, -60], 50, 50)
  |> extrude(10, %)
const p9_1 = rect(startSketchOn(p9, "end"), [180, -95], 20, 20)
  |> extrude(-10, %)

Filed in the same github issue above.
// ❌ negative overlapping extrude (shows red lines and exports the edges)
const p10 = rect(startSketchOn('XY'), [240, -60], 50, 50)
  |> extrude(10, %)
const p10_1 = rect(startSketchOn(p10, "end"), [240, -60], 50, 50)
  |> extrude(-10, %)

Need SSI for this one.

After discussing with Josh, he mentioned that this ticket is all engine issues.

Yes remove

if it's all engine issues should this be transferred to the engine?


But I still got
2023-08-29 16:39:54,976   INFO  Epoch [1/128][920/2402] LR: 0.004, ETA: 4 days, 2:55:56, Data: 0.05 (0.04), Iter: 0.87 (1.16), Accuracy: 0.77, loss_seg=0.80, binary_loss=0.28, caption_view=0.13, caption_entity=0.11, loss=1.32, n_captions=13.0(13.1)
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 322, in reduce_storage
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 194, in DupFd
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 48, in __init__
OSError: [Errno 24] Too many open files

Have you ever had a similar problem? Looking forward to your reply!

Yes, I have met similar problem, but it should be already addressed in our code. Have you modified any codes?

Thank you for your reply!
I didn't change the code. BTW, May I ask when you ran into this problem, what parts of the code did you change to solve the problem?

Hello, It seems that this is caused by a implicitly deep copy of a list in the dataloader. For example, in OpenPCDet,
https://github.com/open-mmlab/OpenPCDet/blob/bce886d6e36e3deaec2ce6f8b54b133fcadf62d6/pcdet/datasets/kitti/kitti_dataset.py#L376
They need to do a explicitly deepcopy instead of directly get the info from the info list.
As for our PLA, since I cannot reproduce this problem now. I think you can first try to run https://github.com/CVMI-Lab/PLA/blob/main/tools/cfgs/scannet_models/spconv_clip_adamw.yaml this cfg. And check whether this problem exist. If this problem disappear, the problem should caused by loading caption files.

Yes, I run python train.py --cfg_file cfgs/scannet_models/spconv_clip_adamw.yaml today and this problem didn't occur.
Should I change this line?
https://github.com/CVMI-Lab/PLA/blob/3d8494b9499c9f7f2b1ed869fd7f57c960042a1a/pcseg/datasets/indoor_dataset.py#L201C45-L201C45

This line already use deep copy, so it is not supposed to cause this problem. But I think some attempts is worthy, since the problem is caused by load captions and caption idx.
Since we cannot reproduce this problem for now, I can only provide some possible solution. Here is a possible manner: in my experience, this error will take place in a specific iteration, as the limit of opening files is a scalar. You can find that number by checking which iteration it will stop, and then set a breakpoint in that iteration, checking which line of loading code results in problem.

You can also check this issue https://github.com/pytorch/pytorch/issues/11201. If you use a personal computer, this should work in my experience, but this solution does not work on the cluster that I used.

Thank you for your help.  I added the follwing code and it worked.
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

Thank you for your help. I added the follwing code and it worked.
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

But it will be out of memory at some epoch with this method
2023-08-31 20:27:52,687   INFO  Epoch [5/128][240/400] LR: 0.004, ETA: 3 days, 4:36:35, Data: 0.15 (0.14), Iter: 7.69 (5.59), Accuracy: 0.76, loss_seg=0.71, binary_loss=0.31, caption_view=0.20, caption_entity=0.19, loss=1.41, n_captions=17.3(12.8)
2023-08-31 20:29:48,883   INFO  Epoch [5/128][260/400] LR: 0.004, ETA: 3 days, 4:48:50, Data: 0.10 (0.14), Iter: 6.13 (5.60), Accuracy: 0.78, loss_seg=0.65, binary_loss=0.20, caption_view=0.19, caption_entity=0.18, loss=1.21, n_captions=13.8(12.9)
2023-08-31 20:31:38,831   INFO  Epoch [5/128][280/400] LR: 0.004, ETA: 3 days, 4:40:42, Data: 0.10 (0.13), Iter: 5.31 (5.60), Accuracy: 0.83, loss_seg=0.53, binary_loss=0.28, caption_view=0.18, caption_entity=0.17, loss=1.16, n_captions=13.4(12.9)
Traceback (most recent call last):
  File "train.py", line 260, in <module>
    if __name__ == '__main__':
  File "train.py", line 255, in main
    text_encoder=text_encoder,
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 207, in train_model
    text_encoder=text_encoder
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 92, in train_one_epoch
    scaler.scale(loss).backward()
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward
    allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag
RuntimeError: CUDA out of memory. Tried to allocate 2.16 GiB (GPU 0; 23.70 GiB total capacity; 17.34 GiB already allocated; 1.88 GiB free; 18.27 GiB reserved in total by PyTorch)

The breakpoint stop at https://github.com/CVMI-Lab/PLA/blob/3d8494b9499c9f7f2b1ed869fd7f57c960042a1a/tools/train_utils/train_utils.py#L47, cur_it = 27 . total_it_each_epoch = 600 ,
scaler = torch.cuda.amp.GradScaler(enabled=args.use_amp    for cur_it in range(total_it_each_epoch):
        try:
            batch = next(dataloader_iter)
        except StopIteration:
            dataloader_iter = iter(train_loader)
            batch = next(dataloader_iter)
            print('new iters')
        batch['epoch'] = cur_epoch

        data_timer = time.time()
        cur_data_time = data_timer - end

For the out of memory situation, may I know your batch size and GPU memory?
For the breakpoint, you should step into your dataloader getitem function, especially, the loading of caption files.

In fact, I tried several times different combinations of batch size and GPU memory.
batchsize = 16,14,12. and GPU 48G.
batchsize = 12,8. and GPU 24G.
When I set ulimit -n 10240, and added the code
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

I found that the code would have this problem at the 2nd or 5th epoch of training.I don't think this should have anything to do with GPU memory, because with this memory and batch size setting, the code can train a full epoch and it shouldn't be caused by a lack of memory.
When I set ulimit -n 1024 as default, bachsize=8,GPU 24G, remove
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

the code quickly reported an error in the first epoch.
2023-09-01 10:45:37,915   INFO  **********************Start training scannet_models/spconv_clip_base15_caption_adamw(default)**********************
2023-09-01 10:56:17,736   INFO  Epoch [1/128][20/600] LR: 0.004, ETA: 27 days, 23:45:32, Data: 2.11 (26.34), Iter: 5.29 (31.50), Accuracy: 0.50, loss_seg=1.77, binary_loss=0.47, caption_view=0.22, caption_entity=0.21, loss=2.66, n_captions=17.4(11.9)
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 149, in _serve
    send(conn, destination_pid)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 50, in send
    reduction.send_handle(conn, new_fd, pid)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 179, in send_handle
    with socket.fromfd(conn.fileno(), socket.AF_UNIX, socket.SOCK_STREAM) as s:
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/socket.py", line 463, in fromfd
    nfd = dup(fd)
OSError: [Errno 24] Too many open files
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 322, in reduce_storage
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 194, in DupFd
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 48, in __init__
OSError: [Errno 24] Too many open files
Exception in thread Thread-8:
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/utils/data/_utils/pin_memory.py", line 25, in _pin_memory_loop
    r = in_queue.get(timeout=MP_STATUS_CHECK_INTERVAL)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 113, in get
    return _ForkingPickler.loads(res)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 282, in rebuild_storage_fd
    fd = df.detach()
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 58, in detach
    return reduction.recv_handle(conn)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 185, in recv_handle
    return recvfds(s, 1)[0]
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 155, in recvfds
    raise EOFError
EOFError

For the breakpoint, could you please give me the locations of the code that need to be step into? Because I'm not farmiliar with your code and it did take me a lot of time to locate it.Thank you very much.

Hello, your previous link is correct, you should mainly focus this function: https://github.com/CVMI-Lab/PLA/blob/3d8494b9499c9f7f2b1ed869fd7f57c960042a1a/pcseg/datasets/indoor_dataset.py#L196

Sorry, it is a little bit hard to figure out the error for me. I have tried many times and every time when I debug it is stuck .
At first, I got OSError: [Errno 24] Too many open files and RuntimeError: unable to open shared memory object </torch_235148_4273977650> in read-write mode.
2023-09-04 18:47:30,763   INFO  Epoch [1/128][20/600] LR: 0.004, ETA: 6 days, 23:36:13, Data: 0.08 (0.47), Iter: 3.16 (7.86), Accuracy: 0.57, loss_seg=1.48, binary_loss=0.49, caption_view=0.20, caption_entity=0.16, loss=2.33, n_captions=11.6(12.5)
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 322, in reduce_storage
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 194, in DupFd
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 48, in __init__
OSError: [Errno 24] Too many open files
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 322, in reduce_storage
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 194, in DupFd
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 48, in __init__
OSError: [Errno 24] Too many open files
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 321, in reduce_storage
RuntimeError: unable to open shared memory object </torch_235148_4273977650> in read-write mode
Traceback (most recent call last):
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/multiprocessing/reductions.py", line 322, in reduce_storage
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/reduction.py", line 194, in DupFd
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/multiprocessing/resource_sharer.py", line 48, in __init__
OSError: [Errno 24] Too many open files

But if I add
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

I got RuntimeError: CUDA out of memory. Obviously, it not because of the cuda memory. Because when I reduce batchsize=4 or 2, I will also get this error, but in 4th or 7th.
2023-09-04 17:59:04,135   INFO  Epoch [1/128][20/600] LR: 0.004, ETA: 9 days, 1:48:45, Data: 0.13 (0.47), Iter: 6.44 (10.21), Accuracy: 0.56, loss_seg=1.51, binary_loss=0.51, caption_view=0.19, caption_entity=0.18, loss=2.39, n_captions=11.0(12.5)
2023-09-04 18:01:05,994   INFO  Epoch [1/128][40/600] LR: 0.004, ETA: 7 days, 5:48:45, Data: 0.10 (0.29), Iter: 6.13 (8.15), Accuracy: 0.61, loss_seg=1.29, binary_loss=0.47, caption_view=0.20, caption_entity=0.18, loss=2.14, n_captions=15.2(12.7)
2023-09-04 18:03:11,054   INFO  Epoch [1/128][60/600] LR: 0.004, ETA: 6 days, 16:17:21, Data: 0.14 (0.22), Iter: 5.43 (7.52), Accuracy: 0.63, loss_seg=1.29, binary_loss=0.32, caption_view=0.18, caption_entity=0.15, loss=1.94, n_captions=7.4(12.6)
2023-09-04 18:05:14,054   INFO  Epoch [1/128][80/600] LR: 0.004, ETA: 6 days, 8:57:07, Data: 0.12 (0.19), Iter: 6.72 (7.18), Accuracy: 0.63, loss_seg=1.18, binary_loss=0.30, caption_view=0.20, caption_entity=0.17, loss=1.85, n_captions=13.1(12.5)
2023-09-04 18:07:22,827   INFO  Epoch [1/128][100/600] LR: 0.004, ETA: 6 days, 5:46:11, Data: 0.10 (0.17), Iter: 6.16 (7.03), Accuracy: 0.54, loss_seg=1.45, binary_loss=0.46, caption_view=0.19, caption_entity=0.16, loss=2.26, n_captions=10.4(12.7)
2023-09-04 18:09:18,085   INFO  Epoch [1/128][120/600] LR: 0.004, ETA: 6 days, 1:13:48, Data: 0.09 (0.16), Iter: 6.99 (6.82), Accuracy: 0.71, loss_seg=1.05, binary_loss=0.40, caption_view=0.20, caption_entity=0.18, loss=1.82, n_captions=13.4(12.6)
2023-09-04 18:11:29,505   INFO  Epoch [1/128][140/600] LR: 0.004, ETA: 6 days, 0:26:09, Data: 0.08 (0.15), Iter: 5.18 (6.78), Accuracy: 0.67, loss_seg=1.07, binary_loss=0.32, caption_view=0.20, caption_entity=0.18, loss=1.77, n_captions=12.4(12.7)
2023-09-04 18:13:37,711   INFO  Epoch [1/128][160/600] LR: 0.004, ETA: 5 days, 23:24:20, Data: 0.14 (0.14), Iter: 7.65 (6.74), Accuracy: 0.69, loss_seg=1.04, binary_loss=0.28, caption_view=0.19, caption_entity=0.14, loss=1.66, n_captions=11.9(12.9)
Traceback (most recent call last):
  File "train.py", line 260, in <module>
    main()
  File "train.py", line 255, in main
    arnold=arnold
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 207, in train_model
    text_encoder=text_encoder
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 92, in train_one_epoch
    scaler.scale(loss).backward()
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward
    allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag
RuntimeError: CUDA out of memory. Tried to allocate 1.44 GiB (GPU 0; 23.70 GiB total capacity; 11.56 GiB already allocated; 1.23 GiB free; 12.34 GiB reserved in total by PyTorch)

Here are my guesses.
I'm wondering if it's caused by duplicate caption files loading.For example, constantly opening a file without closing it or constantly loading it into memory but not emptying it, which leads to the problem not occurring when the sample is small, but only when the sample is large.
Because when the batchsie is small, the training can even run through a complete epoch. This means that the memory occupied during the first epoch is not completely freed or the files are not closed, resulting in the second epoch to continue to add to the memory or continue to open the file, which ultimately leads to this problem.
BTW, when you last encountered this problem, how did you locate it and what caused it? I know he was loading caption to cause it, but could you please give more specific information?(If you can't remember, maybe look up the git commit history.)
Looking forward to your reply.

Hi, we encountered this issue while indexing the corresponding caption and resolved it by adding 'copy.deepcopy'. https://github.com/CVMI-Lab/PLA/blob/3d8494b9499c9f7f2b1ed869fd7f57c960042a1a/pcseg/datasets/indoor_dataset.py#L201.
Currently, we are unable to reproduce this error, but we will investigate the cause at a later time."

Hi, thank you for your reply. If deepcopy resolved this problem. Then I think it didn't work in my training. Because I set breakpoint in line 201 "cur_caption_idx = copy.deepcopy(self.scene_image_corr_infos[index]) ", but it didn't get into it. It get into if isinstance(self.scene_image_corr_infos, dict), but not else, then the occurs.
if hasattr(self, 'scene_image_corr_infos') and self.scene_image_corr_infos is not None:
            if isinstance(self.scene_image_corr_infos, dict):
                # assert scene_name in self.scene_image_corr_infos
                info = self.scene_image_corr_infos.get(scene_name, {})
            else:
                cur_caption_idx = copy.deepcopy(self.scene_image_corr_infos[index])
                assert scene_name == cur_caption_idx['scene_name']
                info = cur_caption_idx['infos']
            if len(info) > 0:
                image_name_view, image_corr_view = zip(*info.items())
            else:
                image_name_view, image_corr_view = [], []
            image_name_dict['view'] = image_name_view
            image_corr_dict['view'] = image_corr_view

Hi, in that case, could you please try wrapping the self.scene_image_corr_infos.get(scene_name, {}) with copy.deepcopy function?

Hi, thank you for your help. I followed your advice and wrapping self.scene_image_corr_infos.get(scene_name, {}) and self.scene_image_corr_entity_infos.get(scene_name, {})  with copy.deepcopy. Now it's not reporting errors, I'll wait for the training to complete to see if the issue recurs.

Hi, batchsize=12. GPU 24G. python train.py --cfg_file cfgs/scannet_models/spconv_clip_base15_caption_adamw.yaml
The training stop at 32th epoch with the error of "CUDA out of memory.". Are there other places in the code that need to be changed as well?
2023-09-06 08:08:17,913   INFO  Epoch [32/128][160/400] LR: 0.004, ETA: 2 days, 10:44:09, Data: 0.07 (0.10), Iter: 3.72 (5.47), Accuracy: 0.89, loss_seg=0.30, binary_loss=0.22, caption_view=0.15, caption_entity=0.13, loss=0.79, n_captions=7.8(13.0)
Traceback (most recent call last):
  File "train.py", line 261, in <module>
    main()
  File "train.py", line 256, in main
    arnold=arnold
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 207, in train_model
    text_encoder=text_encoder
  File "/var/autofs/home/hale/usrs/wangjuan/code/PLA/tools/train_utils/train_utils.py", line 92, in train_one_epoch
    scaler.scale(loss).backward()
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/home/usrs/wangjuan/anaconda3/envs/PLA/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward
    allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag
RuntimeError: CUDA out of memory. Tried to allocate 2.39 GiB (GPU 0; 23.70 GiB total capacity; 19.30 GiB already allocated; 1.97 GiB free; 20.02 GiB reserved in total by PyTorch)

The batch size is set too large. Maybe you can try 4 batch sizes per GPU.

I'm sorry, I'm having trouble understanding a couple of questions.

If the batchsize is too big, why is it still possible to run a full epoch? And the GPU memory usage is not high during training, is it possible to improve the GPU utilization during training?
If batchsize should be set to 4 for a GPU with 24G memory, should it be set to 2 for a 12G GPU?
In your paper run all experiments with 32 batch size on 8 NVIDIA V100 or NVIDIA A100. Then may I ask how long did you train for? What was the GPU utilization during the training?

We use batch size 32 on 8GPU to align with our baseline SparseUNet. If you want to change the default setting, you should adjust LR schedule and epoches by yourself to align results. We haven't checked GPU utilization carefully, but among 80-90%. The GPU utilization is influenced by CPU, IO and a lot of factors, so it varies device to device.


Warning : Unable to flash Teckin SP27

Trying to flash these new out of the box Teckin SP27 plugs (UK) they seem to connect to vtrust, the LED goes solid but then nothing happens.
Looking in the web logs
"WARNING: it appears this device does not use an ESP82xx and therefore cannot install ESP based firmware"
Just PSA more than anything else :(

Thanks for reporting @danmed, best to add this to the wiki


Add SONiC testbed

This PR adds a tutorial that walks you through setting up and configuring a basic testbed environment in the GNS3 simulation platform. The setup includes three SONiC switches (Spline, Leaf1, Leaf2) with community images and two PCs connected to Leaf1 and Leaf2.

The guide also covers a basic BGP L3 underlay configuration using FRR.

This PR moves some general SONiC docs into a separate file under the docs directory

@scoopex I just wanted to push my test environment docs to the repo, as I always prefer to have the possibility to develop things locally. Netbox, ansible thing is ongoing and I'm testing it with the provided SONiC testbed env.

I think it makes more sense to add this docs to https://github.com/sovereigncloudstack/docs ?

I think it makes more sense to add this docs to https://github.com/sovereigncloudstack/docs ?

I agree that landscape-related docs should be visible at https://docs.scs.community/
AFAIK The recommended way is to reference the repository docs files in the SCS docs repository. See e.g. https://github.com/SovereignCloudStack/docs/pull/144

I think it makes more sense to add this docs to https://github.com/sovereigncloudstack/docs ?

Sure, lets discuss that with @maxwolfs to have a SONiC Section in the documentation.


Moving responses to variables

This is to aid the customisation of Roxbot and make it easier to make the default strings better.
Cogs to Switch

[x] Admin
[ ] Core
[x] CustomCommands
[ ] Fun
[ ] JoinLeave
[ ] NSFW
[ ] SelfAssign
[ ] Trivia
[ ] Util
[ ] Voice

Closed to make way for my comprehensive issues.


How to navigate to specific page when accept interaction happened and app closed

I have designed an application and when the notification by FCM reaches the mobile, the mobile rings. For the Accept event, I wrote my own custom code and when the application is open in the background or open, it shows the correct interaction, but when the application is closed, when I click on the Accept button, the app runs from the beginning and none of the tasks I want to do. It doesn't happen

i have same issue


Complete translation of 'docs/python/design.md'

Related Issue: #117

@microsoft-github-policy-service agree

Cannot merge this PR since it includes unnecessary files for the PR (e.g., Gemfile.lock). I am closing this PR so please re-open this PR or create a new PR with correct changes. Thanks


fix: remove unnecessary console.log

Removed unnecessary console.log, likely left behind from debugging.

@epuluikis  Thank you!


How to compile and run Eolang programms (e.g. Hello World)

I've just downloaded the repository and I'm unable to find the information on developing programs in Eolang.

@GeekNickson You can run an example program that is located in the sandbox directory of the root directory of the repository.
To do it, you can run in the sandbox directory this command:
mvn compile && ./run.sh 3
3 here is the parameter that you pass to the program (so, here it mean 'find and print the 3rd Fibonacci number').
I am working on more examples and on references on the eo language and eo library.
Here you can the current WIP version.

@GeekNickson You can run an example program that is located in the sandbox directory of the root directory of the repository.
To do it, you can run in the sandbox directory this command:
mvn compile && ./run.sh 3
3 here is the parameter that you pass to the program (so, here it mean 'find and print the 3rd Fibonacci number').
I am working on more examples and on references on the eo language and eo library.
Here you can the current WIP version.

@yegor256 I propose closing the issue since it is resolved.

@yegor256 I propose closing the issue since it is resolved.

Thanks

@GeekNickson could you close the issue, please?

@nlchar yep

Job gh:cqfn/eo#166 is not assigned, can't get performer

You @nlchar/z need to have one of these roles in order to do "Request order start": ARC, PO; I'm sorry to say this, but at the moment you've got no roles in this project


strides of deconv is wrong

it should be 4 x 4 instead of 2 x 2

deconv should be the save as the conv, conv strides is 2 x 2, so, deconv is the same

thank you and now fixed


Made Github actions auto-cancel redundant jobs.

Seems to be working fine.

@apollo13 Thanks for checking :+1:


The dhclient is not working.

Hi. We received the latest version client from Ubuntu 20.04 and proceeded with the build. I created a virtual adapter through niccreate and set the vpn server settings on vpngate.net using accountcreate. And I checked that it is connected using account connection.
And I modified the sysctl.conf file.
However, ip cannot be dynamically assigned through the command "dhclient vpn_se". If you check with the -v option, only DHCPDISCOVER is confirmed. The DHCPOffer doesn't respond. I'll attach a picture. Where should I modify to get an ip from the dhcp server of the vpn server?

Are you the owner of the server?
If that's the case, make sure a DHCP server is running.

I only use clients. The server is trying to use https://www.vpngate.net/en/ here. The dhclient works in the standable version. However, it does not work with the instable version. Is there anything else you need to set up?

No, it's supposed to work just like the stable version.

ok thank you!

Could you try ti run your own server and check whether the issue persists, please?

The server and client must be set up after the build with the standable version before it can be connected. Is that right?

We created a Ubuntu server for testing in the stable version and confirmed that it was connected to the Windows client. However, it does not connect with the Linux client. Is there any additional settings that Linux needs to do? For example, firewall settings...

The server port has to be opened in your firewall, yes.

thank you

did this work, I'm having the same issues no firewalls in place.  Simple connection to a virtual hub with virtual dhcp enabled, but no ip received on client

I assume the issue has already been fixed in the latest version. Can reopen if necessary.


What is the best type of cuid in postgresql?

text bytea uuid or something else?

char(24) should work.


Added course in nav bar

Fixes Issue

closes #59

Changes proposed
Here comes all the changes proposed through this PR

Check List (Check all the boxes which are applicable)

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

You need to update the fill the slots in the template properly.

@Anuj-Kumar-AJ please complete the pr tempalte as suggested by Anurag above

hi @kaiwalyakoparkar, i am sorry but i don't understand about the PR template suggestion is it the checks I have to mark on the change proposed section? If that's the case I have done that right now. Also please tell I have just used the suggestion of my previous code review in this PR only. does that mean the changes I have performed in this PR is the same as if I have created a new PR with all the changes?  I am new to GitHub please do tell me about it :)

@Anuj-Kumar-AJ kindly mention which issue your PR fixes.

@AnuragThePathak , my PR resolves issue #59

@Anuj-Kumar-AJ for your ease, I have updated the description of PR to add the issue number. But the next time, make sure you do not it properly while creating a PR against an issue. It is applicable to any project.
Secondly, kindly provide screenshots of before and after so reviewers can easily figure out what changes your PR brings.

Thanks for the feedback @AnuragThePathak. I will keep that in mind :)

You need to resolve conflicts to get it merged.

this feature done not support responsive rendering for small screen sites, like mobile or tab


RFC: Function stubbing

This is a tracking issue for the RFC function_stubbing.
The goal is to allow users to specify that some functions should be replaced by mock functions (stubs) during verification. Although the current focus is on functions, the hope is that this mechanism might in the future be extended to other features (like methods and types).
The need for stubs is twofold:

Users might need to stub functions containing features that Kani does not support, such as inline assembly.
Users might need to stub functions containing code that Kani supports in principle, but which in practice leads to bad verification performance.

There are questions to resolve:

What should be the user experience? How and where should users specify which stubs to use?
Should stubs be applied consistently across all harnesses or should they be specific to a harness (i.e., different harnesses can use different stubs)?

Would your stubbing support the following use-case?
Say I have (omitting unimportant bits):
fn F (...) -> ... {
   // Body for F, optimized algorithm
}

fn F'(...) -> ... {
  // Body for F', reference algorithm
}

and I prove w/ Kani that assert_eq!(F(x), F'(x)) for all x.
It should be safe to stub F' in for F, and vice verse anywhere else in the codebase I'd like to do proofs about.
So, say I also have
fn G (...) -> ... {
   // Body for G, optimized algorithm, calls F
}

fn G'(...) -> ... {
  // Body for G', reference algorithm, calls F'
}

Now I want to assert_eq!(G(x), G'(x)) for all x. I understand your stubbing mechanism will allow me to replace F with F' inside of the proof, which will speed up the proof because now G and G' both call F'. However, what if the definitions of F and F' are not consequential to the equivalence of G and G'? I imagine the proof then could be sped up even more by replacing both F and F' with return kani::any(), but we would also need a way to enforce that F and F' are equivalent -- both should return the same values when given the same input. That is, I believe your stubbing mechanism can be used to uninterpret F and F', but not set them equvialent (so called EUF). Is this possible?
A simpler example could involve wanting to uninterpret a single deterministic function that is called multiple times. Stubbing the definition to kani::any() is not quite equivalent to uninterpreting the function because we would also want to say that the function is deterministic (that every call to this function returns the same outputs on the same inputs).

If I understand your use case correctly, you want to be able to say, "Here is a function f; given the same input, it should always return the same output; otherwise, we put no restrictions on its output." We are not currently planning to have explicit support for this (which I would describe as uninterpreted functions).
However, in some cases, it is possible to achieve this effect by lazily constructing the mapping for f in the function body and keeping track of it in a global variable:
lazy_static! {
    static ref MY_MAP: HashMap<u32, u32> = HashMap::new();
}

fn f(n: u32) -> u32 {
    unsafe { *MY_MAP.entry(n).or_insert_with(|| kani::any()) }
}

The trick would be using a data structure for the map that is verification friendly (so HashMap is not actually a good choice here).

If I understand your use case correctly, you want to be able to say, "Here is a function f; given the same input, it should always return the same output; otherwise, we put no restrictions on its output." We are not currently planning to have explicit support for this (which I would describe as uninterpreted functions).
However, in some cases, it is possible to achieve this effect by lazily constructing the mapping for f in the function body and keeping track of it in a global variable:
lazy_static! {
    static ref MY_MAP: HashMap<u32, u32> = HashMap::new();
}

fn f(n: u32) -> u32 {
    unsafe { *MY_MAP.entry(n).or_insert_with(|| kani::any()) }
}

The trick would be using a data structure for the map that is verification friendly (so HashMap is not actually a good choice here).

Thanks @aaronbembenek-aws for your response. As a developer interested in assurance, I'm familiar with standard assurance tools such as SAT/SMT, uninterpreted functions, proof reuse, rewriting, and so on. If there are tricks for emulating these tools using Kani, it would be nice, from a user perspective, for Kani to transparently provide them.
As well, I'm trying to understand, in a formal way, what the function stubbing technique accomplishes. It seems like stubbing is equivalent to uninterpreting a function and then adding preconditions that constrain the function's output (which may be quite specific) inside a property. Why take a narrow approach here when you could instead implement standard assurance tools (uninterpreted functions w/ equality and pre/post conditions) and gain much more?

CBMC actually supports uninterpreted functions: we probably should too http://www.cprover.org/cprover-manual/modeling/nondeterminism/

If Kani supported uninterpreted functions, could the example in the RFC be reworked to something like this?
#[cfg(kani)]
fn mock_random<T: kani::Arbitrary>() -> T {
    kani::any()
}

#[cfg(kani)]
#[kani::proof]
#[kani::uninterpret(rand::random)]
fn random_cannot_be_zero() {
    kani::assume(rand::random::<u32>() == mock_random<u32>());
    assert_ne!(rand::random::<u32>(), 0);
}  // This should fail

Maybe at that point one could do away with mock_random and add preconditions to avoid bad behavior, like:
#[cfg(kani)]
#[kani::proof]
#[kani::uninterpret(rand::random)]
fn random_cannot_be_zero() {
    kani::assume(rand::random::<u32>() != 0);
    assert_ne!(rand::random::<u32>(), 0);
}  // This should succeed

If Kani supported uninterpreted functions, could the example in the RFC be reworked to something like this?

Yes, I believe these examples would work, and I agree you can do away with mock_random in that case. In general, I suspect that people would not want to make rand::random uninterpreted, since doing so would mean that every invocation returns the same value, when typically we'd expect this assertion to fail:
assert_eq!(rand::random::<u32>(), rand::random::<u32>()); // never fails if rand::random is uninterpreted

If there are tricks for emulating these tools using Kani, it would be nice, from a user perspective, for Kani to transparently provide them.

Agreed -- stubs are relatively low-level, and it would be good to provide higher-level verification abstractions. We've started compiling a list here of different types of stubs we might want to automatically support.

It seems like stubbing is equivalent to uninterpreting a function and then adding preconditions that constrain the function's output (which may be quite specific) inside a property. Why take a narrow approach here when you could instead implement standard assurance tools (uninterpreted functions w/ equality and pre/post conditions) and gain much more?

Stubbing is more general than uninterpreted functions, since we can simulate uninterpreted functions using stubbing, but there are stubs that cannot be faithfully captured as uninterpreted functions (e.g., if the stub can return different outputs for the same input). It is also possible to give stubs pre- and postconditions. Granted, these pre- and postconditions are written in Rust. This has some potential advantages over using a custom constraint DSL (as is often used with function contracts): it's not necessary for users to learn a new syntax, and Rust code naturally captures some information that might have to be given explicitly in a logical constraint (like which memory is written). Of course, there might also be times when using logical constraints is more convenient.

In general, I suspect that people would not want to make rand::random uninterpreted, since doing so would mean that every invocation returns the same value

You're right. I chose a poor example here :-)

Stubbing is more general than uninterpreted functions

The info in the CBMC link was pretty helpful. To sum up -- a stub is nondeterministic ("separate calls to the function can return different results, even for the same inputs"), whereas uninterpreting is deterministic ("different invocations will return the same value if their inputs are the same"). A stub can be made deterministic by using memoization, though it would be best if Kani supported this natively, rather than a user having to determine how to best memoize.
As well, I'm perfectly happy writing pre- and postconditions in Rust where it makes sense.
This capability seems like a first step towards rewriting (now only at a function boundary, I think, am I wrong here?), which is nice to see.

This capability seems like a first step towards rewriting (now only at a function boundary, I think, am I wrong here?), which is nice to see.

Right - it'd enable rewriting only at the unit of entire functions/methods.


Run Completion Delay

I have two groups of tests, the 2nd one should start only after the first one.  I have set an amount of time on "Run Completion Delay" (Cypress Cloud) so that Cypress would wait for the 2nd group to be ready and start its execution, but after the 2nd group execution, I don't need that competition delay again, b/c there is nothing else to be executed.
How could I skip that "Run Completion Delay" when the 2nd group execution finishes?

Hi @diegocatao Issues in the repo are reserved for bugs and feature requests only.  Please check out the Cypress Discord Community , for help debugging or answering questions on how to use Cypress.


Add a mode that replay tests based on logs

Description
See #1093
Will run tests only using an existing log folder.
./run.sh --replay
Motivation

speed up iteration when writing tests
allow debugging
replay tests based on CI artifact

holy shit that's so cool, does that mean I can run the system tests once to generate logs, edit the logs myself, and run that replay to test with new values ?

Yes you can


Building the IDE: could not find 'out' dir on Mac

@BeanDAO

When I was building the full IDE,  running the script ‘./scripts/code.sh’ on my terminal the editor popped up a window displaying:
Activating extension 'void.void' failed: Cannot find module '/Users/huqb01/wifi/aicoder/void/extensions/void/out/extension.js'
Require stack:
/Users/huqb01/wifi/aicoder/void/out/vs/workbench/api/node/extHostExtensionService.js.
😩
cd .\extensions\void\ and npm run build,but I can't find 'out' dir.

Fixed by #119


Plots from remote machine

I am running some experiments on a remote machine, and I can't see any cockpit plot.
I have the same problem when running the basic example.
Is there a way of solving this? Am I missing something?
This may be a dumb question, sorry I am quite new to this.
Thank you!

Hi, thanks for asking this question.
As a first test, could you tell Cockpit to save the image to disk (see https://cockpit.readthedocs.io/en/latest/api/plotter.html, there is the options to save_plot with a savedir).
You could then transfer the stored Cockpit plot in whatever way you use to transfer files from your remote machine.
This way we know that Cockpit is running as it should and is indeed producing plots.

Thank you @fsschneider
That's exactly what I am doing so far, I wanted to know if there is a way to visualize the plots live.
Thank you anyway!

Got it!
There are no special features in Cockpit supporting this as I don't think this is a Cockpit-specific issue.
However, I believe, this should be possible via X11 forwarding, see https://stackoverflow.com/questions/3453188/matplotlib-display-plot-on-a-remote-machine

Thank you for the useful reference. Really appreciate it!


"Out of memory" crash in PFCP Association Release E2E test

So far the problem was only observed in the CI environment. It is not clear at this point if it's a test issue or a real bug. Lowering the rate of session modifications appears to make this problem more rare.
This problem appears only to happen with release builds.
Test:
[Fail] Clearing message queue during PFCP Association Release upon timeout [It] should work correcty

Diagnostics:
Program received signal SIGABRT, Aborted.
0x00007ffff5cb618b in raise () from /lib/x86_64-linux-gnu/libc.so.6
#0  0x00007ffff5cb618b in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff5c95859 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6385d86 in os_panic () at /src/vpp/src/vppinfra/unix-misc.c:177
#3  0x00007ffff6389637 in clib_mem_alloc_aligned_at_offset (size=2056, align=<optimized out>, align_offset=<optimized out>, os_out_of_memory_on_failure=1) at /src/vpp/src/vppinfra/mem.h:243
#4  vec_resize_allocate_memory (v=<optimized out>, length_increment=2048, data_bytes=2056, header_bytes=8, data_align=<optimized out>, numa_id=<optimized out>) at /src/vpp/src/vppinfra/vec.c:67
#5  0x00007fffb3258a45 in _vec_resize_inline (v=0x0, length_increment=<optimized out>, data_bytes=<optimized out>, header_bytes=<optimized out>, data_align=<optimized out>, numa_id=<optimized out>) at /src/vpp/src/vppinfra/vec.h:170
#6  upf_pfcp_make_response (resp=0x7ffff3f04580, req=0x7fffefaf9ec0, len=2048) at /src/vpp/src/plugins/upf/upf_pfcp_server.c:520
#7  upf_pfcp_send_response (req=0x7fffefaf9ec0, cp_seid=18299514082375153098, type=<optimized out>, grp=<optimized out>) at /src/vpp/src/plugins/upf/upf_pfcp_server.c:532
#8  0x00007fffb32531e3 in session_msg (msg=<optimized out>) at /src/vpp/src/plugins/upf/upf_pfcp_api.c:2644
#9  upf_pfcp_handle_msg (msg=<optimized out>) at /src/vpp/src/plugins/upf/upf_pfcp_api.c:181

The problem occurs b/c of the fixed heap size in VPP which the test manages to exhaust. The default heap size of 1GiB may not be always enough for E2E tests.
The problem goes away after adding heapsize 2G to the VPP command line (PR to be posted).
It did not occur in earlier VPP versions just by luck, as the heap usage approaches 1GiB in any case. Some changes in newer VPP increased the heap usage slightly and this caused the test to start to fail. It's worth noting that the release image does allocate more heap than the debug one, possibly due to extra alignment.
Adding show memory main-heap to the E2E test in question shows the difference between stable/1.1 (as of 2085a64) which is based on older VPP and current master (as of 2c6e663):
stable/1.1:
  total: 2.00G, used: 836.59M, free: 1.18G, trimmable: 1.18G
  total: 2.00G, used: 836.59M, free: 1.18G, trimmable: 1.18G
  total: 2.00G, used: 988.19M, free: 1.04G, trimmable: 1.03G
  total: 2.00G, used: 990.13M, free: 1.03G, trimmable: 1.02G
  total: 2.00G, used: 838.45M, free: 1.18G, trimmable: 1.02G
  total: 2.00G, used: 838.44M, free: 1.18G, trimmable: 1.02G

master:
    total: 1.99G, used: 904.86M, free: 1.12G, trimmable: 1.12G
    total: 1.99G, used: 910.86M, free: 1.11G, trimmable: 1.11G
    total: 1.99G, used: 1.04G, free: 987.91M, trimmable: 982.68M
    total: 1.99G, used: 1.04G, free: 982.01M, trimmable: 970.75M
    total: 1.99G, used: 930.51M, free: 1.09G, trimmable: 966.75M
    total: 1.99G, used: 936.51M, free: 1.09G, trimmable: 966.75M

With #96 applied the limit is also no longer hit with master release builds.


Maintenance Recount User Posts

Starts fine but does not restart the next loop properly, at least on my local.  Unable to determine if its a session or token or some other error.

Seems to be the validation of the admin-maint token.
I'm looking into it, but having some troubles.

Found it!
Two bugs in one. lol

WOW ... that session issue, awesome find!


Fix Graphite re-connects for Graphite instances behind ELB's or auto-scaled load balancers. Upgrade codahale to 3.1.5

What changes were proposed in this pull request?
Upgrade codahale metrics library so that Graphite constructor can re-resolve hosts behind a CNAME with re-tried DNS lookups. When Graphite is deployed behind an ELB, ELB may change IP addresses based on auto-scaling needs. Using current approach yields Graphite usage impossible, fixing for that use case

Upgrade to codahale 3.1.5
Use new Graphite(host, port) constructor instead of new Graphite(new InetSocketAddress(host, port)) constructor

How was this patch tested?
The same logic is used for another project that is using the same configuration and code path, and graphite re-connect's behind ELB's are no longer an issue
This are proposed changes for codahale lib - https://github.com/dropwizard/metrics/compare/v3.1.2...v3.1.5#diff-6916c85d2dd08d89fe771c952e3b8512R120. Specifically, https://github.com/dropwizard/metrics/blob/b4d246d34e8a059b047567848b3522567cbe6108/metrics-graphite/src/main/java/com/codahale/metrics/graphite/Graphite.java#L120
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

You should also update the the files under dev/deps.

@jerryshao thanks. it's done.

@HyukjinKwon would you please help to trigger the Jenkins? Thanks!

Sure.
ok to test

ok to test

Test build #81754 has started for PR 19210 at commit 8e982c7.

Test build #81754 has finished for PR 19210 at commit 8e982c7.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81754/
Test FAILed.

Jenkins, retest this please.

Test build #81770 has started for PR 19210 at commit 8e982c7.

Test build #81770 has finished for PR 19210 at commit 8e982c7.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81770/
Test PASSed.

Merged build finished. Test PASSed.

@jerryshao done

Test build #81802 has started for PR 19210 at commit 0458123.

BTW, can you please create a JIRA, and fix the PR title like other PRs.

Test build #81802 has finished for PR 19210 at commit 0458123.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81802/
Test PASSed.

@jerryshao No problem. I don't have a JIRA account for Apache though. How do I go about getting one?

@jerryshao done

Jenkins, retest this please.

LGTM, let me retest this again.

Test build #81875 has started for PR 19210 at commit 0458123.

Test build #81875 has finished for PR 19210 at commit 0458123.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81875/
Test PASSed.

LGTM, merging to master.


Mocking Junit test case for RestClientBuilder

Can you please help how to mock RestClientBuilder using @QuarkusComponentTest or any other Mocking functions like Mockito or powerMockito
Example : RestClientBuilder.newBuilder().baseUri(URI).build(HandlerService.class);
could you please provide a sample mocking example for above line.

Can you please help how to mock RestClientBuilder

If you are trying to use Quarkus CXF for serving REST endpoints or for accessing them using CXF rest client, then the answer is no. Quarkus CXF supports solely those parts of CXF that are related to SOAP WebServices. See also https://docs.quarkiverse.io/quarkus-cxf/dev/index.html#:~:text=While Apache CXF implements wide range of standards and specifications%2C Quarkus CXF is currently focusing only on supporting the ones related to Simple Object Access Protocol (SOAP) and Java API for XML Web Services (JAX-WS). Refer to Reference to learn which parts of CXF are supported.

@sreekar12 please feel free to reopen if your question is related to SOAP.


calling ifttt maker channel from whisk

Calling ifttt from whisk package Issue 117

@starpit @vinodmut Do you want to suggest additional annotations?

requirement: sampleInput and sampleOutput annotations
highly desirable: field-level description fields

@starpit @vinodmut There is no particular sampleoutput that I want to show the user? should I just say -a sampleOutput '{}'

@visahak Yes, please -a sampleOutput '{}' is good. We do this now for samples/hello.js.

closing as abandoned PR


Searches not registering in the rewards system

Using Chromium version 130.0.6723.69 on Arch.
The searches are not registering in the rewards system since a few days ago. Checking the comments on some user-agent extensions it seems a possible cause is Edge changing the details around that.

how much to donate to Patron for frequent updates for fast fixes when stuff changes? Also, I have a question about Docker and Synology, if you know a good bit about that, and was wondering if you could DM me.


Add build info to README APP-12

Since Alex had concerns, he should be the one approving this.

I don't have any the patch-stopper concerns. My comments can be addressed in follow ups. I didn't thumb up it myself, leaving it to @sergey-surkov, mainly to check the language/doc structure since it's user-facing component.


⚠ Bofrost.be has degraded performance

In 934ba57, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1020 ms

Resolved: Bofrost.be performance has improved in 8818a46.


Can't filter issues by milestone

http://<IP_ADDRESS>:4444/user/Project/issues?milestone=1 shows all issues. (Already referenced on trello but leaving open ahead of updated Issues interface.)

Thanks your feedback!
It should be fixed with develop branch, and you can also test on https://try.gogs.io/unknwon/gogs/issues?type=all&state=open&labels=0&milestone=46 . :beer:

Close as implemented. :sunny:


isEqual: Implementation Requires Pointer Equality

Right now isEqual: has && self == otherObject && so we absolutely need to remove that.

Issue is fixed in master


HMR is not compatible with tcomb-form-native

I created a project https://github.com/cpunion/TestTcomb to reproduce a problem about HMR is not compatible with https://github.com/gcanti/tcomb-form-native . Live Reload works fine, HMR can't work, tcomb-form-native is a pure JavaScript library, so I think maybe it is a problem of HMR.
Environment

Mac OSX 10.11.4
Xcode 7.3
Node 5.5.0, npm 3.6.0
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Create steps

react-native init TestTcomb
cd TestTcomb
npm install --save tcomb-form-native
Copy js code from https://github.com/gcanti/tcomb-form-native into index.ios.js and index.android.js

Test steps

react-native run-ios
Enable Hot Reloading, reproduce the problem
Disable Hot Reloading, works find
Has same problem on Android

Disabled Hot Reloading

Enabled Hot Reloading

https://github.com/gcanti/tcomb-form-native/issues/132

@iZaL Thanks, I will track that issue.

Closing because it looks like it's being tracked on the other issue mentioned above and seems to be an issue with that lib! :)


Add CloudFlare to get CDN/DDoS/DNS/HTTPS support

Add CloudFlare to get CDN/DDoS/DNS/HTTPS support

Done.
Now the site is HTTPs only served via cloudflare. Both main site and API.


Error when I use a password containing the ampersand character

When I use a password containing the ampersand character (“&”) in "serverUrl" tag, an error is being raised like the one you can see in image attached to the case.

I would add to this in addition to ampersand (&), the characters percent (%) and plus (+) also fail to obtain a token. If the password contains quote ("), less than (<), or greater than (>) I was able to get these to work by escaping them in the proxy.config file as " < and > but & did not work for ampersand. All other special characters work.


typo in sha ref

@anguslees quick lgtm ?

An alternative approach would be to wrap regular "image:tag" image references in kubecfg.resolveImage(...) and use kubecfg --resolve-images=registry when generating the yaml ...


ffi-lib: could not load foreign library   path: libedit-3.dll

Describe the bug
Create project fails
To Reproduce
Steps to reproduce the behavior:

ctrl-m
Select 'create project'
Select location
name project
select template 'gui-app'
'Dr Racket Internal Error' error box with the error text below

Expected behavior
Create gui library
Screenshots(or error message)
ffi-lib: could not load foreign library
  path: libedit-3.dll
  system error: The specified module could not be found.; win_err=126
  context...:
   C:\Program Files\Racket\collects\ffi\unsafe.rkt:131:0: get-ffi-lib
   body of "C:\Program Files\Racket\share\pkgs\readline-lib\readline\rktrl.rkt"
   C:\Users\stde\AppData\Roaming\Racket\8.3\pkgs\sauron\project\manager.rkt:96:18
   C:\Program Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:435:6
   C:\Program Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:486:32
   C:\Program Files\Racket\share\pkgs\gui-lib\mred\private\wx\common\queue.rkt:634:3

Desktop (please complete the following information):

OS: Windows
Version: win10, racket 8.3

Additional context(or any ideas)
Tested and can confirm this works fine on macOS - am unable to text linux.

Interesting, but I didn't have Windows. @smallfont00 Can you help?

This seems like same problem

Interesting, but I didn't have Windows. @smallfont00 Can you help?

Sure. but I am not free today so maybe tomorrow...😢

I don't think this is our problem @dannypsnl . I have tested pkg "from-template" alone and the same error happens.

Have you guys tested "from-template" on Linux? The path of "from-template.sh" can't be resolved in my Ubuntu. I have changed the source of "from-template" and found out define-runtime-path is necessarily for my Ubuntu.

@spdegabrielle so seems like this is not from sauron.

Thank you I'll check it out

Closing here - raised as https://github.com/nixin72/from-template/issues/12

FYI - this is fixed - If any windows users have trouble they should update the from-template package, either with the package manger in DrRacket or with
raco pkg update from-template


Row groups

Added a groupLevel parameter to the row array that allow you to group rows together.
type RowInfo = {
	/* visibility */
	hidden?: boolean; // if true, the row is hidden

	/* row height is specified in one of the following ways: */
	hpx?:    number;  // height in screen pixels
	hpt?:    number;  // height in points

        /* Group rows together when generating a spread sheet */
        groupLevel: number; // level that the row belongs to
};

I tested this feature by recreating the the writexlsx demo and adding this to the !rows property.
wb.Sheets[ws_name]['!rows'] = [{groupLevel: 2},{groupLevel: 2},{groupLevel: 1}];

Note: I had to modify the dist phony in the make file. When I installed uglifyjs globally it looks like it no longer supported the --support-ie8 flag and it was replaced with the --ie8 flag. I also had to add a filename= to the --source-map flag. Not sure if this was needed for a pull request so feel free to ignore the build and makefile changes.

Sorry, I can't see what the issue is with the code climate check because I keep getting a 504 error.

@Danwakeem Thanks for looking into this!  I will try to spend some time later today digging into the corner cases, but the representation looks good.
Later on we'll want to have support for the other formats as well.  Here's my initial survey of the landscape:
XLSX
Is the default row outline level 1 or 0?  ECMA-376 is somewhat unclear: outlinelevel.pdf
ECMA-376 section <IP_ADDRESS> covers the col xml node, and it says

Outline level of affected column(s). Range is 0 to 7.

ECMA-376 section <IP_ADDRESS> covers the row xml node, and it says

Outlining level of the row, when outlining is on.

XLS/XLSB
The equivalent XLSB field is 2.4.718 BrtRowHdr and the XLSB spec shows how the outline level is stored:

iOutLevel (3 bits): An unsigned integer that specifies the outline level for this row.

(which is consistent with 0-7 outline level)
The equivalent XLS field is 2.4.221 Row and the XLS spec uses the same representation as XLS
Other Formats
ODS/FODS use nested table:table-row-group tags to indicate outline level
SpreadsheetML and other formats have no support for grouping
Tests
In addition to manual verification, we'll also need to verify that round-tripping preserves the properties.  Easiest way is to make a test file exploring corner cases and save in various formats.
https://github.com/SheetJS/js-xlsx/blob/master/test.js#L1403 is the relevant part of the test suite for row properties (starting from a blank slate)
https://github.com/SheetJS/js-xlsx/blob/master/test.js#L902 starts from the row_height test files.  https://github.com/SheetJS/test_files/ search for row_height and you'll see:
row_height.biff5
row_height.slk
row_height.xls
row_height.xlsb
row_height.xlsx
row_height.xml

Based on quick tests, I suspect only the XLSX, XLSB, XLS, and BIFF5 (save as "Excel 5.0/95 Workbook") will be needed.
Misc
Don't worry about the code climate check -- we just removed it :)
Can you unwind the changes to the dist files? those are updated when we cut releases.
Note: We ended up having to fork the minifier to support extendscript.  See https://github.com/mishoo/UglifyJS2/issues/1930 for the relevant issue.
https://www.npmjs.com/package/@sheetjs/uglify-js is our fork.

XLSX
Based on the document you sent it looks like the default row outlineRow is 0 since at the bottom of that document in the attributes table it says

The possible values for this attribute are defined by the W3C XML Schema unsignedByte datatype.

and according to the W3C.org page, 3.4.24, the unsignedByte datatype starts at 0 minInclusive.
XLS / XLSB
I have made changes to support XLS / XLSB grouping based on the XLSB page you sent over and the XLS page you sent over. Those were very helpful thank you!
Although I did run into one problem, I don't see a way to generate XLS files in this library. Is that correct or am I missing something?
Other Formats
I will have to look into adding support for ODS/FODS as I am not familiar with these file types.
Tests
I will work on getting the test cases set up for this feature. Hopefully I can get this in tonight!
Misc
I unwinded the changes I made the the MakeFile. I will be sure to install that fork of uglify on my local machine in the future. Thanks for the heads up!

Wow! Those notes were mostly for me to go back later and review, definitely didn't expect you to go ahead and address the other formats too! 🎉  We can add some test files and roll the whole thing into one commit attributed to you :)
Check your inbox

The commit was changed as follows:

the name is now level instead of groupLevel or outlineLevel -- the Excel UI labels the button "Group"/"Ungroup", some of the official documentation refer to it as "Outline Level", and the file specs exclusively refer to it as outline.

README was updated and a note was added about the discrepancy between the UI and the internal storage

The bit masks were fixed.  For 3 bits, the mask is 7 (1 | 2 | 4).  15 is the mask for 4 bits (1|2|4|8)

ODS code has a new TODO, at some point we'll add ODS support but it's not worth stopping the next release.

Other miscellaneous changes to ensure that XLSX/XLSB row objects are written even if rows are empty.

The kitchen sink has an outline row -- if you run node tests/write.js you'll see the outline row in sheetjs.xlsx and sheetjs.xlsb

Added read tests and roundtrip tests.  The read tests are based against the new outline files.  It should also serve as a good test file for column outlines.

Even though the PR will show up as closed rather than merged, you should still be marked as a contributor.

Awesome, this is such a cool project and I am glad I could contribute! Thank you very much!


refactor: Simplify Vault for Offline Storage

Instructions

PR target branch should be against development
PR title name should follow this format: https://github.com/mParticle/mparticle-workflows/blob/main/.github/workflows/pr-title-check.yml
PR branch prefix should follow this format: https://github.com/mParticle/mparticle-workflows/blob/main/.github/workflows/pr-branch-check-name.yml

Summary

Simplify Vault Implementation to be used as a simple local storage wrapper with a simplified API.

Testing Plan

[x] Was this tested locally? If not, explain why.
{explain how this has been tested, and what, if any, additional testing should be done}

Reference Issue (For mParticle employees only.  Ignore if you are an outside contributor)

Closes https://go.mparticle.com/work/SQDSDKS-5146

:tada: This PR is included in version 2.19.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Make dashboard sidebar more mobile friendly by positioning it fixed

The dashboard was never intended for mobile users. However, because we use Bootstrap we are at the very least given some responsiveness for free. The dashboard sidebar has a problem where, if the actual page content is shorter than the sidebar, it will render incorrectly.
This PR tries to fix that. Instead of having the sidebar positioned absolute, it is fixed and overflowed automatically on the y axis. This creates a secondary scrollbar, but I see no other options to solve this.
See illustrations below.
Current behavior:

Suggested behavior:

Sidenote: The content was altered by the inspector tool to create a view that has a taller sidebar than content, however this may happen in real life scenarios as well. With the fixed approach, scrolling feels more natural on mobile units. Desktops are left more or less unaltered.

Looks good :+1:


New windows version

I  uploaded a new exe version here:
shorturl.at/bBSU4

He opened tonnes of issues: https://github.com/skalBR
And always leaves the link to a malware.


Allow module overrides

Purpose
Modules are processed in two sets, the default modules predefined in BBH (Babel-Standalone and RequireJS) and then the user designated modules.
While there are certainly advantages to having a built-in and/or expected dependency versions, it's good to have the option to experiment with other versions in case of bugs, unexpected regressions, or newly available features.
Additionally, it's sometimes preferable (or required) to have a completely offline development environment, and that's not possible without the ability to override the CDN libraries.
Proposal
If a module is loaded in bbh.modules with the same name as one in DEFAULT_MODULES, ignore the one in DEFAULT_MODULES.
A simpler way to process it might be to simply drop any modules that have already been defined when determining load order in buildModuleEntries().
Caveat: Default Module Load Order
The default modules are currently loaded after user-specified modules, as RequireJS needs to be the last library to load, so it may be preferable to keep overrides in their default load positions if they are specified (by "name") in the default modules.
Load Position Alternative
Instead of retaining default load positions, it might also work to have a boolean field like "last" or "late" to designate that a library should be loaded as late as possible. If issue #1 get's completed, these "late" loaders would still need to be ordered via the "depends" field, which could potentially entail loading "early" loaders after "late" loaders and potentially complicate things a bit.

I have this working on branch issue1-and-issue2 (it will resolve both this issue and issue #1).
Overridden default and autoloader modules will look in modules before loading their own version (except in the case of bbh itself).
The dependency system from #1 is in place, and Instead of "early/late loader" functionality, I opted to keep modules listed as default modules in their original order at the end of the list. Otherwise, dependencies float around just fine, even allowing overridden module libraries to depend on autoloaders.
Still requires README documentation.

Due to the documentation rewrite (issue #25), there will be no documentation pass.
In review - PR #26.


How to close the bottom window opened after a push

When I make a push or pull, a window is opened at bottom of the editor, showing the git command output. How to hide this? Has some hotkey or a menu option in the toolbar?
Thanks.

You can hide the build panel by pressing Esc or have it not show up on build by setting the following option in your user preferences:
"show_panel_on_build": false,

I remember there was a package that would hide the panel on successful builds only, but I can't find it right now.

This work for me! Thanks! :+1:


#> is not a valid mysql operator

Using the steps described in the JSON Queries docs, the produced query implements the json#>{path} operator, which is not available in mysql. The alternative json->>"$.path" cannot be used in any way without producing an error.
parents: {
  relation: Model.HasManyRelation,
  modelClass: Child,
  join: {
    from: 'children.id',
    to: ref('children.details:parent')
  }
}

from debug: `children`.`details`#>'{name}'

Made advancements internally, with this super-band-aid solution, of overriding ReferenceBuilder.prototype._createReferenceSql with the Mysql appropriate operator
ReferenceBuilder.prototype._createReferenceSql = function(builder, bindings) {
  bindings.push(this.fullColumn(builder))

  if (this._parsedExpr.access.length > 0) {
    const extractor = this._cast ? '->>' : '->>'
    const jsonFieldRef = this._parsedExpr.access.map(field => field.ref).join(',')
    return `??${extractor}'$.${jsonFieldRef}'`
  } else {
    return '??'
  }
}

Unfortunately, JSON queries only work on postgres at the moment.


Nightly CI failures

https://dev.azure.com/ms/vscode-python/_build/results?buildId=12185

@DonJayamanne My fix for #5433 should fix #2 and #3 on this list. But we'll keep this issue open for #1 which is our general Jupyter timeout issue that we've been fighting on and off.

We haven't had any failures for a while.


ensure_app_context is called without arguments when importing

It seems that ensure_app_context is called on top level of routes.py.
However, when using the wsgi.py, the get_app calls it with arguments, especially to be able to configure data directory. Since it's called without arguments, the following error occurs:
PermissionError: [Errno 13] Permission denied: '/home/www-0bin/.local/share/0bin'

Yes, I need to add some env var reading in WSGI.py. I wasn't expecting people trying the new version so quickly to be honest :)
I haven't even updated the doc yet.

You know, sometimes, you're busy idling, so you're trying to update :wink:

I just checked, and we already read from the env vars ZEROBIN_DATA_DIR and ZEROBIN_CONFIG_DIR, so if you desire to use the wsgi file with a user that doesn't have a home directory, you can set those.
I'll add that to the doc, but systemd and mod_wsgi both provide a way to do so.


NEW YEAR COUNTDOWN GAME

Description
It is used to calculate the no of days left for new year celebration ,using the concept of html ,css, js .
Fixes #325
Replace #325 with the issue number which is fixed in this PR
Checklist:

[ ] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have created a helpful and easy to understand README.md
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@Ayush7614 bhaiya Please look into this pr


Power Toy Run - Just curser on the screen and not results

Microsoft PowerToys version
0.81.0
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
PowerToys Run
Steps to reproduce
use shortcut to open, just see larger curser no box, and when I type I see no results
✔ Expected Behavior
To see the box and results for what I type
❌ Actual Behavior
use shortcut to open, just see larger curser no box, and when I type I see no results
Other Software
N/A

Can you post a screenshot and a bug report?
/bugreport

Here is what it looks like and what it does when I blindly type abc.

I am also uploading the bug repot here:
PowerToysReport_2024-06-03-13-28-49.zip


Can files encrypted using Tink be decrypted by other programs or libraries?

I'd like to invest in using Tink to encrypt binary files. If at some point in the future I decide that I don't want to use Tink anymore, can I easily switch over to a new encryption program without having to modify my Tink-encrypted files? In other words, are encrypted Tink files "compatible" with any other tool such as gpg, jasypt, libsodium, openssl, or whatever else?
If I want to move away from Tink, there's always the option of decrypting all my files using Tink, and then re-encrypting them using my new tool of choice... but that is laborious given the amount of data that I have.
thx!

Unfortunately, no.
We might produce a mode that is compatible with libsodium, but at the moment it's not of high priority.

Okay thanks for the info. I can see that AesGcmJce saves encrypted data in a clean format that I can manipulate later. For those who don't know, look at AesGcmJce.encrypt():
IV + encrypted_data + GCM_TAG

Unfortunately, no.

@thaidn is this still the case? I noticed in KeyTemplate rawXChaCha20Poly1305Template the comment:
@return a {@link KeyTemplate} that generates new instances of XChaCha20Poly1305 keys. Keys
   *     generated from this template create ciphertexts compatible with libsodium and other
   *     libraries.

which mentions compatibility with libsodium.


[FEAT]: Google Sign-In Integration

Description
Add Google Sign-In functionality to the website to allow users to authenticate using their Google accounts. This feature aims to provide a convenient and secure login method, enhancing user experience and potentially increasing user registration rates.
Requirements

Google Sign-In Button: Add a Google Sign-In button on the login and registration pages.
OAuth 2.0 Implementation: Implement OAuth 2.0 flow to securely authenticate users via their Google accounts.
Backend Integration: Connect the authentication process to the backend, ensuring proper user session management.
UI/UX: Ensure the sign-in process is seamless and intuitive for users.
Error Handling: Properly handle and display any errors that occur during the sign-in process.

Additional Information

API Documentation: Google Sign-In for Websites

Acceptance Criteria

Users can see a Google Sign-In button on the login and registration pages.
Users can sign in using their Google accounts.
The backend properly handles the OAuth 2.0 authentication flow.
Users are seamlessly redirected to the dashboard or appropriate page after sign-in.
Proper error messages are displayed for any authentication errors.

Tasks

[ ] Add Google Sign-In button to the login and registration pages.
[ ] Implement OAuth 2.0 flow for Google Sign-In.
[ ] Integrate the authentication process with the backend.
[ ] Ensure smooth UI/UX for the sign-in process.
[ ] Implement error handling for authentication issues.

Labels: enhancement, authentication, frontend, backend

Hey I am intreseted to work on this project and would be happy to solve these tasks.

Then do it as fast as possible!

ok i am on it.

Great to hear!


Broken links

So this wrapper is actually great, and actually more efficient than the full-on certbot port I was expecting for ZeroSSL, but the links to https://certbot.zerossl.com/get-certbot.sh and https://certbot.zerossl.com/certbot-zerossl.sh are broken. I'm sure fixing this is planned as part of the full rollout, but it makes it a bit more difficult to start issuing ACME certificates when the links to download the wrapper are broken on a DNS level. Any time frame?

Links are no longer broken.


organization of community maintained tool & workflow descriptions

One file per tool.
Incomplete descriptions are welcome as long as they are usable.
General encouragement to share early & often

"standing pull request" are to be encouraged

Suggest adding this to the README

Is there a standard for the metadata to include for later parsing into RDF and Sparql?

@seandavi You mean something like this via the --print-rdf argument through cwltool?
$ cwltool --print-rdf metadata-custom.cwl
@prefix CommandLineBinding: <https://w3id.org/cwl/cwl#CommandLineBinding/> .
@prefix CommandLineTool: <https://w3id.org/cwl/cwl#CommandLineTool/> .
@prefix CommandOutputBinding: <https://w3id.org/cwl/cwl#CommandOutputBinding/> .
@prefix Dirent: <https://w3id.org/cwl/cwl#Dirent/> .
@prefix DockerRequirement: <https://w3id.org/cwl/cwl#DockerRequirement/> .
@prefix EnvVarRequirement: <https://w3id.org/cwl/cwl#EnvVarRequirement/> .
@prefix EnvironmentDef: <https://w3id.org/cwl/cwl#EnvironmentDef/> .
@prefix ExpressionTool: <https://w3id.org/cwl/cwl#ExpressionTool/> .
@prefix File: <https://w3id.org/cwl/cwl#File/> .
@prefix InlineJavascriptRequirement: <https://w3id.org/cwl/cwl#InlineJavascriptRequirement/> .
@prefix LinkMergeMethod: <https://w3id.org/cwl/cwl#LinkMergeMethod/> .
@prefix Parameter: <https://w3id.org/cwl/cwl#Parameter/> .
@prefix ResourceRequirement: <https://w3id.org/cwl/cwl#ResourceRequirement/> .
@prefix ScatterMethod: <https://w3id.org/cwl/cwl#ScatterMethod/> .
@prefix SchemaDefRequirement: <https://w3id.org/cwl/cwl#SchemaDefRequirement/> .
@prefix SoftwarePackage: <https://w3id.org/cwl/cwl#SoftwarePackage/> .
@prefix SoftwareRequirement: <https://w3id.org/cwl/cwl#SoftwareRequirement/> .
@prefix Workflow: <https://w3id.org/cwl/cwl#Workflow/> .
@prefix cwl: <https://w3id.org/cwl/cwl#> .
@prefix ns1: <rdfs:> .
@prefix ns2: <http://xmlns.com/foaf/0.1/> .
@prefix ns3: <http://purl.org/dc/terms/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sld: <https://w3id.org/cwl/salad#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<file:///home/pgrosu/storage/metadata-custom.cwl> a cwl:CommandLineTool ;
    ns3:creator <http://orcid.org/0000-0003-3566-7705> ;
    cwl:baseCommand ( "cat" ) ;
    cwl:cwlVersion cwl:v1.0 ;
    cwl:hints [ a cwl:DockerRequirement ;
            DockerRequirement:dockerPull "debian:wheezy" ] ;
    cwl:inputs <file:///home/pgrosu/storage/metadata-custom.cwl#file1>,
        <file:///home/pgrosu/storage/metadata-custom.cwl#numbering> ;
    ns1:comment "Print the contents of a file to stdout using 'cat' running in a docker container." .

<file:///home/pgrosu/storage/metadata-custom.cwl#file1> cwl:inputBinding [ CommandLineBinding:position 1 ] ;
    sld:type cwl:File .

<file:///home/pgrosu/storage/metadata-custom.cwl#numbering> cwl:inputBinding [ CommandLineBinding:position 0 ;
            CommandLineBinding:prefix "-n" ] ;
    sld:type xsd:boolean,
        sld:null .

<http://orcid.org/0000-0003-3566-7705> ns2:mbox<EMAIL_ADDRESS>;
    ns2:name "Peter Amstutz" .

$

The above was generated using the 1.0 version of cwltool, and with the following files:
$ wget https://raw.githubusercontent.com/RDFLib/rdflib/master/examples/foaf.rdf
$ wget https://raw.githubusercontent.com/common-workflow-language/cwltool/fafbdb5c077a67567c97bb89abd005732e458a7f/cwltool/schemas/v1.0/v1.0/dcterms.rdf
$ cat metadata-custom.cwl
#!/usr/bin/env cwl-runner
$namespaces:
  dct: http://purl.org/dc/terms/
  foaf: http://xmlns.com/foaf/0.1/
$schemas:
  - foaf.rdf
  - dcterms.rdf

cwlVersion: v1.0
class: CommandLineTool
doc: "Print the contents of a file to stdout using 'cat' running in a docker container."

dct:creator:
  id: "http://orcid.org/0000-0003-3566-7705"
  foaf:name: Peter Amstutz
  foaf:mbox<EMAIL_ADDRESS>
hints:
  DockerRequirement:
    dockerPull: debian:wheezy
inputs:
  file1:
    type: File
    inputBinding: {position: 1}
  numbering:
    type: boolean?
    inputBinding:
      position: 0
      prefix: -n
outputs: []
baseCommand: cat

Hope it helps,
~p

Yep.  That is what I had in mind.  Just need to digest all that now.  Thanks, @pgrosu.


⚠ Jenkins Plugins Artifactory has degraded performance

In bf3e44c, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1174 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 9b35ba1 after 2 hours, 1 minute.


Weather file downloads broken for solar and wind

Weather file download returns geocode error:

For wind, works OK if you provide lat/lon, but not location name or street address.
For solar, does not work for either.
Marine energy wave works OK.

See easycurl.cpp in WEX. Solution is to use a JSON reader instead of attempting to parse the JSON response by splitting the returned JSON by commas into an array:
https://github.com/NREL/wex/blob/28c2fe6c840cdd5f28d5a189927012edadfa78b3/src/easycurl.cpp#L629
LK script for testing geocode function (requires copying and pasting keys from private.h):
geocode-tests-no-keys.zip
Note RapidJSON implementation in https://github.com/NREL/SAM/issues/486

@cpaulgilman we're having an issue with weather files as well while using pysam to generate a solar valuation.
The error we're seeing is this:
exec fail(pvwattsv7): first two header lines must have same number of columns

We're using pysam 2.2.4 and it was reported only today.
Here's the weather file in question
nsrdb_38.81_-77.26_psm3-tmy_60_tmy_zpexne.csv

@ghazi-git I just noticed this as well. The issue I discovered is that some files from the NSRDB are being returned with a "Version" column in the header (Row 1), but no version number in Row 2. SAM's weather file reader requires that the first two header rows have the same number of columns. A workaround solution for now might be to edit the header rows before using the weather file -- adding a comma to Row 2 should do the trick.
This is an issue that we either need to fix in SAM's weather file reader, or see if the NSRDB team can ensure that all weather files are returned with a version number.
Here is where the weather file reader makes that check: https://github.com/NREL/ssc/blob/9766fe9b54161f13d1fad26e465c7882877e52c3/shared/lib_weatherfile.cpp#L790.

Thank you @cpaulgilman, the issue is fixed when adding an extra comma to the second row. However, I chose to set the missing version value as "3.2.0" since both rows already have the same number of columns which is 20 (setting the version to any value fixes the issue as well).

I found this regarding NSRDB version numbers: https://github.com/NREL/developer.nrel.gov/issues/281. It sounds like that issue has been fixed, but I haven't tested it in the context mentioned here.


[mongo] support-scheduler exited when running mongo no security compose file

Execute docker-compose -f docker-compose-nexus-mongo-no-secty.yml up -d, and then edgex-support-scheduler exits immediately.
the logs of edgex-support-scheduler
level=INFO ts=2020-03-11T08:08:16.1551223Z app=edgex-support-scheduler source=bootstrap.go:133 msg="Loaded configuration from http://edgex-core-consul:8500"
level=INFO ts=2020-03-11T08:08:16.1552386Z app=edgex-support-scheduler source=registry.go:49 msg="Using Registry from http://edgex-core-consul:8500"
level=INFO ts=2020-03-11T08:08:16.1626262Z app=edgex-support-scheduler source=config.go:138 msg="Writeable configuration has been updated from the Configuration Provider"
level=INFO ts=2020-03-11T08:08:16.1790992Z app=edgex-support-scheduler source=database.go:144 msg="Database connected"
level=INFO ts=2020-03-11T08:08:16.1806355Z app=edgex-support-scheduler source=loader.go:38 msg="loading intervals, interval actions ..."
level=ERROR ts=2020-03-11T08:08:16.1829089Z app=edgex-support-scheduler source=init.go:63 msg="Failed to load schedules and events command find requires authentication"
level=INFO ts=2020-03-11T08:08:16.1848322Z app=edgex-support-scheduler source=database.go:158 msg="Database disconnected"
level=INFO ts=2020-03-11T08:08:16.1865204Z app=edgex-support-scheduler source=bootstrap.go:160 msg="Un-Registering service from the Registry"

fixed with edgexfoundry/edgex-go#2433


docs(getting-started): fix missing dot in file name

What this PR does / why we need it
Simple typo fix in the documentation
Acceptance Criteria Met

[ ] Docs changes if needed
[ ] Testing changes if needed
[ ] All workflow checks passing (automatically enforced)
[ ] All review conversations resolved (automatically enforced)
[ ] DCO Sign-off

Special notes for your reviewer:

Changing to draft to see if I find other issues while testing witness.
I'll remove the draft flag at the end of the day if I do not find anything else.


feat: Add download as CSV to Data grid

🙋 Feature Request
It would be great with a CSV export feature for data grid.  See MUI as an example: https://mui.com/x/react-data-grid/export/
🤔 Expected Behavior
Button named export that exports headers and values into a CSV file.

I don't think this is something we would make available out of the box. But I'll turn this into a discussion on the form so we can gather more feedback


Update package.json to support node 20

Requested by a community member

Merging on behalf of @Lith


Bring back auto-expand and make it opt-in

Opt-in to auto-expanding results via the :nextjournal.clerk/auto-expand-results? true doc setting.

Please don’t merge this yet. There is still an issue with table viewers when {:nextjournal.clerk/auto-expand-results? true}.


add layer/add widget share same button and can be confusing

Context
in the editor panel I've started to add a new widget when trying to add a new layer, because I find it confusing they share the same button (see attached)

Steps to Reproduce

go to builder panel in a map
click in widgets tab
click add

Current Result
start to add widgets
Expected result
as I am used to click on the add button to add layers, I expect it to add layers, not widgets
Additional info
I propose to add the buton below the navigation menu, as it can increase affordance and it can even stress the kind of element you are adding, we're already doing this for analysis, and upload (dashed line)

it is the same interaction than adding a new layer in the old editor
finally I'd suggest setting an A/B test, and a user session with the two versions
/cc @CartoDB/design

I have another Idea that I'd love to show you, give me some days!
On Fri, Jan 20, 2017, 9:49 AM Carlos Matallín<EMAIL_ADDRESS>wrote:

Context
in the editor panel I've started to add a new widget when trying to add a
new layer, because I find it confusing they share the same button (see
attached)
[image: screen shot 2016-12-07 at 11 55 28]
https://cloud.githubusercontent.com/assets/36676/22153411/828d9ab6-df27-11e6-8d28-7c7cdfa91804.png
[image: screen shot 2016-12-07 at 11 55 37]
https://cloud.githubusercontent.com/assets/36676/22153412/82911452-df27-11e6-8499-4c854f7cdf15.png
Steps to Reproduce

go to builder panel in a map
click in widgets tab
click add

Current Result
start to add widgets
Expected result
as I am used to click on the add button to add layers, I expect it to add
layers, not widgets
Additional info
I propose to add the buton below the navigation menu, as it can
increase affordance and it can even stress the kind of element you are
adding, we're already doing this for analysis, and upload (dashed line)
[image: screen shot 2016-12-07 at 15 07 47]
https://cloud.githubusercontent.com/assets/36676/22153463/bef2bc02-df27-11e6-8602-5ad04ef1a22e.png
[image: screen shot 2016-12-07 at 11 56 51]
https://cloud.githubusercontent.com/assets/36676/22153460/b8ad42e0-df27-11e6-9ffd-568e85e0bbed.png
it is the same interaction than adding a new layer in the old editor
finally I'd suggest setting an A/B test, and a user session with the two
versions
/cc @CartoDB/design https://github.com/orgs/CartoDB/teams/design
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/CartoDB/cartodb/issues/11325, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIENRJEXbDhQabCNR5eTKVWP3FpM0Riks5rUMl1gaJpZM4LpYak
.

FYI, this is getting tackled here: https://github.com/CartoDB/design/issues/1071

I can't believe it *___*


Build Gradle plugin using composite build

Pros:

Creates a much improved experience developing the Gradle plugin.
Easier to publish changes when there are bugs in the Gradle plugin that don't affect detekt (see #807 & #854), since the new plugin can be published without publishing a new detekt version as well

Cons:

Have to manage releases of the Gradle plugin in addition to releases of detekt itself (though Gradle plugin releases only need to be made if there's a change that needs to be published. It's not necessary every time a new detekt version is published)

I personally feel the pros outweigh the cons. I'm sure @Mauin will too! (PS @Mauin I tested on your branch and seems to work, but had to cherry pick the commits from this PR because we last rebased our own branches at different points on master).
Closes #920

How should the gradle plugin now run detekt without an explicit dependency on the cli module?
I checked out your branch, incremented the version and got htis:
* What went wrong:
Could not determine the dependencies of task ':detektCheck'.
> Could not resolve all task dependencies for configuration ':detekt'.
   > Could not find io.gitlab.arturbosch.detekt:detekt-cli:1.0.0.RC7-2.
     Searched in the following locations:
         https://jcenter.bintray.com/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.pom
         https://jcenter.bintray.com/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.jar
         file:/home/artur/.m2/repository/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.pom
         file:/home/artur/.m2/repository/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.jar
         http://dl.bintray.com/jetbrains/spek/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.pom
         http://dl.bintray.com/jetbrains/spek/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.jar
     Required by:
         project :

Here's something that might help:
if (gradle.parent != null) { // we're part of a composite build
	gradle.parent.projectsLoaded {
		// at this point the settings.gradle has been executed and probably the gradle files
		// compiled, but not executed. So we only have access to what gradle supports:
		println "Parent: ${gradle.parent}: ${gradle.parent.rootProject.properties}"
	}
	gradle.parent.projectsEvaluated {
		// at this point the outer project has been evaluated
		// and you can see the result of its build.gradle execution
		println "Parent: ${gradle.parent}: ${gradle.parent.rootProject.tasks}"
	}
	// careful, code put here will be executed before the gradle.parent callbacks
}

If you're making changes to detekt and want to run the build with those changes you'd have to publish the new detekt CLI version somewhere so the Gradle plugin could consume it. Definitely a downside to this setup, but necessary due to the decoupling of the plugin from the main project.
When testing locally, you can do this:

Make changes to detekt
Update detektVersion in gradle.properties
Publish with ./gradlew publishToMavenLocal
Update usedDetektVersion in gradle.properties to reflect new detekt version
Run ./gradlew detektCheck

@3flex that's exactly how I test new releases. You do not have missing dependency problems?

I went through that sequence on my branch before posting my comment to verify and it appeared to work. The composite build doesn't change how the detekt CLI dependency is resolved when the plugin itself runs, only how the plugin is built.
These lines from your log suggest you maybe didn't publish the version to local, or had a mismatched version somewhere?
file:/home/artur/.m2/repository/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.pom
file:/home/artur/.m2/repository/io/gitlab/arturbosch/detekt/detekt-cli/1.0.0.RC7-2/detekt-cli-1.0.0.RC7-2.jar

Ah just wrong thinking ... we resolve the detekt-cli module at runtime.
If @Mauin also gives his yes, I will gradly merge this and publish a new release :)

Just remember when you release: with this change detekt and detekt-gradle-plugin are now versioned independently, so you'll have to bump both versions before publishing :)

@Mauin sorry no, I don't - we branched from master at different points and I couldn't cleanly rebase your branch on top. Sounds like this will be merged soon though, so best just to rebase in one shot once it's in master. Have fun!


Rename "handle" to "Nostr address"

Karnage brought up that the community has decide on this terminology. It's also mentioned in the Nostr Design guide.

Started changing this in #66. Need to go through the whole site though.


Its possible print images on full page?

When i use the DatecsGenerate like:
`ByteData bytes = await rootBundle.load('assets/empty-box.png');
var buffer = bytes.buffer;
var m = base64Encode(Uint8List.view(buffer));
  generate.image(m);`

The image is printed in center of page and the size this image is the same independent the resolution of image file,
Is there any way to format the size of the image on the printout?
I'm trying to print a PDF converted to an image, but the resolution is too small on the printout.

When I build this package, the image only purpose for company logo so I resize for 300x300 and center align. But you can fork and modify in android java file line 168


Revert setting path when ResourceFormatLoader::CACHE_MODE_IGNORE

As discussed with @reduz in the Godot contributors chat.
The current behaviour could be linked to a multitude of reloading issues. To cite Juan:

If cache mode is IGNORE, it should never set the path, because there can only be a single resource using a single path, and cache mode IGNORE is used in all sort of situations when you want to load a version of the resource without setting the path

Looks like @reduz did the same some minutes before you. 😄
https://github.com/godotengine/godot/pull/71170

Duplicate of #71170. (:laughing:)


Security. How to disable issued access token?

Please tell me how can I turn off the valid authorization token that was issued to the user, what is the name of the token reading method on the endpoint call?
I studied the topic, in such cases a blacklist is used, but I do not understand how I can check token for existing in blacklist when calling the endpoint.
Any advice would be helpful, thanks for the help!

i agree with what @aroman35 said.
and you could possibly do the blacklist check by setting an action for the OnTokenValidated jwt bearer event like so:
builder.Services
    .AddFastEndpoints()
    .AddJWTBearerAuth("signing_key", bearerEvents: x =>
    {
        x.OnTokenValidated = async context =>
        {
            var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Replace("Bearer ", "");
            if (TokenIsRevoked(token))
            {
                context.Fail("Token Revoked!");
            }
        };
    })