Update compiler-warning-level-4-c4464.md

@corob-msft
proposal.  I don't warrant it shouldn't be worded in a better way.

Docs Build status updates of commit 091596c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/error-messages/compiler-warnings/compiler-warning-level-4-c4464.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit c658907:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/error-messages/compiler-warnings/compiler-warning-level-4-c4464.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@corob-msft

Can you review this PR?

IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@Jak-MS Are you saying I need to add the #sign-off in a comment, or @corob-msft  does? Thanks,

@bradlitterell - @corob-msft  will need to sign off after he reviews the pr. Thanks.

Docs Build status updates of commit 614978c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/error-messages/compiler-warnings/compiler-warning-level-4-c4464.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

thanks a bunch!


Raised the Ram DT max steer to 350

Description [ Raise the torque limit to 350 for Ram DT. This allows us to go from 2.0m/s2 of lateral accel to 2.5m/s2 of lateral accel. This PR replaces the older PR#27082]
Verification [We have been running this for over a year at these values. Anything over 350 will cause an eps fault.]

Thanks, but we have https://github.com/commaai/openpilot/pull/27082 already open


🔍 Generated code samples for Speech-to-Text (for review)

[Do Not Merge] – because the tests for these samples are not hooked into CI to be run.

See similar PR showing samples for Natural Language https://github.com/googleapis/nodejs-language/pull/314

This adds generated code samples for Speech-to-Text for syntax review 🔍
Sample and test configuration files:

github.com/googleapis/googleapis/tree/master/google/cloud/speech/v1/samples
github.com/googleapis/googleapis/tree/master/google/cloud/speech/v1p1beta1/samples
github.com/googleapis/googleapis/tree/master/google/cloud/speech/v1/samples/test
github.com/googleapis/googleapis/tree/master/google/cloud/speech/v1p1beta1/samples/test

To generate these samples:

python3 -m synthtool

To run the tests for these samples

python3 -m pip install sample-tester
sample-tester samples/v1/ (ideally this would be run via npm test)

Original Pull Request with more context – https://github.com/googleapis/google-cloud-node/pull/2953
From that PR:

This Pull Request contains two code samples which were generated using the GAPIC generator:

Natural Language API – "Analyze Sentiment" (language_sentiment_text) (config YAML)
Speech-to-Text API – "Long-Running Transcribe" (speech_transcribe_async) (config YAML)

These code samples demonstrate a few features of the code sample generator:

Overall code sample structure (imports, layout, etc)
Calling a synchronous API endpoint and printing fields from the API response
Calling a long-running API, waiting for completion, and printing fields from API response
Using local files with code samples, specifically a file to use for a bytes request field

You can find the existing, published hand-written versions of these code samples here:

📙 Analyzing Sentiment in a String
📘 Transcribing long audio files (shows a different version of this sample using Cloud Storage)

For Node.js, existing hand-written code samples can be found in samples/ folders of library repos.
The goal is for these generated code samples to meet the expectations of those samples/.

Node.js Language experts, please TAL! 🧐
/cc @bcoe @JustinBeckwith @leahecole @fhinkel
/cc @googleapis/samplegen

I didn't give a super deep review and I started doing this but instead of spamming justin's GitHub I'd just say +1 to what he said, and echoing that they'd need to be applied across all of the files (addressing the removal of yargs, addition of main, removal of tslint comment)


Fix None titles on fact checks

Description
As per caiosba's comment, some factcheck titles are None. This is caused by trafilatura's extract function which resolves to None if content passed is not html.
Fixes  caiosba's comment
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Bug fix (non-breaking change which fixes an issue)
[x] Chore (non-breaking change which does not add visible functionality but improves code quality)
[x] This change requires a documentation update

Screenshots
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

👍🏽
Are you saying title can sometime be HTML and other time just plain text? Isn't it always plain text?
@kilemensi
The title is always a non-html string. I am updating html_to_string function to avoid None.


Move bootloader integration test to separate CI job

We should not make this test part of the manditory test suite because the bootloader crate depends on x86_64 itself. Thus, some breaking changes require a two-phase update.

Merged into #329


Problem training on custom dataset

Hello,
I am experiencing some odd behavior when trying to train on a custom dataset in COCO format. So far I have tried training faster-rcnn and retinanet models but the bbox loss is always zero. Then at validation time it is reported that the "test results for entire dataset are empty". I can assure you that the JSON files for the dataset are ok, and the bbox information is there and correct, and the paths to the images are correct.
I have tried using the same dataset to train an SSD model, but I get a "list index out of range" error with respect to the class list. If I put a breakpoint in the code and inspect how many classes MMDetection thinks there is, which is less than there actually is, then I change the number of classes for the model to this number then this seems to work at first. But if I perform classwise validation, then many of the classes are listed 8 or 9 times, and not all of the classes are listed.
I have previously created a custom dataset in COCO format with no problem, and I am struggling to find a cause/solution for this issue, especially because there is a lack of useful error messages coupled with poor documentation about how the system works.
Any help is appreciated.
I also have some more general questions:

The generation of IDs for images/categories/annotations in COCO format dataset. Do these IDs have to be unique across images+categories+annotations, or can a category have ID "1" and an image have ID "1" as well?
Is there are a way to perform classwise validation during training?
Is there a way to also save the processed images during these during-training validations?
When listing class names in a custom dataset config file (or class file), does the ordering and position of a classname within the list indicate what its' ID should be? I.e. if I have list classes = ('cat', 'dog', 'monkey') should "cat" have ID "0" in the dataset files and "monkey" have ID "2"?
 I think not because they get resized as part of the transformations, but I'm not 100% sure on this.

Thanks

yes. Category can have ID 1 and images can have ID 1. They are irrelevant.
You can set classwise=True in the evaluation config for COCO dataset.
'cat' does not need to have ID '0' in the data annotation files. They can be different and for coco dataset we will build a map between them.
No. They will be resized during training.

For your loss issues. Can you provide more information, e.g., the version of mmdet, the details of your dataset? We suggest you use reimplementation issues to report your issue. For now, the information is limited and we are not able to help.

Hi,
Very sorry for the slow reply. I have added more information:
I am having an issue with a custom dataset where the loss_bbox is always 0, and then at validation time it reports "The testing results of the whole dataset is empty".
I have searched through a lot of issue's here and find people with the same problem, but I don't see a solution.
The problem:
I am using my own dataset (actually Caltech Camera Traps dataset) which I convert to MS COCO format - the format that this comes in is already very close to MS COCO format so I don't anticipate format problems (I hope I'm wrong though because that would be an easy fix!). I do not implement a custom dataset, I create a new config of type "CocoDataset" and redefine the classes. I get this issue with Faster R-CNN and RetinaNet.
Full config file:
The dataset config is copy and paste of the MS COCO dataset config, except I add classes = (...) and then in each data stage dictionary I add classes=classes which it is correctly expanding to the class names. I have also tried this with batch sizes: 1, 2, and 4, this doesn't effect the problem.
model = dict(
    type='RetinaNet',
    pretrained='torchvision://resnet50',
    backbone=dict(
        type='ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        norm_cfg=dict(type='BN', requires_grad=True),
        norm_eval=True,
        style='pytorch'),
    neck=dict(
        type='FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        start_level=1,
        add_extra_convs='on_input',
        num_outs=5),
    bbox_head=dict(
        type='RetinaHead',
        num_classes=80,
        in_channels=256,
        stacked_convs=4,
        feat_channels=256,
        anchor_generator=dict(
            type='AnchorGenerator',
            octave_base_scale=4,
            scales_per_octave=3,
            ratios=[0.5, 1.0, 2.0],
            strides=[8, 16, 32, 64, 128]),
        bbox_coder=dict(
            type='DeltaXYWHBBoxCoder',
            target_means=[0.0, 0.0, 0.0, 0.0],
            target_stds=[1.0, 1.0, 1.0, 1.0]),
        loss_cls=dict(
            type='FocalLoss',
            use_sigmoid=True,
            gamma=2.0,
            alpha=0.25,
            loss_weight=1.0),
        loss_bbox=dict(type='L1Loss', loss_weight=1.0)))
train_cfg = dict(
    assigner=dict(
        type='MaxIoUAssigner',
        pos_iou_thr=0.5,
        neg_iou_thr=0.4,
        min_pos_iou=0,
        ignore_iof_thr=-1),
    allowed_border=-1,
    pos_weight=-1,
    debug=False)
test_cfg = dict(
    nms_pre=1000,
    min_bbox_size=0,
    score_thr=0.05,
    nms=dict(type='nms', iou_threshold=0.5),
    max_per_img=100)
checkpoint_config = dict(interval=1)
log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')])
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = None
resume_from = None
workflow = [('train', 1)]
dataset_type = 'CocoDataset'
data_root = 'data/cct/'
classes = ('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
           'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger', 'empty',
           'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox', 'bat',
           'insect', 'rodent')
img_norm_cfg = dict(
    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotation2021-01-11 16:42:49,446 - mmdet - INFO - Epoch [1][37000/37456]	lr: 1.000e-04, eta: 0:01:33, time: 0.203, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:42:59,568 - mmdet - INFO - Epoch [1][37050/37456]	lr: 1.000e-04, eta: 0:01:23, time: 0.202, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:09,747 - mmdet - INFO - Epoch [1][37100/37456]	lr: 1.000e-04, eta: 0:01:12, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:20,078 - mmdet - INFO - Epoch [1][37150/37456]	lr: 1.000e-04, eta: 0:01:02, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:30,408 - mmdet - INFO - Epoch [1][37200/37456]	lr: 1.000e-04, eta: 0:00:52, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:40,638 - mmdet - INFO - Epoch [1][37250/37456]	lr: 1.000e-04, eta: 0:00:42, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:50,855 - mmdet - INFO - Epoch [1][37300/37456]	lr: 1.000e-04, eta: 0:00:31, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:01,087 - mmdet - INFO - Epoch [1][37350/37456]	lr: 1.000e-04, eta: 0:00:21, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:11,280 - mmdet - INFO - Epoch [1][37400/37456]	lr: 1.000e-04, eta: 0:00:11, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:21,508 - mmdet - INFO - Epoch [1][37450/37456]	lr: 1.000e-04, eta: 0:00:01, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:22,741 - mmdet - INFO - Saving checkpoint at 1 epochs
2021-01-11 17:19:55,613 - mmdet - INFO - Evaluating bbox...
2021-01-11 17:19:55,622 - mmdet - ERROR - The testing results of the whole dataset is empty.
2021-01-11 17:19:56,421 - mmdet - INFO - Exp name: retinanet-CCT-SGDLR0001M9-BS1-e1.py
2021-01-11 17:19:56,421 - mmdet - INFO - Epoch(val) [1][37456]s', with_bbox=True),
    dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
    dict(type='RandomFlip', flip_ratio=0.5),
    dict(
        type='Normalize',
        mean=[123.675, 116.28, 103.53],
        std=[58.395, 57.12, 57.375],
        to_rgb=True),
    dict(type='Pad', size_divisor=32),
    dict(type='DefaultFormatBundle'),
    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
]
test_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(
        type='MultiScaleFlipAug',
        img_scale=(1333, 800),
        flip=False,
        transforms=[
            dict(type='Resize', keep_ratio=True),
            dict(type='RandomFlip'),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='ImageToTensor', keys=['img']),
            dict(type='Collect', keys=['img'])
        ])
]
data = dict(
    samples_per_gpu=1,
    workers_per_gpu=2,
    train=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-TRAIN.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(type='LoadAnnotations', with_bbox=True),
            dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
            dict(type='RandomFlip', flip_ratio=0.5),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='DefaultFormatBundle'),
            dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
        ]),
    val=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-VAL.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1333, 800),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]),
    test=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-VAL.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1333, 800),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]))
evaluation = dict(interval=1, metric='bbox')
optimizer = dict(type='SGD', lr=0.0001, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
lr_config = dict(
    policy='fixed', warmup='linear', warmup_iters=500, warmup_ratio=0.001)
total_epochs = 1
work_dir = './work_dirs/retinanet-CCT-SGDLR0001M9-BS1-e1'
gpu_ids = range(0, 1)

Invocation Command
The command I used is python tools/train.py path/to/config/file
MMDetection Version
I am using version 2.8.0 from the tag "v2.8.0"

I haven't made any changes to the code, I have only added my config for the new dataset, which is "CocoDataset" type dataset in MS COCO format.
Environment
sys.platform: linux
Python: 3.7.7 (default, May  7 2020, 21:25:33) [GCC 7.3.0]
CUDA available: True
GPU 0,1: Tesla P40
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 10.1, V10.1.243
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.6.0
PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) Math Kernel Library Version 2020.0.1 Product Build 20200208 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v1.5.0 (Git Hash e2ac1fac44c5078ca927cb9b90e1b3066a0b2ed0)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 10.1
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
  - CuDNN 7.6.3
  - Magma 2.5.2
  - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_STATIC_DISPATCH=OFF,

TorchVision: 0.7.0
OpenCV: 4.5.1
MMCV: 1.2.5
MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 10.1
MMDetection: 2.8.0+c8c8bfe

Small Annotations file example
Annotation example:
        {
            "image_id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "id":<PHONE_NUMBER>53504845999810249454949101564556495799455755489757525348991009899,
            "bbox": [
                499.2,
                711.68,
<PHONE_NUMBER>0000003,
<PHONE_NUMBER>9999995
            ],
            "category_id": 1,
            "area": 0,
            "iscrowd": 0,
            "segmentation": []
        }

I have manually checked, the IDs do match correctly with image blocks and categories.
Image example:
        {
            "file_name": "cct_images/5a096a4f-23d2-11e8-a6a3-ec086b02610b.jpg",
            "seq_id": "700b7e45-5567-11e8-8b04-dca9047ef277",
            "height": 1536,
            "id":<PHONE_NUMBER>975210245505110050454949101564597549751451019948565498485054494898,
            "frame_num": 1,
            "width": 2048,
            "date_captured": "2011-12-14 08:02:00",
            "rights_holder": "Erin Boydston",
            "seq_num_frames": 1,
            "location": "0"
        }

I have manually checked that the image paths are correct.
Training log
Beginning:
2021-01-11 14:36:24,615 - mmdet - INFO - workflow: [('train', 1)], max: 1 epochs
2021-01-11 14:36:37,459 - mmdet - INFO - Epoch [1][50/37456]	lr: 9.890e-06, eta: 2:39:28, time: 0.256, data_time: 0.049, memory: 1693, loss_cls: 10.0877, loss_bbox: 0.0000, loss: 10.0877
2021-01-11 14:36:47,706 - mmdet - INFO - Epoch [1][100/37456]	lr: 1.988e-05, eta: 2:23:25, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 10.0956, loss_bbox: 0.0000, loss: 10.0956
2021-01-11 14:36:57,921 - mmdet - INFO - Epoch [1][150/37456]	lr: 2.987e-05, eta: 2:17:50, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 10.0472, loss_bbox: 0.0000, loss: 10.0472
2021-01-11 14:37:08,138 - mmdet - INFO - Epoch [1][200/37456]	lr: 3.986e-05, eta: 2:14:57, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 10.0342, loss_bbox: 0.0000, loss: 10.0342
2021-01-11 14:37:18,366 - mmdet - INFO - Epoch [1][250/37456]	lr: 4.985e-05, eta: 2:13:11, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 9.9923, loss_bbox: 0.0000, loss: 9.9923
2021-01-11 14:37:28,577 - mmdet - INFO - Epoch [1][300/37456]	lr: 5.984e-05, eta: 2:11:55, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 9.8801, loss_bbox: 0.0000, loss: 9.8801
2021-01-11 14:37:38,905 - mmdet - INFO - Epoch [1][350/37456]	lr: 6.983e-05, eta: 2:11:10, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 5.9481, loss_bbox: 0.0000, loss: 5.9481
2021-01-11 14:37:49,194 - mmdet - INFO - Epoch [1][400/37456]	lr: 7.982e-05, eta: 2:10:30, time: 0.206, data_time: 0.004, memory: 1693, loss_cls: 0.0433, loss_bbox: 0.0000, loss: 0.0433

End:
2021-01-11 16:42:49,446 - mmdet - INFO - Epoch [1][37000/37456]	lr: 1.000e-04, eta: 0:01:33, time: 0.203, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:42:59,568 - mmdet - INFO - Epoch [1][37050/37456]	lr: 1.000e-04, eta: 0:01:23, time: 0.202, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:09,747 - mmdet - INFO - Epoch [1][37100/37456]	lr: 1.000e-04, eta: 0:01:12, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:20,078 - mmdet - INFO - Epoch [1][37150/37456]	lr: 1.000e-04, eta: 0:01:02, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:30,408 - mmdet - INFO - Epoch [1][37200/37456]	lr: 1.000e-04, eta: 0:00:52, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:40,638 - mmdet - INFO - Epoch [1][37250/37456]	lr: 1.000e-04, eta: 0:00:42, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:50,855 - mmdet - INFO - Epoch [1][37300/37456]	lr: 1.000e-04, eta: 0:00:31, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:01,087 - mmdet - INFO - Epoch [1][37350/37456]	lr: 1.000e-04, eta: 0:00:21, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:11,280 - mmdet - INFO - Epoch [1][37400/37456]	lr: 1.000e-04, eta: 0:00:11, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:21,508 - mmdet - INFO - Epoch [1][37450/37456]	lr: 1.000e-04, eta: 0:00:01, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:22,741 - mmdet - INFO - Saving checkpoint at 1 epochs
2021-01-11 17:19:55,613 - mmdet - INFO - Evaluating bbox...
2021-01-11 17:19:55,622 - mmdet - ERROR - The testing results of the whole dataset is empty.
2021-01-11 17:19:56,421 - mmdet - INFO - Exp name: retinanet-CCT-SGDLR0001M9-BS1-e1.py
2021-01-11 17:19:56,421 - mmdet - INFO - Epoch(val) [1][37456]

Let me know if you want any more information, I really appreciate any help on this.
Thank you

Hi,
Very sorry for the slow reply. I have added more information:
I am having an issue with a custom dataset where the loss_bbox is always 0, and then at validation time it reports "The testing results of the whole dataset is empty".
I have searched through a lot of issue's here and find people with the same problem, but I don't see a solution.
The problem:
I am using my own dataset (actually Caltech Camera Traps dataset) which I convert to MS COCO format - the format that this comes in is already very close to MS COCO format so I don't anticipate format problems (I hope I'm wrong though because that would be an easy fix!). I do not implement a custom dataset, I create a new config of type "CocoDataset" and redefine the classes. I get this issue with Faster R-CNN and RetinaNet.
Full config file:
The dataset config is copy and paste of the MS COCO dataset config, except I add classes = (...) and then in each data stage dictionary I add classes=classes which it is correctly expanding to the class names. I have also tried this with batch sizes: 1, 2, and 4, this doesn't effect the problem.
model = dict(
    type='RetinaNet',
    pretrained='torchvision://resnet50',
    backbone=dict(
        type='ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        norm_cfg=dict(type='BN', requires_grad=True),
        norm_eval=True,
        style='pytorch'),
    neck=dict(
        type='FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        start_level=1,
        add_extra_convs='on_input',
        num_outs=5),
    bbox_head=dict(
        type='RetinaHead',
        num_classes=80,
        in_channels=256,
        stacked_convs=4,
        feat_channels=256,
        anchor_generator=dict(
            type='AnchorGenerator',
            octave_base_scale=4,
            scales_per_octave=3,
            ratios=[0.5, 1.0, 2.0],
            strides=[8, 16, 32, 64, 128]),
        bbox_coder=dict(
            type='DeltaXYWHBBoxCoder',
            target_means=[0.0, 0.0, 0.0, 0.0],
            target_stds=[1.0, 1.0, 1.0, 1.0]),
        loss_cls=dict(
            type='FocalLoss',
            use_sigmoid=True,
            gamma=2.0,
            alpha=0.25,
            loss_weight=1.0),
        loss_bbox=dict(type='L1Loss', loss_weight=1.0)))
train_cfg = dict(
    assigner=dict(
        type='MaxIoUAssigner',
        pos_iou_thr=0.5,
        neg_iou_thr=0.4,
        min_pos_iou=0,
        ignore_iof_thr=-1),
    allowed_border=-1,
    pos_weight=-1,
    debug=False)
test_cfg = dict(
    nms_pre=1000,
    min_bbox_size=0,
    score_thr=0.05,
    nms=dict(type='nms', iou_threshold=0.5),
    max_per_img=100)
checkpoint_config = dict(interval=1)
log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')])
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = None
resume_from = None
workflow = [('train', 1)]
dataset_type = 'CocoDataset'
data_root = 'data/cct/'
classes = ('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
           'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger', 'empty',
           'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox', 'bat',
           'insect', 'rodent')
img_norm_cfg = dict(
    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotation2021-01-11 16:42:49,446 - mmdet - INFO - Epoch [1][37000/37456]	lr: 1.000e-04, eta: 0:01:33, time: 0.203, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:42:59,568 - mmdet - INFO - Epoch [1][37050/37456]	lr: 1.000e-04, eta: 0:01:23, time: 0.202, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:09,747 - mmdet - INFO - Epoch [1][37100/37456]	lr: 1.000e-04, eta: 0:01:12, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:20,078 - mmdet - INFO - Epoch [1][37150/37456]	lr: 1.000e-04, eta: 0:01:02, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:30,408 - mmdet - INFO - Epoch [1][37200/37456]	lr: 1.000e-04, eta: 0:00:52, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:40,638 - mmdet - INFO - Epoch [1][37250/37456]	lr: 1.000e-04, eta: 0:00:42, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:50,855 - mmdet - INFO - Epoch [1][37300/37456]	lr: 1.000e-04, eta: 0:00:31, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:01,087 - mmdet - INFO - Epoch [1][37350/37456]	lr: 1.000e-04, eta: 0:00:21, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:11,280 - mmdet - INFO - Epoch [1][37400/37456]	lr: 1.000e-04, eta: 0:00:11, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:21,508 - mmdet - INFO - Epoch [1][37450/37456]	lr: 1.000e-04, eta: 0:00:01, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:22,741 - mmdet - INFO - Saving checkpoint at 1 epochs
2021-01-11 17:19:55,613 - mmdet - INFO - Evaluating bbox...
2021-01-11 17:19:55,622 - mmdet - ERROR - The testing results of the whole dataset is empty.
2021-01-11 17:19:56,421 - mmdet - INFO - Exp name: retinanet-CCT-SGDLR0001M9-BS1-e1.py
2021-01-11 17:19:56,421 - mmdet - INFO - Epoch(val) [1][37456]s', with_bbox=True),
    dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
    dict(type='RandomFlip', flip_ratio=0.5),
    dict(
        type='Normalize',
        mean=[123.675, 116.28, 103.53],
        std=[58.395, 57.12, 57.375],
        to_rgb=True),
    dict(type='Pad', size_divisor=32),
    dict(type='DefaultFormatBundle'),
    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
]
test_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(
        type='MultiScaleFlipAug',
        img_scale=(1333, 800),
        flip=False,
        transforms=[
            dict(type='Resize', keep_ratio=True),
            dict(type='RandomFlip'),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='ImageToTensor', keys=['img']),
            dict(type='Collect', keys=['img'])
        ])
]
data = dict(
    samples_per_gpu=1,
    workers_per_gpu=2,
    train=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-TRAIN.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(type='LoadAnnotations', with_bbox=True),
            dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
            dict(type='RandomFlip', flip_ratio=0.5),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='DefaultFormatBundle'),
            dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
        ]),
    val=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-VAL.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1333, 800),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]),
    test=dict(
        type='CocoDataset',
        classes=('opossum', 'raccoon', 'squirrel', 'bobcat', 'skunk', 'dog',
                 'coyote', 'rabbit', 'bird', 'lizard', 'cat', 'badger',
                 'empty', 'car', 'deer', 'cow', 'pig', 'mountain_lion', 'fox',
                 'bat', 'insect', 'rodent'),
        ann_file=
        'data/cct/annotations/caltech_bboxes_20200316-FILEPATHS-VALID-COCO-VAL.json',
        img_prefix='data/cct/data/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1333, 800),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]))
evaluation = dict(interval=1, metric='bbox')
optimizer = dict(type='SGD', lr=0.0001, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
lr_config = dict(
    policy='fixed', warmup='linear', warmup_iters=500, warmup_ratio=0.001)
total_epochs = 1
work_dir = './work_dirs/retinanet-CCT-SGDLR0001M9-BS1-e1'
gpu_ids = range(0, 1)

Invocation Command
The command I used is python tools/train.py path/to/config/file
MMDetection Version
I am using version 2.8.0 from the tag "v2.8.0"

I haven't made any changes to the code, I have only added my config for the new dataset, which is "CocoDataset" type dataset in MS COCO format.
Environment
sys.platform: linux
Python: 3.7.7 (default, May  7 2020, 21:25:33) [GCC 7.3.0]
CUDA available: True
GPU 0,1: Tesla P40
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 10.1, V10.1.243
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.6.0
PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) Math Kernel Library Version 2020.0.1 Product Build 20200208 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v1.5.0 (Git Hash e2ac1fac44c5078ca927cb9b90e1b3066a0b2ed0)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 10.1
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
  - CuDNN 7.6.3
  - Magma 2.5.2
  - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_STATIC_DISPATCH=OFF,

TorchVision: 0.7.0
OpenCV: 4.5.1
MMCV: 1.2.5
MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 10.1
MMDetection: 2.8.0+c8c8bfe

Small Annotations file example
Annotation example:
        {
            "image_id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "id":<PHONE_NUMBER>53504845999810249454949101564556495799455755489757525348991009899,
            "bbox": [
                499.2,
                711.68,
<PHONE_NUMBER>0000003,
<PHONE_NUMBER>9999995
            ],
            "category_id": 1,
            "area": 0,
            "iscrowd": 0,
            "segmentation": []
        }

I have manually checked, the IDs do match correctly with image blocks and categories.
Image example:
        {
            "file_name": "cct_images/5a096a4f-23d2-11e8-a6a3-ec086b02610b.jpg",
            "seq_id": "700b7e45-5567-11e8-8b04-dca9047ef277",
            "height": 1536,
            "id":<PHONE_NUMBER>975210245505110050454949101564597549751451019948565498485054494898,
            "frame_num": 1,
            "width": 2048,
            "date_captured": "2011-12-14 08:02:00",
            "rights_holder": "Erin Boydston",
            "seq_num_frames": 1,
            "location": "0"
        }

I have manually checked that the image paths are correct.
Training log
Beginning:
2021-01-11 14:36:24,615 - mmdet - INFO - workflow: [('train', 1)], max: 1 epochs
2021-01-11 14:36:37,459 - mmdet - INFO - Epoch [1][50/37456]	lr: 9.890e-06, eta: 2:39:28, time: 0.256, data_time: 0.049, memory: 1693, loss_cls: 10.0877, loss_bbox: 0.0000, loss: 10.0877
2021-01-11 14:36:47,706 - mmdet - INFO - Epoch [1][100/37456]	lr: 1.988e-05, eta: 2:23:25, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 10.0956, loss_bbox: 0.0000, loss: 10.0956
2021-01-11 14:36:57,921 - mmdet - INFO - Epoch [1][150/37456]	lr: 2.987e-05, eta: 2:17:50, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 10.0472, loss_bbox: 0.0000, loss: 10.0472
2021-01-11 14:37:08,138 - mmdet - INFO - Epoch [1][200/37456]	lr: 3.986e-05, eta: 2:14:57, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 10.0342, loss_bbox: 0.0000, loss: 10.0342
2021-01-11 14:37:18,366 - mmdet - INFO - Epoch [1][250/37456]	lr: 4.985e-05, eta: 2:13:11, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 9.9923, loss_bbox: 0.0000, loss: 9.9923
2021-01-11 14:37:28,577 - mmdet - INFO - Epoch [1][300/37456]	lr: 5.984e-05, eta: 2:11:55, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 9.8801, loss_bbox: 0.0000, loss: 9.8801
2021-01-11 14:37:38,905 - mmdet - INFO - Epoch [1][350/37456]	lr: 6.983e-05, eta: 2:11:10, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 5.9481, loss_bbox: 0.0000, loss: 5.9481
2021-01-11 14:37:49,194 - mmdet - INFO - Epoch [1][400/37456]	lr: 7.982e-05, eta: 2:10:30, time: 0.206, data_time: 0.004, memory: 1693, loss_cls: 0.0433, loss_bbox: 0.0000, loss: 0.0433

End:
2021-01-11 16:42:49,446 - mmdet - INFO - Epoch [1][37000/37456]	lr: 1.000e-04, eta: 0:01:33, time: 0.203, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:42:59,568 - mmdet - INFO - Epoch [1][37050/37456]	lr: 1.000e-04, eta: 0:01:23, time: 0.202, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:09,747 - mmdet - INFO - Epoch [1][37100/37456]	lr: 1.000e-04, eta: 0:01:12, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:20,078 - mmdet - INFO - Epoch [1][37150/37456]	lr: 1.000e-04, eta: 0:01:02, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:30,408 - mmdet - INFO - Epoch [1][37200/37456]	lr: 1.000e-04, eta: 0:00:52, time: 0.207, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:40,638 - mmdet - INFO - Epoch [1][37250/37456]	lr: 1.000e-04, eta: 0:00:42, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:43:50,855 - mmdet - INFO - Epoch [1][37300/37456]	lr: 1.000e-04, eta: 0:00:31, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:01,087 - mmdet - INFO - Epoch [1][37350/37456]	lr: 1.000e-04, eta: 0:00:21, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:11,280 - mmdet - INFO - Epoch [1][37400/37456]	lr: 1.000e-04, eta: 0:00:11, time: 0.204, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:21,508 - mmdet - INFO - Epoch [1][37450/37456]	lr: 1.000e-04, eta: 0:00:01, time: 0.205, data_time: 0.004, memory: 1693, loss_cls: 0.0000, loss_bbox: 0.0000, loss: 0.0000
2021-01-11 16:44:22,741 - mmdet - INFO - Saving checkpoint at 1 epochs
2021-01-11 17:19:55,613 - mmdet - INFO - Evaluating bbox...
2021-01-11 17:19:55,622 - mmdet - ERROR - The testing results of the whole dataset is empty.
2021-01-11 17:19:56,421 - mmdet - INFO - Exp name: retinanet-CCT-SGDLR0001M9-BS1-e1.py
2021-01-11 17:19:56,421 - mmdet - INFO - Epoch(val) [1][37456]

Let me know if you want any more information, I really appreciate any help on this.
Thank you

If I set the logging interval to 1, even the first log line reports a loss_bbox of 0.

If I set the logging interval to 1, even the first log line reports a loss_bbox of 0.

If I set the number of classes for the model as 21 then still have the same problem. If I reduce the learning rate to 0.00001 then still the same problem. This seems like it must be a dataset issue, but for the life of me I can't work out what.

If I set the number of classes for the model as 21 then still have the same problem. If I reduce the learning rate to 0.00001 then still the same problem. This seems like it must be a dataset issue, but for the life of me I can't work out what.

I have added a trailing comma to the list of classes as suggested in #3305 and still have the problem.

I have added a trailing comma to the list of classes as suggested in #3305 and still have the problem.

I have created a subset of the annotations file with just 1 image and annotation, and I get the same error. I have then used pycocoapi to check the annotations file and it displays the image correctly with the bounding box in the correct location - so I don't think that this is a problem with the annotations files.
Annotations Subset
{
    "info": {
        "contributor": "Sara Beery",
        "version": "20200316",
        "year": 2018,
        "date_created": "2019-09-23 06:59:06.304889",
        "description": "Bounding box annotations for 63,025 images from Caltech Camera Traps, where the images only have one species label or are empty. Contains all annotations for CCT - 20, the 20-location dataset used in the ECCV18 paper \"Recognition in Terra Incognita,\" as well as additional annotations collected by MS AI for Earth."
    },
    "categories": [
        {
            "id": 6,
            "name": "bobcat"
        },
        {
            "id": 1,
            "name": "opossum"
        },
        {
            "id": 30,
            "name": "empty"
        },
        {
            "id": 9,
            "name": "coyote"
        },
        {
            "id": 3,
            "name": "raccoon"
        },
        {
            "id": 11,
            "name": "bird"
        },
        {
            "id": 8,
            "name": "dog"
        },
        {
            "id": 16,
            "name": "cat"
        },
        {
            "id": 5,
            "name": "squirrel"
        },
        {
            "id": 10,
            "name": "rabbit"
        },
        {
            "id": 7,
            "name": "skunk"
        },
        {
            "id": 14,
            "name": "lizard"
        },
        {
            "id": 99,
            "name": "rodent"
        },
        {
            "id": 21,
            "name": "badger"
        },
        {
            "id": 34,
            "name": "deer"
        },
        {
            "id": 37,
            "name": "cow"
        },
        {
            "id": 33,
            "name": "car"
        },
        {
            "id": 51,
            "name": "fox"
        },
        {
            "id": 39,
            "name": "pig"
        },
        {
            "id": 40,
            "name": "mountain_lion"
        },
        {
            "id": 66,
            "name": "bat"
        },
        {
            "id": 97,
            "name": "insect"
        }
    ],
    "annotations": [
        {
            "image_id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "id":<PHONE_NUMBER>53504845999810249454949101564556495799455755489757525348991009899,
            "bbox": [
                499.2,
                711.68,
<PHONE_NUMBER>0000003,
<PHONE_NUMBER>9999995
            ],
            "category_id": 1,
            "area": 0,
            "iscrowd": 0,
            "segmentation": []
        }
    ],
    "images": [
        {
            "file_name": "cct_images/5998cfa4-23d2-11e8-a6a3-ec086b02610b.jpg",
            "seq_id": "6f084ccc-5567-11e8-bc84-dca9047ef277",
            "height": 1494,
            "id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "frame_num": 1,
            "width": 2048,
            "date_captured": "2011-05-13 23:43:18",
            "rights_holder": "Justin Brown",
            "seq_num_frames": 3,
            "location": "33"
        }
    ]
}

Simple pycocoapi script
from pycocotools.coco import COCO
import numpy as np
import skimage.io as io
import matplotlib.pyplot as plt
import pylab

images_dir = './../data/'
ann_file = "./manual.json"

coco = COCO(ann_file)

# display COCO categories and supercategories
cats = coco.loadCats(coco.getCatIds())
nms=[cat['name'] for cat in cats]
print('COCO categories: \n{}\n'.format(' '.join(nms)))

# get all images containing given categories, select one at random
catIds = coco.getCatIds(catNms=['opossum']);
imgIds = coco.getImgIds(catIds=catIds );
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]

print(img)

# load image
I = io.imread(images_dir + img['file_name'])

# load and display instance annotations
plt.imshow(I); plt.axis('off')
annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
anns = coco.loadAnns(annIds)
coco.showAnns(anns, True)
plt.show()

Images
Original:

With bbox:

I have created a subset of the annotations file with just 1 image and annotation, and I get the same error. I have then used pycocoapi to check the annotations file and it displays the image correctly with the bounding box in the correct location - so I don't think that this is a problem with the annotations files.
Annotations Subset
{
    "info": {
        "contributor": "Sara Beery",
        "version": "20200316",
        "year": 2018,
        "date_created": "2019-09-23 06:59:06.304889",
        "description": "Bounding box annotations for 63,025 images from Caltech Camera Traps, where the images only have one species label or are empty. Contains all annotations for CCT - 20, the 20-location dataset used in the ECCV18 paper \"Recognition in Terra Incognita,\" as well as additional annotations collected by MS AI for Earth."
    },
    "categories": [
        {
            "id": 6,
            "name": "bobcat"
        },
        {
            "id": 1,
            "name": "opossum"
        },
        {
            "id": 30,
            "name": "empty"
        },
        {
            "id": 9,
            "name": "coyote"
        },
        {
            "id": 3,
            "name": "raccoon"
        },
        {
            "id": 11,
            "name": "bird"
        },
        {
            "id": 8,
            "name": "dog"
        },
        {
            "id": 16,
            "name": "cat"
        },
        {
            "id": 5,
            "name": "squirrel"
        },
        {
            "id": 10,
            "name": "rabbit"
        },
        {
            "id": 7,
            "name": "skunk"
        },
        {
            "id": 14,
            "name": "lizard"
        },
        {
            "id": 99,
            "name": "rodent"
        },
        {
            "id": 21,
            "name": "badger"
        },
        {
            "id": 34,
            "name": "deer"
        },
        {
            "id": 37,
            "name": "cow"
        },
        {
            "id": 33,
            "name": "car"
        },
        {
            "id": 51,
            "name": "fox"
        },
        {
            "id": 39,
            "name": "pig"
        },
        {
            "id": 40,
            "name": "mountain_lion"
        },
        {
            "id": 66,
            "name": "bat"
        },
        {
            "id": 97,
            "name": "insect"
        }
    ],
    "annotations": [
        {
            "image_id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "id":<PHONE_NUMBER>53504845999810249454949101564556495799455755489757525348991009899,
            "bbox": [
                499.2,
                711.68,
<PHONE_NUMBER>0000003,
<PHONE_NUMBER>9999995
            ],
            "category_id": 1,
            "area": 0,
            "iscrowd": 0,
            "segmentation": []
        }
    ],
    "images": [
        {
            "file_name": "cct_images/5998cfa4-23d2-11e8-a6a3-ec086b02610b.jpg",
            "seq_id": "6f084ccc-5567-11e8-bc84-dca9047ef277",
            "height": 1494,
            "id":<PHONE_NUMBER>102975245505110050454949101564597549751451019948565498485054494898,
            "frame_num": 1,
            "width": 2048,
            "date_captured": "2011-05-13 23:43:18",
            "rights_holder": "Justin Brown",
            "seq_num_frames": 3,
            "location": "33"
        }
    ]
}

Simple pycocoapi script
from pycocotools.coco import COCO
import numpy as np
import skimage.io as io
import matplotlib.pyplot as plt
import pylab

images_dir = './../data/'
ann_file = "./manual.json"

coco = COCO(ann_file)

# display COCO categories and supercategories
cats = coco.loadCats(coco.getCatIds())
nms=[cat['name'] for cat in cats]
print('COCO categories: \n{}\n'.format(' '.join(nms)))

# get all images containing given categories, select one at random
catIds = coco.getCatIds(catNms=['opossum']);
imgIds = coco.getImgIds(catIds=catIds );
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]

print(img)

# load image
I = io.imread(images_dir + img['file_name'])

# load and display instance annotations
plt.imshow(I); plt.axis('off')
annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
anns = coco.loadAnns(annIds)
coco.showAnns(anns, True)
plt.show()

Images
Original:

With bbox:

With some testing, num_classes must be 22 for this dataset, and cannot be left unchanged at 80 otherwise there will be a ListIndexError at validation time.
If I reduce all of the confidence thresholds to 0.0 in the model config files then I do not get the "The testing results of the whole dataset is empty" error - but obviously this is not good. This suggests that the model is only producing very low confidence predictions, which is fair enough, but this is contradicted by the next point.
Even still though, I have the issue where loss_bbox is always 0. If the model was producing low confidence predictions, and they are not supressed when thresholds are set to 0, then I would expect the loss value to be very high, not 0. I would expect a loss value of anything else other than 0 regardless of the predictions made, I can't imagine a situation where a genuine 0 value loss would be real.

With some testing, num_classes must be 22 for this dataset, and cannot be left unchanged at 80 otherwise there will be a ListIndexError at validation time.
If I reduce all of the confidence thresholds to 0.0 in the model config files then I do not get the "The testing results of the whole dataset is empty" error - but obviously this is not good. This suggests that the model is only producing very low confidence predictions, which is fair enough, but this is contradicted by the next point.
Even still though, I have the issue where loss_bbox is always 0. If the model was producing low confidence predictions, and they are not supressed when thresholds are set to 0, then I would expect the loss value to be very high, not 0. I would expect a loss value of anything else other than 0 regardless of the predictions made, I can't imagine a situation where a genuine 0 value loss would be real.

This problem seems to be caused by #4436

This problem seems to be caused by #4436


Fix README, add information about requester in config.exs

Related to https://github.com/sntran/google_maps/issues/45

Hi there,
Thank you for submitting a patch, and apologize for taking so long to reply.
Was there a change in elixir recently that Application.get_env(:google_maps, :requester) would not use the env option defined in Mix.application?


How to integrate state management in Zustand with NextJS

How to integrate state management in Zustand with NextJS14?

Hi @gankaicode, unfortunately your question is not related to the project. You should be able to find information on the official website Zudstand or on NextJS official website.


[helm] DNS checks are missing priviledges

Describe the bug
The internal and external DNS checks try to query the k8s API, but are missing privileges.
The check completes, but it seems it wants to do more.
$ k -n kuberhealthy logs dns-status-internal-1606308364
...
time="2020-11-25T12:46:11Z" level=debug msg="Getting pod: dns-status-internal-1606308364 in order to get its node information"
time="2020-11-25T12:46:11Z" level=error msg="Error waiting for node to reach minimum age: pods \"dns-status-internal-1606308364\" is forbidden: User \"system:serviceaccount:kuberhealthy:default\" cannot get resource \"pods\" in API group \"\" in the namespace \"kuberhealthy\""
...
time="2020-11-25T12:46:11Z" level=debug msg="Getting pod: dns-status-internal-1606308364 in order to get its node information"
time="2020-11-25T12:46:11Z" level=error msg="Error waiting for kube proxy to be ready: error getting kuberhealthy pod: pods \"dns-status-internal-1606308364\" is forbidden: User \"system:serviceaccount:kuberhealthy:default\" cannot get resource \"pods\" in API group \"\" in the namespace \"kuberhealthy\""
...

Steps To Reproduce

Deploy kuberhealthy with enabled internal and external DNS checks

Expected behavior
No error messages in the log.
Screenshots
Versions

Cluster OS: Ubuntu 20.04
Kubernetes Version: 1.18.8
Kuberhealthy Release or build 2.3.1

Additional context
I'm not quite sure whether the API access is needed or not.

Perhaps, a possible solution is, to add a specific service account, like the one for the daemonset check. This SA could get the needed privileges to query the API.

Noticing the same thing. Tests seem to pass though.
Looks like it's introduced in #519, where updating helm chart with needed RBAC is overlooked.

Thanks for reporting this.
It looks like this is caused by our nodecheck package trying to auto-detect which node the checker pod lives on in order to be sure the node is old enough to run the check properly (sometimes there is a race condition right as nodes start up).
The code that fetches the pod information is here.  Instead of using that code, we could modify nodecheck to have the node the pod runs on passed in, then we could derive the node name from the downwards API using a spec change on all checks that looks like this:
          - name: NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName

Addressed in merge #755 -- use the latest version of the dns check: dns-resolution-check:v1.4.2!


"Can't connect to server" with TCPShield plugin installed on Velocity.

I configured everything correctly and installed the TCPShield plugin on Velocity, but my server cannot be found on the domain I was setting up. This problem is relevant only for Velocity, I checked it work on Spigot and BungeeCord and everything seems to work fine. But I need to use Velocity, since my main server is built on Fabric, and the TCPShield plugin does not work on it. And only Velocity can work normally with modified Fabric servers.

Most likely linked to #54
You can temporarly set only-allow-proxy-connections to false if you want to be able to connect to your Proxy (see https://github.com/TCPShield/RealIP/issues/54#issuecomment-857495590)

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist.

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

I cloned the repo and tried to build the project, but Gradle is giving me this error.
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processResources'.
> Entry bungee.yml is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Do you have any JAR for us to test?

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

where is latest build?
if you mean v2.5, then this issue is not resolved on this version

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

where is latest build?
if you mean v2.5, then this issue is not resolved on this version

You will need to build the current GitHub repository with Gradle (Follow the instructions in the README) The v2.5 release is a few commits behind the latest code; we have since fixed a handle of bugs.

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

where is latest build?
if you mean v2.5, then this issue is not resolved on this version

You will need to build the current GitHub repository with Gradle (Follow the instructions in the README) The v2.5 release is a few commits behind the latest code; we have since fixed a handle of bugs.

i build it from sources and this still doesn't working

where is latest build?

Try using this one:
https://drive.google.com/file/d/113s01ZlT-d9oCJnpOcgboSF4eJAw4CNd/view?usp=sharing

i build it from sources and this still doesn't working

And make sure that you are using AdoptOpenJDK (do java -version to check). That's the only discrepancy that we've found with one of our customer who also have this problem.
I have personally tested Velocity 1.8.8 and above (upto 3.0.0) with Paper, Yatopia and they works fine.

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

I cloned the repo and tried to build the project, but Gradle is giving me this error.
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processResources'.
> Entry bungee.yml is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Do you have any JAR for us to test?

I am having the same issue. Any solution?

Make sure you are using the latest build of TCPShield and using at least Java 11 (Follow The Instructions On How To Build With Gradle) then try it again. If no errors are present, open a support ticket on the discord, but if there are errors present, send them here so we can further assist. This issue could be linked to issue #54, but this issue was fully resolved with the lastest build, as mentioned by my comment

I cloned the repo and tried to build the project, but Gradle is giving me this error.
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processResources'.
> Entry bungee.yml is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Do you have any JAR for us to test?

I am having the same issue. Any solution?

Nevermind. Just had to add this to build.gradle
processResources {
duplicatesStrategy = 'exclude'
}
}

If this is still an issue, please create a ticket at https://discord.gg/tcpshield and we'll help you through fixing it.


fix code styles in feed list

I don't approve. See https://github.com/go-gitea/gitea/pull/21432#discussion_r996286852.

For a full context, copy some comments here.
Let's keep the discussion in main PR.

It's unnecessary. Most time the !important used is improper. We have discussed many times. Like this one:

https://github.com/go-gitea/gitea/pull/17866#issuecomment-983404274

And https://en.wikipedia.org/wiki/Occam's_razor  "entities should not be multiplied beyond necessity"
Every element could have their proper styles accurately.

In most times, when !important is used, it means that there is some essential design problem in code, or something is wrongly used (like  #17866)
Gitea's frontend is messy, do not make it more messy.


Remove wrapping in WrappedTime

The wrapping means that we have 2 wrapping quantities: WrappedTime and Tick.
It's difficult to convert one quantity to the other.
As we don't need to send the WrappedTime through the network, let's just use the normal Duration

I removed the wrapping and just Duration in https://github.com/cBournhonesque/lightyear/pull/80


ionic 4 angular 8 ionic lab windows platform bug

HI
I am trying to run a simple ionic blank --type=angular project in ionic lab on localhost:8200. The ios and android platfoms are working well but the windows platform doesn't work, it shows black screen in the virtual emulator. I checked in the google browser inspect element and ther is the issue: Error: Cannot find module './undefined.entry.js' at .*.entry.js$ include: .entry.js$ exclude: .system.entry.js$ namespace object:394 at ZoneDelegate.invoke (zone-evergreen.js:365) at Zone.run (zone-evergreen.js:124) at zone-evergreen.js:851 at ZoneDelegate.invokeTask (zone-evergreen.js:400) at Zone.runTask (zone-evergreen.js:168) at drainMicroTaskQueue (zone-evergreen.js:570)
zone-evergreen.js:659 Unhandled Promise rejection: Cannot read property 'isProxied' of undefined ; Zone:  ; Task: Promise.then ; Value: TypeError: Cannot read property 'isProxied' of undefined at initializeComponent (chunk-84f6bf13.js:1684) TypeError: Cannot read property 'isProxied' of undefined at initializeComponent (http://localhost:8100/vendor.js:104980:24)

receiving same
this one is terrible... no leads as to where to track it down

This error is a manifestation of a variety of things
an object is expected somewhere and is not modeled properly
in iOS and Android, if your plugins are not configured properly, you will get a blank screen because something was expected that was not configured properly within the package.json, plugins config as it pans into the platforms
for me though I am doing simple ngrx on ionic and this was due to a malformed ngrx state configuration whereby the configuration of the ngrx model was expecting something that wa not rigged/configured properly
its a shame these kinds of errors are not more descriptive as they land fairly deep and will take days to figure them out
I am still modeling my way out of this and if this does persist to be an actual bug I will remit
but for now its leaning towards malformed configuration landing deep

if your using sidenav menu
for ionic
make sure you remove "mode='push'" from your html menu element
otherwise ionic will fall thru the floor and you will have no app
the bug
<ion-menu type="overlay" #sidenav mode='push'>
the solution
<ion-menu type="overlay" #sidenav>
i remain unimpressed with the stack trace
deceiving misleading
spent days tearing down my module architecture in every direction to try and shake this out
because it eluded to a module and entry... (lazy loaded module? or other router module?)
luckily some issue on internet mentioned mode=" "
ngrx is solid
and runs beautiful... never an issue

so im unsure... what to call this, bug?

I'm not using <ion-menu....
here is my simple page:
`

Transferência Bancária

Conta Débito:

Conta Crédito:

Valor R$

Transferir

`

my research points to mode="whatever"
when removed the error is gone
im movin on

mode="whatever"?
Where a set this?

The issue here is not that you need to add the mode flag, it's that you probably have the mode flag defined with an invalid value.
Mode can either be 'md', 'ios', or not set at all.
If it is set to anything else, this error occurs. I have reported this issue to the Ionic team here:
https://github.com/ionic-team/ionic/issues/20055

I have just created a blank app using "ionic start myApp blank".
While "ionic serve --lab" throws this error.

if the value of mode is wrong like ioss, it will generate that error thx @meanstack-perficient . 😭 one hour lost on this

I have found a similar bug. To reproduce:

create new project by using ionic start testAaa list --capacitor
ionic serve
open app in chrome and set offline mode in developer tools
click on one of the items from the list on scrren

However, if you first open an item, go back to the main screen and then turn on offline mode and click the item again everything is ok.
So, the bug occurs only if you click on an item (open new a window) in offline mode before you do it online.

Thanks for the issue. Is this still an issue with the latest version of Ionic Framework? If so, please provide a repo with the code required to reproduce this issue.


Comma 3 Low Memory

Describe the bug
Was driving yesterday and got a low memory restart needed warning.  I checked memory usage in htop, majority being used by _ui and 3.1 gigs of memory used total.

How to reproduce or log data
Unclear, unit had been on for a little over a day.

Device/Version information (please complete the following information):

Device: Comma 3
Dongle ID: d544af690774f394
Route: d544af690774f394|2021-09-21--13-52-23
Timestamp: Unclear when error message happened spouse was driving car
Version:  b40d51ce2a3052c3bf549d457cd92d9a4ff19989 mog_beta of my fork.  it is based on 0.8.9 devel
Car make/model: Chrysler Pacifica Hybrid 2021

Additional context

My device currently has this warning. Please let me know if you want any data from it.

@adhintz uploading, preserving, and posting the route should be enough

preserved it and the route is 1c28f817e18cf5bc|2021-09-22--15-59-46--0

had it happen again to me only thing interesting in logs was
Traceback (most recent call last):
  File "/data/openpilot/selfdrive/thermald/thermald.py", line 273, in thermald_thread
    if TICI and (network_info.get('state', None) == "REGISTERED"):
AttributeError: 'NoneType' object has no attribute 'get'                                                                                camerad clocksd dmonitoringmodeld logcatd loggerd modeld proclogd sensord ubloxd ui soundd locationd calibrationd controlsd deleter dmonitoringd logmessaged pandad paramsd planner
d radard thermald timezoned tombstoned updated uploader
selfdrive/loggerd/loggerd.cc: camera 0 rotate encoder to /data/media/0/realdata/2021-10-01--09-12-32--4
selfdrive/loggerd/loggerd.cc: camera 2 rotate encoder to /data/media/0/realdata/2021-10-01--09-12-32--4
selfdrive/loggerd/loggerd.cc: rotated to /data/media/0/realdata/2021-10-01--09-12-32--4
selfdrive/loggerd/loggerd.cc: camera 1 rotate encoder to /data/media/0/realdata/2021-10-01--09-12-32--4


Fix instances of clippy::semicolon_if_nothing_returned

Fix instances of clippy::semicolon_if_nothing_returned in order to make CI pass again.

Compare e.g. the CI failure in #286 (link to CI).
Looks like we also need to fix the clippy::while_let_on_iterator one…

Thanks!
@bors r+

:pushpin: Commit 87d857837a0104cc72d5ba7c92736f505e2e973d has been approved by Amanieu

:hourglass: Testing commit 87d857837a0104cc72d5ba7c92736f505e2e973d with merge 813fa8a01b43ccbb217b7fa1f334d32007e6f8bb...

:sunny: Test successful - checks-actions
Approved by: Amanieu
Pushing 813fa8a01b43ccbb217b7fa1f334d32007e6f8bb to master...


raidboss: add P9S - Beastly Fury callout

Addresses #5642 secondary request: https://github.com/quisquous/cactbot/issues/5642#issuecomment-1621824429

Thank you!


python311Packages.mypy-boto3-ebs: 1.28.16 -> 1.28.36

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

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

8 packages built:

python310Packages.dsnap
python310Packages.dsnap.dist
python310Packages.mypy-boto3-ebs
python310Packages.mypy-boto3-ebs.dist
python311Packages.dsnap
python311Packages.dsnap.dist
python311Packages.mypy-boto3-ebs
python311Packages.mypy-boto3-ebs.dist


Require trust level >1 to create topics in tutorials category

Unlike the other categories where all relevant topics are welcome, the tutorials forum category is a curated collection of high quality tutorials contributed by the forum community.
New users regularly create topics requesting assistance in this category. These make work for the forum maintainers who must move them to an appropriate category and make the category less useful as a source of tutorials.
The Discourse forum framework used by Arduino Forum has a user "trust level" system. As a user makes appropriate use of the forum, their trust level is automatically promoted and they gain more privileges.
In order to prevent miscategorized topics in this category, the configuration is changed to require a "trust level" of 2 or higher to directly create new topics in the tutorials category. Users with lower trust levels are still welcome to propose the addition of their tutorials. A pinned topic is added to the category with instructions for doing this.
Since the change to the configuration is expected to prevent miscategorized topics in the category, the existing topics warning against doing so are unpinned:

https://forum.arduino.cc/t/do-not-post-questions-in-this-part-of-the-forum/552462
https://forum.arduino.cc/t/please-dont-post-your-questions-in-this-tutorial-section/496250

Excellent proposal, approved exactly as stated.


Please include nuget script

We have a local nuget repository for our dependencies and as such would like to deploy Live-Charts from it, so I was wondering if with the next version could release your nuget script.

Sorry I am afraid I dont understand this

Are you able to share the script that you use to deploy to nuget?

I don't use any script, I just follow these steps https://docs.nuget.org/create/creating-and-publishing-a-package

@xanth, what is your purpose with the script?  You should just be able to download the package directly from nuget.org and upload into your private repo.
Secondarily, while I understand that I don't know your processes and policies, I would suggest that you just download Live-Charts from nuget.org directly into your solution.  If you have concerns about compatibility with future versions, just mitigate upgrading the package.  We tried duplicating public packages in our private repository also, and we found that it just causes other issues that weren't worth it.

We have had great success with our local nuget repository, having dependencies in the solution adds to commit noise. When I have time I'll write a nuget script to automate the process both for this and for our own solution. Again thanks @beto-rodriguez for your time.

Just to be clear, we still have our local repo, but we only put libraries we create in it.  Libraries that are publicly available we get from those public sources.  This has worked well for us because it allows us to easily update them without having to migrate the updated packages into our repo.
Even so, whatever works for you.
In my open source stuff, I build my Nuget packages manually also.  I like the finer control over build numbers rather than it incrementing each time I actually build the solution.

You don't need to have versioning a la chrome if you don't want, just use a command line application to automate the process rather than having to edit the files each time. It's important that new dependencies are vetted prior to use so using our internal nuget repository is important as it formalizes the process.


[DFT] Rearrange DFT compute tests so unimplemented always skips

Description
Since #288, MKLGPU now fails the REAL_REAL tests because the descriptor commit throws (due to not supporting REAL_REAL for COMPLEX_STORAGE). I've rearranged the tests so they always skip when something is not implemented.
To reproduce run the tests with the MKLGPU backend. The complex-to-complex *real_real* test will fail.
Fixes # (GitHub issue)
Checklist
All Submissions

[x] Do all unit tests pass locally? Attach a log.
[x] Have you formatted the code using clang-format?

Bug fixes

[x] Have you added relevant regression tests?
[x] Have you included information on how to reproduce the issue (either in a
GitHub issue or in this PR)?

mklgpu_run.log

The code itself looks good, but I don't understand the need to move from return test_skipped to GTEST_SKIP.
The original use of test_skipped seems more consistent with the tests from the other backends (eg. here). Can you comment on why GTEST_SKIP is needed in something that seems otherwise functionally equivalent?

test_skipped and EXPECT_TRUEORSKIP are oneMKL specific and will internally call GTEST_SKIP. Since the catch occurs at the top level of the test I would have to do EXPECT_TRUEORSKIP(test_skipped) but I just went straight to the GTEST_SKIP.

mklgpu_run.log
Updated log

Do you also think you can move
    if constexpr (domain == oneapi::mkl::dft::domain::REAL) {
        std::cout << "skipping real split tests as they are not supported" << std::endl;
        return test_skipped;
    }

this bit from the real_real test and skip the REAL domain from the compute_tests.cpp as a part of this PR

Please attach the CPU logs as well

Do you also think you can move
    if constexpr (domain == oneapi::mkl::dft::domain::REAL) {
        std::cout << "skipping real split tests as they are not supported" << std::endl;
        return test_skipped;
    }

this bit from the real_real test and skip the REAL domain from the compute_tests.cpp as a part of this PR

I would rather save that for a separate PR, I need to convince myself that its impossible for that to be implemented. I did have the same thought though so most of the work is done here https://github.com/oneapi-src/oneMKL/compare/develop...FMarno:oneMKL:no_real_real_real2complex?expand=1

Please attach the CPU logs as well

mklcpu_run.log
mklcpu log

this time around the logs have this :
The following tests did not run:
	140 - DFT/RT/ComputeTestSuite/ComputeTests_real_real_in_place.REAL_SINGLE_in_place_real_real_buffer/sizes_8_batches_1_11th_Gen_Intel_R__Core_TM__i9_11900K___3_50GHz (Skipped)

but previously the behavior was to show these as passed but in the full logs
 3660 [ RUN      ] ComputeTestSuite/ComputeTests_real_real_in_place.REAL_SINGLE_in_place_real_real_buffer/sizes_8_batches_1_Intel_R__Core_TM__i7_6770HQ_CPU___2_60GHz
 3661 skipping real split tests as they are not supported
 3662 [  SKIPPED ] ComputeTestSuite/ComputeTests_real_real_in_place.REAL_SINGLE_in_place_real_real_buffer/sizes_8_batches_1_Intel_R__Core_TM__i7_6770HQ_CPU___2_60GHz (78 ms)
 3663 [----------] 1 test from ComputeTestSuite/ComputeTests_real_real_in_place (78 ms total)
 3664
 3665 [----------] Global test environment tear-down
 3666 [==========] 1 test from 1 test suite ran. (78 ms total)
 3667 [  PASSED  ] 0 tests.

what attributes this change in behavior ?

The test log is from a run of ctest. the example you gave will have come from directly running test_main_dft_ct or test_main_dft_rt

@anantsrivastava30 are you satisfied with this answer? Is there anything you would like clarified/changed for this to be approved?

@anantsrivastava30 are you satisfied with this answer? Is there anything you would like clarified/changed for this to be approved?

I updated my initial question to indicate that I am running tests using ctest as well, and I see this huge tail at the end of every ctest run telling me that : these 100 odd tests did not run, I would have preferred that information to stay in the logs.
I however do not see that as a huge concern and every thing else looks good.

@anantsrivastava30 Thanks for clarifying. Unfortunately I don't see the same behaviour on develop (sha 4c7e7eb7227bf131d6326d3dd84f2bfc57ecf3b9). I always see 977 tests running with the "real_real" tests being skipped.


Refactor rule parsing

Part 1 in fixing: #1867
Timings after changes (master):
make -j 32 regression-new:
memory usage: max 28.5GB (25.3GB)
time: 7m43 (8m47)
make evm-semantics:
make build - after changes:
time 1m15 (1m12)
kompile on an empty file:
time: 3.6s (3.9s)
make -j 25 pl-tutorial
master: 7m55, 23GB max
after changes: 7m50, 28GB max
There is a significant time improvement when running multiple tests.
When running all tests, there is a spike in memory usage at the beginning when I'm running 32 instances of kompile which all try to parse at the same time. I think this has increased because now I parse all bubbles at the same time. Before it was first all claims, then all rules, then all contexts, and finally all aliases.
I also had to fix a problem with FlatModule because it triggered some duplication errors. Before it was building lots of duplications and ended up being quadratic instead of linear complexity.
Here is the output of kompile on a test file with one rule and a configuration:
Outer parsing [132 modules]                                  =  0.639s
New scanner:TEST$SYNTAX-CONFIG-CELLS                         =  0.135s
New scanner:TEST-CONFIG-CELLS                                =  0.145s
New scanner:STDOUT-STREAM$SYNTAX-CONFIG-CELLS                =  0.215s
New scanner:STDOUT-STREAM-CONFIG-CELLS                       =  0.221s
New scanner:STDIN-STREAM$SYNTAX-CONFIG-CELLS                 =  0.218s
New scanner:STDIN-STREAM-CONFIG-CELLS                        =  0.227s
Parse configurations [6/6 declarations]                      =  1.650s
New scanner:TEST-RULE-CELLS                                  =  0.144s
New scanner:STDIN-STREAM-RULE-CELLS                          =  0.216s
New scanner:STDOUT-STREAM-RULE-CELLS                         =  0.231s
Parse rules [97/97 rules]                                    =  0.827s

second time:
Outer parsing [132 modules]                                  =  0.596s
New scanner:TEST$SYNTAX-CONFIG-CELLS                         =  0.131s
New scanner:TEST-CONFIG-CELLS                                =  0.153s
New scanner:STDOUT-STREAM$SYNTAX-CONFIG-CELLS                =  0.208s
New scanner:STDOUT-STREAM-CONFIG-CELLS                       =  0.217s
New scanner:STDIN-STREAM$SYNTAX-CONFIG-CELLS                 =  0.211s
New scanner:STDIN-STREAM-CONFIG-CELLS                        =  0.231s
Parse configurations [0/6 declarations]                      =  1.504s
Parse rules [0/97 rules]                                     =  0.075s

The diff was getting pretty big so I'm limiting the changes to rules only.
I'm going to start working on the configuration after this gets merged. I will deal with code duplication at the same time.

Subsumed by #1914 (among others)


Bug with strong_boundaries parameter

zimmerman@DESKTOP-PAHB3F8:~/build/phaseflow/Debug$ cd tests/zimmerman2016_convection_diffusion.debug/
zimmerman@DESKTOP-PAHB3F8:~/build/phaseflow/Debug/tests/zimmerman2016_convection_diffusion.debug$ gdb ../../phaseflow
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ../../phaseflow...done.
(gdb) catch throw
Catchpoint 1 (throw)
(gdb) run used_parameters.prm
Starting program: /home/zimmerman/build/phaseflow/Debug/phaseflow used_parameters.prm
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff4c50700 (LWP 2247)]
[New Thread 0x7ffff4440700 (LWP 2248)]
[New Thread 0x7ffff1c30700 (LWP 2249)]
[New Thread 0x7fffed420700 (LWP 2250)]
[New Thread 0x7fffecc00700 (LWP 2252)]
[New Thread 0x7fffed010700 (LWP 2251)]
===========================================
Number of active cells: 64
Number of degrees of freedom: 740
Set time step to deltat = 0.125
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f6b458 in std::basic_string<char, std::char_traits, std::allocator >::basic_string(std::string const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) up
#1  0x000000000043a49b in _Construct<std::basic_string, std::basic_string<char, std::char_traits, std::allocator > const&> (__p=0x4a1230) at /usr/include/c++/4.8/bits/stl_construct.h:75
75          { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
(gdb) up
#2  __uninit_copy<__gnu_cxx::__normal_iterator<std::basic_string const*, std::vector<std::basic_string > >, std::basic_string> (__result=0x4a1230,
__last=<error reading variable: Cannot access memory at address 0x41>, __first=...)
at /usr/include/c++/4.8/bits/stl_uninitialized.h:75
75                      std::_Construct(std::__addressof(__cur), __first);
(gdb) up
#3  uninitialized_copy<__gnu_cxx::__normal_iterator<std::basic_string const, std::vector<std::basic_string > >, std::basic_string> (__result=, __last=..., __first=...)
at /usr/include/c++/4.8/bits/stl_uninitialized.h:117
117             __uninit_copy(__first, __last, __result);
(gdb) up
#4  __uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::basic_string const, std::vector<std::basic_string > >, std::basic_string*, std::basic_string > (__result=, __last=..., __first=...)
at /usr/include/c++/4.8/bits/stl_uninitialized.h:258
258         { return std::uninitialized_copy(__first, __last, __result); }
(gdb) up
#5  std::vector<std::string, std::allocatorstd::string >::vector (this=0x7ffffffda520, __x=...)
at /usr/include/c++/4.8/bits/stl_vector.h:316
316                                           _M_get_Tp_allocator());
(gdb) up
#6  0x000000000043a7b2 in Phaseflow::Phaseflow<2>::interpolate_boundary_values (this=this@entry=0x7ffffffdac80,
Python Exception <class 'IndexError'> list index out of range:
function=function@entry=0x7ffffffda6f0, boundary_values=std::map with 0 elements)
at /mnt/c/Users/Alex/UbuntuShared/phaseflow/source/pf_system.h:390
390             auto mask = this->params.boundary_conditions.strong_masks[b];
(gdb) print ib
$1 = 0
(gdb) print this->params.boundary_conditions.strong_boundaries.size()
Cannot evaluate function -- may be inlined
(gdb) print this->params.boundary_conditions.strong_boundaries
$2 = std::vector of length 1, capacity 1 = {2}
(gdb) print this->params.boundary_conditions.strong_masks
$3 = std::vector of length 1, capacity 1 = {std::vector of length 1, capacity 1 = {"temperature"}}
(gdb) print this->params.boundary_conditions.strong_masks[1]
Could not find operator[].

I mean to already close this, as of the commit above.


Oauth revoke dataset permissions v2

Fix: #14411 and comes from #14433

Did some acceptance testing and it's looking like a :package:!
Let's just review the missing comments and this should be ready to go.

I have done another acceptance too. All fine. I am going to move it forward


indexing: Final cleanup

there are still a few more things I have prepped for in future PRs.

setitem (still missing some pieces of the puzzle)
I found another way of doing getitem advanced indexing while doing setitem
combine gather, setitem, and getitem (advanced indexing) together with shared code
mayyybeee smol fuzzer to test all this stuff? :o

notes for this PR:

I deleted the trivial device tests torch had where they compare result from different devices to cpu
I left the bool indexing tests in but skipped them in case someone smarter than me figures it out
empty indexing works in jax but it's not supported
haven't done argsort or unravel_index, but they're not commonly used in the tests
cleaned up getitem a bit more

sry for a massive line diff PR that's probably not very fun to look at :c

cool! thanks for the whole indexing work. $200 bounty is yours<EMAIL_ADDRESS>to claim, either PayPal or USDC. link to this pr comment for reference
clean code refactors and better tests are always welcome, also happy to discuss other changes you mentioned once you have prs


Frontend-Project "Youtube_clone" Search Section Design Improvement

Describe the Feature you want to end
The search section of YouTube clone website is less like the real YouTube search section. By working on the design and css of this section, I can make it look even better.
Expected behavior
More detailed like the YouTube search section
Screenshots (optional)
Current Design

Expected Updated Design

Additional context (optional )
N/A

@MohitGupta121 Kindly assign me this issue


The current CMakePresets.json file is not a valid json file?

see https://github.com/bemanproject/optional26/blob/5cffcdbcd1ca87a278b7ea6f406f548395a2bb6e/CMakePresets.json#L161

Thanks for creating the issue!


Definitions being accessed directly

The idea is to create the definitions whenever you index Client or Server, without having to create them using Client.Get or Server.Create.

Implemented by e8ab476.


Command gets stuck when installing

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[x] I have read the documentation
[] Is it a feature request? please consider opening a [Discussion] (https://github.com/pivpn/pivpn/discussions/new)
[x] I have read and understood the contributors guide.
[x] The issue I am reporting can be replicated.
[x] The issue I am reporting is directly related to the pivpn installer script.
[] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Has your install failed?
yes/no Its just stuck so yes

Describe the issue

I ran the command for unattended install and the install always gets stuck at
:::     Updating repo in /usr/local/src/pivpn from https://github.com/pivpn/pivpn.git ...
Expected behavior
A clear and concise description of what you expected to happen.
It should complete in install
Screenshots
If applicable, add screenshots to help explain your problem.

Can you replicate the issue? Describe the steps below

Steps to reproduce the behavior:
Use a ssh npm like simple-ssh
run "curl -L https://install.pivpn.io > install.sh
chmod +x install.sh
./install.sh --unattended options.conf"
and the command will pause at :::     Updating repo in /usr/local/src/pivpn from https://github.com/pivpn/pivpn.git ...
Have you searched for similar issues and solutions?
(yes/no / which issues?)

Yes
Additional context
Add any other context about the problem here.
The command works when entered directly on the vps but doesn't when using an external tool for unattended access
Have you taken any steps towards solving your issue?
  Used another NPM same problem

Please provide your system information
What type of hardware are you running PiVPN at?

Debian GNU

Output of uname -a
Linux VPS19461 5.11.22-5-pve #1 SMP PVE 5.11.22-10 (Tue, 28 Sep 2021 08:15:41 +0200) x86_64 GNU/Linux

Output of cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

If install failed Please provide the console output of  `curl -L https://install.pivpn.io > install.sh
    chmod +x install.sh
    ./install.sh --unattended options.conf`

:::

::: You are root.

::: --unattended passed to install script, no whiptail dialogs will be displayed

::: Hostname length OK
::: Verifying free disk space...

:::
::: Package Cache update is needed, running apt-get update -y ...

 done!
:::
::: Checking apt-get for upgraded packages....
 done!
:::
::: There are 1 updates available for your system!
::: We recommend you update your OS after installing PiVPN!
:::

:::    Checking for git...
 already installed!
:::    Checking for tar...

::: IPv6 test connections to google.com successful. Enabling IPv6 support.

::: Using interface: eth0 for IPv4

::: Using interface: eth0 for IPv6
::: Since we think you are not using Raspberry Pi OS, we will not configure a static IP for you.

::: No user specified, but only vpnadmin is available, using it

:::
::: Checking for existing base files...
:::    Checking /usr/local/src/pivpn is a repo...
 OK!
:::     Updating repo in /usr/local/src/pivpn from https://github.com/pivpn/pivpn.git ...

Well, it seems to get stuck in the cloning or updating the git repository. It does clone it but doesn't seem to exit it. So I edited The install file and commented out the git clone bit. So I clone the git manually and then run the modified install file.
Hopefully this helps someone else if they come across this issue. Well dunno if its an issue since the install works on the vps but not when running the command through an node ssh interface.
sudo mkdir -p /usr/local/src
rm -r /usr/local/src/pivpn
cd /usr/local/src && git clone https://github.com/pivpn/pivpn.git
sudo ./install.sh --unattended options.conf