PANIC: FS::FileWrap::dtor: file not closed in endpoint logs which caused endpoint to restart

Environment info
<EMAIL_ADDRESS>~]# noobaa version
INFO[0000] CLI version: 5.9.0
INFO[0000] noobaa-image: noobaa/noobaa-core:master-20210627
INFO[0000] operator-image: noobaa/noobaa-operator:5.9.0
<EMAIL_ADDRESS>~]#
<EMAIL_ADDRESS>~]# oc version
Client Version: 4.7.13
Server Version: 4.7.13
Kubernetes Version: v1.20.0+df9c838
<EMAIL_ADDRESS>~]#
<EMAIL_ADDRESS>~]# oc get nodes
NAME                         STATUS   ROLES           AGE    VERSION
master0.ns.cp.fyre.ibm.com   Ready    master,worker   4d1h   v1.20.0+df9c838
master1.ns.cp.fyre.ibm.com   Ready    master,worker   4d1h   v1.20.0+df9c838
master2.ns.cp.fyre.ibm.com   Ready    master,worker   4d1h   v1.20.0+df9c838
<EMAIL_ADDRESS>~]#
Actual behavior

Endpoint restarted and gave PANIC error

Expected behavior

Endpoint should not be restarted

Steps to reproduce

Start an IO (s3 cp testfile2 s3://buck-2) and stop using Ctrl+C in between
Endpoint PANIC and restart and on concurrent IO gave upload failed: ./testfile2 to s3://buck-2/testfile2 An error occurred (503) when calling the UploadPart operation (reached max retries: 2): Service Unavailable
<EMAIL_ADDRESS>logs]# oc get pod
NAME                               READY   STATUS    RESTARTS   AGE
noobaa-core-0                      1/1     Running   0          67m
noobaa-db-pg-0                     1/1     Running   0          47m
noobaa-endpoint-84858cb98d-sxfdr   1/1     Running   2          67m
noobaa-operator-57d449689c-hxdsm   1/1     Running   0          45h
<EMAIL_ADDRESS>logs]#

More information - Screenshots / Logs / Other output
[root@fyreauto-x-app1 ~]# du -sh testfile2
98G     testfile2
ep.log
noobaa_diagnostics_1625044851.tar.gz

@nehasharma5 can you please paste Panic output from previous endpoint pod. You can use command "oc logs  -p" to check it.
I have raised 6266 for endpoint panic. Please see if it looks similar.

Hi @akmithal ep.log already attached in bug , they are previous endpoint logs. The id you mentioned 6266 I did not find any bug associated to that id

Logs shows [32mJun-30 9:11:28.185 [Endpoint/8]    [L1] core.server.system_services.system_store:: SystemStore: rebuild took 0.8ms
Jun-30 9:11:28.185 [Endpoint/8]    [L3] core.rpc.rpc:: RPC._on_request: COMPLETED srv server_inter_process_api.load_system_store reqid 13@ws://[::ffff:<IP_ADDRESS>]:45760/(xi8u32ov) connid wss://noobaa-mgmt.noobaa.svc:443(120pr9a)
Jun-30 9:11:33.429 [Endpoint/8]    [L3] core.rpc.rpc:: RPC._on_request: ENTER srv server_inter_process_api.update_master_change reqid 14@ws://[::ffff:<IP_ADDRESS>]:45760/(xi8u32ov) connid wss://noobaa-mgmt.noobaa.svc:443(120pr9a)
Jun-30 9:11:33.430 [Endpoint/8]    [L1] core.server.common_services.auth_server:: load_auth: { system: false } { iat: 1625041606 }
Jun-30 9:11:33.430 [Endpoint/8]    [L3] core.server.common_services.auth_server:: load auth system: undefined
Jun-30 9:11:33.430 [Endpoint/8]    [L3] core.rpc.rpc:: RPC._on_request: COMPLETED srv server_inter_process_api.update_master_change reqid 14@ws://[::ffff:<IP_ADDRESS>]:45760/(xi8u32ov) connid wss://noobaa-mgmt.noobaa.svc:443(120pr9a)
Jun-30 9:11:38.552 [Endpoint/8]    [L4] core.rpc.rpc:: RPC PING fcall://fcall(omztin1)
Jun-30 9:11:38.553 [Endpoint/8]    [L4] core.rpc.rpc:: RPC PONG fcall://fcall(omztin1)
Jun-30 9:11:38.553 [Endpoint/8]    [L4] core.rpc.rpc:: RPC PINGPONG fcall://fcall(omztin1)
PANIC: FS::FileWrap::dtor: file not closed _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275 _fd=27  Transport endpoint is not connected (107) ~FileWrap() at ../src/native/fs/fs_napi.cpp:616
/noobaa_init_files/noobaa_init.sh: line 74:     8 Aborted                 $*

@nehasharma5 I think it was a typo in the number and it's this one - #6566
Although both panics are similar (FileWrap::dtor: file not closed) there could be a different cause.
In #6566 the panic is during object read on a file:
PANIC: FS::FileWrap::dtor: file not closed
_path=/nsfs/nsfs-nsr-1/bucket-11/medium_file_4
_fd=38  Success (0) ~FileWrap() at ../src/native/fs/fs_napi.cpp:603

But in this case the file causing the panic is a multipart file:
PANIC: FS::FileWrap::dtor: file not closed
_path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275
_fd=27 Transport endpoint is not connected (107) ~FileWrap() at ../src/native/fs/fs_napi.cpp:616

I see in the endpoint log (that has high debug level!) that we were aborting the multipart a bit before that panic.
if I track this part in the logs I see this flow:
Jun-30 9:11:17.240 [Endpoint/8]    [L1] core.endpoint.s3.s3_rest::
S3 REQUEST PUT /buck-2/testfile2?uploadId=4b3a4c39-707d-47d2-a410-ffdafc4d2da4&partNumber=275
    op put_object_uploadId
    request_id kqj9el87-2i8phs-om6
    { 'accept-encoding': 'identity', 'user-agent': 'aws-cli/2.1.33 Python/3.8.8 Linux/4.18.0-305.3.1.el8_4.x86_64 exe/x86_64.rhel.8 prompt/off command/s3.cp', 'content-md5': 'LHq4Wokyg+mMkx6VEa3Rgg==', expect: '100-continue', 'x-amz-date': '20210630T091117Z', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD', authorization: 'AWS4-HMAC-SHA256 Credential=hTCjHTjraxvvwSTCRgcr/20210630/us-east-1/s3/aws4_request, SignedHeaders=content-md5;host;x-amz-content-sha256;x-amz-date, Signature=299de6a1038dcca758eb56fb6bccb78f9bfbf87bc545475716616ee6578f829e', 'content-length': '16777216', host: 's3-noobaa.apps.ns.cp.fyre.ibm.com', 'x-forwarded-host': 's3-noobaa.apps.ns.cp.fyre.ibm.com', 'x-forwarded-port': '443', 'x-forwarded-proto': 'https', forwarded: 'for=<IP_ADDRESS>;host=s3-noobaa.apps.ns.cp.fyre.ibm.com;proto=https', 'x-forwarded-for': '<IP_ADDRESS>' }

Jun-30 9:11:17.240 [Endpoint/8]    [L0] core.endpoint.s3.ops.s3_put_object_uploadId::
PUT OBJECT PART buck-2 testfile2 275

Which is followed by successful Open:
2021-06-30 09:11:17.240660 [PID-8/TID-8] [L1] FS::FSWorker::Begin: FileOpen _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275 _flags=577 _mode=432
2021-06-30 09:11:17.240713 [PID-8/TID-16] [L1] FS::FSWorker::Execute: FileOpen _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275 _flags=577 _mode=432 _uid=2001 _gid=2002 _backend=GPFS
2021-06-30 09:11:17.240979 [PID-8/TID-8] [L1] FS::FileOpen::OnOK: _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275

That open part file is being written to in nsfs _upload_stream
But then when you aborted the upload, we get an abort request from the client:
Jun-30 9:11:19.022 [Endpoint/8]    [L1] core.endpoint.s3.s3_rest::
  S3 REQUEST DELETE /buck-2/testfile2?uploadId=4b3a4c39-707d-47d2-a410-ffdafc4d2da4
  op delete_object_uploadId
  request_id kqj9emlp-fg676m-hnz
  { 'accept-encoding': 'identity', 'user-agent': 'aws-cli/2.1.33 Python/3.8.8 Linux/4.18.0-305.3.1.el8_4.x86_64 exe/x86_64.rhel.8 prompt/off command/s3.cp', 'x-amz-date': '20210630T091119Z', 'x-amz-content-sha256': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', authorization: 'AWS4-HMAC-SHA256 Credential=hTCjHTjraxvvwSTCRgcr/20210630/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=db6ae676fadddeb079b0e489e0370f2f599f540fdadd5c126c3b8a15d199417e', 'content-length': '0', host: 's3-noobaa.apps.ns.cp.fyre.ibm.com', 'x-forwarded-host': 's3-noobaa.apps.ns.cp.fyre.ibm.com', 'x-forwarded-port': '443', 'x-forwarded-proto': 'https', forwarded: 'for=<IP_ADDRESS>;host=s3-noobaa.apps.ns.cp.fyre.ibm.com;proto=https', 'x-forwarded-for': '<IP_ADDRESS>' }

And delete the entire temp directory of the multipart upload, and part-275 with it:
2021-06-30 09:11:19.027977 [PID-8/TID-8] [L1] FS::FSWorker::Begin: Unlink _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275
...
2021-06-30 09:11:19.111761 [PID-8/TID-16] [L1] FS::FSWorker::Execute: Unlink _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275 _uid=2001 _gid=2002
...
2021-06-30 09:11:19.113580 [PID-8/TID-8] [L1] FS::FSWorker::OnOK: undefined Unlink _path=/nsfs/fs1/buck-2/.noobaa-nsfs_60dab1e5f90f240027de0ef2/multipart-uploads/4b3a4c39-707d-47d2-a410-ffdafc4d2da4/part-275

But I don't know why the deletion caused the FileWrap to fail on dtor, because we expected the finally clause in _upload_stream to close that filewrap before the memory is destructed.
@jeniawhite I think this would be easy to try and reproduce this locally just by Ctrl-C on the aws cli during multipart upload, and then we can debug more easily, WDYT?

Hello @guymguym , Sorry for the typo. My defect is https://github.com/noobaa/noobaa-core/issues/6626 so please refer to this one as well.

Referencing to what I think is the root cause - https://github.com/nodejs/node/issues/36674
It is a real hazard that async functions can get "cancelled" without going to their finally block just by having a pending promise or async iterator/stream that gets garbage collected. In the upload part case this is most likely caused by the pipeline used in s3_utils.decode_chunked_upload(): https://github.com/noobaa/noobaa-core/blob/b700dae2fb8ce8575add1f82cb53dd712200e98b/src/endpoint/s3/s3_utils.js#L106-L114
Here is a direct reproduction of the dtor panic:
'use strict';

const stream = require('stream');
const nb_native = require('./src/util/nb_native');

async function main() {
    nb_native();
    await new Promise(r => setTimeout(r, 100));

    const source = new stream.Readable({
        read() {
            this.push(Buffer.from(`hello world ${process.hrtime.bigint()}}`));
        }
    });
    source.on('error', err => console.log('*** SOURCE CLOSED', err));

    await new Promise(r => setTimeout(r, 100));
    source.destroy(new Error('DIE'));
    await new Promise(r => setTimeout(r, 100));

    // See https://github.com/nodejs/node/issues/36674
    console.log('*** SOURCE', source.destroyed ? 'destroyed !!!' : '');
    const strm = stream.pipeline(
        source,
        new stream.PassThrough(),
        err => console.log('*** PIPELINE:', err),
    );

    await write_stream_to_file(strm, '/dev/null');
}

/**
 * @param {stream.Readable} strm
 * @param {string} fname
 * @returns {Promise<void>}
 */
async function write_stream_to_file(strm, fname) {
    let file;
    try {
        console.log('*** OPEN', fname);
        file = await nb_native().fs.open({}, fname, 'w');
        console.log('*** STREAM', strm.destroyed ? 'destroyed !!!' : '');
        for await (const buf of strm) {
            console.log(buf.toString());
            // await file.write({}, buf);
        }
    } catch (err) {
        console.log('*** CATCH', err);
    } finally {
        // we expect this finally block to be executed in any case
        // but the async function can get "cancelled" if it awaits
        // a promise that is pending and gets garbage collected.
        console.log('*** FINALLY', file);
        if (file) await file.close({});
    }
}

main();

This is the output:
$ node a.js
OpenSSL 1.1.1k  25 Mar 2021 setting up
init_rand_seed: starting ...
...
init_rand_seed: done
*** SOURCE CLOSED Error: DIE
    at main (/Users/gu/code/noobaa-core/a.js:19:20)
*** SOURCE destroyed !!!
*** OPEN /dev/null
*** STREAM
PANIC: FS::FileWrap::dtor: file not closed _path=/dev/null _fd=23  Socket operation on non-socket (38) ~FileWrap() at ../src/native/fs/fs_napi.cpp:725
Abort trap: 6

So now that we know why our finally blocks are not called, I think we should change the FileWrap dtor to just warn and close the fd. @jeniawhite I would write like this:
    ~FileWrap()
    {
        if (_fd) {
            LOG("FS::FileWrap::dtor: file not closed " << DVAL(_path) << DVAL(_fd));
            int r = ::close(_fd);
            if (r) LOG("FS::DirWrap::dtor: file close failed " << DVAL(_path) << DVAL(_fd) << DVAL(r));
            _fd = 0;
        }
    }

also similar for DirWrap:
    ~DirWrap()
    {
        if (_dir) {
            LOG("FS::DirWrap::dtor: dir not closed " << DVAL(_path) << DVAL(_dir));
            int r = closedir(_dir);
            if (r) LOG("FS::DirWrap::dtor: dir close failed " << DVAL(_path) << DVAL(_dir) << DVAL(r));
            _dir = 0;
        }
    }

This is also getting reproduced by destroying the source_stream (req stream) after opening the FD.
Let's take an example of a multipart_upload (non chunked upload) that uploads parts and destroys the stream mid-way.
I've managed to reproduce this with our standalone NSFS code as well.
Running the NSFS standalone with constraint resources and garbage collection visibility
node --trace_gc --expose-gc --max-old-space-size=50 src/core/nsfs.js /tmp

Running an upload of a 30MB file (that will cause multipart upload) and destroying it mid-air:
/* Copyright (C) 2020 NooBaa */
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create S3 service object
var s3 = new AWS.S3({apiVersion: '2006-03-01', accessKeyId: 'ABC', secretAccessKey: 'ABC', endpoint: 'http://localhost:6001', s3ForcePathStyle: true });
// call S3 to retrieve upload file to specified bucket
var uploadParams = {Bucket: 'jenia', Key: 'uploadterm' };
var file = '/Users/jenia/Downloads/Docker.dmg';
// Configure the file stream and obtain the upload parameters
var fs = require('fs');
var fileStream = fs.createReadStream(file);
fileStream.on('error', function(err) {
  console.log('File Error', err);
});
let counter = 0;
uploadParams.Body = fileStream;
// call S3 to retrieve upload file to specified bucket
s3.upload(uploadParams, function(err, data) {
    if (err) {
        console.log("Error", err);
    } if (data) {
        console.log("Upload Success", data.Location);
    }
});
fileStream.on('data', function(data) {
    counter++;
    if (counter > 100) {
        fileStream.destroy(new Error('DESTROY'));
    }
});

Running this upload several times will cause the same DTOR to happen (without the chunked_upload).

More context on this GC-vs-finally issue here -
https://github.com/tc39/proposal-async-await/issues/89

With #6670 being opened, moving this one to verification


plashet from-tags: Add option to inherit

For 3.11, we depend on brew inheritance to build the OSE repositories.
The plashet implementation does not descend into the inheritance tree.
This commit adds the boolean option --inherit to plashet from-tags
to look into children tags as well. Defaults to False.
Test runs:

custom 3.11: includes --inherit, resulting plashet includes the needed packages
custom 4.2 does not include --inherit in the plashet invocation.

yeah, makes good sense. we stopped using inheritance in 4.x so didn't think about it.
i don't particularly want our automation picking up new inherited things and signing them (in fact i'm not sure ET would allow that) but i don't think any inherited tags are getting new content so hopefully that won't be an issue.


docs for dart:js and dart:js_util

We should clarify the docs for dart:js and dart:js_util to clarify the difference, when you'd use one vs. the other, and the relationship to package:js.
@jacob314 @kwalrath

Closing in favor of https://github.com/dart-lang/site-www/issues/5438 where we are planning to document Dart's upcoming JS interop story, as well as https://github.com/dart-lang/sdk/issues/33350 which will properly deprecate these library.


Added comment above main.c

This change was made in order to practice making pull requests !

Make changes on a separate branch !


libdeflate: 1.17 -> 1.18

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/ebiggers/libdeflate/releases.
meta.description for libdeflate is: Fast DEFLATE/zlib/gzip compressor and decompressor
meta.homepage for libdeflate is: https://github.com/ebiggers/libdeflate
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.18 with grep in /nix/store/xnnvp5zkzfnbb5c4bnlgfx9ihgrqd004-libdeflate-1.18
found 1.18 in filename of file in /nix/store/xnnvp5zkzfnbb5c4bnlgfx9ihgrqd004-libdeflate-1.18

Rebuild report (if merged into master) (click to expand)

20180 total rebuild path(s)

20180 package rebuild(s)

First fifty rebuilds by attrpath

ArchiSteamFarm
AusweisApp2
BeatSaberModManager
CHOWTapeModel
ChowCentaur
ChowKick
ChowPhaser
CuboCore.coreaction
CuboCore.corearchiver
CuboCore.corefm
CuboCore.coregarage
CuboCore.corehunt
CuboCore.coreimage
CuboCore.coreinfo
CuboCore.corekeyboard
CuboCore.corepad
CuboCore.corepaint
CuboCore.corepdf
CuboCore.corepins
CuboCore.corerenamer
CuboCore.coreshot
CuboCore.corestats
CuboCore.corestuff
CuboCore.coreterminal
CuboCore.coretime
CuboCore.coretoppings
CuboCore.coreuniverse
CuboCore.libcprime
CuboCore.libcsys
DisnixWebService
EmptyEpsilon
Fabric
HentaiAtHome
LibreArp
LibreArp-lv2
MIDIVisualizer
MMA
OSCAR
OVMF
OVMFFull
PageEdit
R
SDL
SDL2
SDL2_gfx
SDL2_image
SDL2_image_2_0_5
SDL2_mixer
SDL2_mixer_2_0

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xnnvp5zkzfnbb5c4bnlgfx9ihgrqd004-libdeflate-1.18 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libdeflate https://github.com/r-ryantm/nixpkgs/archive/5cb6d7653a7b1701a339716a29da9145840a4345.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xnnvp5zkzfnbb5c4bnlgfx9ihgrqd004-libdeflate-1.18
ls -la /nix/store/xnnvp5zkzfnbb5c4bnlgfx9ihgrqd004-libdeflate-1.18/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @orivej @KAction for testing.

Just a few bugfixes:
https://github.com/ebiggers/libdeflate/blob/v1.18/NEWS.md


added phone number pattern for BD

Added phone number pattern and test case for BD.

@shibli049 Thank you!


Incremental Merkle Tree

As we are building manta (https://github.com/Manta-Network), we figured out that we need an incremental merkle tree that has Log N internal nodes, which is not supported in the current MerkleTree implementaion. The properties that we need for this merkle tree:

Able to generate ZK membership proofs
The merkle tree can be fixed sized and append only (i.e. mark the unused leaf node as a filler, etc)
The number of internal nodes is Log N. (since we need to store the internal nodes on chain, O(N) storage would be too expensive).
I think 3 is only possible if this merkle tree only support append.  Happy to submit a PR on this. Would also like to hear is there any design considerations that need to take care of during the implementation.

https://github.com/arkworks-rs/sponge/


6G GPU memory,batch_size=1 with D1 network,still got CUDA out of memory

Your default batch size is 32,What GPU did you used for training?

Same. 2080TI (11GB) with batch_size = 1 still not work. Here's the traceback:
Traceback (most recent call last):
  File "train.py", line 195, in <module>
    train()
  File "train.py", line 140, in train
    classification, regression, anchors = model(images)
  File "/home/ray/anaconda3/envs/dl/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/ray/EfficientDetPytorch/models/efficientdet.py", line 62, in forward
    anchors = self.anchors(inputs)
  File "/home/ray/anaconda3/envs/dl/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/ray/EfficientDetPytorch/models/module.py", line 153, in forward
    return torch.from_numpy(all_anchors.astype(np.float32)).cuda()
RuntimeError: CUDA error: out of memory

You can try NVIDIA apex with opt_level = 'O2, I got 8100M GPU memory usage with batch size 16, you can try to use smaller batch size to fit in 6GB GPU RAM.

Same problem. Two 2080TI (11GB*2)  with batch_size = 6 . Here's the traceback:
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 11.00 GiB total capacity; 5.97 GiB already allocated; 678.40 KiB free; 38.08 MiB cached)

Same problem. Two 2080TI (11GB*2) with batch_size = 6 . Here's the traceback:
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 11.00 GiB total capacity; 5.97 GiB already allocated; 678.40 KiB free; 38.08 MiB cached)

Same problem. Two 2080TI (11GB*2) with batch_size = 6 . Here's the traceback:
Traceback (most recent call last):   File "C:/Users/Admin/Desktop/EfficientDet.Pytorch-master/train.py", line 196, in <module>     train()   File "C:/Users/Admin/Desktop/EfficientDet.Pytorch-master/train.py", line 141, in train     classification, regression, anchors = model(images)   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\modules\module.py", line 541, in __call__     result = self.forward(*input, **kwargs)   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\parallel\data_parallel.py", line 152, in forward     outputs = self.parallel_apply(replicas, inputs, kwargs)   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\parallel\data_parallel.py", line 162, in parallel_apply     return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\parallel\parallel_apply.py", line 85, in parallel_apply     output.reraise()   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\_utils.py", line 385, in reraise     raise self.exc_type(msg) RuntimeError: Caught RuntimeError in replica 0 on device 0. Original Traceback (most recent call last):   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\parallel\parallel_apply.py", line 60, in _worker     output = module(*input, **kwargs)   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\modules\module.py", line 541, in __call__     result = self.forward(*input, **kwargs)   File "C:\Users\Admin\Desktop\EfficientDet.Pytorch-master\models\efficientdet.py", line 59, in forward     features = self.BIFPN(features[-5:])   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\modules\module.py", line 541, in __call__     result = self.forward(*input, **kwargs)   File "C:\Users\Admin\Desktop\EfficientDet.Pytorch-master\models\bifpn.py", line 109, in forward     laterals = bifpn_module(laterals)   File "C:\Users\Admin\Anaconda3\envs\pytorch\lib\site-packages\torch\nn\modules\module.py", line 541, in __call__     result = self.forward(*input, **kwargs)   File "C:\Users\Admin\Desktop\EfficientDet.Pytorch-master\models\bifpn.py", line 196, in forward     pathtd[i], scale_factor=2, mode='nearest') RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 11.00 GiB total capacity; 5.97 GiB already allocated; 678.40 KiB free; 38.08 MiB cached)

@AlexLuya @RayOnFire @shengyuqing
I used:
OS: Ubuntu 18.04
GPU: 2*2080TI(11GB)
When training, I set batch_size 32 for EffficientDet-D0(~20000MB cuda), and batch_size 16 for EfficientDet-Do(~20000MB cuda).
At commit #36 , If you use multi-GPU, I have changed .cuda() in loss function and Anchor to .to(input.device). I think it will fix this issues.

@AlexLuya @RayOnFire @shengyuqing
I used:
OS: Ubuntu 18.04
GPU: 2*2080TI(11GB)
When training, I set batch_size 32 for EffficientDet-D0(~20000MB cuda), and batch_size 16 for EfficientDet-Do(~20000MB cuda).
At commit #36 , If you use multi-GPU, I have changed .cuda() in loss function and Anchor to .to(input.device). I think it will fix this issues.

Thanks! I have updated the code, but still the same problem. Very strange.

@toandaominh1997
I used Windows10

but, i want use d0-d7, just one 2080Ti, and i want batch_size >=4....

@AlexLuya @RayOnFire @shengyuqing
I used:
OS: Ubuntu 18.04
GPU: 2*2080TI(11GB)
When training, I set batch_size 32 for EffficientDet-D0(~20000MB cuda), and batch_size 16 for EfficientDet-Do(~20000MB cuda).
At commit #36 , If you use multi-GPU, I have changed .cuda() in loss function and Anchor to .to(input.device). I think it will fix this issues.

I  don't understand the explicit way?

@toandaominh1997
I used Windows10

have U solve the problem?

have you solved the out of memory ?

I got the same problem on my Titan rtx


Another version of colours

Firstly, thanks for this great integration!
My version of colours (which also goes well with a dark HA theme):
...
colorMap:
"1": "#db4437ff"
"2": "#ffa600ff"
"3": "#fafa0dff"
"4": "#0899f8ff"
"5": "#43a047ff"
...

Nice!
You probably ment the card version, not the integration 😄

Oh, sorry, will move it there.


Listing of XAML namespaces

It would be incredibly helpful if a listing of common Xamarin XAML namespaces could be compiled. For reference, I'm very new to XAML and am finding it incredibly difficult to locate helpful documentation.

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

ID: 8cb234b9-b1c1-e43e-6015-466de8ff0ce3
Version Independent ID: e66ed6aa-c7fa-8ead-e828-73c17a15320c
Content: XAML Namespaces in Xamarin.Forms - Xamarin
Content Source: docs/xamarin-forms/xaml/namespaces.md
Product: xamarin
GitHub Login: @charlespetzold
Microsoft Alias: chape

Hi @davehax
In Xamarin.Forms there are only two main XAML namespaces, as mentioned in the Namespaces doc. Any additional XAML namespaces are to access platform-specifics or access your own types.


Allow wildcard "_" as const pattern

One of the things holding static_assertions from becoming 1.0 is a restriction on where the wildcard identifier is allowed. I'm requesting that consts may be allowed to use _ just like with let bindings.

Nit: _ is a pattern, not an identifier.  To me it'd seem odd to support only _ and not more general patterns (but general patterns do not seem useful for constants).
I feel this issue would be better simply by having some method--any method--of generating a hygienic name for an item (a const, fn, mod, etc.) inside a macro just like we are capable of doing (or perhaps, rather, forced to do) for local variables.

For static_assertions though you don’t actually want a const item, only the side effects of evaluating its initializer, right?

@SimonSapin yes, I'm mainly after the side effects. This is one way I can think of achieving what I want with minimal effect on the language. This is also a backwards-compatible change.
A const item using _ would allow for using the compile-time side effects multiple times within the same context without naming conflicts.

const destructuring (const (A, B): (&str, i32) = ("foo", 0);) might be a very nice addition, and then the _ patterns would come "for free". cc @nikomatsakis

I actually spoke to Niko about this a month ago. He recommended to add something like my const_assert macro to the language instead. The issue is that I need this issue for other macros within this crate as well.
@eddyb I really like the idea of adding constant destructuring to the language! This should also work for statics.

Closing in favor of https://github.com/rust-lang/rfcs/pull/2526.


Any way to combine hide_input and collapse-show?

If you put #hide_input on the top the input is hidden, if you do #collapse-show you can collapse or not the cell? can these two be combined somehow so that you can both hide the input and have a collapse button for that cell?

Have you tried it?

I have
collapse hide_input
does the same things as
hide_input
collapse
does the same thing as
hide_input
I suppose the feature is designed specifically for code as it even says "Hide Code" "Show Code" even thought collapse could be more general where you might want to collapse or show sections of output that you want.  Iam not sure if this is fastpage or general markdown..? Can you point to a codebase that handles this?

Oh yes, you can only have one command at a time, because this is a way nbdev works.
perhaps open an issue on nbdev saying you would like to apply multiple flags on a code block.   Look forward to seeing your issue there.
Thanks

This could be a bug in the collapse, I am still not 100% clear on what you desire based on your comment above

Thank you. Just did.
On Sat, Jun 13, 2020, 2:44 PM Hamel Husain<EMAIL_ADDRESS>wrote:

Oh yes, you can only have one command at a time, because this is a way
nbdev works.
perhaps open an issue on nbdev saying you would like to apply multiple
flags on a code block. Look forward to seeing your issue there.
Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fastai/fastpages/issues/323#issuecomment-643662034,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC7TBLA2FVRX3Q6YZBUYHO3RWPCHDANCNFSM4N2VJMOA
.


pyproject.toml TOML parse error/warning shown twice

If pyproject.toml contains invalid TOML, eg:
[project]
name "testcase"
version = "0.0.0"
requires-python = ">=3.13"
dependencies = []

(Which is missing the = for the name field)
Then the resultant error message is duplicated - first as a warning then an error - rather than only being shown once:
$ uv sync
warning: Failed to parse `pyproject.toml` during settings discovery:
  TOML parse error at line 2, column 6
    |
  2 | name "testcase"
    |      ^
  expected `.`, `=`

error: Failed to parse: `pyproject.toml`
  Caused by: TOML parse error at line 2, column 6
  |
2 | name "testcase"
  |      ^
expected `.`, `=`

This is not high priority (and I imagine probably one of those awkward things to fix without refactoring a bunch), so feel free to wontfix if preferred.
$ uv --version
uv 0.5.9 (Homebrew 2024-12-13)

Yeah I hate this... It's hard to avoid since these errors happen "far away" from one another but I hate it.

I suppose one option would be to make pyproject.toml TOML parse errors fatal during settings discovery instead? (Rather than trying to defer the warning until later)


Ability to write XMP Metadata

This PR adds a new function SetXmpMetadata(xmpStream []byte) to the API which allows the caller to insert a /Type /Metadata /Subtype /XML stream into the PDF file on output.
Then contents of the metadata stream must be a valid XMP metadata packet in XML format. It's up to the caller to generate such a packet, e.g. by using a library like http://github.com/echa/go-xmp. However, SetXmpMetadata does not perform any validity checks to keep the implementation lean.
I couldn't find a way to make this work with the existing API using the RawWrite* functions since they cannot be called during output (Fpdf.enddoc() writes PDF header, contents and trailer in one go).

Thanks, @echa!


doors sometimes don't redraw when closed w interact

what's up with that?

can't reproduce pretty sure i fixed it by accident when doing other stuff


Add WA PHD to Cross-receiver synthesis

Problem statement
Add WA synthesis to research PPT.
Background
Link to the raw notes which includes a slack summary. Did not do a separate word doc called synthesis.
To do

[x] Update research PPT
[x] Flag Rachel about making updates to Product's presentation PPT

TO do Monday - 3/14

I updated the PPT here so now this internal slidedeck includes 8 states. I am noting I would like to F/U with Indiana.

@rachelhanster I updated with WA -- just noting they are keen to be in pilot. They talked about mostly POC we did not ask if they have an EMR.


Llama3 Chunked Prefill

Llama3-7-B on T3K supports up to 128k context length with batch=1. However, it is limited such that the maximum prompt length is 32k. That means that the full 128k context can be used by prefill len + decode len only if prefill len <= 32k.
This constraint is caused by the fact that prefill activations for long sequences become large, leading to OOM on device DRAM. For example, the activations are 128k * 8k * 2B = 2 GB for input len 128k.
The solution to this problem is to implement chunked prefill. Given some prompt_len and a chunk_size  (<= 32k), the prompt is split into prompt_len / chunk_size chunks and iteratively prefilled. Chunked prefill will reduce the size of the activations which should solve the OOM error.
Steps
#15876

SDPA must know how to read K, V from paged cache
SDPA must know that its causal mask is offset by the number of previously prefilled chunks
New testing coverage

Add support to the old Llama3 codebase

Set chunk_size in model config
Pass chunk_id and num_chunks around
In attention, use different SDPA if doing chunking
New testing coverage

Nice!

This work uncovered a small bug in paged SDPA decode. The fix is in PR https://github.com/tenstorrent/tt-metal/pull/16059

All relevant PRs are merged. Doing final testing now on main


https://docs.ciphey.online/ call

Want to be able to install this into my phone

@Apocsword Do you mean installing ciphey on your phone?
We are working on a webapp, which would work on mobile devices

That be bad ass!!

I'll close this, as this is already in the works. Please reopen if there is anything more!


Does this scale to large data

I have a 150 gig mysql table that I'm trying to dedupe. If I throw the data in elastic search, will this implementation work on this much data? Will I need to purchase some monster instance on amazon?

Hi,
You should try to use Duke instead. https://github.com/larsga/Duke/wiki/GettingStarted
Cheers,
Yann


Downloading Excel file with Google Drive API doesn't bring lastest modification/version

Summary
When I use Google Drive API to download my Excel files, it will send and outdated version. The way to reproduce this is to open the Excel file in Google Sheets Editor, than add new tabs, then download the File through the API. Most of the time it will not send the file with the latest added Tab.
Expected Behavior
Always when a change is applied to the file, downloading it should return that change
Steps to Reproduce the Problem

Open the Excel file in Google Sheets Editor
Add new tabs
Then download the File through the API
Most of the time it will not send the file with the latest added Tab

Specifications

Python version (Python 3.8.12)
OS (Ubuntu 22.04)

I'm having this issue using the Google build('drive', 'v3', credentials=creds) in my project, but could also reproduce this with a simpler script that I got here. It uses requests and it's way simpler:

Sample code:
import os
import requests

def download_file_from_google_drive(id, destination):
    URL = "https://docs.google.com/uc?export=download&confirm=1"

    session = requests.Session()

    response = session.get(URL, params = { 'id' : id }, stream = True)
    token = get_confirm_token(response)

    if token:
        params = { 'id' : id, 'confirm' : token }
        response = session.get(URL, params = params, stream = True)

    save_response_content(response, destination)

def get_confirm_token(response):
    for key, value in response.cookies.items():
        if key.startswith('download_warning'):
            return value

    return None

def save_response_content(response, destination):
    CHUNK_SIZE = 32768

    with open(destination, "wb") as f:
        for chunk in response.iter_content(CHUNK_SIZE):
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)

if __name__ == "__main__":
    file_id = '1JI17N-NFAIOxX_2Y88gmuKMlsuGhBPcB'
    home = os.getenv('HOME')
    destination = f'{home}/Downloads/test-drive-download/output.xlsx'
    download_file_from_google_drive(file_id, destination)

Sample file: https://docs.google.com/spreadsheets/d/1JI17N-NFAIOxX_2Y88gmuKMlsuGhBPcB/edit#gid=1677858863
Demo: https://drive.google.com/file/d/1-L_SnWp1zQNWJ34Z2JtVbgnPVIONuBgr/view?usp=sharing

+1
Also, I don't think this is Python client related at all. I have the same issue with golang library. Eventually the latest version will be downloaded, but i could not find any indication regarding this "eventual" time, nor could not I find any indication what file version is being downloaded


use CMAKE_CURRENT_SOURCE_DIR

When trying to link to a project, using CMAKE_SOURCE_DIR would be substituted by the top project directory

LGTM


dev/android-linux-version-conflation

Base of #764 to hoist Android blocks above linux blocks. Also removes arch-specific blocks where possible.

What's the status of this?

@joakim-noah what is the status of glibc split? I'll try to make some time for this (and the other branch which needs to be split) on the weekend, but no guarantees.

It's been waiting for review for awhile now, #1010, Martin said he'd get to it soon and has commented previously that the approach looks good.  So there's no need for this PR but the rest of your larger #764 is worth getting merged.  I'll be happy to review that if you split it up.

@joakim-noah good to close this?

Yes, since #1010 was finally merged a couple months ago, this pull is obsolete.  The first commit, where he removes arch blocks, had similar functionality merged in #1267.  I haven't checked to see if he has anything in his first commit that I missed, but he can always compare those two and submit later if necessary.


Update README.md

Corrects the $RestMethodURL, and improves the $siteId variable to only include the site Guid.

Hey @IoannisGianko , thank you 👏 for your contribution - it is highly appreciated. This should be live shortly 😊
Have you registered for the PnP Recognition program, your submission will qualify for a badge :-)
Its opt in so please register here: https://pnp.github.io/recognitionprogram

Hey @IoannisGianko , thank you 👏 for your contribution - it is highly appreciated. This should be live shortly 😊
Have you registered for the PnP Recognition program, your submission will qualify for a badge :-) Its opt in so please register here: https://pnp.github.io/recognitionprogram

Thanks @pkbullock Paul, I've just registered 😊


Threashold in check 121 (last used aws key)

Hi there
Currently we have some false positives on check 121 with some users.
They arise when the access key has just been created quite recently and nobody used it so far. What do you think of having a threshold of some days in there? E.g the check will not fail, if we have created the access key less than x days.
I know I could whitelist that, but if for some reason this access key is unused for a longer period of time it would be cool to know that.
If you think thats a bad idea, feel free to tell me 👍 :)
Usecase
We rotate the credentials of our iam users quite often (1-7 days) and when we execute the check and nobody has yet used the access key, the check fails.

Thanks for your comment @WtfJoke, I think it makes sense for your use case but not sure for the rest of the users following CIS recommendations.
I recommend you to add a variable to control that needed period in your use case but it should work as it is now out of the box. Please feel free to send a PR with that in case it may benefit other with similar needs.

I will close this issue but please feel free if you need more info or have any comment. Thanks!


tap-mysql with Mysql. Exception: only INCREMENTAL, LOG_BASED, and FULL TABLE replication methods are supported

Meltano Version
2.16.1
Python Version
3.11.2
Bug scope
CLI (options, error messages, logging, etc.)
Operating System
OSX
Description
Hi all,
I am facing the following error using tap-mysql with mysql trying to set a replication job or do a config test for the tap using the default transferwise variant from meltano hub tap-mysql. The issue was raised when your  project was still on Gitlab link to gitlab, but unfortunately the resolver did not mention how it was resolved.
The output when it is invoked

The output when doing a test

The output error when doing a run

I will paste what the config looks like below, is there something else I need to set in the config.
Code
Here is what my tap-mysql extractor config looks like:

  extractors:
  - name: tap-mysql
    variant: transferwise
    pip_url: pipelinewise-tap-mysql
    config:
      host: localhost
      user: user
      database: mysql

@Iyanumanuel
try adding this to the config for tap-mysql:
  extractors:
  - name: tap-mysql
    variant: transferwise
    pip_url: pipelinewise-tap-mysql
    config:
      host: localhost
      user: user
      database: mysql
   metadata:
     "*":
       replication-method: INCREMENTAL

Feel free to re-open if this is still an issue!


Attribute "relationships" inside "included" section

Hi, we have a json file (see the code below) where the entity "orders" has a relationship (to one) with an entity "customers" and this one has a relationship (to many) with the entity "addresses". We want to parse the json file into the java bean entities whose code is below. The "relationships" attribute of "customers" is inside the "customers" entity which is placed in the "included" section.
We can't achieve the "addresses" collection to auto-populate.
Looking at the "JsonApiEntityModelDeserializer" class in the "createRelationship" method, this one does not iterate over the JsonApiDocument to find the "relationships" attribute that belongs to the var "typeArgument" passed and so don't included in the var "entry" to create an EntityModel. Also, when the "createRelationship" method call to "convertoToResource" always passes the var "wrapInEntityModel" to false.
Are we trying to do something that is not provided for in the original functionality of the library, or do we need to do something else to map the relationship "addresses" automatically?
I hope I have explained.
Thanks for your time.
json file
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": [
    {
      "id": "1",
      "type": "orders",
      "attributes": {
        "name": "Order1"
      },
      "relationships": {
	 "customer": {
            "data": {
            "id": "1",
            "type": "customers"
	 }
       }
  ],
   "included": [
    {
      "id": "1",
      "type": "customers",
      "attributes": {
        "name": "Customer1"
      },
      "relationships": {
        "addresses": {
          "data": [
            {
              "id": "1",
              "type": "addresses"
            }
          ]
        }
      }
    },
    {
      "id": "1",
      "type": "addresses",
      "attributes": {
        "name": "Address1"
      }
    }
],
  "links": {
    ...
  },
  "meta": {
    "page": {
      "size": 1,
      "totalElements": 1,
      "totalPages": 1,
      "number": 0
    }
  }
}

java beans entities

public class Orders extends EntityModel<Orders>{
    private Long id;
    private String name;

    @JsonIgnore
    @JsonApiRelationships("customer")
    private Customers customer;
    ...Getters and setters...
}

public class Customers extends EntityModel<Customers>{
    private Long id;
    private String name;

    @JsonIgnore
    @JsonApiRelationships("addresses")
    private List<Addresses> addresses;
    ...Getters and setters...
}

public class Addresses extends EntityModel<Addresses>{
    private Long id;
    private String name;
    ...Getters and setters...
}

rest call
ResponseEntity<PagedModel<EntityModel<Orders>>> response = restTemplate.exchange(...)

I think I could fix this, please check with the current snapshot. I will release the next version soon.


Fetching multiple access tokens silently only succeeds for one token

I'm submitting a...

[x] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Browser:

[x] Chrome version XX
[ ] Firefox version XX
[ ] IE version XX
[ ] Edge version XX
[ ] Safari version XX

Library version

Library version: 1.0.0

Current behavior

When trying to fetch two access tokens silently at the same time after a login, only one of the responses actually includes the access token. When refreshing, one token gets fetched from the cache which makes the other token response succeed.
Expected behavior

Both token responses should succeed in getting the token.
Minimal reproduction of the problem with instructions

const msal = new Msal.UserAgentApplication(config);

// after a user has logged in
msal.acquireTokenSilent({ scopes: ['user.read'] })
.then(response => {
  // do something with access token
})

msal.acquireTokenSilent({ scopes: ['api://myapiguid/Read'] })
.then(response => {
  // do something with access token
})

When doing the above, either of the responses will not contain an access token, as they are being run at the same time. This used to work in the previous version of msal, 0.2.4 if I recall correctly.
When doing the following workaround, the tokens are being acquired correctly:
msal.acquireTokenSilent({ scopes: ['user.read'] })
.then(response => {
  // do something with access token

  return msal.acquireTokenSilent({ scopes: ['api://myapiguid/Read'] });
})
.then(response => {
  // do something with access token
})

Which suggests that the tokens are not being successfully acquired when attempting to do so at the same time.
Edit:
After some more testing, it correctly delays one request until the other one is done. I'm not really sure why, but before the issue happened as explained above. I'm not sure if something changed that affected this, so I'm leaving the issue open in case it happens again.

Another case, for multiple scope token graph scope and custom api scope
In case of first login it properly returns the token properly. But if there was a cache token available which has expired, After adding some delay after login the token gets returned but the token will be for the graph scope and not for the request one. If there is no delay it returns empty.
Can we move this to a high priority issue?

@raikoss  @ThomasJacob
Thank you for the feedback, this is a good call out of something we should fix.
I am making a work item for the team, to make sure we can fetch multiple tokens concurrently.
Are either of you currently blocked? If I am thinking of the problem we need to solve in the code, it may not be a quick fix.
@sameerag  / @pkanher617  I know we have some code in place that currently prevents that , so we may need to get creative to solve for this.

@ThomasJacob  having a little trouble understanding your issue, is it related to the concurrent, or is it a separate issue that has to do with how we are caching ?

@DarylThayil When I was testing this yesterday, there was a period where only one token got fetched, but as the day passed I somehow succeeded in getting both tokens. It seems pretty random, but in periods, as every test case I tried earlier that day failed, and every test case I tried later during the day succeeded. This also hasn't happened to me since I created this issue, strangely enough.
Maybe there was something wrong with the client in Azure AD that somehow resolved itself? I'm sorry I don't have more to go on this, as it seems like it's a somewhat big issue if it persists.

Closing without repro + solution for concurrent request being done serially.
We do have work slated to handle concurrent token requests in the future

@raikoss @ThomasJacob Re-opening because I was able to repro. I have added a fix for this in PR #768. Can you please check if this fixes your issue? I will push a patch as soon as I have confirmed that it sufficiently fixes the issue.

The changes in the pull request seems to fix the issue.


newlines_after_classes false positive

Below code (with coffee setters) does not pass validation:
class User

  setName: (@name) ->

  setAge: (@age) ->

SomeFunction()

Settings in coffeelint.json:
  "newlines_after_classes": {
    "value": 2,
    "level": "error"
  }

Error:
✗ #4: Wrong count of newlines between a class and other code. Expected 2 got 3.

Thanks for submitting an issue.  This problem is already known about and addressed in #518.


Issue with Loading Array

I am having an issue loading an array into the calendar which I am building with an SPServices call to a Sharepoint server. Any idea what I am missing here? Everything but the actual event data loads and with no errors in the console. I just don't see events in the calendar.
My options call looks like this:
var eventData =  getCalendarData;
var options = {
        events_source: [eventData],
        view: 'week',
        tmpl_path: '/SiteAssets/tmpls/',
        tmpl_cache: false,
        onAfterEventsLoad: function(events) {
            if(!events) {
                return;
            }
            var list = $('#eventlist');
            list.html('');

            $.each(events, function(key, val) {
                $(document.createElement('li'))
                    .html('' + val.title + '')
                    .appendTo(list);
            });
        },
        onAfterViewLoad: function(view) {
            $('.page-header h3').text(this.getTitle());
            $('.btn-group button').removeClass('active');
            $('button[data-calendar-view="' + view + '"]').addClass('active');
        },
        classes: {
            months: {
                general: 'label'
            }
        }
    };

I am dumping the array to the browser so I am sure the array is being populated prior to the calendar load. An example element of the array looks like this:
{id: "30",title: "123 Maple Ave, Mayberry&&Not Assigned",url: "http://mysite.com/Calendar/DispForm.aspx?ID=30",class: "event-warning",start: "1412596800",end: "1412611200"},

Also, would the mssing event entries be causing the page to reload from the server after navigation?
Thanks!

I solved the point by using underscore.js for changing a line of code of your library:
// original code (see calendar.js) line # 950
self.options.events.sort(function (a, b) {
	var delta;
	delta = a.start - b.start;
	if (delta == 0) {
		delta = a.end - b.end;
	}
	return delta;
});

// my code
self.options.events.result = _.sortBy(self.options.events.result, 'start');


TakePhotoAsync issue

Hi, thanks for your package it's been so helpful to me.
Right now I'm facing a issue that I don't know how to resolve.
Sometimes, when trying to take a photo, if I change the device orientation, after taking the photo it seems like the page is reloaded, the photo taken is never shown on the image control, and after 3 attempts on take a photo, the app crashes.
Do you have any idea of what could be causing this issue?
Any suggestion will be helpful.
Thanks.
Note:
I'm currently using this Xamarin configuration:
Xamarin Studio 5.9.5
Xamarin.Forms <IP_ADDRESS>92

Haven't been able to reproduce.


Miss erase when RPC responses timeout

Maybe there is a bug here:
https://github.com/logcabin/logcabin/blob/master/RPC/ClientSession.cc#L516
Miss to erase the timeout RPC response. The useless timeout responses may stay in the responses map till the node exit.
@ongardie

Or we can add rpc cancel before return a TIMEOUT.
https://github.com/logcabin/logcabin/blob/master/RPC/ClientRPC.cc#L107

The rpc is cancled in OpaqueClientRPC destructor.
https://github.com/logcabin/logcabin/blob/master/RPC/OpaqueClientRPC.cc#L46


Testing for end-to-end sync

Assigning to Fred while waiting to add Anchita to this repository.

TODO: Assign to Anchita after we've added her to the repository.

Completed stability testing of E2E sync by following the instructions to setup the different components.
As a part of stability testing, we were able to try out various sync strategies to sync resources by modifying the demo app in this repo.
Following issues have been identified as a part of trying out the different sync strategies in the various components. Few of these issues have already been filed as well.
Issues identified in the Android FHIR SDK:

Adding support for issuing Bundle requests to the resource server in the DownloadWorkManager
Facing exception: org.fhir.ucum.UcumException while saving Observation resources emitted as a part of the implementation of DownloadWorkManager.

Issues identified in the FHIR Gateway:

Support to fetch a batch of Patient resources by querying the patient IDs: This issue has already been identified and filed here.
As of now AllowedQueriesChecker only works to allow queries based on the HTTP Request URL path and query parameters. We should also support the same for Bundle type of requests, where each entry in the Bundle is a different request

With the above issues being identified, we can carry out performance benchmarking on the various components as next steps. We should create another issue to track those efforts.


nvr?

This shells out and invokes nvr.  But what is it?   No mention of it anywhere

Ah I finally found it: https://github.com/mhinz/neovim-remote
But what if we're only using Kitty and not neovim?  Shouldn't be relevant to me in that case.

It is mentioned in the README, though not by the binary name of nvr.
The current applications that are controlled aren't configurable at the moment, along with the themes.
You'd have to modify the source code [1] to even have it set the right Kitty themes.
I have thought about making it all configurable.
[1] https://github.com/jesse-c/AppearanceNotifier/blob/main/Sources/AppearanceNotifier/main.swift#L102

Added the alias to the README


fix: azsadmin character encoding

Automation for azure-sdk-for-go

Automation for azure-sdk-for-python

Automation for azure-sdk-for-java

Can one of the admins verify this patch?


HDDS-4016. Change AbortMultipartUpload's audit log type to ABORT_MULTIPART_UPLOAD

What changes were proposed in this pull request?
Currently, the audit log of AbortMultipartUpload is COMPLETE_MULTIPART_UPLOAD, which cannot be expressed clearly. We need to change it to ABORT_MULTIPART_UPLOAD.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4016
How was this patch tested?
existing UT

@captainzmc This old code is no more used. We have recently closed another similar PR #1193  which is opened to fix the same.
This is the parent Jira https://issues.apache.org/jira/browse/HDDS-2353 for the cleanup.

Thanks for @bharatviswa504 's  tip.  Close this PR


Description : When creating a duplicate schema with the same schema_version and schema_name and DID it returns a 200 result, presumably treating this as success because the resource already exists and no action is taken. However when creating a duplicate credential definition with the same schema_id and tag and DID a 422 error is returned.  Duplicates of both types should be handled consistently.

I ran through this again today with the latest from master and couldn't reproduce.  Closing this as either I had some strange environment situation or the problem was resolved by the code re-org mentioned above.
Thanks.


vagrant: 1.8.4 -> 1.8.5

Motivation for this change
Vagrant 1.8.4 is holding back upgrade to VirtualBox 5.1
Includes https://github.com/mitchellh/vagrant/pull/7611 to fix https://github.com/mitchellh/vagrant/issues/7610 (fix issue with permissions on ~/.ssh/authorized_keys).
Cc: @aneeshusa
Things done

[X] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

I'll make an exception here, let's bump vagrant/virtualbox for 16.09.

Ugh, I was hoping they would release a hotfix release fairly quickly, but it looks like they haven't yet. I actually am using the same workaround locally, so :+1: from me.


Speaker Identification

Should i be able to do speaker identification using this library?

I'm working with this same goal!

Can we do speaker identification using this library? I'm also looking for a library which can do speaker identification. Appreciate your inputs.

yes speaker recognition, speaker identification..everything can be done..
On Thu, Apr 12, 2018 at 2:08 PM, channae<EMAIL_ADDRESS>wrote:

Can we do speaker identification using this library? I'm also looking for
a library which can do speaker identification. Appreciate your inputs.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tyiannak/pyAudioAnalysis/issues/119#issuecomment-380724176,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AhghucuI8Hz_zFyWeAzjClAld7br4Lv2ks5tnxJ0gaJpZM4QZDKX
.

https://pypi.org/project/bob.bio.spear/
I think that's worth sharing here. :)

@piyust54 Thanks for the reply. Are there any documentation or sample code available about implementation or usage of text independent speaker identification? I could only find speaker diarization related usage in the readme.

https://github.com/subedisuraj/speaker-recognition
On Tue, Apr 17, 2018 at 11:22 AM, channae<EMAIL_ADDRESS>wrote:

@piyust54 https://github.com/piyust54 Thanks for the reply. Are there
any documentation or sample code available about implementation or usage of
text independent speaker identification? I could only find speaker
diarization related usage in the readme.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tyiannak/pyAudioAnalysis/issues/119#issuecomment-381853493,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AhghuZQWdU5_ty4s8srEzOOXt326Q_oIks5tpYMngaJpZM4QZDKX
.


Use a dataid to store all configuration items

Why you need it?
Use a dataid to store all configuration items
If you want to fix it, please comment "Please assign it to me" is this issue.
使用一个dataid存放所有配置项
如果你有兴趣修复这个问题的话, 请在下方留言 Please assign it to me
How it could be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
Other related information
Add any other context or screenshots about the feature request here.

Why do we need to do this? What's the problem now?
为什么我们需要用一个dataId，现在用不同dataId区分不同配置项有什么问题吗？

Please assign it to me. Can you provide a detailed background and expectations.
可以说一下详细的背景与期望吗~


Added thimbleProxy as a submodule

In .gitmodules: added
+[submodule "src/extensions/default/thimbleProxy"]

path = src/extensions/default/thimbleProxy
url = https://github.com/AJDBenner/thimbleProxy.git

In src/utils/ExtensionLoader.js: added "thimbleProxy"
In src/extensions/default/thimbleProxy: included thimbleProxy as submodule

@humphd


pycodestyle checked your hw_work_done_G4.py

Hi guys, I checked your python file with pycodestyle, it is throwing some suggestions for your code to improve the quality of code. Would you like to follow it? Here's the screenshot of it!

Great. But I think it would be better if you suggest us  the changes a bit earlier and we are now at the last hour. However, appreciated your suggestions. Will take care of it forward.


Due date for tasks

After some thinking, I decided to add this feature in the future :)

This option was added in version 1.2.0


Stuck in creation during the  bug-fixes-only key

Property: changelog
Link to the project changelog.
Value: https://github.com/kubernetes-sigs/gateway-api/blob/main/CHANGELOG.md
(required) Property: status
Define if the project is still active or not.
Value: active
(required) Property: bug-fixes-only

Maintainers fix bugs without implementing new features. The project is in Maintenance Mode.
Value: false
Value: inactive
Value: active
Value: false
Value: true
Value: boolean
Value: negative
Value:

Expected false should have been working

Hi @hrittikhere sorry for the slow response, I think the PR #5 should solve this issue :)


Idiomatic ?

Hi, new to hyperapp.
Wondering if the below fragment is idiomatic ?
I could nest the action, but if I don't want to, is object spreading an ok solution to return the state tree ?
Any thoughts ?
import { h, app } from 'hyperapp'

import 'tachyons/css/tachyons.min.css'
import './style.css'

const state = {
	env: {
		ip: '<IP_ADDRESS>',
		theme: 'light',
	},
}

const actions = {
	toggle: _ => state =>
		state.env.theme === 'light'
			? { ...state, env: { ...state.env, theme: 'dark' } }
			: { ...state, env: { ...state.env, theme: 'light' } },
}

const view = (state, actions) => {
	const styles = `f2 ${state.env.theme === 'light' ? 'primary' : 'secondary'}`

	return (

			hello hyperapp ({state.env.theme})
			<button onclick={e => actions.toggle()}>toggle</button>

	)
}

app(state, actions, view, document.body)

Hyperapp does a shallow merging of the object your action returns (a partial state) with the "real" state object, so you don't need to spread the {... state}.
Here is a simplified version:
const actions = {
	toggle: _ => state =>
		state.env.theme === 'light'
			? { env: { ...state.env, theme: 'dark' } }
			: { env: { ...state.env, theme: 'light' } },
}

Your method of updating the nested object looks good to me.  It is certainly a case where a nested action would simplify the implementation, though.

Thanks @SkaterDad !
That was helpful !
My concern about nesting actions is that, even though they receive a slice/partial state, they may need to know about the whole state.
This was discussed previously (https://github.com/hyperapp/hyperapp/pull/385#issuecomment-337010722), although I can't find a 'solution', except for implementing top-level actions like in my code sample.
In any case, I'll close the issue.
It's a nice framework, looking forward to experiment more.

@jbrodriguez If you need two actions from different slices to communicate with each other, put those slices in the same parent and add functions to the parent to do what you need.
Alternatively, a new feature coming in 1.2.0 is subiews, which like your view function, are wired to the global state and actions. You can access the global state and actions from within a subview.

@jbrodriguez My concern about nesting actions is that, even though they receive a slice/partial state, they may need to know about the whole state.

Yes if that happens a lot, consider not nesting the actions in the first place. Otherwise, here's another approach you might consider: https://zaceno.github.io/hypercraft/post/cross-namespace-action-calling/


Snapping Control

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

I need snap functionalty for a project I'm on, so I'm currenty working on solving this problem.
My idea is to mI need snap functionalty for a project I'm on, so I'm currenty working on solving this problem.
My general idea is to extract snap functionalty from ol.interaction.Modify and make a ol.Snap object which receives some parameters:

features: ol.Collection.<ol.Feature>

features to snap to

interactions: Array.<ol.interaction.Pointer>

listen for events on interactions (Modify, Draw or custom interaction)

pixelTolerance

Each interaction sholud expose it's current coordinate via snap event. And if ol.Snap is listening for SNAPME events on the interaction it whould bind the snapped coordinates to the event. The interaction whould then use the snapped coordinate.
var event = new ol.SnapEvent(
	ol.SnapEventType.SNAPME,
	event.coordinates
);
this.dispatchEvent(event);
var possiblySnappedCoordinates = event.snappedCoordinate;
/* event.snappedCoordinate is used as current coordinate insead of event.coordinate */

Place to fire a SNAPME event in interaction.Draw is ol.interaction.Draw.prototype.handlePointerMove_,
and in interaction.Modify is ol.interaction.Modify.handleDragEvent_.
This is my idea of solving this problem, any feedback is appreciated.

@lenoil Yes, isVoid just checks for undefined and null, and no, I wrote the code in TypeScript - but it's very easily translatable, the TypeScript concepts are pretty straightforward to map. If you have any problems with some parts of the syntax, ask away.

Fixed with #3109.


Null safety support

I'm going to submit a PR for the null safety support.
It is a common practice to keep such a code in a separate branch, i.e. null-safety, to be able to support the main release in legacy mode whilst the null safety compatible release could be released from its branch.
Please, prepare the branch for null safety support PR.

flutter_colorpicker null safety PR: https://github.com/mchome/flutter_colorpicker/pull/36

#28 allows releasing the null safety compatible pre-release package

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

Done https://pub.dev/packages/dashbook/versions/0.1.0-nullsafety.0

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

Done https://pub.dev/packages/dashbook/versions/0.1.0-nullsafety.0

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

Done https://pub.dev/packages/dashbook/versions/0.1.0-nullsafety.0

@erickzanardo as #28 is merged, could you please release a null safety compatible pre-release version of the package?

Done https://pub.dev/packages/dashbook/versions/0.1.0-nullsafety.0

Thanks! I think this issue could be closed now. Nothing to do here until the main branch changes or null safety goes out of beta.

Thanks! I think this issue could be closed now. Nothing to do here until the main branch changes or null safety goes out of beta.


muon: init at 2019-11-27

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This change is

I think the author intended the compiler binary to be named mu, not muon.

Result of nixpkgs-review pr 74337 run on x86_64-linux 1

1 package built:

muon


[BUG] Using plugin does not work in latest version of Elysia

Reproduction:
export const app = new Elysia().use(lambda())

No overload matches this call.
  The last overload gave the following error.
    Argument of type '(app: Elysia) => Elysia<ElysiaInstance>' is not assignable to parameter of type 'Promise<{ default: (elysia: Elysia<any, any>) => Elysia<any, ElysiaInstance>; }>'.ts(2769)

I would assume this is because the type system was largely reworked, and this project is using an older version of Elysia. Updating it should fix this issue.

Thanks for the bug report, and good catch!
I think I'll need to rework the library a little bit given recent changes to both Bun & Elysia.
I may not be able to get around to it until this weekend though.

@TotalTechGeek Hey again! I do not know if you had any time to look at the issue, but now with a stable bun 1.0 and the new rewrite of Elysia types in 0.7, it would probably be a good time now for the rework, as things are getting a bit more stable.

Would also love to see this updated. Just started a new project so hoping not to roll back Bun and Elysia versions.

Apologies for not keeping up with (practically abandoning 😭) this project; I think I have some free time over the next few days to pick it back up again, given that everything in the ecosystem seems to be a lot more stable.


More shuffle/swizzle ideas

Here are some shuffles which I found myself regularly using. Please consider them as possible additions:

Lane shift (e.g. a left-shift of 2 lanes turns |x1 x2 ... xN| into |x3 x4 ... xN P P| where P is a user-chosen padding scalar).

Can be implemented as a Swizzle2 with a broadcasted scalar and this is probably optimal on x86 before AVX-512. But AVX-512 can do better with masking if P=0 and the shift is known at compile time, which is a common special case. I don't know what the situation is on other SIMD instruction sets.

On x86, doing this efficiently requires non-obvious and instruction set dependent code, so since this is a relatively common need, I think a dedicated operation at the root of the crate could make sense.

Ah, sorry, wrong repo, this should probably be in portable_simd.


fix: incorrect conversion between integer types

Issue flagged by CodeQL.

Closes #499

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.17%. Comparing base (b9814af) to head (23cf832).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #500      +/-   ##
==========================================
- Coverage   80.36%   80.17%   -0.20%
==========================================
  Files          67       67
  Lines        5174     5174
==========================================
- Hits         4158     4148      -10
- Misses        753      759       +6
- Partials      263      267       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Expire old events from the page

I think the right strategy is just to delete any events that were last confirmed more than X minutes ago. X can probably be something like 30 min to an hour.
(Right now we only have a createdAt timestamp on an event, but we should add a lastConfirmed)

The event purge by TTL doesn't work in hosted mongo (MongoLab)... we need to investigate why. It works properly when running in local meteor.


feat(event_handler): iteratively remove prefix by regex

Issue number: #2494
Summary
Changes
method _remove_prefix modified
User experience

Please share what the user experience looks like before and after this change

Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[x] I have performed a self-review of this change
[x] Changes have been tested
[ ] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Looking into this now

Codecov Report
Patch coverage: 66.66% and project coverage change: -0.10 :warning:

Comparison is base (e6a999e) 97.22% compared to head (2a7e2b6) 97.13%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2521      +/-   ##
===========================================
- Coverage    97.22%   97.13%   -0.10%
===========================================
  Files          160      160
  Lines         7394     7392       -2
  Branches       537      523      -14
===========================================
- Hits          7189     7180       -9
- Misses         158      163       +5
- Partials        47       49       +2

Impacted Files
Coverage Δ

aws_lambda_powertools/event_handler/api_gateway.py
98.47% <33.33%> (-1.53%)
:arrow_down:

aws_lambda_powertools/utilities/batch/types.py
80.00% <100.00%> (-1.25%)
:arrow_down:

...ools/utilities/idempotency/persistence/dynamodb.py
98.80% <100.00%> (ø)

...s_lambda_powertools/utilities/parser/models/sns.py
100.00% <100.00%> (ø)

... and 2 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Thank you for your contribution! 🎉 Two asks:

can you make this non-iterative? Meaning, when there is a match in the regex, we stop processing more items from the strip_prefixes array? Reason: This would probably be a breaking change and using the regex solves the initial problem in the first place
do you mind adding a couple of functional test cases to cover the new code?

Please let me know if you need assistance with those, and we would be happy to help!

I asked for your review @rubenfonseca again! Since we haven't heard from other clients, we need to decide whether to go ahead with this PR and close it.
Thanks

Hey! We'll be making the necessary adjustments to the PR to guarantee it solves your problem and of similar customers.

Looking into this now

@heitorlessa @leandrodamascena I would like your opinion on this new code, before I write documentation. Interpreting bare strings into regexes could lead us to problem. So to circumvent that, I've changed the typing to allow either str or Pattern, and threat the differently in the stripping code.
Example usage:
app = ApiGatewayResolver(strip_prefixes=[re.compile(r"/(dev|stg)")])

@app.get("/foo") # will match /dev/foo and /stg/foo
...

Do you like that direction?

Yes, happy with that. Because it's regex, I'd suggest giving a detailed and common example in the docs.

Hei @heitorlessa, can you review this, please?


update go to 1.22.2

Also removes obsolete Dockerfiles

@samuelattwood @caleblloyd someething preventing us to merge this? 🙂


[v1.4.x] fix(volume) Set the Snapshot Data Integrity init value to ignored

https://github.com/longhorn/longhorn/issues/5126
Signed-off-by: Siye Wang<EMAIL_ADDRESS>

Use https://github.com/longhorn/longhorn-ui/pull/576 instead.


Stable Diffusion Version

Hi there,
Thank you for the wonderful repository, I wanted to know which Stable Diffusion version is used for the multi-view generation. And, can we use safetensor checkpoint files for generation.
Regards

Hi, @adeerAI
We use the pre-trained model provided by the SyncDreamer repo.
This model is fine-tuned from the stable diffusion with a few layers added.
The ckpt file is provided through our Google Drive (link), and the safetensor ckpt file is not available at this time.
Thank you for your understanding.

In my opinion, SyncDreamer seems like using the image-conditioned diffusion model (version 2) provided by lambdalabs. This model has been fine-tuned to accept CLIP image embedding rather than text embedding from stable-diffusion-v-1-4-original.
We are also planning to work on a faster NeuS (i.e., NeuS2), which can generate 3D content faster than neurangelo. At the moment, it's unclear when it will be completed as we have a lot of other work to do.


UIBULKED-375: Localize alphabetical order of Bulk edit elements

UIBULKED-375
Small fix for implemented logic
https://github.com/folio-org/ui-bulk-edit/assets/72550466/d0174b38-795b-4cab-8946-d24c873edf87

Update CHANGELOG.md please

@OleksandrHladchenko1 it was updated before, it's fix for existing implementation


Consider using envsubst to replace variables instead of sed.

Something like:
(after exporting the vars)
cat cloudbuild.yaml | envsubst '${REPO} ${TAG} ${VERSION} ${NUM}'


hide or show benefit models and find my doctor sections

https://www.pivotaltracker.com/n/projects/2481183/stories/184076285
https://www.pivotaltracker.com/n/projects/2481183/stories/184076266
Have worked on added conditional check to show/hide the benefit models and find my doctor links section
After discussing with @williamsmith_ we are going to hide following links if its not ME
Learn more about our benefit models
Find My Doctor
if its 'MA' then we should show the links section

we do not need MA logic here. Maybe add a generic flag to show/hide?

+1
yes, we need to add resource registry settings separately for each of those.

created a new PR with new branch hence closing this branch


Switch to SLF4J

Currently using log4j - we can use the log4j SLF4J plugin, but should swap over to SLF4J statements.

My experience is that SLF4J is a cleaner interface.
It is allows GeoWave to play nice but not forcing log4j directly.  Although, it maybe forced indirectly by dependencies.
The only con I have seen is the transitive dependencies may slip in SLFJ bindings, potentially causing mismatches in a logger version of the same group (e.g. multiple log4j bindings found).  This is the very problem SL4J is trying to eliminate, pushing the binding decision to deployment environment.  However, not all dependencies play nice.  The errors that arise from this situation are fairly obvious, such as method not found or type not found exceptions during run-time binding.


Request detection result files about cryptographic misuse experiments

Dear authors,
I am a student interested in your paper (Understanding IoT Security from a Market-Scale Perspective), from which I learned a lot.
In particular, I am interested in Section 6 part, Cryptographic API misuse analysis. I would appreciate it if you would share the detailed results of the experiment (detection results files, timeout setting, runs in a single process or multiple processes)? I also noticed that non-Iot apps are not listed in the repo, and it would be great if this could also be listed for further research.

@panoob We set the timeout at 2100s (35min), and set the JVM allocated memory at 4GB for the experiments. The rest of the settings were defaults of the tools.
If you need access to the intermediary results, please reach out to us via email. Thanks.

Hi @panoob, regarding non-IoT apps, I have uploaded the list of all apps (IoT + non-IoT) to drive. To obtain non-IoT apps, you can simply diff this file with the IoT app list.

Cool, Thanks a lot!