Thrashing of ada0 (boot device, hard disk drive) whilst testing a USB thumb drive at da0

Device
8 GB Verbatim STORE N GO s/n<PHONE_NUMBER>4381
Symptoms
Before killing stressdisk – note the xterm view of gstat -p:

The desktop environment became completely unusable, I had to key Control-Alt-F2 then log in as root to perform a killing (and at ttyv1 things were also horribly slow to respond).
Also at some point I pulled out the drive, in an attempt to regain use of the desktop environment.

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/da0. Proceed? (Y/N): y
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y
root@mowa219-gjp4-8570p:~ # gdisk /dev/da0
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/da0.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
root@mowa219-gjp4-8570p:~ # gpart add -t freebsd-ufs /dev/da0
da0p1 added
root@mowa219-gjp4-8570p:~ # tail -f -n 0 /var/log/messages
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0 (disconnected)
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: umass0: at uhub2, port 4, addr 12 (disconnected)
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO >  s/n<PHONE_NUMBER>4381 detached
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: umass0: detached
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0 on uhub2
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0: <Verbatim STORE N GO, class 0/0, rev 2.00/3.02, addr 13> on usbus0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0:  SCSI over Bulk-Only; quirks = 0x8100
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0:6:0: Attached to scbus6
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO > Removable Direct Access SPC-2 SCSI device
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: Serial Number<PHONE_NUMBER>4381
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: 40.000MB/s transfers
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: 7450MB (15257600 512 byte sectors)
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: quirks=0x2<NO_6_BYTE>
^C
root@mowa219-gjp4-8570p:~ # mount | grep /dev/da0
/dev/da0p1 on /media/da0p1 (ufs, local, noatime, soft-updates)
root@mowa219-gjp4-8570p:~ # umount /dev/da0p1
root@mowa219-gjp4-8570p:~ # newfs -U /dev/da0p1
/dev/da0p1: 7450.0MB (15257528 sectors) block size 32768, fragment size 4096
        using 12 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
        with soft updates
super-block backups (for fsck_ffs -b #) at:
 192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120
root@mowa219-gjp4-8570p:~ # stressdisk cycle /media/da0p1
2020/12/29 16:53:24 loaded statsfile "stressdisk_stats.json"
2020/12/29 16:53:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     339804 MByte (  28.55 MByte/s)
Errors:                 0
Elapsed time:  15.8177ms

2020/12/29 16:53:24 Removing 0 check files
2020/12/29 16:53:24 Starting round 1
2020/12/29 16:53:24 No check files - generating
2020/12/29 16:53:24 Writing file "/media/da0p1/TST_0000" size<PHONE_NUMBER>
2020/12/29 16:53:41 Writing file "/media/da0p1/TST_0001" size<PHONE_NUMBER>
2020/12/29 16:54:03 Writing file "/media/da0p1/TST_0002" size<PHONE_NUMBER>
2020/12/29 16:54:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     342110 MByte (  28.61 MByte/s)
Errors:                 0
Elapsed time:  1m0.027501662s

2020/12/29 16:55:17 Writing file "/media/da0p1/TST_0003" size<PHONE_NUMBER>
2020/12/29 16:55:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     342946 MByte (  28.53 MByte/s)
Errors:                 0
Elapsed time:  2m0.017231596s

2020/12/29 16:56:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     343394 MByte (  28.43 MByte/s)
Errors:                 0
Elapsed time:  3m0.017895492s

2020/12/29 16:57:20 Writing file "/media/da0p1/TST_0004" size<PHONE_NUMBER>
2020/12/29 16:57:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     343902 MByte (  28.33 MByte/s)
Errors:                 0
Elapsed time:  4m0.016999931s

2020/12/29 16:58:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     343902 MByte (  28.19 MByte/s)
Errors:                 0
Elapsed time:  5m0.017601053s

2020/12/29 16:59:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     344386 MByte (  28.09 MByte/s)
Errors:                 0
Elapsed time:  6m0.022453597s

2020/12/29 16:59:51 Writing file "/media/da0p1/TST_0005" size<PHONE_NUMBER>
2020/12/29 17:00:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     344906 MByte (  28.00 MByte/s)
Errors:                 0
Elapsed time:  7m0.018322716s

2020/12/29 17:01:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     345370 MByte (  27.90 MByte/s)
Errors:                 0
Elapsed time:  8m0.019557024s

2020/12/29 17:01:41 Writing file "/media/da0p1/TST_0006" size<PHONE_NUMBER>
2020/12/29 17:02:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     345938 MByte (  27.81 MByte/s)
Errors:                 0
Elapsed time:  9m0.017759961s

2020/12/29 17:03:16 Writing file "/media/da0p1/TST_0007" size<PHONE_NUMBER>
2020/12/29 17:03:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     346782 MByte (  27.75 MByte/s)
Errors:                 0
Elapsed time:  10m0.017142056s

2020/12/29 17:04:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     347208 MByte (  27.65 MByte/s)
Errors:                 0
Elapsed time:  11m0.019511856s

2020/12/29 17:04:35 Writing file "/media/da0p1/TST_0008" size<PHONE_NUMBER>
2020/12/29 17:05:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     348070 MByte (  27.59 MByte/s)
Errors:                 0
Elapsed time:  12m0.017144621s

2020/12/29 17:06:07 Writing file "/media/da0p1/TST_0009" size<PHONE_NUMBER>
2020/12/29 17:06:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     348508 MByte (  27.50 MByte/s)
Errors:                 0
Elapsed time:  13m0.020073079s

2020/12/29 17:07:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     348868 MByte (  27.40 MByte/s)
Errors:                 0
Elapsed time:  14m0.019262452s

2020/12/29 17:08:12 Writing file "/media/da0p1/TST_0010" size<PHONE_NUMBER>
2020/12/29 17:08:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     349566 MByte (  27.32 MByte/s)
Errors:                 0
Elapsed time:  15m0.017908884s

2020/12/29 17:09:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     350224 MByte (  27.25 MByte/s)
Errors:                 0
Elapsed time:  16m0.01947212s

2020/12/29 17:09:54 Writing file "/media/da0p1/TST_0011" size<PHONE_NUMBER>
2020/12/29 17:10:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     350372 MByte (  27.13 MByte/s)
Errors:                 0
Elapsed time:  17m0.017295567s

2020/12/29 17:11:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     351196 MByte (  27.07 MByte/s)
Errors:                 0
Elapsed time:  18m0.020118431s

2020/12/29 17:11:39 Writing file "/media/da0p1/TST_0012" size<PHONE_NUMBER>
2020/12/29 17:12:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     351556 MByte (  26.97 MByte/s)
Errors:                 0
Elapsed time:  19m0.018097782s

2020/12/29 17:13:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     352200 MByte (  26.90 MByte/s)
Errors:                 0
Elapsed time:  20m0.021488482s

2020/12/29 17:13:50 Writing file "/media/da0p1/TST_0013" size<PHONE_NUMBER>
2020/12/29 17:14:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     352722 MByte (  26.82 MByte/s)
Errors:                 0
Elapsed time:  21m0.017076319s

2020/12/29 17:15:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353010 MByte (  26.72 MByte/s)
Errors:                 0
Elapsed time:  22m0.018075397s

2020/12/29 17:16:22 Writing file "/media/da0p1/TST_0014" size<PHONE_NUMBER>
2020/12/29 17:16:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353314 MByte (  26.62 MByte/s)
Errors:                 0
Elapsed time:  23m0.020065924s

2020/12/29 17:18:04
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353314 MByte (  26.42 MByte/s)
Errors:                 0
Elapsed time:  24m40.375337347s

2020/12/29 17:18:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353590 MByte (  26.41 MByte/s)
Errors:                 0
Elapsed time:  25m0.017057352s

2020/12/29 17:19:41
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353596 MByte (  26.25 MByte/s)
Errors:                 0
Elapsed time:  26m17.27667804s

2020/12/29 17:20:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     353894 MByte (  26.19 MByte/s)
Errors:                 0
Elapsed time:  27m0.01845818s

2020/12/29 17:21:13 Writing file "/media/da0p1/TST_0015" size<PHONE_NUMBER>
2020/12/29 17:21:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     354152 MByte (  26.10 MByte/s)
Errors:                 0
Elapsed time:  28m0.026047642s

2020/12/29 17:22:54
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     354160 MByte (  25.92 MByte/s)
Errors:                 0
Elapsed time:  29m30.614921269s

2020/12/29 17:23:24
Bytes read:        241516 MByte ( 137.44 MByte/s)
Bytes written:     354436 MByte (  25.89 MByte/s)
Errors:                 0
Elapsed time:  30m0.018249195s

Terminated
root@mowa219-gjp4-8570p:~ #

A relevant extract from /var/log/messages (read this alongside https://github.com/ncw/stressdisk/issues/14#issuecomment-752368519 above):
Dec 29 16:50:06 mowa219-gjp4-8570p kernel: ugen0.6: <Kingston DataTraveler 3.0> at usbus0 (disconnected)
Dec 29 16:50:06 mowa219-gjp4-8570p kernel: umass0: at uhub2, port 8, addr 11 (disconnected)
Dec 29 16:50:07 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:50:07 mowa219-gjp4-8570p kernel: da0: <Kingston DataTraveler 3.0 PMAP>  s/n 08606E6D401FE341570219CC detached
Dec 29 16:50:07 mowa219-gjp4-8570p kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Dec 29 16:50:07 mowa219-gjp4-8570p kernel: umass0: detached
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: umass0 on uhub2
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: umass0: <Verbatim STORE N GO, class 0/0, rev 2.00/3.02, addr 12> on usbus0
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: umass0:  SCSI over Bulk-Only; quirks = 0x8100
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: umass0:6:0: Attached to scbus6
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO > Removable Direct Access SPC-2 SCSI device
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0: Serial Number<PHONE_NUMBER>4381
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0: 40.000MB/s transfers
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0: 7450MB (15257600 512 byte sectors)
Dec 29 16:50:18 mowa219-gjp4-8570p kernel: da0: quirks=0x2<NO_6_BYTE>
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0 (disconnected)
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: umass0: at uhub2, port 4, addr 12 (disconnected)
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO >  s/n<PHONE_NUMBER>4381 detached
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Dec 29 16:52:25 mowa219-gjp4-8570p kernel: umass0: detached
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0 on uhub2
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0: <Verbatim STORE N GO, class 0/0, rev 2.00/3.02, addr 13> on usbus0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0:  SCSI over Bulk-Only; quirks = 0x8100
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: umass0:6:0: Attached to scbus6
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO > Removable Direct Access SPC-2 SCSI device
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: Serial Number<PHONE_NUMBER>4381
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: 40.000MB/s transfers
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: 7450MB (15257600 512 byte sectors)
Dec 29 16:52:29 mowa219-gjp4-8570p kernel: da0: quirks=0x2<NO_6_BYTE>
Dec 29 17:16:33 mowa219-gjp4-8570p kernel: ugen0.8: <Android Android> at usbus0
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: umass2 on uhub6
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: umass2: <Mass Storage> on usbus0
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: umass2:  SCSI over Bulk-Only; quirks = 0x0000
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: umass2:8:2: Attached to scbus8
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: cd1 at umass-sim2 bus 2 scbus8 target 0 lun 0
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: cd1: <OnePlus Device Driveret 0310> Fixed CD-ROM SCSI-2 device
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: cd1: 40.000MB/s transfers
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: cd1: 10MB (5281 2048 byte sectors)
Dec 29 17:18:04 mowa219-gjp4-8570p kernel: cd1: quirks=0x10<10_BYTE_ONLY>
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: ugen0.6: <Verbatim STORE N GO> at usbus0 (disconnected)
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: umass0: at uhub2, port 4, addr 13 (disconnected)
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: da0: <Verbatim STORE N GO >  s/n<PHONE_NUMBER>4381 detached
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Dec 29 17:21:12 mowa219-gjp4-8570p kernel: umass0: detached
Dec 29 17:23:01 mowa219-gjp4-8570p kernel: umass2: at uhub6, port 1, addr 14 (disconnected)
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1 at umass-sim2 bus 2 scbus8 target 0 lun 0
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1: <OnePlus Device Driveret 0310>  detached
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: (cd1:umass-sim2:2:0:0): Periph destroyed
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: umass2: detached
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: umass0 on uhub6
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: umass0: <Mass Storage> on usbus0
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: umass0:6:0: Attached to scbus6
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1 at umass-sim0 bus 0 scbus6 target 0 lun 0
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1: <OnePlus Device Driveret 0310> Fixed CD-ROM SCSI-2 device
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1: 40.000MB/s transfers
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1: 10MB (5281 2048 byte sectors)
Dec 29 17:24:33 mowa219-gjp4-8570p kernel: cd1: quirks=0x10<10_BYTE_ONLY>
Dec 29 17:24:38 mowa219-gjp4-8570p webcamd[55256]: webcamd: Cannot find USB device
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: pid 3491 (bsdisks), jid 0, uid 0: exited on signal 11 (core dumped)
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: (cd1:umass-sim0:0:0:0): READ TOC/PMA/ATIP. CDB: 43 02 00 00 00 00 aa 00 0c 00
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: (cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: (cd1:umass-sim0:0:0:0): SCSI status: Check Condition
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: (cd1:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
Dec 29 17:24:49 mowa219-gjp4-8570p kernel: (cd1:umass-sim0:0:0:0): Error 22, Unretryable error
Dec 29 17:24:49 mowa219-gjp4-8570p devd[2234]: notify_clients: send() failed; dropping unresponsive client
Dec 29 17:26:46 mowa219-gjp4-8570p kernel: pid 28483 (thunderbird), jid 0, uid 1002: exited on signal 11 (core dumped)

It looks like stressdisk overloaded the USB device and caused it to disconnect and reconnect., thrashing the bus with your boot disk on.
This could possibly be a kernel bug, but most likely it is dodgy firmware in your USB thumb drive. Possibly a combination of the two.
This is the kind of thing stressdisk was designed to find. There is no way a user space program with no special privileges should be able to cause this chaos - therefore there is a fault elsewhere, either in the kernel, the drivers or the USB thumb drive.

It looks like stressdisk overloaded the USB device and caused it to disconnect and reconnect.,

Sorry, I should have been clearer.
Considering a previous thrashing (whilst testing the same USB drive), for what's above I ran this in a separate tab before commencing the stress test:
tail -f -n 0 /var/log/messages
When the thrashing of adao began, there was nothing significant in /var/log/messages.
Things were logged there only after e.g. my somewhat desperate physical removal of the USB drive (because I couldn't kill/terminate the stress test)

This could possibly be a kernel bug, but most likely it is dodgy firmware in your USB thumb drive. Possibly a combination of the two.

Thanks.
Compared to (for example) two three Kingston DataTraveler drives that I have tested, the progress of newfs(8) –
192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120
– was, to my eye, unnaturally fast with this Verbatim STORE N GO. These are my first experiences with newfs so maybe it's irrelevant, but for the record, repeating part of the routine:
root@mowa219-gjp4-8570p:~ # date ; gpart add -t freebsd-ufs /dev/da2
Wed Dec 30 13:29:34 GMT 2020
da2p1 added
root@mowa219-gjp4-8570p:~ # time newfs -U /dev/da2p1
/dev/da2p1: 7450.0MB (15257528 sectors) block size 32768, fragment size 4096
        using 12 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
        with soft updates
super-block backups (for fsck_ffs -b #) at:
 192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120
0.016u 0.000s 0:00.86 1.1%      48+544k 7+62io 0pf+0w
root@mowa219-gjp4-8570p:~ #

I'll take this to a FreeBSD area for additional advice/thoughts …

I don't think this is a stressdisk bug so that is probably the best course of action.
I'll close this now.

Post-op clean-up:
grahamperrin@mowa219-gjp4-8570p:~ % mount | grep da*
grep: No match.
grahamperrin@mowa219-gjp4-8570p:~ % du -hs /media/da1p1
183G    /media/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % ls /media/da1p1
TST_0000        TST_0033        TST_0066        TST_0099        TST_0132        TST_0165
TST_0001        TST_0034        TST_0067        TST_0100        TST_0133        TST_0166
TST_0002        TST_0035        TST_0068        TST_0101        TST_0134        TST_0167
TST_0003        TST_0036        TST_0069        TST_0102        TST_0135        TST_0168
TST_0004        TST_0037        TST_0070        TST_0103        TST_0136        TST_0169
TST_0005        TST_0038        TST_0071        TST_0104        TST_0137        TST_0170
TST_0006        TST_0039        TST_0072        TST_0105        TST_0138        TST_0171
TST_0007        TST_0040        TST_0073        TST_0106        TST_0139        TST_0172
TST_0008        TST_0041        TST_0074        TST_0107        TST_0140        TST_0173
TST_0009        TST_0042        TST_0075        TST_0108        TST_0141        TST_0174
TST_0010        TST_0043        TST_0076        TST_0109        TST_0142        TST_0175
TST_0011        TST_0044        TST_0077        TST_0110        TST_0143        TST_0176
TST_0012        TST_0045        TST_0078        TST_0111        TST_0144        TST_0177
TST_0013        TST_0046        TST_0079        TST_0112        TST_0145        TST_0178
TST_0014        TST_0047        TST_0080        TST_0113        TST_0146        TST_0179
TST_0015        TST_0048        TST_0081        TST_0114        TST_0147        TST_0180
TST_0016        TST_0049        TST_0082        TST_0115        TST_0148        TST_0181
TST_0017        TST_0050        TST_0083        TST_0116        TST_0149        TST_0182
TST_0018        TST_0051        TST_0084        TST_0117        TST_0150        TST_0183
TST_0019        TST_0052        TST_0085        TST_0118        TST_0151        TST_0184
TST_0020        TST_0053        TST_0086        TST_0119        TST_0152        TST_0185
TST_0021        TST_0054        TST_0087        TST_0120        TST_0153        TST_0186
TST_0022        TST_0055        TST_0088        TST_0121        TST_0154        TST_0187
TST_0023        TST_0056        TST_0089        TST_0122        TST_0155        TST_0188
TST_0024        TST_0057        TST_0090        TST_0123        TST_0156        TST_0189
TST_0025        TST_0058        TST_0091        TST_0124        TST_0157        TST_0190
TST_0026        TST_0059        TST_0092        TST_0125        TST_0158        TST_0191
TST_0027        TST_0060        TST_0093        TST_0126        TST_0159        TST_0192
TST_0028        TST_0061        TST_0094        TST_0127        TST_0160        TST_0193
TST_0029        TST_0062        TST_0095        TST_0128        TST_0161
TST_0030        TST_0063        TST_0096        TST_0129        TST_0162
TST_0031        TST_0064        TST_0097        TST_0130        TST_0163
TST_0032        TST_0065        TST_0098        TST_0131        TST_0164
grahamperrin@mowa219-gjp4-8570p:~ % sudo rm /media/da1p1/*
grahamperrin's password:
grahamperrin@mowa219-gjp4-8570p:~ % zpool list
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   420G  28.4G        -         -    77%    93%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ % du -hs /media
 16G    /media
grahamperrin@mowa219-gjp4-8570p:~ % sudo fsv2 /media
ferr failNo such file or directory
grahamperrin@mowa219-gjp4-8570p:~ % du -hs /media
 16G    /media
grahamperrin@mowa219-gjp4-8570p:~ % du -hs /media/da0p1
 16G    /media/da0p1
grahamperrin@mowa219-gjp4-8570p:~ % ls /media/da0p1
TST_0000        TST_0003        TST_0006        TST_0009        TST_0012        TST_0015
TST_0001        TST_0004        TST_0007        TST_0010        TST_0013
TST_0002        TST_0005        TST_0008        TST_0011        TST_0014
grahamperrin@mowa219-gjp4-8570p:~ % sudo rm /media/da0p1/*
grahamperrin@mowa219-gjp4-8570p:~ % du -hs /media
 37K    /media
grahamperrin@mowa219-gjp4-8570p:~ % zpool list
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   420G  28.4G        -         -    77%    93%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ % zpool list
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   420G  28.4G        -         -    77%    93%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ %

– I probably need to restart the OS to regain the free space.

https://www.freebsd.org/cgi/man.cgi?query=beadm
I had created, activated and booted a new boot environment before thinking of the debris. So it was necessary to:

activate and boot the previous BE
repeat the removals
destroy the more recent BE (luckily, nothing essential there).

This action cannot be undone (y/[n]): y
Destroyed successfully
grahamperrin@mowa219-gjp4-8570p:~ % beadm list
BE       Active Mountpoint  Space Created
Waterfox -      -           58.8G 2020-03-10 18:24
r368589h NR     /           89.3G 2020-12-26 08:08
grahamperrin@mowa219-gjp4-8570p:~ % zpool list
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   421G  27.0G        -         -    78%    93%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ % date ; uptime ; zpool list
Thu Dec 31 01:33:44 GMT 2020
 1:33AM  up 26 mins, 2 users, load averages: 0.09, 0.73, 0.70
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   421G  27.0G        -         -    78%    93%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ % zpool iostat 60
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
copperbowl   409G  39.4G     57     47  1021K  1.28M
copperbowl   404G  44.3G    209     21  2.49M   259K
copperbowl   388G  60.4G    222      5  1.61M   165K
copperbowl   386G  62.2G    212     11  1.42M   371K
copperbowl   380G  67.7G    224     12  2.24M   367K
copperbowl   347G   101G    202     22  2.16M   552K
copperbowl   236G   212G    211      6  2.02M  99.5K
copperbowl   231G   217G    198     18  2.30M   667K
copperbowl   228G   220G    218      4  2.00M  50.1K
copperbowl   225G   223G    214     11  1.88M   436K
copperbowl   222G   226G      0     17    955   485K
copperbowl   222G   226G      0      6      0  73.9K
^C
grahamperrin@mowa219-gjp4-8570p:~ % zpool list
NAME         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
copperbowl   448G   222G   226G        -         -    43%    49%  1.00x    ONLINE  -
grahamperrin@mowa219-gjp4-8570p:~ % zpool status
  pool: copperbowl
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
        still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(5) for details.
  scan: scrub repaired 0B in 04:22:00 with 0 errors on Mon Dec 14 06:25:43 2020
config:

        NAME          STATE     READ WRITE CKSUM
        copperbowl    ONLINE       0     0     0
          ada0p4.eli  ONLINE       0     0     0

errors: No known data errors
grahamperrin@mowa219-gjp4-8570p:~ % date ; uptime
Thu Dec 31 01:47:20 GMT 2020
 1:47AM  up 40 mins, 3 users, load averages: 0.16, 0.50, 0.64
grahamperrin@mowa219-gjp4-8570p:~ %

Permissions and privileges
https://github.com/ncw/stressdisk/issues/14#issuecomment-752516638

… a user space program with no special privileges …

Re: https://github.com/ncw/stressdisk/issues/14#issuecomment-752368519 stressdisk was run as root. This is because automatically created mount points are owned by root, with restricted access, for example:
drwxr-xr-x  3 root  wheel   512B 30 Dec 13:29 /media/da1p1
In context:
grahamperrin@mowa219-gjp4-8570p:~ % date ; uname -sr
Thu 31 Dec 2020 04:06:32 GMT
FreeBSD 13.0-CURRENT
grahamperrin@mowa219-gjp4-8570p:~ % ls /dev/da*
/dev/da0        /dev/da0p1      /dev/da1        /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % lsblk da1
DEVICE         MAJ:MIN SIZE TYPE                              LABEL MOUNT
da1              2:54  7.3G GPT                                   - -
  da1p1          2:55  7.3G freebsd-ufs                           - /media/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % mount | grep da1
/dev/da1p1 on /media/da1p1 (ufs, local, noatime, soft-updates)
grahamperrin@mowa219-gjp4-8570p:~ % umount /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % sudo gdisk /dev/da1
grahamperrin's password:
Sorry, try again.
grahamperrin's password:
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/da1. Proceed? (Y/N): y
Problem opening '/dev/da1' for writing! Program will now terminate.
Blank out MBR? (Y/N): y
Warning! MBR not overwritten! Error is 1!
grahamperrin@mowa219-gjp4-8570p:~ % umount /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % sudo gdisk /dev/da1
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): ^Z
Suspended
grahamperrin@mowa219-gjp4-8570p:~ % umount /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % fg
sudo gdisk /dev/da1

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/da1. Proceed? (Y/N): y
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y
grahamperrin@mowa219-gjp4-8570p:~ % sudo gdisk /dev/da1
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/da1.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
grahamperrin@mowa219-gjp4-8570p:~ % sudo gpart add -t freebsd-ufs /dev/da1
da1p1 added
grahamperrin@mowa219-gjp4-8570p:~ % mount | grep da1
/dev/da1p1 on /media/da1p1 (ufs, local, noatime, soft-updates)
grahamperrin@mowa219-gjp4-8570p:~ % touch /media/da1p1/touched
touch: /media/da1p1/touched: Permission denied
grahamperrin@mowa219-gjp4-8570p:~ % ls -dhl /media/da1p1
drwxr-xr-x  3 root  wheel   512B 30 Dec 13:29 /media/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % umount /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % sudo rm -r /media/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % ls -dhl /media/da1p1
ls: /media/da1p1: No such file or directory
grahamperrin@mowa219-gjp4-8570p:~ % sudo gpart add -t freebsd-ufs /dev/da1
gpart: autofill: No space left on device
grahamperrin@mowa219-gjp4-8570p:~ % sudo gpart destroy /dev/da1p1
gpart: arg0 'da1p1': Invalid argument
grahamperrin@mowa219-gjp4-8570p:~ % sudo gpart destroy /dev/da1
gpart: Device busy
grahamperrin@mowa219-gjp4-8570p:~ % mount | grep da1
grahamperrin@mowa219-gjp4-8570p:~ % sudo gdisk /dev/da1
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): ^Z
Suspended
grahamperrin@mowa219-gjp4-8570p:~ % umount /dev/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % fg
sudo gdisk /dev/da1

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/da1. Proceed? (Y/N): y
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y
grahamperrin@mowa219-gjp4-8570p:~ % sudo gdisk /dev/da1
GPT fdisk (gdisk) version 1.0.5

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/da1.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
grahamperrin@mowa219-gjp4-8570p:~ % sudo gpart add -t freebsd-ufs /dev/da1
da1p1 added
grahamperrin@mowa219-gjp4-8570p:~ % mount | grep da1
/dev/da1p1 on /media/da1p1 (ufs, local, noatime, soft-updates)
grahamperrin@mowa219-gjp4-8570p:~ % ls -dhl /media/da1p1
drwxr-xr-x  3 root  wheel   512B 30 Dec 13:29 /media/da1p1
grahamperrin@mowa219-gjp4-8570p:~ % touch /media/da1p1/touched
touch: /media/da1p1/touched: Permission denied
grahamperrin@mowa219-gjp4-8570p:~ %

For the future, I'll know to:

ease the access restrictions
run stressdisk not as root.

For the future, I'll know to:

ease the access restrictions
run stressdisk not as root.

That is what I do. I don't think you'd have a different outcome though, but you might.

For the future, I'll know to:

ease the access restrictions
run stressdisk not as root.

That is what I do. I don't think you'd have a different outcome though, but you might.

With an upgraded system – FreeBSD-CURRENT (main) Git commit 82397d791 – I can no longer reproduce the issue with the previously affected drive.
Tested for a short while (long enough) with UFS as an unprivileged user, and (curiosity) as root.
Tested for longer with OpenZFS, again as root:
…

^C2021/01/04 02:24:08 Interrupt received
2021/01/04 02:24:08
Bytes read:        241516 MByte ( 136.49 MByte/s)
Bytes written:     363562 MByte (  19.12 MByte/s)
Errors:                 0
Elapsed time:  1h23m33.636782717s

2021/01/04 02:24:08 PASSED with no errors
root@mowa219-gjp4-8570p:~ #

root@mowa219-gjp4-8570p:~ # date ; uname -v
Mon Jan  4 02:32:59 GMT 2021
FreeBSD 13.0-CURRENT #75 main-c572-g82397d791: Sun Jan  3 20:00:09 GMT 2021     root@mowa219-gjp4-8570p:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG
root@mowa219-gjp4-8570p:~ # lsblk da1
DEVICE         MAJ:MIN SIZE TYPE                              LABEL MOUNT
da1              2:59  7.3G -                                     - -
root@mowa219-gjp4-8570p:~ # gpart show /dev/da1
gpart: No such geom: /dev/da1.
root@mowa219-gjp4-8570p:~ # mount | grep /dev/da1
root@mowa219-gjp4-8570p:~ # mount | grep stress
stress on /media/stress (zfs, local, nfsv4acls)
root@mowa219-gjp4-8570p:~ # zpool status -v stress
  pool: stress
 state: ONLINE
  scan: scrub repaired 0B in 00:00:02 with 0 errors on Mon Jan  4 00:46:32 2021
config:

        NAME        STATE     READ WRITE CKSUM
        stress      ONLINE       0     0     0
          da1       ONLINE       0     0     0

errors: No known data errors
root@mowa219-gjp4-8570p:~ # zpool list stress
NAME     SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
stress     7G  6.76G   245M        -         -    71%    96%  1.00x    ONLINE  -
root@mowa219-gjp4-8570p:~ #

The commit log up to and including 82397d791 https://cgit.freebsd.org/src/log/?qt=range&q=82397d791 includes recent fixes for FreeBSD bug 252358 – cp(1) of large files is causing 100% CPU utilization and poor transfer of ~168M/minute
https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078133.html: a few words on whether the bug might have been contributory to this issue #14.
I'll run a longer test with an alternative file system, maybe FAT32, as an unprivileged user. Touch wood, I don't expect to comment here again 👍

With an upgraded system – FreeBSD-CURRENT (main) Git commit 82397d791 – I can no longer reproduce the issue with the previously affected drive.
Tested for a short while (long enough) with UFS as an unprivileged user, and (curiosity) as root.
Tested for longer with OpenZFS, again as root:
…

^C2021/01/04 02:24:08 Interrupt received
2021/01/04 02:24:08
Bytes read:        241516 MByte ( 136.49 MByte/s)
Bytes written:     363562 MByte (  19.12 MByte/s)
Errors:                 0
Elapsed time:  1h23m33.636782717s

2021/01/04 02:24:08 PASSED with no errors
root@mowa219-gjp4-8570p:~ #

root@mowa219-gjp4-8570p:~ # date ; uname -v
Mon Jan  4 02:32:59 GMT 2021
FreeBSD 13.0-CURRENT #75 main-c572-g82397d791: Sun Jan  3 20:00:09 GMT 2021     root@mowa219-gjp4-8570p:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG
root@mowa219-gjp4-8570p:~ # lsblk da1
DEVICE         MAJ:MIN SIZE TYPE                              LABEL MOUNT
da1              2:59  7.3G -                                     - -
root@mowa219-gjp4-8570p:~ # gpart show /dev/da1
gpart: No such geom: /dev/da1.
root@mowa219-gjp4-8570p:~ # mount | grep /dev/da1
root@mowa219-gjp4-8570p:~ # mount | grep stress
stress on /media/stress (zfs, local, nfsv4acls)
root@mowa219-gjp4-8570p:~ # zpool status -v stress
  pool: stress
 state: ONLINE
  scan: scrub repaired 0B in 00:00:02 with 0 errors on Mon Jan  4 00:46:32 2021
config:

        NAME        STATE     READ WRITE CKSUM
        stress      ONLINE       0     0     0
          da1       ONLINE       0     0     0

errors: No known data errors
root@mowa219-gjp4-8570p:~ # zpool list stress
NAME     SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
stress     7G  6.76G   245M        -         -    71%    96%  1.00x    ONLINE  -
root@mowa219-gjp4-8570p:~ #

The commit log up to and including 82397d791 https://cgit.freebsd.org/src/log/?qt=range&q=82397d791 includes recent fixes for FreeBSD bug 252358 – cp(1) of large files is causing 100% CPU utilization and poor transfer of ~168M/minute
https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078133.html: a few words on whether the bug might have been contributory to this issue #14.
I'll run a longer test with an alternative file system, maybe FAT32, as an unprivileged user. Touch wood, I don't expect to comment here again 👍

With an upgraded system – FreeBSD-CURRENT (main) Git commit 82397d791 – I can no longer reproduce the issue with the previously affected drive.

That is good :-)

The commit log up to and including 82397d791 https://cgit.freebsd.org/src/log/?qt=range&q=82397d791 includes recent fixes for FreeBSD bug 252358 – cp(1) of large files is causing 100% CPU utilization and poor transfer of ~168M/minute
https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078133.html: a few words on whether the bug might have been contributory to this issue #14.
I'll run a longer test with an alternative file system, maybe FAT32, as an unprivileged user. Touch wood, I don't expect to comment here again

:crossed_fingers:

With an upgraded system – FreeBSD-CURRENT (main) Git commit 82397d791 – I can no longer reproduce the issue with the previously affected drive.

That is good :-)

The commit log up to and including 82397d791 https://cgit.freebsd.org/src/log/?qt=range&q=82397d791 includes recent fixes for FreeBSD bug 252358 – cp(1) of large files is causing 100% CPU utilization and poor transfer of ~168M/minute
https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078133.html: a few words on whether the bug might have been contributory to this issue #14.
I'll run a longer test with an alternative file system, maybe FAT32, as an unprivileged user. Touch wood, I don't expect to comment here again

:crossed_fingers:

From https://github.com/ncw/stressdisk/issues/14#issuecomment-752368519:
root@mowa219-gjp4-8570p:~ # mount | grep /dev/da0
/dev/da0p1 on /media/da0p1 (ufs, local, noatime, soft-updates)
root@mowa219-gjp4-8570p:~ # umount /dev/da0p1
root@mowa219-gjp4-8570p:~ # newfs -U /dev/da0p1
/dev/da0p1: 7450.0MB (15257528 sectors) block size 32768, fragment size 4096
        using 12 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
        with soft updates
super-block backups (for fsck_ffs -b #) at:
 192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120
root@mowa219-gjp4-8570p:~ # stressdisk cycle /media/da0p1

Hey, it appears I forgot to (re)mount the UFS file system of the removable medium, before stressing what was previously the mount point.
Not a bug!
PEBKAM. I stressed the ZFS home directory on my boot device. No wonder it was thrashed.
(I made a comparable mistake today, the symptoms were immediately recognisable.)

Incidentally, re: https://github.com/ncw/stressdisk/issues/14#issuecomment-753347234 I'm having no problems with stressdisk run as root.


Allow multiple buckets in Couchbase initialization

I'm trying out to insert 2 buckets, but it seems second bucket is not inserted, trying to reconnect during some time until it crashes. Here's my implementation: (I'm using last version, 1.10.3)
public class CouchbaseTestConfig {

  private static final String DOCKER_IMAGE = "couchbase/server:4.6.2";
  private static final String userPropertiesBucketName = "userPropertiesTest";
  private static final String securityBucketName = "acuerdoBETest";

  @ClassRule
  public static CouchbaseContainer container = initCouchbaseContainer();

  private static CouchbaseContainer initCouchbaseContainer() {
    CouchbaseContainer couchbaseContainer = new CouchbaseContainer(DOCKER_IMAGE);

    couchbaseContainer
      .withNewBucket(getUserPropertiesBucketSettings())
      .withNewBucket(getsecurityBucketSettings())
      .withQuery(true);
    couchbaseContainer.start();
    return couchbaseContainer;
  }

  public CouchbaseContainer getCouchbaseContainer() {
    return container;
  }

  private static BucketSettings getUserPropertiesBucketSettings() {
    return DefaultBucketSettings
      .builder()
      .enableFlush(true)
      .name(userPropertiesBucketName)
      .quota(100)
      .replicas(0)
      .type(BucketType.COUCHBASE)
      .build();
  }

  private static BucketSettings getsecurityBucketSettings() {
    return DefaultBucketSettings
      .builder()
      .enableFlush(true)
      .name(securityBucketName)
      .quota(100)
      .replicas(0)
      .type(BucketType.COUCHBASE)
      .build();
  }

@tchlyah do you think you could have a look into this, as I'm afraid my Couchbase knowledge is limited.

I've just tried, the two buckets have been successfully created.
This seems to have relation with the Couchbase version you are using. It fails with 4.6.2, the version you are using, but not with 4.6.5. Can you try with this version? This problem was probably fixed by Couchbase.
Also you are using a very old version of Couchbase, did you try to update to the latest (6.0.1) ?


Realtime index deeply nested model associations

By far, I have found Thinking Sphinx and Sphinx Search to be the best searching APIs I've ever used. I'm really glad with the work which has been done.
However, I'm still a bit confused about a couple of things regarding Realtime indexing:
Say I have the following association relationship:
# Person.rb

after_save ThinkingSphinx::RealTime.callback_for(:person, [:person])

has_many :oldjobs, dependent: :destroy
has_many :experiences, dependent: :destroy

# Experience.rb

belongs_to :person, touch: true
belongs_to :department

# Oldjob.rb

belongs_to :person, touch: true

So now, the questions:
1. How do I index something like Person.experiences.department.name ???
I read that I have to use a method inside Person.rb, so I tried the following but it doesn't work:
# Person.rb

def experiences_department_names
  experiences.map{ |e| e.department.name }.join(' ')
end

# person_index.rb

indexes experiences_department_names

2. How do I correctly register the after_save callbacks for the above relationship?
So far I only put one inside Person.rb, but I'm unsure what to do about the other models.
3. How do I save my realtime indices? I find that they disappear if I restart the server and I end up having to re-index. And when I check inside my db/sphinx/environment folder, I don't find any index files, it's just a blank folder.
4. Are destroy callbacks already incorporated for Realtime indices? For example, if I delete a model instance, it would be removed from the sphinx index automatically right?
Thank you.

1. What you're doing should indeed work. In what way is it not behaving as expected? Have you run rake ts:regenerate after adding that new field?
2. In the Person model, what you've got isn't quite right - it's actually a little simpler:
after_save ThinkingSphinx::RealTime.callback_for(:person)

The second argument is the method path to follow to get the associated objects. In the case of Person, no methods need to be called to access the person being indexed. But in the case of both Experience and Oldjob, it is a single method call to get the associated person:
# Because you call `person` in an experience or old job to access the person object(s)
after_save ThinkingSphinx::RealTime.callback_for(:person, [:person])

If, say, you had an index on Experience and wanted the callback to fire when a person changes, it would be the following in the Person model - TS is smart enough to take an array and persist changes for each item:
after_save ThinkingSphinx::RealTime.callback_for(:experience, [:experiences])

3. Initially, Sphinx stores the data in memory. If you stop the daemon through the rake task (rather than kill -9), it should shift the data from memory to files. A way to manually persist data on a regular basis (say, if you've got something backing up the data files) is to send the FLUSH INDEX command for each index name:
configuration = ThinkingSphinx::Configuration.instance
configuration.preload_indices
indices = configuration.indices.select { |index| index.type == 'rt' }
ThinkingSphinx::Connection.take do |connection|
  indices.each { |index| connection.execute "FLUSH RTINDEX #{index.name}" }
end

4. Yes, deletions are a standard callback attached to all models, and they trigger the appropriate behaviour if there are any SQL-backed or real-time indices.

Also: thanks for the kind words :)

1. Yes, it doesn't work. Here's what I want to achieve:
A person has many work experiences/histories. Say he worked at a grocery store about 2 years ago. When I search for 'Grocery Store', I want to be able to find this person even if his current job isn't that job. In other words, I want to be able to find all people who worked at a specific place even if it was a long time ago. So this is why I want to be able to index the experiences department names, because a single person can have many experiences -- one of them is current and the rest are old.
Also, this is a separate issue, but sometimes ts:regenerate doesn't refresh the indices; instead, I have to use the following commands in this specific order: sudo service sphinxsearch stop && rake ts:rebuild ts:stop ts:configure ts:start ts:generate
Do you think that might be related to my issue above?
2. Ah ok thank you, that helps. Okay, let me get a complete understanding here, so what if I have the following setup:
# Person.rb

after_save ThinkingSphinx::RealTime.callback_for(:person)

has_many :oldjobs, dependent: :destroy
has_many :experiences, dependent: :destroy
belongs_to :department

# Department.rb

has_many :people

And I have an index on Department, so it would be like so?
# Department.rb

after_save ThinkingSphinx::RealTime.callback_for(:department)

# Person.rb

after_save ThinkingSphinx::RealTime.callback_for(:department, [:department])

Instead of the above two, what if I did just one statement inside of Department.rb as follows:
# Department.rb

after_save ThinkingSphinx::RealTime.callback_for(:department, [:people])

I would assume that this works; however, the downside to it is that it only indexes when 1 association changes and not the rest. Correct? Sorry if I'm getting really theoretical, but I just want to understand well.
3. Ah ok that's very interesting, thank you very much. Is this something I should put inside an initializer?

Ok, great.

I really need help on question 1

1A: Are you finding the method you've added to your model is returning the right data, even though Sphinx isn't?
1B: Are you using both SQL-backed and real-time indices? If not, you don't need to use the ts:rebuild task. That said, manually stopping Sphinx before running rake ts:regenerate might be more reliable.
2A: The callback you've suggested in your Person model to cover the Department index is indeed correct.
2B: This callback isn't valid - it would be hitting the people method on a department instance, and treating each person instance as a department instance and trying to save department index values from the person object.
If you want to have the person index update when a department is updated, you'd instead want the following:
after_save ThinkingSphinx::RealTime.callback_for(:person, [:people])

3: That code is only useful when you want the index files to be updated before copying data elsewhere (so, possibly in a rake task called before backing up data?). It's not needed in an initializer. Sphinx should persist data automatically, it just won't appear immediately in the file system while Sphinx is running.

1A: yes, this is the exact method I'm using:
# Person.rb

def experiences_department_names
  experiences.map{ |e| e.department.name }.join(' ')
end

And as you can see it returns a single string containing all the specific person instance's previously worked at department names separated by a space.
I'm still finding this to be troublesome. I simply can't get any results, it always returns 0.
I have this within my index:
# person_index.rb

indexes experiences_department_names

And when I search, I search:
Person.search("@experiences_department_names *")
and I get nothing returned
1B: I'm using Realtime-only indices as far as I know. Okay no problem then, thank you.
Thank you for all your responses.

I'm pretty sure Sphinx won't treat * as a regex-like 'match everything' approach. What happens if you search for a specific value you're expecting to match?

Wow it works now when I search for a specific value. I was searching for a specific value earlier but it wasn't working.. Anyway, all that matters is it works now, thank you.

Good to know it's working now at least! Do let me know if there are any further issues :)


[Feature][dao] Version upgrade extention, execute the sql from the latest image version not earliest version  to the current version

*For better global communication, please give priority to using English description, thx! *
Please review https://dolphinscheduler.apache.org/en-us/docs/development/issue.html when describe an issue.
Background
If the database is changed in a certain version, the changes will be recorded in this version, and the database will be automatically upgraded when upgrading from a lower version to a higher version.
It also supports the function of initializing the database. Executing create-dolphinscheduler.sh will automatically initialize the database.
Abstracted the database changes into two parts, one is ddl and the other is dml. The changes in dml support transaction rollback; the changes in ddl do not support transaction rollback.
Executing create-dolphinscheduler.sh will first execute the sql in sql/create, and then execute the sql in sql/upgrade one by one,finally database will be initialized.
Now if it's the first time to install dolphinscheduler,execute script/create-dolphinschduler.sh will execute the sql from the
earliest version to the current version step by step.
Describe the feature
Now the sql/create is only one,But It has released so many releases,So the sql/create need support multiple mirrors.
Such as if need install the version 1.3.2,The latest image is 1.3.0,so only execute the sql form the version 1.3.0 not the earliest version 1.2.0 to the 1.3.2 version.

Design Detail

@lgcareer can you please explain this in more details, I think I didn't get it very well, thanks

@lgcareer @djkevincr This is what am getting, the sql/create needs to support multiple mirrors such that when installing version 1.4.0, iterate through the sql/create and get the mirror closest to 1.4.0 which is 1.3.3 and execute ddl and dml for that version and then update from 1.3.3 to 1.4.0, am I on the right path?!

Yes,you said right.I saw the picture you sent,I want to know if it is only example? or you moved sql/upgrade to sql/create?

Welcome to Gboard clipboard, any text you copy will be saved here.

This is an example


Change table selection behavior in Manager to sync with Map Viewer

Describe requirements
The table we should consider updating the app to have the typical selection behavior. So when clicking on multiple check boxes in the table, rather than only selecting one feature at a time multiple features would be selected if you keep checking boxes in the table. If we do this, we should consider adding a Close(X) in the pop-up panel to clear the selection.

This was the default behavior at the beginning. But we changed it in https://github.com/Esri/solutions-components/issues/437 and pr : https://github.com/Esri/solutions-components/pull/462
Alternatives
No response
Other Relevant Info
No response
Impact
No response

cc @sarahmcdonald7


When click the 'Package Manager',Xcode Command Line Tools are not currently installed?

Xcode Command Line Tools are not currently installed, and are required to run Alcatraz.
Command Line Tools are available for installation in the Downloads section of Preferences.
but I'm sure Command Line Tools are currently installed...

same problem

Bump

+1

The solution for this is as follows:
download and extract Alcatraz repo and open project with Xcode
check path to your GIT installation by typing "which git" in Terminal
search for method "areCommandLineToolsAvailable" in ATZGit.m
change path in launchTaskWithLaunchPath to your local GIT installation
build project
problem hopefully solved ;)
Hope that helps anybody else...
EDIT:  I haven't seen this is already mentioned in #137 #152 yet.

Awesome, or a simpler approach would be to create a sym link for git.
My git was installed at usr/local/bin/git thus :
sudo ln -s /usr/local/bin/git /usr/bin/git

@tapthaker
perfect！


Thank you!

Thank you for creating, sharing, and supporting your library.
Using it was a real pleasure, and it only took me a couple of hours to get completion and info-on-hover working for my toy lisp implementation.

I used your library and "everything just worked", so no PR/issues to report yet - but if I do run into anything I'll definitely try to contribute.
Anyway I'll close this now, but I figured you might appreciate some feedback :)


Peer to peer code review

Good job! 👏 Your code looks quite good overall. Here are a few suggestions to further enhance it:

Add comments: Consider adding comments to describe the purpose and functionality of each section of code. This will make it easier for others (and yourself) to understand the code in the future.

Use const for variables that don't need reassignment: Since you're not reassigning values to inputValue, placeholderValue, result, c, f, convertBtn, resetBtn, and changeBtn, you can use const instead of let to make it clear that these variables are not intended to be reassigned. link to code

By @Braingenius2 and the team 👍

Good job! 👏 Your code looks quite good overall. Here are a few suggestions to further enhance it:

Add comments: Consider adding comments to describe the purpose and functionality of each section of code. This will make it easier for others (and yourself) to understand the code in the future.
Use const for variables that don't need reassignment: Since you're not reassigning values to inputValue, placeholderValue, result, c, f, convertBtn, resetBtn, and changeBtn, you can use const instead of let to make it clear that these variables are not intended to be reassigned. link to code

By @Braingenius2 and the team 👍

Thank you for your suggestion. I am going to follow that.


Remove Exceptions.ts

Try - catch is not optimized in JavaScript, and should be avoided if possible. Additionally class overhead further reduces performance. More performance friendly to serve errors via callbacks, or at the very least create custom exceptions the correct way (documented on Mozilla dev guides)

#121


Dependencies don't seem to have updated on npm or yarn

lodash which has been update to version 14.17.12 in this repo does not seem to be pulled through when pulling from npm or yarn. Both package managers still pull in lodash 14.17.11 for some reason

+1
Need to release a new version

Someone can please explain why that happens?

sudo npm audit
=== npm audit security report ===
Manual Review
Some vulnerabilities require your attention to resolve
Visit https://go.npm.me/audit-guide for additional guidance
High Prototype Pollution
Package lodash
Patched in >=4.17.12
Dependency of hexo-generator-seo-friendly-sitemapPath hexo-generator-seo-friendly-sitemap > lodash More info https://npmjs.com/advisories/1065

@ludoviclefevre any update on that?

Bump.
@ludoviclefevre

looks like this repo and project is dead :(
time to find other sitemap generator


Reformatting test_file_001

Reformatting a test file for PR testing testing.

Status Flag 'Pull Request Inspected' - Auto Inspected - Inspection Has Been Deemed Not Necessary for this Pull Request.

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:
** NOTE: CUSTOM REPORT NOT LOADED **
JOB: BSSIO_autotester_test; Build 29 on Jenkins server at https://jenkins-son.sandia.gov
Using Parameters:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = a9d202b5aef5e7db3410787af9db0d26edc135c8
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Using Repos:
Repo: BSSIO (william76/betterscientificsoftware.github.io) Branch: patch-test-1 SHA: [a9d202b5aef5e7db3410787af9db0d26edc135c8] - TEST_REPO
Pull Request Author: william76 (William)

Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED
Note: Testing will normally be attempted again in approx. 0:00:04 hours.  If a change to the Pull Request source branch occurs, the testing will be attempted again.
NOTE: CUSTOM REPORT NOT LOADED - TESTING HAS FAILED

Status Flag 'Pull Request Inspected' - Auto Inspected - Inspection Has Been Deemed Not Necessary for this Pull Request.

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:
JOB: BSSIO_autotester_test; Build 31 on Jenkins server at https://jenkins-son.sandia.gov
Using Parameters:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = 95eca14bf9b8cc623e8b97280bd10bd5a6c023fc
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Using Repos:
Repo: BSSIO (william76/betterscientificsoftware.github.io) Branch: patch-test-1 SHA: [95eca14bf9b8cc623e8b97280bd10bd5a6c023fc] - TEST_REPO
Pull Request Author: william76 (William)

Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED
Note: Testing will normally be attempted again in approx. 0:00:04 hours.  If a change to the Pull Request source branch occurs, the testing will be attempted again.
=== TESTING HAS FAILED ===
JOB: BSSIO_autotester_test Build 31 - FAILED:
-- JENKINS PARAMETERS:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = 95eca14bf9b8cc623e8b97280bd10bd5a6c023fc
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Status Flag 'Pull Request Tester' - Testing Jenkins Projects:
JOB: BSSIO_autotester_test; Build 32 on Jenkins server at https://jenkins-son.sandia.gov
Using Parameters:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = 95eca14bf9b8cc623e8b97280bd10bd5a6c023fc
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Using Repos:
Repo: BSSIO (william76/betterscientificsoftware.github.io) Branch: patch-test-1 SHA: [95eca14bf9b8cc623e8b97280bd10bd5a6c023fc] - TEST_REPO
Pull Request Author: william76 (William)

Status Flag 'Pull Request Tester' - Jenkins Testing: 1 or more Jobs FAILED
Note: Testing will normally be attempted again in approx. 0:00:04 hours.  If a change to the Pull Request source branch occurs, the testing will be attempted again.
=== TESTING HAS FAILED ===
JOB: BSSIO_autotester_test Build 32 - FAILED:
-- JENKINS PARAMETERS:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = 95eca14bf9b8cc623e8b97280bd10bd5a6c023fc
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Status Flag 'Pull Request Inspection' - Auto Inspected - Inspection Has Been Deemed Not Necessary for this Pull Request.

Status Flag 'Pull Request Inspection' - Auto Inspected - Inspection Has Been Deemed Not Necessary for this Pull Request.

Status Flag 'Pull Request Tester' - Testing Jenkins Projects:
JOB: BSSIO_autotester_test; Build 34 on Jenkins server at https://jenkins-son.sandia.gov
Using Parameters:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = c66c341463b3bba71782bd61e04cd557762ed221
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Using Repos:
Repo: BSSIO (william76/betterscientificsoftware.github.io) Branch: patch-test-1 SHA: [c66c341463b3bba71782bd61e04cd557762ed221] - TEST_REPO
Pull Request Author: william76 (William)

Status Flag 'Pull Request Tester' - Jenkins Testing: 1 or more Jobs FAILED
Note: Testing will normally be attempted again in approx. 0:00:04 hours.  If a change to the Pull Request source branch occurs, the testing will be attempted again.
=== TESTING HAS FAILED ===
JOB: BSSIO_autotester_test Build 34 - FAILED:
-- JENKINS PARAMETERS:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = c66c341463b3bba71782bd61e04cd557762ed221
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = a95f1fb6325f277a6a9c87aab5513c158d6a72d3
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO


Added customizable E-Mail Subject and Body

When choosing the E-Mail type, allow the user to add a custom subject and/or body (RFC 2368). The url in the output would then look something like this: mailto:foo@bar.tld?subject=foo&body=bar.
The query gets built with http_build_query so special characters, line breaks e.t.c are all according to the RFC.
updated settings

updated input

i know this version isn't being updated anymore, but adding the subject/body field would be useful. Has anyone else tried this? I'm likely going to attempt to implement this as well!

This doesn't seem to be merged anytime soon, I'll close my 3 year old PR 😅


[Feature/New Tool] Flight Tracking via E-Mail

Description
E-Mail flight tracking would allow users to subscribe to a live flight and receive status updates via e-mail.
Implementation
This could be implemented by storing an array of e-mails and flight states (or ids) that are being tracked by that e-mail (all represented as an object) and making a timer that checks flight states every X amount of seconds (20 seconds would probably be OK) and sends updates via e-mail in case a tracked flight state has changed.

I'll close this for now. This requires an SMTP server - something I've missed while planning this feature.
The alternative method of sending notifications is a Telegram and/or Discord bot. I might look into this in the nearest future.


Add grid table demo

One thing I'm beginning to notice is that some of the Angular Components aren't really that special. And that we can probably write pure Mesop versions that would be more amenable to the Mesop event flow.
So one thing that occurred to me is that we don't need to render tables using table mark up. We can just use flex box or grid. In this case I used grid.
By doing this, it allows us to implement more advanced functionality quicker than if we to work with the Angular Table component. And I know some people have been asking for more table functionality.
So as an example, I tried to build a a moderately featured table component. One major thing that is missing is pagination, but I ran out of gas. But otherwise we have custom styling, flexible custom cell formatting, sorting, filtering.
Another area to explore I want to explore is a custom web component that integrates some other grid library, such as AG Grid.
Ref: https://github.com/google/mesop/issues/338
Ref: https://github.com/google/mesop/issues/160
Grid Table With Sort

Grid Table Expanded

Grid Table With Filter

Not an actionable comment, but I do wonder if we should eventually graduate grid_table into mesop.labs. For example, with your other PR for dialog + snackbar, I was kind of wondering the same thing. One potential inspiration is shadcn which is a "copy-and-pastable" UI library - they do a really nice job of having demo code + impl code separated out, and then make it easy to add/copy the impl code into your project, e.g. https://ui.shadcn.com/docs/components/table

I filed an issue here: https://github.com/google/mesop/issues/579 to track this. I guess in the same way of how I was thinking about pip install git+..., maybe what I want is something more like mesop add github.com/google/mesop/tree/main/demo/grid_table.py which copies the file(s) over
into my project.
Yeah, that's a great question. I was also wondering how we could make it easier for people to use these user definied components.
Yeah I think labs is definitely a possibility especially if we don't feel we can integrate Dialog / Snackbar in the near future. But yeah I think for now, the implementations still need polishing and improvements for them to make it to labs.
I also considered adding them to a separate repository, but I think labs would make more sense. Plus probably easier for downstream.
I like the idea of making it easier to copy and paste the component part of the example.
Yeah, I think for copy/paste, then I do like the mesop add github.com/google/mesop/tree/main/demo/grid_table.py I think maybe want to make it easier for people to find the path to the file somehow, but initially I think that would be a good start. Some caveats being how do we prevent people from just doing add for random python files.


Fix the deprecated usage of scipy.misc.comb

In the vein of commit d8e5517.
Please complete the following checklist:

[X] I have read the guidelines in CONTRIBUTING.md.

[X] I have documented all public-facing changes in CHANGELOG.md.

[ ] This pull request includes code, documentation, or other content derived from external source(s). If this is the case, ensure the external source's license is compatible with scikit-bio's license. Include the license in the licenses directory and add a comment in the code giving proper attribution. Ensure any other requirements set forth by the license and/or author are satisfied. It is your responsibility to disclose code, documentation, or other content derived from external source(s). If you have questions about whether something can be included in the project or how to give proper attribution, include those questions in your pull request and a reviewer will assist you.

[X] This pull request does not include code, documentation, or other content derived from external source(s).

Note: REVIEWING.md may also be helpful to see some of the things code reviewers will be verifying when reviewing your pull request.

I can verify that scipy.special.comb() is supported for scipy 0.15.1, which looks to be the earliest supported version of scipy in scikit-bio (per setup.py).

closing in favor of #1622


GUI Setting

It would be cool if we can have a gui setting panel.
Steps:

Implement ISettingProvider interface
Return a custom usercontrol in that method.

We have provided support for loading and saving json style setting. It is implemented based on calling assembly and class name. to use it, use Context.API.LoadSettingJsonStorage<T>(). Saving will be automatically called by flow.
For the user control
You can create a xaml and follow how program plugin or websearch plugin implement that.

Thanks for the feedback, jjw24 suggested it too, but I probably won't build it because at least for me, it's totally fine without GUI.
Here is how I use it:
In Flow Launcher I type fav and hit enter, my text editor (Sublime Text) shows the conf file. I put a new entry at the top of the file or search what I want to edit, then save the file. v1.4 reloads the file automatically (it checks the modified file date when query runs). For nerds, programmers etc. this whole process can be highly efficient and also enjoyable.
I'm not short of project ideas (mostly mpv.net), otherwise I would say why not.


not working

C:\Users\91877\python vs code\QtsApp-main>"C:\Users\91877\python vs code\QtsApp-main\example.py"
Traceback (most recent call last):
File "C:\Users\91877\python vs code\QtsApp-main\example.py", line 9, in
from qtsapp import *
ModuleNotFoundError: No module named 'qtsapp'

did you follow this.
some basic understanding of how to setup python environment and run a program from public repos like github is necessary.
if you did not understand any of this ... then this is not for you.


feat: upload logs to GCP on compile-time configurable interval

Resolves: #2020.

@conectado Can I get an ACK for the laid out design before I start implementing this fully?

Had a cursory look, just one note, I think we should sync the rolling logger with the upload always so we know that we can delete a file after being uploaded and that it won't be written while being uploaded

Had a cursory look, just one note, I think we should sync the rolling logger with the upload always so we know that we can delete a file after being uploaded and that it won't be written while being uploaded

Right, but that means we can't make it configurable, right? Or should we tweak the rolling logger interval based on the env variable too?
I'll have to dig into how to actually do that syncing. Another option could be - but I think that would require some custom code - is to write a RollingFileAppender that can be triggered to roll and we do that just before the upload.

Had a cursory look, just one note, I think we should sync the rolling logger with the upload always so we know that we can delete a file after being uploaded and that it won't be written while being uploaded

Right, but that means we can't make it configurable, right? Or should we tweak the rolling logger interval based on the env variable too?
I'll have to dig into how to actually do that syncing. Another option could be - but I think that would require some custom code - is to write a RollingFileAppender that can be triggered to roll and we do that just before the upload.

Hmm I think it's best to do it non-configurable, and make the uploader upload the oldest file hourly(or change everythung to minutely) beggining after the first hour.
cc @jamilbk

Had a cursory look, just one note, I think we should sync the rolling logger with the upload always so we know that we can delete a file after being uploaded and that it won't be written while being uploaded

Right, but that means we can't make it configurable, right? Or should we tweak the rolling logger interval based on the env variable too?
I'll have to dig into how to actually do that syncing. Another option could be - but I think that would require some custom code - is to write a RollingFileAppender that can be triggered to roll and we do that just before the upload.

Hmm I think it's best to do it non-configurable, and make the uploader upload the oldest file hourly(or change everythung to minutely) beggining after the first hour, this way we always know that file is not being written to.
cc @jamilbk

I agree, non-configurable makes the code a bit simpler to.

Another option could be - but I think that would require some custom code - is to write a RollingFileAppender that can be triggered to roll and we do that just before the upload.

I think this one might be worth exploring. If we have our own timer for when we want to submit logs, we can just roll on-demand and therefore submit all logs since then last time one easily.

Another option could be - but I think that would require some custom code - is to write a RollingFileAppender that can be triggered to roll and we do that just before the upload.

I think this one might be worth exploring. If we have our own timer for when we want to submit logs, we can just roll on-demand and therefore submit all logs since then last time one easily.

Yeah, this seems like a good option. We could even adjust the timer appropriately depending on network conditions or device battery life.

I'd like to land https://github.com/firezone/firezone/pull/2151 first because I need to have different Callbacks implementations for the gateway and the headless client. Still, the functionality is basically done and ready for review!
I couldn't test the portal interaction because I can't start the docker-compose.yml setup. I've pinged you on Slack @AndrewDryga.

Ready for a full review. I am not sure how to best test this because I can't get the portal to actually give me a URL on localhost. Looking at the code, it seems to be disabled because it needs access to GCP which makes sense :)
I tested the rollover of the log file locally. Should we just deploy this and see if it works?

We might postpone this to a different PR but we can hit an issue with a timer-based export.
It is totally possible that over any specified time frame we will generate a ton of logs (eg. logical bug that will just write something in cycles), which means that we might not be able to submit it in any reasonable time frame (imagine sending 100mb+ of logs, especially on cellular data?).
A proper fix would be time/size bound logs where we send them every X minutes or as soon as they grow more than Y mb), whatever comes first.

@AndrewDryga Yep, valid points. These logs are saved in the app's cache dir which can (should?) be cleared regularly so hopefully this won't be a pressing issue immediately, but nonetheless we'll want to beef this up at some point

It is totally possible that over any specified time frame we will generate a ton of logs (eg. logical bug that will just write something in cycles), which means that we might not be able to submit it in any reasonable time frame (imagine sending 100mb+ of logs, especially on cellular data?).

Yeah fair! We might also want to consider to perhaps enable gzip compression before the upload. If there really is some kind of loop, it should compress extremely well.

@thomaseizinger Pushing to fix conflicts, then will queue for merge


[BUG]Namespace generate incorrectly

Library name and version
Azure.Analytics.Purview.Workflows(Unreleased)
Describe the bug
Use Invoke-DataPlaneGenerateSDKPackage.ps1 to generate C# SDK code, specify the namespace as Azure.Analytics.Purview.Workflows in command, however actually generated name space is Azure.Analytics.Purview
Command: pwsh home/azure-sdk-for-net/eng/scripts/automation/Invoke-DataPlaneGenerateSDKPackage.ps1 -service purview -namespace Azure.Analytics.Purview.Workflows -sdkPath home/azure-sdk-for-net -inputfiles home/azure-rest-api-specs/specification/purview/data-plane/Azure.Analytics.Purview.Workflow/preview/2022-05-01-preview/purviewWorkflow.json -securityScope https://purview.azure.net/.default
Generated namespace: Azure.Analytics.Purview
Expected behavior
Generated namespace is Azure.Analytics.Purview.Workflows as I specified in command.
Actual behavior
Generate the incorrect namespace Azure.Analytics.Purview
Reproduction Steps
Use the commit 984f782249310e027ac21f9cddf77b41d3474c9f in main branch may could repro.
Environment
No response

In the latest code, this bug doesn't appear...


Time position

Hi, is it possible to use the time in different position inside the task?
I would like to set it after the title of the task, but if I don't insert the time at the very beginning of the task, I can't see the task in the right spot of the calendar day.
Thank you

I think I have a working start on this, but I feel like some bigger decisions need to be made in order to implement it. As the current parser stands, I think we can have simple times like - [ ] 10 task for a task that starts at 10. I'm not sure this will work once we allow things not to be at the start, since if we have a task like - [ ] buy 2 apples 10, for buying 2 apples at 10, there isn't really a clear way for us to know which number is the correct time. There are a few options I see as solving this.
My current implementation just enforces that, if the time is not at the start, it must have a strict HH:mm - HH:mm format. If we want to include these simpler time formats, I think it's neccessary to demark the time with delimiters, if they are not at the start. I can imagine the following options:

strict format, as discussed: HH:mm - HH:mm
dataview-style : [day-plan:: ${time}]
our own delimiters: [@ ${time}]
tasks emoji style ⏱ ${time}

to accomplish this. Maybe best would be to try and support all four? Not sure @ is a good delimiter as it is a shortcut for nl-dates plugin so irritating to type. Also not sure ⏱ is the right emoji, maybe we can add a setting for a custom choice?
Let me know what you are thinking!

There is also the issue of what to default to and where when adding times to tasks without time. I guess we could have a setting again to add the chosen format to the end of the string, before any task / reminder signifiers.

Hello, @m-smith,
Dataview format is the way to go here, since it's the easiest to implement -- Dataview will give you the value of the prop without the need to parse it yourself. I think [time::18:00-19:00] is a good one.

Available in 0.23.2


How to pass the whole element object to the inner draggable

How can I pass the whole element object into my draggable components.
The items that I want to drag are vue3-components.  I can pass individual attributes of the current element. But how can I pass the whole element?
let proposalsInBallot = [
  { id: 4711, title: "Some title", ... },
  { id: 4712, title: "Another title", ... },
  { id: 4713, title: "And one more title", ... },
];

<draggable v-else
		id="myDraggable"
		v-model="proposalsInBallot"
		class="draggable"
		item-key="id"
		:disabled="loading || castVoteLoading"
		:swap-threshold="0.5"
		:delay="40"
		:animation="500"
		:can-scroll-x="false"
	>
		<template #item="{prop}">
			<law-panel
				ref="proposalInBallot"
				:law="prop"               // <======== how to do this???
				:read-only="true"
				:collapse="true"
			/>
		</template>
	</draggable>

It looks like that undefined is passed.
I also tried :law="{prop}.   Then an empty object is passed
How can I pass the whole "prop" object into my vue-component "law-panel"

Ok, I tried again and now I worked as shown in the code above.    :law="prop".  (no curly braces)


Textual search to filter runs in manage

Is your feature request related to a problem? Please describe.
In the Manage table where all the run are displayed, when so many runs are available on the webserver, it becomes difficult to find one specific one.
Describe the solution you'd like
A simple filtering solution based on text and applied on the run names could help finding what the user is searching for

As workaround could be to increase the page size and use CTRL-f to find the job you want.
How many runs do you think users would have?
That can be done with https://ui.shadcn.com/docs/components/data-table#filtering .
The whole job list is fetched from bartender webservice. If the becomse to big then we might have to move the filter logic from the haddock3-webapp to bartender.


Fix - TLS hnadshake failure for oci pull (artifact repo).

What this PR does / why we need it:
Fix for https://github.com/helm/helm/issues/10597

Added 2-way TLS Support for oci pull for artifact repository which causes TLS handshake failure error.

Special notes for your reviewer:

For now, this fix will be going to support Linux only.
If applicable:
[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Hi @suryatech27-cloud, generally speaking we ask that pull requests come with a set of unit tests to ensure the feature works as expected. Can you please have a look at existing test cases and see if you can write one for this?
Additionally, is there a way maintainers should test this PR?
Thank you.

Hi @suryatech27-cloud, generally speaking we ask that pull requests come with a set of unit tests to ensure the feature works as expected. Can you please have a look at existing test cases and see if you can write one for this?
Additionally, is there a way maintainers should test this PR?
Thank you.

@bacongobbler, Yes there is a way to test this PR, just need to enable two-way SSL/TLS in the registry server and validate.

Yes there is a way to test this PR, just need to enable two-way SSL/TLS in the registry server and validate.

I do not know how to set that up. Please provide a set of instructions so developers can test this PR. It is your responsibility to teach others how to test this.

Alternatively provide support for two-way TLS with the test server and use that against these changes.
https://github.com/helm/helm/blob/main/pkg/repo/repotest/server.go#L75

I just realized this pull request is targeting the release-3.8 branch. In the future, please target your pull requests against the main branch.
Closing as we are not going to merge PRs against a release branch. Please re-open against main. Thanks.

@suryatech27-cloud ping


S3 Static Website Hosting

[x] Configure our bucket for s3 static website hosting
[x] Upload an index.html
[x] Upload an error.html
[x] Update our outputs for static website hosting url

.


Allow the user to supply a cluster password when issuing the 'create_cluster' request.

For #21.

Tested on Vagrant and updated a unit test for testing the user supplied password.

@vinodkone ty :smile:

:+1:


Update travis for go 1.8 - read description

@gavv Most of the web frameworks (first Iris) uses explicity the http.Pusher interface, we need go 1.8 because we can't use the http.PushOptions on go 1.7 too.  So I removed the go 1.7, if you don't agree with that just let it as it is

Coverage remained the same at 97.159% when pulling 544f3e4ae2ec8d47946d40a8ea1f9c550c3940bb on kataras:patch-2 into 4d08c42846fcff507faca71d86a12e0828c1f47b on gavv:master.

Thanks. I've added go1.8 to the travis build. I don't want to drop go1.7 right now, so I kept it and disabled iris examples on go < 1.8.

@gavv Excellent! Sorry for being late to answer, I'm just working on the next month's new, tactical, iris release


[CORE] Cores and executors count

What changes were proposed in this pull request?
In the PR, I propose to extend SparkContext by 2 new methods:
def coresCount: Int
def executorsCount: Int

The first one returns total number of CPU cores of all executors in the cluster. The second one gives current number of executors registered in the cluster.
Main motivations for adding of those methods:

It is the best practice to manage job parallelism relative to available cores, e.g., df.repartition(5 * sc.coreCount) . In particular, it is an anti-pattern to leave a bunch of cores on large clusters twiddling their thumb & doing nothing. Usually users pass predefined constants for repartition() and coalesce(). Selection of the constant is based on current cluster size. If the code runs on another cluster and/or on the resized cluster, they need to modify the constant each time. This happens frequently when a job that normally runs on, say, an hour of data on a small cluster needs to run on a week of data on a much larger cluster.

spark.default.parallelism can be used to get total number of cores in the cluster but it can be redefined by user. The info can be taken via registration of a listener but repeating the same looks ugly. We should follow the DRY principle.

Regarding to executorsCount(), some jobs, e.g., local node ML training, use a lot of parallelism. It's a common practice to aim to distribute such jobs such that there is one partition for each executor.

In some places users collect this info, as well as other settings info together with job timing (at the app level) for analysis. E.g., you can use ML to determine optimal cluster size given different objectives, e.g., fastest throughput vs. lowest cost per unit of processing.

The simpler argument is that basic cluster properties should be easily discoverable via APIs.

How was this patch tested?
Added tests for JavaSparkContext and PySpark

@ssimeonov Reynold proposed to rename the method to numCores and numExecutors. Is it ok for you?

Absolutely.


Ocelot Configuration

Hello,
I am trying to access another service fabric service from the gateway service, but I get the following error. This is happening in cloud, on a 5 node Service Fabric cluster. Locally all things run OK. Why do I get this error and what I have missconfigured?
Many thanks
19 10:53:23|WARN|requestId: 0HLOC3FF3H082:00000001, previousRequestId: no previous request id, message: DownstreamRouteFinderMiddleware setting pipeline errors. IDownstreamRouteFinder returned Error Code: UnableToFindDownstreamRouteError Message: Failed to match ReRoute configuration for upstream path: /, verb: GET.
2019-07-19 10:53:23|WARN|requestId: 0HLOC3FF3H082:00000001, previousRequestId: no previous request id, message: Failed to match ReRoute configuration for upstream path: /, verb: GET.
2019-07-19 10:53:23|WARN|requestId: 0HLOC3FF3H082:00000001, previousRequestId: no previous request id, message: Error Code: UnableToFindDownstreamRouteError Message: Failed to match ReRoute configuration for upstream path: /, verb: GET. errors found in ResponderMiddleware. Setting error response for request path:/, request method: GET
2019-07-
My appsettings file
{   "GlobalConfiguration": {     "RequestIdKey": "OcRequestId",     "ServiceDiscoveryProvider": {       "Host": "localhost",       "Port": 19081,       "Type": "ServiceFabric"     }   },   "ReRoutes": [     {       "DownstreamPathTemplate": "/",       "DownstreamScheme": "https",       "ServiceName": "service1",       "UpstreamHttpMethod": [         "Get"       ],       "UpstreamPathTemplate": "/{url}"     },     {       "DownstreamPathTemplate": "/relay/{url}",       "DownstreamScheme": "https",       "ServiceName": "service2",       "UpstreamHttpMethod": [         "Get"       ],       "UpstreamPathTemplate": "/relay/{url}"     }   ] }

   {
      "DownstreamPathTemplate": "/",
      "DownstreamScheme": "https",
      "ServiceName": "service1",
      "UpstreamHttpMethod": [
        "Get"
      ],
      "UpstreamPathTemplate": "/{url}"
    },

This route is invalid! You must define {url} placeholder in both templates!
   {
      "DownstreamPathTemplate": "/{url}",
      "UpstreamPathTemplate": "/{url}"
    },

👆


WM Theme broken on MacOS

Description
No matter which color accent I choose, it displays as WM Theme: Blue (Light) on Mojave. Even Graphite. Also sometimes it shows up as WM Theme: 6 (Light), but not always.
Neofetch version
Neofetch 5.0.1
Screenshot

verbose log
https://gist.github.com/danyisill/3efa99b754540f7969b65fd1f325b69e

Please provide full logs.

sorry, added

Pinging @iandrewt as I don't have a Mac to reproduce this.

Seems the new Dark Mode in Mojave has changed how the theme information is stored. AppleAquaColorVariant is always 1 for me. The new accent colour feature is stored in the AppleAccentColor key, as a different number for each colour option. What should we be showing for WM Theme in Mojave then?

Hmm... Since I'm unfamiliar with a Mac, I'll leave that up to you. But maybe we can make use of the new AppleAccentColor variable.

I'll need to do some more investigation as to what information I'm actually able to collect, but if it's possible I'd like the output to be in the form {Light|Dark} ({Accent})


Dynamics said my SharePoint URL is invalid

I am working on linking dynamics document to SharePoint, but the system keeps telling me that my absolute URL for the site is not valid. Why so? I am pretty sure that the URL is correct. Do I need to edit anything before linking?
Thanks!

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

ID: 090f1c0e-45af-6cd2-989d-99d1501b85b3
Version Independent ID: 4b8b1da8-aca9-9eec-3bf6-53e0a9603f78
Content: Validate and fix SharePoint site URLs for Dynamics 365 for Customer Engagement apps
Content Source: ce/admin/validate-fix-sharepoint-site-urls.md
Service: crm-online
GitHub Login: @Mattp123
Microsoft Alias: matp

@Cynthia201903 Thanks for contacting us. Unfortunately, we're unable to handle Support requests for the product here. To contact Support, consider one of the options described here: https://docs.microsoft.com/dynamics365/get-started/support/
Closing this issue.


Import behaviour themed vs raw

Just a suggestion and should be easy to change.
import Button from 'react-toolbox/lib/button';
// Button has the default theme...

import {Button} from 'react-toolbox/lib/button';
// Raw button without theme...

This might be even more confusing. The issue is that there are subcomponents grouped under a folder sometimes. For example, you can import both Button and IconButton from /button/index.js. You can export by default the Button with css and { Button } without css but... what about IconButton?
Thanks for the suggestion but I don't really see it possible without an full reorganization :(

I noticed that exact problem yesterday when I needed to integrate with react router :/.


App freeze after connected.

I am facing with one problem that is app freeze after connected. nothing logging showed. can you check for me with endpoint : https://nownbackend.azurewebsites.net/hubs/chat
I don't know what is the reason and where is come of the problem. I tested with localhost is works but not work when I deploy to azure.
Thank you so much.

I have just found the reason. I go to azure portal and enable websocket to on . it works now.

but I think you should handle that case . now app freeze if the server side not enable websocket.

The last couple commits in the repo are about handling server capabilites
which would allow handling missing websocket support on the server better.
As for the hang - are you running Azure SignalR service or regular web
service?
If this is just regular web service can you prepare a repro and post it to
github?
I believe this client will not work with Azure SignalR at the moment
because there is some redirect which is not handled correctly.
You may also take a look at the HubConnection sample. It runs against a
local server (also in the repo - TestServer) and works fine so maybe it
will help you.
On Sat, Jul 21, 2018, 9:40 AM ducnv2910<EMAIL_ADDRESS>wrote:

but I think you should handle that case . now app freeze if the server
side not enable websocket.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/moozzyk/SignalR-Client-Swift/issues/21#issuecomment-406808652,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABX0pPfrVWWcrOkF6kOfTM6UdIzNgWN7ks5uI1l5gaJpZM4VZriU
.

I will try to repro this to see what is happening. From what you are describing it feels like http requests are sent on the UI thread which should not be the case so need to double check. When you say that your server is not responding it is happening for the first http request (negotiate) or when opening the web socket?

I have try to connect in background thread but still got freeze. please set to your device to low connection mode and test that case.

OK. I will try that.

Thank. please let me know when you fix that bug. 💃

OK . let me check then will let you know.

FYI, 0.3.0 is now on CocoaPods.


WebApp - Show incorrect the menu is active

Describe the bug

[x] Show incorrect the menu is active when opening the successful screen

To reproduce the behavior
Steps:

Perform send any token successfully
Observe the menu activing

Actual: Active "Staking" menu although standing on Portfolio menu

[x] Show incorrect the menu is active when opening the account detail screen

Actual: Active setting menu

Expect: Active the menu active before

[x] Show incorrect the menu is active when import multi-account successfuly

Expect: Active menu Portfolio

Version test: https://0481b418.subwallet-webapp.pages.dev/
Validation passed.


add core_mounts when setting privileged environment flag

Codecov Report

Merging #468 (0bf6e4f) into master (c51bb19) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #468      +/-   ##
==========================================
- Coverage   39.49%   39.46%   -0.03%
==========================================
  Files          34       34
  Lines        5262     5263       +1
==========================================
- Hits         2078     2077       -1
- Misses       3184     3186       +2

Impacted Files
Coverage Δ

assemblyline_core/scaler/controllers/docker_ctl.py
12.18% <0.00%> (-0.04%)
:arrow_down:

assemblyline_core/dispatching/dispatcher.py
76.55% <0.00%> (-0.13%)
:arrow_down:

Continue to review full report at Codecov.

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


Avoid leaking texture->tex_id when clearing render targets

Fixes: https://github.com/godotengine/godot/issues/71951
Might help: https://github.com/godotengine/godot/issues/68814
Might help: https://github.com/godotengine/godot/issues/72224
When a texture is attached to a render target its tex_id is just a copy of rt->color so when color is freed the tex_id is no longer valid. When freeing a render target texture_free() is called so the tex_id would get reset to 0, but in some rare cases _clear_render_target would free color and the tex_id reference would get left.
The bug occured in the following situation:

A render target is allocated (for a PopupMenu)
The render target is cleared but not freed (perhaps is size is set to 0,0)
The tex_id used by the render target is given to a new resource (i.e. the Sprite's texture)
The render target is freed which also frees the texture. Since the id is a valid GL_id it frees the Sprite's texture and leaves a dangling GL_id on the sprite.
When the Sprite is renderered it uses an invalid GL_id which results in undefined behaviour

Thanks!


Add "meta" table generator

See googlefonts/fontbakery#3418

Add langcodes dependency to handle BCP47 codes
Code to create meta tables with language tag information
Plug meta table generator into builder

Let’s keep this out of the next release until the tag issues are fixed. Who’da thought that OpenType having its own bespoke almost-but-not-quite-BCP47 language tag system would have caused such problems?

langcodes 3.2.1 has been released and includes better tag validation.

@simoncozens ready for review?

I'm late to the party, but it would have been nice if this logic to build meta table were in ufo2ft (by reading from the public.openTypeMeta lib key)

oops stupid me, we already do support that https://github.com/googlefonts/ufo2ft/blob/0cce3d76e5c901c0191750d9a036f4f6fc19174b/Lib/ufo2ft/outlineCompiler.py#L994 (sorry Denis!)

I guess you want to be able to add a meta table directly to an existing binary font, right? Ideally that would be part of the source itself. If there's anything in the existing ufo2ft implementation that does not suit your needs we can change that.

I guess you want to be able to add a meta table directly to an existing binary font, right?

Actually we did want to add it to the font while building. I didn't know ufo2ft did this already. This is probably redundant then.

I didn't know ufo2ft did this already.

hehe, even me I had forgotten 😄

What's the support like in glyphsapp/glyphsLib for this table?
I can already predict what you're all thinking

LOL
what about https://forum.glyphsapp.com/t/feature-request-support-for-public-opentypemeta/9039 ?

So the only useful part of this is validity checking for the dlng/slng tags. I'm happy to upstream that into ufo2ft if you'd want it, @anthrotype.

that'd be nice. How 'heavy' is the langcodes dependency?

It doesn't have any required dependencies itself.

sgtm

I think this idea has died, and if it is to be picked up we'll do it in glyphsLib.


Change EOL for some some files from CRLF to LF.

#1256
Some files needed to be changed to ensure that the line endings were proper. This PR addresses that.

Thanks!


Portfolio: Hide "Dust" amounts in the "Supplied" balance

Overview
If a user has a "supplied" balance of < 0.0001 of the asset, we should remove that position from the UI

This seems to have been done already. @ciocan could you help confirm and then close the issue?


Update jhipster-online description

Description of Changes
Summarize the changes you made as part of this pull request.
Updates the description of the JHipster devfile
Related Issue(s)
Link the GitHub/GitLab/JIRA issues that are related to this PR.
N/A
Acceptance Criteria

[ ] Contributing guide

Have you read the devfile registry contributing guide and followed its instructions?

[ ] Test automation

Does this repository's tests pass with your changes?

[ ] Documentation

Does any documentation need to be updated with your changes?

[ ] Check Tools Provider

Have you tested the changes with existing tools, i.e. Odo, Che, Console? (See devfile registry contributing guide on how to test changes)
Tests Performed
Explain what tests you personally ran to ensure the changes are functioning as expected.
How To Test
Instructions for the reviewer on how to test your changes.
Notes To Reviewer
Any notes you would like to include for the reviewer.

/retest

/retest

/retest