Introduce SegmentId class

This PR introduces the SegmentId class for operating with segment ids in the codebase instead of Strings.
Three reasons:

Memory efficiency: SegmentId's footprint is about 50 bytes smaller than a String, assuming non-compressed Oops, if I calculated correctly (should be ~25 bytes smaller since Java 9's "compact strings"). The difference should be bigger with compressed Oops.
Code readability and safety: it's more readable and safer to operate with Map<SegmentId, Something> than with Map<String, Something>
SegmentId enabled to get rid of the segments map in DruidServer and ImmutableDruidServer, for additional memory savings.

Also:

Replaced ConcurrentSkipListMap with ConcurrentHashMap in DruidDataSource, because it doesn't really need to be sorted.
Improved concurrency of DruidServer.
Improved concurrency of SQLMetadataSegmentManager.

Caveats of SegmentId introduction:

HTTP endpoints that return a lot of segment ids as parts of some JSON answers generate more garbage, because they convert SegmentId objects into Strings. Previously, those Strings were already stored in the heap.
HTTP endpoints which accept segment id need to do more work, because they need to iterate all possible parsings of a segment id string into SegmentId, that is ambiguous. But this should be minor, compared to the cost of an HTTP call itself. The exception is MetadataResource.getDatabaseSegmentDataSourceSegment(): to preserve it's former behaviour precisely, it would require to generate quite a lot of garbage String objects on each endpoint call, so the logic of this endpoint was changed (see below).

Changed HTTP endpoint behaviour:

MetadataResource.getDatabaseSegmentDataSourceSegment(), /datasources/{dataSourceName}/segments/{segmentId}: it used to search for segment id match ignoring the case of the string (for reference, it dates back to this commit: https://github.com/apache/incubator-druid/commit/3cba0c8ff2ab89e20e0707cd4f585e0aab2e0e90#diff-1fad8d6f3e6e3a17b71cd63bd21353e9R153), that's not in line with all other segmentId-accepting endpoints, and to me it doesn't look correct, because "ver" and "VER" are two different versions according to the rest of the logic. In the PR, the endpoint is changed to look for case-sensitive segmentId match.
DatasourcesResource.getSegmentDataSourceSpecificInterval(), /{dataSourceName}/intervals/{interval}, simple option: it creates a HashMap of intervals, unlike same method, full option, and both simple and full options of getSegmentDataSourceIntervals(), which all create TreeMaps of intervals. To me it looked like a slip, so I changed this endpoint to create a TreeMap as well (i. e. return interval JSON maps in different order the endpoint does currently).

This PR is labelled Incompatible because it changed multiple Public APIs (to return SegmentId instead of String from some getters).

This is also a blocker for me for fixing #6358 and making some improvements to HttpServerInventoryView.

For reviewers: key changed classes in this PR are SegmentId, DataSegment, DruidDataSource, DruidServer and ImmutableDruidServer.

BTW, it would have been much easier to review if naming changes like getIdentifier -> getId and Datasource -> DataSource had been in a separate commit, as they affect large amount of code, which makes it somewhat challenging to get the picture of functional changes there.

@egor-ryashin to get the picture of functional changes it should be enough to review closely the classes mentioned here: https://github.com/apache/incubator-druid/pull/6370#issuecomment-423731847. Changes in other places are more or less mechanical.

I wonder if we could forbid ambiguous datasource names?

@egor-ryashin because data source names and "versions" don't have any prohibited characters, including "_", ambiguity is unavoidable. But it doesn't seem to me that it harms too much. Certainly it would be better to avoid ambiguity when the segment Id format was designed, but at this point backward compatibility is more important.

I think we shouldn't use heuristic methods like iterateAllPossibleParsings for all datasources, moreover if a production cluster doesn't contain ambigous datasource names and versions, then the operator should have an option to switch it off.

@egor-ryashin

I think we shouldn't use heuristic methods like iterateAllPossibleParsings for all datasources, moreover if a production cluster doesn't contain ambigous datasource names and versions, then the operator should have an option to switch it off.

iterateAllPossibleParsings() is used in endpoints accepting segment ids as strings. Performance penalty of iterateAllPossibleParsings() is insignificant compared to the cost of a HTTP call itself, and also such endpoints are not expected to be queried on coordinators or other nodes 10k times per second.

@egor-ryashin thanks for review

@niketh could you please take a look?

I think at least we should rename SegmentIdentifier to something else since it's confusing. I don't think the rename should be done in this PR. What do you think?

Hello, I would like to ask if this change is compatible with the old version


Distill

Hi, i am using the hubert distill to conv emformer, but it crashs when start runing. Here is the detailed log.
WARNING:root:MonoCut acacda0e-6344-11ec-9812-525400127f85-3182: possibly mismatched duration between cut (3.1s) and temporal array in custom field 'codebook_indexes' (num_frames=154 * frame_shift=0.02 == duration=3.08).
WARNING:root:MonoCut 070655c4-6341-11ec-9b1e-525400cda5d2-10014: possibly mismatched duration between cut (4.16s) and temporal array in custom field 'codebook_indexes' (num_frames=207 * frame_shift=0.02 == duration=4.14).
WARNING:root:MonoCut 931c769a-5b38-11eb-a30b-525400ee5896-2688: possibly mismatched duration between cut (4.16s) and temporal array in custom field 'codebook_indexes' (num_frames=207 * frame_shift=0.02 == duration=4.14).
WARNING:root:MonoCut d392920a-e976-11eb-b047-525400f4a99f-4728: possibly mismatched duration between cut (4.16s) and temporal array in custom field 'codebook_indexes' (num_frames=207 * frame_shift=0.02 == duration=4.14).
2023-01-03 11:30:49,484 INFO [train.py:978] (1/2) Epoch 1, batch 0, loss[loss=4.594, simple_loss=9.189, pruned_loss=9.556, codebook_loss=93.57, over 1631.00 frames. utt_duration=363.1 frames, utt_pad_proportion=0.01862, over 18.00 utterances.], tot_loss[loss=4.594, simple_loss=9.189, pruned_loss=9.556, codebook_loss=93.57, over 1631.00 frames. utt_duration=363.1 frames, utt_pad_proportion=0.01862, over 18.00 utterances.], batch size: 18, lr: 3.00e-03
2023-01-03 11:30:49,485 INFO [train.py:978] (0/2) Epoch 1, batch 0, loss[loss=4.541, simple_loss=9.082, pruned_loss=9.423, codebook_loss=94.85, over 1672.00 frames. utt_duration=836.8 frames, utt_pad_proportion=0.02703, over 8.00 utterances.], tot_loss[loss=4.541, simple_loss=9.082, pruned_loss=9.423, codebook_loss=94.85, over 1672.00 frames. utt_duration=836.8 frames, utt_pad_proportion=0.02703, over 8.00 utterances.], batch size: 8, lr: 3.00e-03
WARNING:root:MonoCut 183d501e-9172-11eb-ab41-525400f66387-18006: possibly mismatched duration between cut (7.32s) and temporal array in custom field 'codebook_indexes' (num_frames=365 * frame_shift=0.02 == duration=7.3).
WARNING:root:MonoCut c267e594-e975-11eb-8124-525400f4a99f-3584: possibly mismatched duration between cut (14.48s) and temporal array in custom field 'codebook_indexes' (num_frames=723 * frame_shift=0.02 == duration=14.46).
WARNING:root:MonoCut 100b075c-f9c8-11ea-8ab3-525400a90b5a-14137: possibly mismatched duration between cut (10.76s) and temporal array in custom field 'codebook_indexes' (num_frames=537 * frame_shift=0.02 == duration=10.74).
concat_successive_codebook_indexes torch.Size([8, 212, 256]) torch.Size([8, 212, 16])
encoder_out torch.Size([8, 212, 256])
middle_layer_output torch.Size([8, 212, 256])
tensor(158591.0469, device='cuda:0', grad_fn=<CheckpointFunctionBackward>)
concat_successive_codebook_indexes torch.Size([18, 89, 256]) torch.Size([18, 89, 16])
encoder_out torch.Size([18, 89, 256])
middle_layer_output torch.Size([18, 89, 256])
tensor(152618.7812, device='cuda:1', grad_fn=<CheckpointFunctionBackward>)
Traceback (most recent call last):
  File "./conv_emformer_transducer_stateless2_hubert/train.py", line 1269, in <module>
    main()
  File "./conv_emformer_transducer_stateless2_hubert/train.py", line 1260, in main
    mp.spawn(run, args=(world_size, args), nprocs=world_size, join=True)
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 240, in spawn
    return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 198, in start_processes
    while not context.join():
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 160, in join
    raise ProcessRaisedException(msg, error_index, failed_process.pid)
torch.multiprocessing.spawn.ProcessRaisedException:

-- Process 1 terminated with the following error:
Traceback (most recent call last):
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
    fn(i, *args)
  File "/home/test/code/asr/k2_asr/train/egs/ntes_dev/conv_emformer_transducer_stateless2_hubert/train.py", line 1168, in run
    train_one_epoch(
  File "/home/test/code/asr/k2_asr/train/egs/ntes_dev/conv_emformer_transducer_stateless2_hubert/train.py", line 918, in train_one_epoch
    loss, loss_info = compute_loss(
  File "/home/test/code/asr/k2_asr/train/egs/ntes_dev/conv_emformer_transducer_stateless2_hubert/train.py", line 769, in compute_loss
    simple_loss, pruned_loss, codebook_loss = model(
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/test/.conda/envs/k2/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 994, in forward
    if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`, and by
making sure all `forward` function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 1: 286 287 288 289 290 291
 In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error

It seems that you have some params that does not receive grad. This will throw issues in Pytorch DDP training.
I am also doing distillation with conv-emformer and everything works well on my side. I will make a PR on conv_emformer_transducer_stateless2 today and I will keep you updated.

thanks, after removing the dummy params, the training proceduce is okay now. Still, look forward to your PR

Please have a look at #808

thanks

@marcoyang1998 i am trying to apply the hubert in chinese dataset. Unlike the librispeech, the result is worser compared to the baseline without hubert. And the codebook_loss cannot be optimized, simply shaking around 90, but the total_loss can be optimized. It seems that the codebook loss is harmful when applying to chinese dataset.
Do you have any advice or have you ever try applying hubert in chiense dataset?

It seems that the codebook loss is harmful when applying to chinese dataset.

I assume you are using the fine-tuned version of the Fairseq HuBERT model? The fine-tuning data is English so there could be a large domain mismatch, that could be the reason why it didn't work in your experiments.

Do you have any advice or have you ever try applying hubert in chiense dataset?

We've tried to apply MVQ KD on Chinese datasets. However, we were using a Chinese HuBERT model (https://github.com/TencentGameMate/chinese_speech_pretrain). This gives us some gain on WenetSpeech.
Another thing you could try is to use an un-finedtuned version of the original Fairseq HuBERT. You may find the download link here https://dl.fbaipublicfiles.com/hubert/hubert_xtralarge_ll60k.pt

I think the codebook loss normally stays quite large, it will not get close to 0 I think.  This is because there are many codebooks, and they have relatively high entropy.

It seems that the codebook loss is harmful when applying to chinese dataset.

I assume you are using the fine-tuned version of the Fairseq HuBERT model? The fine-tuning data is English so there could be a large domain mismatch, that could be the reason why it didn't work in your experiments.

Do you have any advice or have you ever try applying hubert in chiense dataset?

We've tried to apply MVQ KD on Chinese datasets. However, we were using a Chinese HuBERT model (https://github.com/TencentGameMate/chinese_speech_pretrain). This gives us some gain on WenetSpeech.
Another thing you could try is to use an un-finedtuned version of the original Fairseq HuBERT. You may find the download link here https://dl.fbaipublicfiles.com/hubert/hubert_xtralarge_ll60k.pt

I am using the un-finetuned version of the original hubert, but it seems that codebook loss cannot be optimized with the total rnnt loss in the same direction in cross-lin domain. The CER will degard from 0.1 to 0.8 in different test set.
"This gives us some gain on WenetSpeech.", it's that mean
a. using 'wenetspeech hubert model'  to 'wenetspeech asr task', or
b. using 'wenetspeech hubert model'  to 'aishell asr task'?

I think the codebook loss normally stays quite large, it will not get close to 0 I think. This is because there are many codebooks, and they have relatively high entropy.

Hi Dan,
In the librispeech result(https://gitlab.nie.netease.com/huangxiaorong/exp_record/-/issues/4), the codebook loss will degrad from 100 to 20.
In mine cross-lin result, the codebook loss only degard very slowly from 100 to 90.

I am using the un-finetuned version of the original hubert

So you are using codebook indexes extracted on your own?

"This gives us some gain on WenetSpeech.", it's that mean
a. using 'wenetspeech hubert model' to 'wenetspeech asr task', or
b. using 'wenetspeech hubert model' to 'aishell asr task'?

I mean the first statement. We didn't test it on aishell.
The codebook loss normally stays at a quite high value. Here are some stats for your reference:
Number of Codebooks: 16
Codebook loss: 100 -> 30 (after 3 epochs)
We recommend using a delta in streaming MVQ KD to address the issue of the limited future context of streaming student model. You may find the implementation here https://github.com/k2-fsa/icefall/pull/808/files#diff-06da385f1213f88bce406acabd71a1284016b9b21f4a790a36e2897bedba2e8c.
We also recommend using a smaller scale for codebook loss. We normally set  codebook-loss-scale to 0.005 and 0.01 for 32 and 16 codebook setups respectively.

thanks.

yeah, i recompute the codebook on my own data.
Number of Codebooks: 16 here 16 is the number of codebook in extract or train? because i notice that in librispeech, the num_of_codebook is 8 in extracting, and the num_of_codebook is 16 in train.
i will try adding the delta version and tuning loss-scale.

I think the codebook loss normally stays quite large, it will not get close to 0 I think. This is because there are many codebooks, and they have relatively high entropy.

Hi Dan,
In the librispeech result(https://huggingface.co/GuoLiyong/stateless6_baseline_vs_disstillation/tensorboard?scroll=1#scalars), the codebook loss will degrad from 100 to 20.
In mine cross-lin result, the codebook loss only degard very slowly from 100 to 90.

In one of our earlier experiments, there was a problem (a kind of bug) in the codebook index extraction that resulted in them having a much lower entropy than there should be.  After fixing this, the change in codebook loss became much less.

16 is the number of codebook in extract or train?

Training. HuBERT model has a doubled encoder rate, so we concatenate every two codebook "frames", resulting in a doubled number of codebook in training.

Just curious, how is your distillation experiments going? Would you mind share your results? I am quite interested in doing cross language distillation.


v0.6.0-pre

Prerelease to assist in debugging #146 and to unblock people waiting on a final v0.6.0 release

FYI, went ahead and cut a release to assist in debugging #146: https://crates.io/crates/rsa/0.6.0-pre

thank you @tarcieri !


when using pod update yajl-objc , occurs some problems.

[!] /bin/bash -c
set -e
./configure
mv COPYING LICENSE
== removing old build files
== running CMake in build directory
The "cmake" program is required to configure yajl.  It's
available from most ports/packaging systems and http://cmake.org
sh: cmake: command not found

by installing cmake can solve the problems


The custom command worked replacing /bin/sh by sh there modelUtils.

The custom command worked replacing /bin/sh by sh there modelUtils.
Originally posted by @gcoutable in https://github.com/dlvhdr/gh-dash/issues/143#issuecomment-1175361515

Should be fixed


chore: bdd-spring-1573056729 to 0.0.1

chore: Promote bdd-spring-1573056729 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Project page: approximate response time isn't showing up on public view

Prerequisites

[x] I've searched for existing issues

Describe the bug
The approximate response time isn't showing up on the public view of the project page. It's there during edit mode.
Expected behavior
Approximate response time to show up in the public project page.

I might be missing something, but I don't see this in the wireframes. Where should it go?


cbo Intrinsic

Is there a plan to add cbo Intrinsic
to the doc

I think nobody is working on this.
So, a PR would be appreciated!

Just a note to ensure we're all on the same page. The linked commit defines __builtin_riscv_* functions which so far have been considered out of the scope of this document (though I think we typically try to match what gcc does in LLVM). So if it's desirable, perhaps the path forward is to define a __riscv_* intrinsic that could be standardised.
(Christoph / Kito / ...  - please correct me if wrong!)

Just a note to ensure we're all on the same page. The linked commit defines _builtin_riscv* functions which so far have been considered out of the scope of this document (though I think we typically try to match what gcc does in LLVM). So if it's desirable, perhaps the path forward is to define a _riscv* intrinsic that could be standardised.

Thanks my expectation as well :)

Just a note to ensure we're all on the same page. The linked commit defines __builtin_riscv_* functions which so far have been considered out of the scope of this document (though I think we typically try to match what gcc does in LLVM). So if it's desirable, perhaps the path forward is to define a __riscv_* intrinsic that could be standardised.
(Christoph / Kito / ... - please correct me if wrong!)

Might you know if those intrinsics are a wip in LLVM? There seems to be only assembly support for Zicbom, and I couldn't find a PR or issue regarding implementing these.

Might you know if those intrinsics are a wip in LLVM? There seems to be only assembly support for Zicbom, and I couldn't find a PR or issue regarding implementing these.

Nobody's posted a PR to my knowledge, and I'm not aware of anyone working on them so far. Patches welcome!

I try to send a patchset to upstream.
My work based on doc.


Update npd to version v0.8.2

update node-problem-detector to v0.8.2 to fix missing hard drive failure detection
/area robustness
/area monitoring
/priority normal
@see https://github.com/kubernetes/node-problem-detector/releases for release notes.

/invite @hardikdr

/lgtm from changes pov.
Haven't been able to test the happy-path though, can do it later this week, or else please update if already done.

@hardikdr we have tested it here by overriding it with the gardenlet image-vector, looks good so far.

/ok-to-test

Afaik the npd chart was copied from helm/charts. So there are no changes in the chart itself between this version range?

@ialidzhikov thanks for the hint, in fact there is one more volume /dev/kmsg and NODE_NAME env, added these from upstream

/assign

/ok-to-test

Actually, it would be really nice to have some kind of integration test for this kind of stuff like the NPD.
The test could provoke issues on the Nodes, that the NPD should detect and care controller should pick up and reflect in the Shoot status.
Ref #1564

Actually, it would be really nice to have some kind of integration test for this kind of stuff like the NPD.
The test could provoke issues on the Nodes, that the NPD should detect and care controller should pick up and reflect in the Shoot status.

+1 but let's do it in a separate PR to not block this one from getting merged.

Actually, it would be really nice to have some kind of integration test for this kind of stuff like the NPD.
The test could provoke issues on the Nodes, that the NPD should detect and care controller should pick up and reflect in the Shoot status.

+1 but let's do it in a separate PR to not block this one from getting merged.

Sure, didn't want to imply that we should do it in this PR.
Do a final edit of the commit message
git push -f fork

Does this help?

@tim-ebert Thanks! this was the best explanation so far.

Thanks @tim-ebert


I started digging on publications on the subject, I'll create a new PR with algorithm change later. If you have suggestions of related papers, please comment on the related issue!


fix middleware for actual aiohttp version

Fix  deprecated old-style middleware for actual aiohttp requirements - simplifying middleware #2252

Thanks.

Released 0.5.0. Sorry for terrible delay.


Improve shader uniforms so they objects instead of ints or floats

consider using C#'s version of void* for uniform passing
public static extern void SetShaderValue (Shader shader, int uniformLoc, object   value, ShaderUniformDataType uniformType);
public static extern void SetShaderValueV(Shader shader, int uniformLoc, object   value, ShaderUniformDataType uniformType, int count);```

This does not work as it is a invalid managed/unmanaged combination. I am looking to make shaders more accessible so I am considering adding more overloads/utils for valid types.


Tenancy: User guide need to be updated

User guide (admin-cli.md) need to be updated accordingly after the DEFAULT_TENANT, DEFAULT_PRIVILEGE, and DEFAULT_DATASTORE change are introduced.

The user guide gets updated each time a release is cut.

Close this issue based on Ritesh's comment above.


[GCLB] Add websocket example

This change is

Coverage increased (+0.03%) to 46.538% when pulling 46a9943eb653426d8b24abba7ef2260640dd51ce on nicksardo:gce-websocket-example into dd7090b969893f5bb613944c90a75aec47af6ea9 on kubernetes:master.

Coverage increased (+0.03%) to 46.538% when pulling 46a9943eb653426d8b24abba7ef2260640dd51ce on nicksardo:gce-websocket-example into dd7090b969893f5bb613944c90a75aec47af6ea9 on kubernetes:master.


USAFacts and JHU disagree about RI cases on March 28

Actual Behavior:
The frontend shows a massive spike in RI on the 28th that's not reflected in the data from JHU. The raw USAFacts file only shows the spike in the statewide unallocated record:
$ cut -d, -f 1,2,3,435,436,437 usafacts.csv |sed -n '1p; /RI/p'
countyFIPS,County Name,State,2021-03-27,2021-03-28,2021-03-29
0,"Statewide Unallocated","RI",5120,12909,13553
44001,"Bristol County ","RI",4492,4492,4492
44003,"Kent County ","RI",16330,16330,16330
44005,"Newport County ","RI",5625,5625,5625
44007,"Providence County ","RI",87520,87520,87520
44009,"Washington County ","RI",8899,8899,8899

I haven't been able to find a news report on any case audits or otherwise large-scale discovery of previously-unreported deaths, including the JHU retrospective and back-distribution records.
We should:

verify that this spike isn't in the JHU raw data (in case they changed their unallocated reporting and/or we introduced a bug in our code)
poke USAFacts to fix their data

dfu = covidcast.signal("usa-facts","confirmed_incidence_num",geo_type="state",geo_values="ri",
start_day=date(2021,3,25),end_day=date(2021,3,31))
dfj = covidcast.signal("jhu-csse","confirmed_incidence_num",geo_type="state",geo_values="ri",
start_day=date(2021,3,25),end_day=date(2021,3,31))
pd.concat([
    dfu[["time_value","value"]].rename({"value":"usafacts"}, axis="columns").set_index("time_value"),
    dfj[["time_value","value"]].rename({"value":"jhu"}, axis="columns").set_index("time_value")
], axis="columns").plot(y=["usafacts","jhu"])

This has been resolved in the latest USAfacts issues
0,"Statewide Unallocated","RI","44",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,8,14,14,15,17,27,38,38,60,77,100,100,26,28,38,25,25,99,72,46,92,146,212,198,206,223,297,424,719,672,989,1300,756,902,840,832,815,715,861,861,944,944,944,944,944,944,944,944,944,897,897,897,897,1777,1777,2011,2260,2470,2755,1158,1198,1046,1227,1430,1645,1885,2006,2162,1556,1553,1528,1504,1518,1518,1663,1496,1533,1564,1748,1857,1920,2041,2148,2254,2370,2370,2370,1565,1614,1679,1785,1870,1870,1870,1569,1640,1689,1745,1813,1813,1813,1514,1588,1661,1695,1716,1716,1716,1535,1584,1624,1712,1488,1488,1488,1488,1651,1701,1740,1809,1809,1809,1984,2085,2137,2208,2290,2290,2290,1702,1702,678,678,678,679,679,678,678,705,705,705,705,705,705,705,717,717,717,717,717,717,717,728,728,728,728,728,728,728,747,747,747,747,747,747,747,771,771,771,771,771,771,771,847,847,847,847,847,847,847,978,978,978,978,978,978,978,1002,1002,1002,1002,1002,1002,1002,1030,1030,1030,1030,1030,1030,1030,855,855,855,855,855,855,855,898,898,898,898,898,898,898,952,952,952,952,952,952,952,1080,1080,1080,1080,1080,1080,1080,1322,1322,1322,1322,1322,1322,1322,1544,1544,1544,1544,1544,1544,1544,1839,1839,1839,1839,1839,1839,1839,2224,2224,2224,2224,2224,2224,2224,2481,2481,2481,2481,2481,2481,2481,2421,2421,2421,2421,2421,2421,2421,2939,2939,2939,2939,2939,2939,2939,3253,3253,3253,3253,3253,3253,3253,3399,3399,3399,3399,3399,3399,3399,3624,3624,3624,3624,3624,3624,3624,4151,4151,4151,4151,4151,4151,4151,4552,4552,4552,4552,4552,4552,4552,4784,4784,4784,4784,4784,4784,4784,4868,4868,4868,4868,4868,4868,4868,4789,4789,4789,4789,4789,4789,4789,4787,4787,4787,4787,4787,4787,4787,4716,4716,4716,4716,4716,4716,4716,4727,4727,4727,4727,4727,4727,4727,4875,4875,4875,4875,4875,4875,4875

woops unresolved due to my inability to read or copy paste

Closing this -- while JHU habitually makes an attempt to back-distribute retrospective reports closer to when they should have been observed, USAFacts does not. USAFacts also tends to drift away from JHU for a while, then publish a lump update with no notice. This is the largest contributor to our motivation to switch the frontend to JHU and stop updating our combo cases signal.


执行BBDown login的时候m1 报以下错误

A type initializer threw an exception. To determine which type, inspect the InnerException's StackTrace property.

Can you give more details? Sorry, but this is not enough information to start analyzing your problem. 😞
Note: I checked your main repository and saw that you target net6.0. So I can guess that you may have the same problems as described in #354 - at least if you run your app on any other platform than windows. But without more information this is only a guessing.

Hi @ge2009 ,
I made some changes, that possibly solve your issues. Can you please take the latest CI-build and check if it's working for you? CI-Build Packages
If you need help on how to use Github Packages as NuGet package source, let me know (or check this article).

Issue should be solved with the new QRCoder 1.4.3 release: https://www.nuget.org/packages/QRCoder/1.4.3


#927 - account settings

@kueda - seems from the RN webview's release history, we can use v12.4.0 - I'll change the version and update the PR

Shoot - misunderstood - it required downgrading to v11.23.1 - will fix


RPi Does not connect to Wi-Fi from the first shot

Please provide the following information:

OS: Ubuntu 22.04
ROS Distro: Humble
Installed:

Expected behaviour
Turn on turtlebot4 and RPi connects to Wi-Fi (screen shows IP address).
Actual behaviour
The screen shows unknown instead of IP address. Generally, after the 5th trial, RPi connects to Wi-Fi.
To Reproduce
Other notes
-I reflashed the RPi, changed another Wi-Fi but always the same behaviour.
-If I connect RPi to amonitor via a (usb-HDMI)-cable, the RPi connects.
-Screen shows IP address on Access point mode.

@myamo1 Are you connecting to a 2.4GHz network or 5GHz?

I am connecting to 2.4GHz network

@myamo1 apologies that I missed seeing your response earlier. Are you still experiencing this issue?

This issue is being closed due to inactivity. If you are still experiencing the issue, feel free to reopen this ticket when you are ready to continue the troubleshooting process.

Hello again,
I am still having the same issue. Few days it was connecting from the first shot but yesterday night it did not work even after several trials. This morning, it worked from the second shot.
I am using a router connected to the university network.

Does that router support 5 GHz? if so I would suggest trying to put the Raspberry Pi on the 5GHz network.
Another thing that I would suggest is to reserve an IP address for the Raspberry Pi on the router. This seems like it is an issue with the network configuration so that could potentially help.
If the issue persists then connect to the pi when you are experiencing the issue and share the output of journalctl -b | grep wlan0

The router does not support 5 GHz.
I reserved an IP address for the RPi but I experienced the same issue.
Here is the output you are asking for:
Nov 21 20:59:33 ubuntu cloud-init[657]: ci-info: | wlan0  | False |              .               |       .       |   .    | d8:3a:dd:08:60:35 |
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.0408] device (wlan0): driver supports Access Point (AP) mode
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.0436] manager: (wlan0): new 802.11 Wi-Fi device (/org/freedesktop/NetworkManager/Devices/4)
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.0447] device (wlan0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Nov 21 20:59:36 ubuntu systemd-networkd[650]: wlan0: Link UP
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5015] device (wlan0): supplicant interface state: internal-starting -> disconnected
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5019] Wi-Fi P2P device controlled by interface wlan0 created
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5026] manager: (p2p-dev-wlan0): new 802.11 Wi-Fi P2P device (/org/freedesktop/NetworkManager/Devices/5)
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5033] device (p2p-dev-wlan0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5044] device (wlan0): state change: unavailable -> disconnected (reason 'supplicant-available', sys-iface-state: 'managed')
Nov 21 20:59:36 ubuntu NetworkManager[663]:   [1700600376.5062] device (p2p-dev-wlan0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:38 ubuntu networkd-dispatcher[672]: ERROR:Unable to retrieve ESSID for wireless interface wlan0: no supported wireless tool installed
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2446] policy: auto-activating connection 'netplan-wlan0-Lab1012' (38462bcd-a2f5-3da7-a029-d760d96dcf66)
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2488] device (wlan0): Activation: starting connection 'netplan-wlan0-Lab1012' (38462bcd-a2f5-3da7-a029-d760d96dcf66)
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2500] device (wlan0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2538] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2566] device (wlan0): Activation: (wifi) access point 'netplan-wlan0-Lab1012' has security, but secrets are required.
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2569] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2575] sup-iface[c1c960adb145e673,0,wlan0]: wps: type pbc start...
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2599] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2609] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2623] device (wlan0): Activation: (wifi) connection 'netplan-wlan0-Lab1012' has security, and secrets exist.  No new secrets needed.
Nov 21 20:59:39 ubuntu wpa_supplicant[682]: wlan0: WPS-CANCEL
Nov 21 20:59:39 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2986] device (wlan0): supplicant interface state: disconnected -> associating
Nov 21 20:59:39 ubuntu NetworkManager[663]:   [1700600379.2996] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> associating
Nov 21 20:59:42 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 20:59:42 ubuntu NetworkManager[663]:   [1700600382.3160] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 20:59:42 ubuntu NetworkManager[663]:   [1700600382.3162] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 20:59:42 ubuntu NetworkManager[663]:   [1700600382.4142] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 20:59:42 ubuntu NetworkManager[663]:   [1700600382.4145] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 20:59:45 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 20:59:45 ubuntu NetworkManager[663]:   [1700600385.0986] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 20:59:45 ubuntu NetworkManager[663]:   [1700600385.0989] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 20:59:47 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 20:59:47 ubuntu NetworkManager[663]:   [1700600387.7670] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 20:59:47 ubuntu NetworkManager[663]:   [1700600387.7671] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 20:59:48 ubuntu NetworkManager[663]:   [1700600388.2647] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 20:59:48 ubuntu NetworkManager[663]:   [1700600388.2649] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 20:59:50 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 20:59:50 ubuntu NetworkManager[663]:   [1700600390.9535] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 20:59:50 ubuntu NetworkManager[663]:   [1700600390.9536] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 20:59:53 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 20:59:53 ubuntu NetworkManager[663]:   [1700600393.9502] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 20:59:53 ubuntu NetworkManager[663]:   [1700600393.9503] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 20:59:54 ubuntu NetworkManager[663]:   [1700600394.9494] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 20:59:54 ubuntu NetworkManager[663]:   [1700600394.9496] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 20:59:57 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 20:59:57 ubuntu NetworkManager[663]:   [1700600397.6312] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 20:59:57 ubuntu NetworkManager[663]:   [1700600397.6325] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 21:00:00 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 21:00:00 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=1 duration=10 reason=CONN_FAILED
Nov 21 21:00:00 ubuntu NetworkManager[663]:   [1700600400.6342] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 21:00:00 ubuntu NetworkManager[663]:   [1700600400.6343] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9232] device (wlan0): Activation: (wifi) association took too long
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9234] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9239] sup-iface[c1c960adb145e673,0,wlan0]: wps: type pbc start...
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9244] device (wlan0): Activation: (wifi) asking for new secrets
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9296] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:04 ubuntu wpa_supplicant[682]: wlan0: WPS-CANCEL
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9313] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9333] device (wlan0): Activation: (wifi) connection 'netplan-wlan0-Lab1012' has security, and secrets exist.  No new secrets needed.
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9789] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 21:00:04 ubuntu NetworkManager[663]:   [1700600404.9792] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 21:00:07 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 21:00:07 ubuntu NetworkManager[663]:   [1700600407.6560] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 21:00:07 ubuntu NetworkManager[663]:   [1700600407.6562] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 21:00:10 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 21:00:10 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=1 duration=10 reason=CONN_FAILED
Nov 21 21:00:10 ubuntu NetworkManager[663]:   [1700600410.6601] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 21:00:10 ubuntu NetworkManager[663]:   [1700600410.6603] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 21:00:20 ubuntu NetworkManager[663]:   [1700600420.6823] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 21:00:20 ubuntu NetworkManager[663]:   [1700600420.6824] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 21:00:23 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-REENABLED id=0 ssid="Lab1012"
Nov 21 21:00:23 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 21:00:23 ubuntu NetworkManager[663]:   [1700600423.4651] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 21:00:23 ubuntu NetworkManager[663]:   [1700600423.4654] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 21:00:26 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 21:00:26 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=2 duration=20 reason=CONN_FAILED
Nov 21 21:00:26 ubuntu NetworkManager[663]:   [1700600426.1394] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 21:00:26 ubuntu NetworkManager[663]:   [1700600426.1396] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9238] device (wlan0): Activation: (wifi) association took too long
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9240] device (wlan0): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9247] sup-iface[c1c960adb145e673,0,wlan0]: wps: type pbc start...
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9254] device (wlan0): Activation: (wifi) asking for new secrets
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9293] device (wlan0): state change: need-auth -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9307] device (wlan0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9324] device (wlan0): Activation: (wifi) connection 'netplan-wlan0-Lab1012' has security, and secrets exist.  No new secrets needed.
Nov 21 21:00:29 ubuntu wpa_supplicant[682]: wlan0: WPS-CANCEL
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9785] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 21:00:29 ubuntu NetworkManager[663]:   [1700600429.9787] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 21:00:32 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 21:00:32 ubuntu NetworkManager[663]:   [1700600432.7052] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 21:00:32 ubuntu NetworkManager[663]:   [1700600432.7054] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 21:00:35 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 21:00:35 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=1 duration=10 reason=CONN_FAILED
Nov 21 21:00:35 ubuntu NetworkManager[663]:   [1700600435.7218] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 21:00:35 ubuntu NetworkManager[663]:   [1700600435.7219] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 21:00:45 ubuntu NetworkManager[663]:   [1700600445.7353] device (wlan0): supplicant interface state: disconnected -> scanning
Nov 21 21:00:45 ubuntu NetworkManager[663]:   [1700600445.7356] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> scanning
Nov 21 21:00:48 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-REENABLED id=0 ssid="Lab1012"
Nov 21 21:00:48 ubuntu wpa_supplicant[682]: wlan0: Trying to associate with SSID 'Lab1012'
Nov 21 21:00:48 ubuntu NetworkManager[663]:   [1700600448.5220] device (wlan0): supplicant interface state: scanning -> associating
Nov 21 21:00:48 ubuntu NetworkManager[663]:   [1700600448.5222] device (p2p-dev-wlan0): supplicant management interface state: scanning -> associating
Nov 21 21:00:51 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
Nov 21 21:00:51 ubuntu wpa_supplicant[682]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=2 duration=20 reason=CONN_FAILED
Nov 21 21:00:51 ubuntu NetworkManager[663]:   [1700600451.2062] device (wlan0): supplicant interface state: associating -> disconnected
Nov 21 21:00:51 ubuntu NetworkManager[663]:   [1700600451.2064] device (p2p-dev-wlan0): supplicant management interface state: associating -> disconnected
Nov 21 21:00:54 ubuntu NetworkManager[663]:   [1700600454.9254] device (wlan0): Activation: (wifi) association took too long
Nov 21 21:00:54 ubuntu NetworkManager[663]:   [1700600454.9256] device (wlan0): state change: config -> failed (reason 'no-secrets', sys-iface-state: 'managed')
Nov 21 21:00:54 ubuntu NetworkManager[663]:   [1700600454.9285] device (wlan0): Activation: failed for connection 'netplan-wlan0-Lab1012'
Nov 21 21:00:54 ubuntu NetworkManager[663]:   [1700600454.9301] device (wlan0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
Nov 21 21:01:01 ubuntu NetworkManager[663]:   [1700600461.2041] device (wlan0): supplicant interface state: disconnected -> inactive
Nov 21 21:01:01 ubuntu NetworkManager[663]:   [1700600461.2043] device (p2p-dev-wlan0): supplicant management interface state: disconnected -> inactive

The repeated error seems to be this one:

CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="Lab1012" auth_failures=1 duration=10 reason=CONN_FAILED

I have not directly had experience with this type of failure but through some searching people seem to run into this issue with raspberry pi's in several different types of scenarios including incorrect bands / channels and general interference from other physical connections.
First thing to check is when you run the turtlebot4-setup tool, in the Wi-Fi Settings do you have the band set to 2.4 GHz? (or Any).
If not that, some people have reported incompatibilities with the raspberry pi WIFi driver and specific access points. The solution people seem to have is to disable the fast-roam feature on the pi. See https://bugs.launchpad.net/raspbian/+bug/1929746 and https://raspberrypi.stackexchange.com/questions/77144/rpi3-wireless-issue-ctrl-event-assoc-reject-status-code-16
If that still doesn't work, try searching up that specific error, as people have reported different solutions for it. This is not a Turtlebot4 specific error but a general raspberry pi issue that seems to apply to certain routers. If you are still unable to get it connected, it may be worth posting this issue into a raspberry pi forum and see if the folks there can help further. Alternatively, you could also try a different type of router.


Multiple permissions

@k0shk0sh This problem still exists in Android 6.0.1.
I am using v1.0.11 but still not getting expected multiple permissions.. it shows only first permission from list. and if first permission is granted then only it displays next one.. but it is not showing non granted permissions in queue.. as shown in images above by @drchopper
i have tried as said in #10 this issue but dint worked for me

could you please tell if this occur in <6.0.1?

yup it is

i guess i kinda know why, will check it later today

well, i found what is the root cause. will fix it by today and push an update.
silly logica handling.

Please let me know when  you will done  with update.. and thanks for your awesome library :)

i did test out the library just now, and it appears to be working fine even tho, im not requesting the permissions all together, but by separating them, still the dialog will appear even after denying the permission, i made the permissions to be asked multiple times at ones, however adding System.Alert permission won't work, you can update to v 1.0.13. thank you

@k0shk0sh  yeah it works.. thanx man.. you are just awesome...


Run all RxJava tests on Android to see that ProGuard rules covers all cases!

How's that going @artem-zinnatullin ?

:(

Good instrumentation test case idea!

Just in case if somebody interested in that: https://github.com/ReactiveX/RxJava/pull/3519 has basic setup and actually runs RxJava v1 unit tests on Android emulator/device, but last time I've tried — ~10 tests required some modifications: timeouts since Android Emulators are not that fast (especially without KVM/HAXM) + some usages of APIs that are not available on Android (not critical) .
We/I can continue work on that if @akarnokd will give green light to PRs to upstream RxJava to allow that, but first of all, I'll need to investigate if ProGuard rules are required for RxJava v2 #44, if no — this project will be iceboxed!

Reporting "Sequence contains no elements", what should I do? Help!

@D1191860939 I am not sure you're asking in correct issue/repository, please add more info.


Validation error on poweron

Hello,
I'm trying to use this SDK to power on an instance but get an exception with validation errors.
Version used:
scaleway==0.12.0
scaleway-core==0.12.0

I shrinked the code to few lines that reproduce the issue:
from scaleway import Client
from scaleway.instance.v1 import InstanceV1API, ServerAction
from scaleway_core.api import ValidationError, ScalewayException

scw = Client.from_env()
instance_api = InstanceV1API(client=scw)

response = instance_api.get_server(zone="fr-par-2",
                                   server_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
print(response.server.commercial_type)

response = instance_api.server_action(zone="fr-par-2",
                                      server_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
                                      action=ServerAction.POWERON)
print(response.task.id)

I'm getting the following ValidationError exception from https://github.com/scaleway/scaleway-sdk-python/blob/main/scaleway/scaleway/instance/v1/api.py#L856 :
GP1-M
Traceback (most recent call last):
  File "/home/xxx/tmp/test-scw-poweron.py", line 14, in <module>
    response = instance_api.server_action(zone="fr-par-2",
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/xxx/.local/lib/python3.11/site-packages/scaleway/instance/v1/api.py", line 856, in server_action
    self._throw_on_error(res)
  File "/home/xxx/.local/lib/python3.11/site-packages/scaleway_core/api.py", line 178, in _throw_on_error
    raise ValidationError(res, data["fields"])
scaleway_core.api.ValidationError: {"type": "invalid_request_error", "message": "Validation Error", "fields": {"name": ["extra keys not allowed"], "volumes": ["extra keys not allowed"]}}

Validation errors seem to occur on volumes and name but I don't pass any to server_action.
Do I misuse the SDK?

Hello, thanks for sharing this issue with us!
This is indeed an issue on our side, we sets the volumes field to null before sending the request which confuses the Instances API because it awaits no value.
Until we fix this issue, you can use the following snippet:
from scaleway import Zone
from scaleway.instance.v1 import InstanceV1API, unmarshal_ServerActionResponse
from scaleway_core.utils import validate_path_param

def server_action(
    api: InstanceV1API,
    *,
    server_id: str,
    action: ServerAction,
    zone: Optional[Zone] = None,
    name: Optional[str] = None,
) -> ServerActionResponse:
    param_zone = validate_path_param("zone", zone or api.client.default_zone)
    param_server_id = validate_path_param("server_id", server_id)

    res = api._request(
        "POST",
        f"/instance/v1/zones/{param_zone}/servers/{param_server_id}/action",
        body={
            "action": str(action),
            "name": name,
        },
    )

    api._throw_on_error(res)
    return unmarshal_ServerActionResponse(res.json())

After also removing name from the body, it's OK, I can power on an instance.
Thank you

Hey! We released the 1.0.1 which fixes this exact issue :)


Version 3.13.0-RC1 release

Removed

Removed methods GetAccountSettingsExport,GetSealProviders from Accounts.
Removed methods CreateConnectSecret,DeleteConnectSecret,GenerateConnectSecret,GetConnectSecrets from Connect.
Removed methods GetDynamicSystemSettings,GetTemplateInfo,GetApplianceInfo,GetAccount,GetCustomFields,GeleteCustomFieldsV2,GetDocumentPages,GetImage,GetLocalePolicy,UpdatePageInfo,CreatePageInfo,DeletePageInfo,UpdatePdf,GetPdf,GetPdfBlob,UpdatePdfBlob,CreatePdfBlob,UpdateRecipientDeniedDocumentCopy,DeleteRecipientDeniedDocumentCopy,GetSignerAttachment,DeleteSignerAttachment from Envelopes.
Removed methods CompleteSignHash,GetUserInfo,HealthCheck,SignHashSessionInfo,UpdateTransaction from TrustServiceProviders.
Removed methods GetUserListExport from Users.

Added

Added new methods GetBulkSendBatchEnvelopes to BulkEnvelopes.

Changed

Added support for version v2.1-<IP_ADDRESS> of the DocuSign eSignature API.
Updated the SDK release version.

By means of this commit, methods from TrustServiceProvidersApi were removed.
We could not find any migration plan or other helpful info pointing to an alternative implementation containing the removed methods again.
Is there something which can be shared publicly or do we need to contact Docusign support ?


Rename Pascal-P6

Hi, sorry for putting this here, but your Pascal-P6 repo is locked as read-only.
Is there a chance you could rename your Pascal-P6 repo? It shows up in searches for Pascal-P6, which is a project that I run.
Your Pascal-P6 is derived from my repo Pascal-P5, and is otherwise unrelated to (my) Pascal-P6, which is live and ongoing project under development.
I realize that at the time you created your repo that my Pascal-P6 didn't exist, but there were several mentions in the documentation for Pascal-P5, which your project was based on, that I was working on Pascal-P6.
Since your Pascal-P6 is no longer a going concern, I wonder if you would consider a rename to eliminate any confusion between these projects. I am not asking for you to eliminate your repo, just a mild name name change to prevent confusion, like Pascal-Dijkstra.
Thank you for your attention.
I was unable to find an email for you. If you are interested in contacting me directly it is
<EMAIL_ADDRESS>

Hi, samiam.
I have created my p6mach (not Pascal-P6) repository 5 years ago just for historical reasons.
So I think you are wrong.
Regards.

I don't have an issue with that (p6mach). However, the description for the project reads:
"Pascal P6 compiler and interpreter by Richard Sprague"
Also the readme starts:
"This readme.txt file is for the purpose of explaining the contents of the
downloaded P6.zip file.
pcom.pas
pcom.pas is an expanded source of the Pascal P6 compiler"
Mr.  Sprague specifically created the project as a fork of my project, Pascal-P5, and named it "Pascal-P6", even though the Pascal-P5 project documentation specifically said that I was working on a successor project, Pascal-P6, at the time he forked the project.
Note that Pascal-P5 is more than 10 years old (it started on sourceforge, before github was created).
The issue is that a search in github off "pascal-p6" shows your repo as the second project after mine:
===================================================
samiam95124/Pascal-P6
6th version of Niklaus Wirth's original Pascal language compiler system
Pascal
·
25
·
Updated 2 days ago
JulStrat/p6mach
Public archive
Pascal P6 compiler and interpreter by Richard Sprague
Pascal
·
4
·
Updated on Sep 14, 2019
======================================================
And thus has the potential to confuse users. I don't have any rights to the name here, but
there is the common courtesy of not naming an incompatible fork of my own project with the
same name as my project, and gratitude for my having supplied the code that your repo is
based on.
As you say, p6mach is enough of a difference not to be confused. If you could, a simple change
to the project description on your repo:
About
Pascal P6 compiler and interpreter by Richard Sprague
To something other than "Pascal P6 compiler and interpreter" would do it.
Thanks for your attention.
Scott Franco
San Jose, CA

That did the job. Thanks so much.
Scott Franco


Git Sync pull not working on Windows

Describe the bug
When pulling documents using Git Sync a Error: ENOENT: no such file or directory error is reported and nothing is updated. This appears to occur on Windows and not OS X.
To Reproduce
Quick steps:

Create -> Git Clone
Paste https://github.com/bagf/pullcrash.git into 'Git URI' field
Enter your author name and email
Paste authentication token
Done

Steps to reproduce the behavior:

Create a 'Blank Document' called 'pullcrash'
Open pullcrash and go to debug
Create a new request 'My Request'
Click 'Setup Git Sync' -> Repository Settings
Paste in working Authentication Token, Git URI, Author name and email
Click Done
Click 'master' to bring up Git Sync menu
Click commit
Enter 'Testing' as the description and tick all 'Unversioned Objects'
Click Commit
Open Git Sync menu and Click push
Go back to 'Documents' screen and delete the pullcrash document
Create using 'Git clone'
Paste same details from step 5
Click Done

Expected behavior
The repository settings modal closes and my pullcrash document is promoted to be imported after cloning the pullcrash Git repository.
Screenshots
Committing all objects:

Console log:

Desktop (please complete the following information):

OS: Windows 10 Version 1909 (OS Build 18363.815)
Installation Method: Git Release .exe
App Version v2020.1.3

Additional context
I don't know if it matters that much but i'm using Git 2.26.2-windows.1 locally and I do not have node js installed.
It seems committing and pushing works fine, but pulling results in:
bundle.js:250449 Uncaught (in promise) Error: ENOENT: no such file or directory, scandir '\\.insomnia\ApiSpec\'
    at MemPlugin._assertExists (bundle.js:250449)
    at MemPlugin._assertDir (bundle.js:250474)
    at MemPlugin.mkdir (bundle.js:250317)
    at FileSystem.mkdir (C:\Users\rory9\AppData\Local\insomnia-designer\app-2020.1.3\resources\app.asar\node_modules\isomorphic-git\dist\for-node\isomorphic-git\index.js:391)
    at FileSystem.mkdir (C:\Users\rory9\AppData\Local\insomnia-designer\app-2020.1.3\resources\app.asar\node_modules\isomorphic-git\dist\for-node\isomorphic-git\index.js:407)

The library we use doesn't rely on your local git so that shouldn't be affecting it. What scopes did you apply to the Access Token?

What scopes did you apply to the Access Token?

Appears it's not a scope issue. Just tried using read scopes and I can replicate the issue.

I used the repo scope Full control of private repositories and the same token worked on OS X version of the app - thanks replying

It seems like this is breaking due to the extra slash we're appending in the file path. Unix seems to ignore these extra slashes, which is likely why it's only breaking on Windows.

It seems like this is breaking due to the extra slash we're appending in the file path. Unix seems to ignore these extra slashes, which is likely why it's only breaking on Windows.

In my Windows PowerShell works, but not in Prompt.

Adding some notes from my investigation 🔬
Isomorphic-git internally does the path concatenation, and does not cater for double slashes. This also happens during cloning. https://github.com/Kong/insomnia/blob/08534699e73ad1a27640fab4a084620efc52c0df/packages/insomnia-app/app/ui/components/wrapper-home.js#L128-L130
Cloning at dir = '/' causes the double-slash issue reported in this issue;
Cloning at dir = '' defaults internally to ., causing another file-access related error (I wonder if this is ne-db-plugin related, and not filesystem related);
Cloning with dir not defined, causes a fatal error when isomorphic-git attempts to access it.
I'm still investigating this one further, but I think this is non-trivial.
I can successfully clone by setting the base directory to be, for example, /base. This however, fails to diff during commit. My understanding of ne-db-plugin.js is vague at the moment, but I think is because the plugin does not cater for a git sync directory where .insomnia is not the root.

Looks like cloning is failing due to a Windows and POSIX returning different results to the following code:
const filePath = path.normalize('//.insomnia/ApiSpec/');
const dirName = path.dirname(filePath);

Windows returns \\.insomnia\ApiSpec\, while maxOS returns /.insomnia. The key difference is between the directory name as opposed to the separator.
This difference impacts the directory assertion, resulting in the no such file or directory error.
https://github.com/Kong/insomnia/blob/08534699e73ad1a27640fab4a084620efc52c0df/packages/insomnia-app/app/sync/git/mem-plugin.js#L186


Release 7.1.0

Let's cut 7.1, as it has the feign.Param annotation needed to bridge to 8.x. Also includes OkHttp support and some bug fixes.

+1 i want the okhttp support

one last one... #152

Will release at 10:30 am pacific if no more changes

Ok all set. thanks, @rspieldenner!

released on bintray will be on mavenCentral whenever sonatype updates

thanks a million!


Replaced AirPort card and WiFi/Bluetooth not working with/without CAT

OS Version: Sierra 10.12.6
Mac model: MacBook Pro 13" Early 2011
Dongle or replaced card?: Replaced card
Used dongle/card: Broadcom: BCM94331PCIEBT4CAX

Hello,
I previously used CAT with some success with a dongle and then decided to replace my WiFi/BT card with the recommended BCM94331PCIEBT4CAX card from iFixit. Performed installation with no problems, started up fine, but now neither WiFi nor Bluetooth work now, with or without the CAT tool activated. WiFi searches for my network but cannot connect and prompts me to perform diagnostics, but I'm using ethernet so I know network is up. Bluetooth cannot connect, but works immediately with old dongle. Hardware is recognized in both cases. Same situation with or without CAT enabled. When enabled CAT both times, received this message: "IO80211Family.kext backup failed." Related?
System reports below. Is this a bad card? Software incompatibility? Many thanks for your help.
Bluetooth:
Apple Bluetooth Software Version:	5.0.5f4
Hardware, Features, and Settings:
Name:	john’s MacBook Pro
Address:	5c-96-9d-98-4b-ec
Bluetooth Low Energy Supported:	Yes
Handoff Supported:	No
Instant Hot Spot Supported:	No
Manufacturer:	Broadcom
Transport:	USB
Chipset:	20702A3
Firmware Version:	v154 c5903
Bluetooth Power:	On
Discoverable:	On
Connectable:	Yes
Auto Seek Pointing:	On
Remote wake:	Off
Vendor ID:	0x05AC
Product ID:	0x821D
HCI Version:	4.0 (0x6)
HCI Revision:	0x170F
LMP Version:	4.0 (0x6)
LMP Subversion:	0x229A
Device Type (Major):	Computer
Device Type (Complete):	Mac Portable
Composite Class Of Device:	0x38010C
Device Class (Major):	0x01
Device Class (Minor):	0x03
Service Class:	0x1C0
Auto Seek Keyboard:	Off
WiFi:
Software Versions:
CoreWLAN:	11.0 (1200.31)
CoreWLANKit:	12.0 (1200.31)
Menu Extra:	12.0 (1200.47.1)
System Information:	12.0 (1200.3)
IO80211 Family:	12.0 (1200.12.2)
Diagnostics:	7.0 (700.5)
AirPort Utility:	6.3.7 (637.6)
Interfaces:
en1:
Card Type:	AirPort Extreme  (0x14E4, 0xF5)
Firmware Version:	Broadcom BCM43xx 1.0 (<IP_ADDRESS>.26)
MAC Address:	5c:96:9d:98:4b:eb
Locale:	APAC
Country Code:	GB
Supported PHY Modes:	802.11 a/b/g/n
Supported Channels:	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140
Wake On Wireless:	Supported
AirDrop:	Supported
Status:	Not Associated
Steps done to try to fix the issue:

Installed beta version of CAT for Sierra
Renewed DHCP Lease (no effect, IP address, etc. not autofilled)
Reset PRAM and SMC (multiple times)
Uninstalled and reinstalled CAT (multiple times)

Update: yesterday started the computer in Diagnostic mode, which reported no trouble on the quick search, and then started the long search. I thought it was plugged in but here in the UK all outlets are switched, in this one wasn't switched on. The computer died and then when I restarted it in normal mode, both WiFi and Bluetooth were working. It went to sleep overnight and when I woke it up this morning, WiFi no longer worked, but Bluetooth seemed to be working. My keyboard would connect, but my mouse jumped between connected and not connected. Does this provide any clues to the issue? I know it's not strictly related to Continuity, but I'm posting because members of this community tend to replace Airport cards for the same reason I have, and so might have insights. Thanks!

Sorry to waste anyone's time, I'm pretty certain it's an antenna wiring problem, as WiFi reliably works with the screen tilted towards me and reliably cuts out with the screen tilted away. Closing this issue.


Update Authorization and Authentication as per guidelines

          The  _# Authorization and Authentication_ section in `info.description` needs to be updated to the latest version of the template defined in ICM  in all .yaml files - see the explanation in https://github.com/camaraproject/IdentityAndConsentManagement/issues/185

The template: https://github.com/camaraproject/IdentityAndConsentManagement/blob/main/documentation/CAMARA-API-access-and-user-consent.md#mandatory-template-for-infodescription-in-camara-api-specs
Originally posted by @rartych in https://github.com/camaraproject/ConnectivityInsights/issues/67#issuecomment-2301930789

duplicate issue. refer issue #91


Bazel equivalent of "make java"

Hello. What are the target(s) for building libjniortools.so and com.google.ortools.jar with bazel?

None. Non c++ languages are not supported. I do not now how to generate the
swig wrappers with bazel.
Le ven. 3 janv. 2020 à 20:08, radix-aw<EMAIL_ADDRESS>a écrit :

Hello. What are the target(s) for building libjniortools.so and
com.google.ortools.jar with bazel?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/1823?email_source=notifications&email_token=ACUPL3LHQRR5EMHPJF2C4B3Q36EMNA5CNFSM4KCQZ3UKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ID535DA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3OUMJ5J3YRVFHMXOC3Q36EMNANCNFSM4KCQZ3UA
.


Add parse_as_type function

Change Summary
Adds just the parse_as_type function from #812, along with some documentation.
The documentation may need some work; @samuelcolvin if you give me some direction on what you'd like I'd be happy to modify it. I also think it may make sense to flesh it out a little more
and/or place it on a separate "tools" page once the dump_as_type functionality is implemented.
Related issue number
Addresses minor parts of #811, but to close that issue the dump_as_type functionality will be more important.
Given the lengthy back and forth on #812 I figured it might make more sense to just start fresh and break the pull request into smaller chunks.
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

This doesn't seem to work with dataclasses, is it supposed to?

It should work if and only if you could put dataclasses as fields on a pydantic model.
I don't know whether @samuelcolvin would want to support that or not.

Is this a partial solution for #481 and what is missing?

Is this a partial solution for #481 and what is missing?

This is orthogonal to the points raised in that issue, but I think it would be nice if it could support pydantic dataclasses too. I'm not sure how I'd make that happen though. I think if you added the functionality discussed in that issue, it would probably make it easier to have the parse_as_type function handle pydantic dataclasses.

i like the tests, especially test_parse_as_type_preserves_subclasses and think it would be no problem to add functionality to achieve the same with dataclasses.
so correct me if I'm wrong: parse_as_type(obj, type(dataclass_or_model)) == parse_obj(dataclass_or_model, obj) ?

so correct me if I'm wrong: parse_as_type(obj, dataclass_or_model_type) == parse_obj(dataclass_or_model_type, obj) ?

Yeah, I ordered arguments based on what seemed intuitive to me from the function name parse_as_type -> parse obj as type type_), but I am happy to reverse if preferable. The other order would be more consistent with typing.cast, so maybe that's better.

Just waiting on https://github.com/samuelcolvin/pydantic/pull/958 to replace obj with __root__.

@ahirner Actually, to my surprise, it looks like this works out of the box with dataclasses. (I added a test.)
This will also handle the parse_file function.
I might hold off on implementing the to_json() function because we'll want to add dump_as_type from #811, and that may affect the best way to implement the to_json function. On the other hand, there should be a to_json function that doesn't depend on the type you are dumping, so maybe it's fine to add now.

I'm still not sure about parse_obj as a name, I understand why you chose it but:

It's not really that similar to BaseModel.parse_obj()
If you're new to pydantic it's less understandable than parse_as_typeor whatever

I guess I'd prefer parse_as_type() and parse_file_as_type(). (Or maybe better parse_object_as() and parse_file_as()). Thoughts?

I'm fine with that; it seemed similar to me since it is basically like the unbound version of the BaseModel.parse_obj classmethod (that doesn't need to have a BaseModel passed as the first argument). But I have no qualms with using different names.
I'd be in favor of parse_object_as and parse_file_as. I can change it to that if you confirm that's what you want. (If you want to think about it a little longer that's fine too.)

Sorry to be indecisive. Let's go with parse_object_as and parse_file_as.

@samuelcolvin I did the renames and added some docs; assuming you have no issues with the docs, I think this is just waiting now on changing obj to __root__, which requires #950
(To be clear, I'm fine with this whether we use __root__ or obj though; I don't know if there is a performance implication to using a custom root model for this, but I'm guessing not?.)


Overseas passports application centre address change in Nepal

The application centre address and opening hours in Nepal have changed.

Looks good to me.


The worker_name parameter and response value should use schema and enumerate all values @brucexc

In theory, the GI is unable to determine which workers are present.


Rewrites to /api are broken

What version of this package are you using?
1.6.0
What operating system, Node.js, and npm version?
Ubuntu 20.04, NodeJS 18.13.0, npm 8.19.3
What happened?
The same issue from #504. Rewrites to /api are not working when using this package.
What did you expect to happen?
Rewrites to /api works
Are you willing to submit a pull request to fix this bug?
No
Reproduction URL: https://stackblitz.com/edit/github-hcetcs-b5hkgf?file=next.config.js
Reproduction:

Navigate to /assets/image/og/test.png in the right window on your screen
You will see Error: socket hang up meaning that NextJS tried to use fallback and rewrite you to example.com
Comment out the line withNextTranslate(),
Restart Next app from terminal and navigate to /assets/image/og/test.png again
You will see api route response OKl

Thanks to the reproduction URL!
I think is related with this another old issue:  https://github.com/aralroca/next-translate/issues/822 using next-compose-plugins with next-pwa. I'm going to take a look for a solution!

One thing I have seen that rewrites do not take into account locals. Without the next-translate library, with the i18n configuration of Next.js it doesn't work either.
const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
});
const withPlugins = require('next-compose-plugins');
const withPWA = require('next-pwa');

const config = {
  i18n: {
    locales: ['en', 'de'],
    defaultLocale: 'en',
  },
  async rewrites() {
    return {
      beforeFiles: [
        {
          source: '/assets/image/og/:path*',
          destination: '/api/og?locale=en',
          has: [
            {
              type: 'host',
              value: 'localhost',
            },
          ],
        },
      ],
      fallback: [
        {
          source: '/api/:path*',
          destination: `http://example.com/api/:path*`,
        },
      ],
    };
  },
};

module.exports = withPlugins(
  [
    withPWA({
      pwa: {
        dest: 'public',
        disable: process.env.NODE_ENV === 'development',
      },
    }),
    withBundleAnalyzer,
  ],
  config
);

@aralroca could you please create an issue at the origin repository of this issue? Please let me know if you do so, I will try to provide any context and configs I have.

@abriginets the origin repository is Next.js core. Here is all the documentation about i18n routing (all this part is from the core of Next.js not from the library): https://nextjs.org/docs/advanced-features/i18n-routing
Please add the issue in the Next.js repository if you consider that is an issue. Review the way of using the rewrite, there are properties like locale: false, maybe this can solve your problem.


CreepJS cannot detect latest build of Puppeteer Extra Stealth<EMAIL_ADDRESS>

CreepJS is able to detect the previous build of Puppeteer Extra Stealth (puppeteer-extra-plugin-stealth@2.9.0), but cannot detect the latest build<EMAIL_ADDRESS>which was released on June 20.
Previous build (puppeteer-extra-plugin-stealth@2.9.0):

Latest build (puppeteer-extra-plugin-stealth@2.10.0):

Here's a simple bot to test this:
// npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

puppeteer.launch({ headless: false }).then(async browser => {

  let page = await browser.newPage();
  await page.goto("https://abrahamjuliot.github.io/creepjs/");

});

Thank you @treyvanes. Support added.

I am using puppeteer-extra-stealth version ^2.11.1. But still, creepjs is able to detect my bot. any recommendations?

There are experts who specialize in finding solutions. I'm just a cat laying out some cheese on my mousetraps. You can still do a lot with stealth plugin. I would not be too concerned it gets detected here. This is just a specialized test only to show detection is possible.

is 80 percent stealth okay ?

why does they blur trust score and lies detection in puppeteer chromium ? like this.

can you please tell me why is the trust score and lie detection is blurred ?

80% is okay. I'll take a look. Indefinite blur might be due to an error. Do you have any standard APIs disabled? What do you see on the console?

getting this on console.

yes

can you help me with this error? its getting lies because of this error "failed object toString error"

The console output looks okay. "error" just means we simulated a specific error to analyze and test against. The browser then produced something unexpected. It's normalized, named, and shared in this case. I don't recommend changing it, but I don't recommend much, aside from owning a cat. I'm only expert in knowing the importance of owning a cat.
I can't speak to the hang on the API fetch, but I need to implement a timeout and throw an error there. If it's occurring on your system on all Chrome browsers, it might be a network issue (maybe DNS or IP network?).


Call number replacement (Reg Exp) not working as expected

Hello,
We have a problem with the Call number replacement (Reg Exp) as it seems to not working as expected (or as we understand it should be working).
We used a reg exp with multiple capturing groups and every match are correct.
To have our label printed with the correct display, we need to use the conditional replacement in the substitution field, but the fields don't compile the option and display the full char chain.
Normally, the expected behavior should be as the following.
Call number displayed on Alma
XA 394/1 82/89"18"MEL1=40
Reg Exp :
(\s+)|("[\d]+")|(=)|(.)|("[\d]+/[\d]+")
Substitution Reg exp :
${1:+\r}${2:+\r$2\r}${3:+\r$2}${4:+\r$2}${5:+\r$2}
Expected Result :
XA
394/1
82/89
"18"
MEL1
=40
Actual Result :
XA${1:+\r}${2:+\r\r}${3:+\r}${4:+\r}${5:+\r}394/1${1:+\r}${2:+\r\r}${3:+\r}${4:+\r}${5:+\r}82/89${1:+\r}${2:+\r"18"\r}${3:+\r"18"}${4:+\r"18"}${5:+\r"18"}MEL1${1:+\r}${2:+\r\r}${3:+\r}${4:+\r}${5:+\r}40
Can you explain what are we doing wrong? Or is there a real issue with the Call Number replacement Reg Exp?
What can we do to obtain the expected result ?
Thank you for your help!

@Gods-and-Monsters, thanks for the issue. We'll investigate. The regular expression parser didn't gain much traction; you are probably the first site giving it a workout!

Hi @Gods-and-Monsters. So, yes, have to temper expectations here. The current implementation is a simple string replacement. Given the regex pattern (Call number pattern) and regex flags (Call number flags, like g (global) and i (case-insensitive), replace the matching string (pattern) in the call number with the replacement characters (Call number replacement). To get the behavior you'd like is an enhancement.

Hi @mgobat ,
If an enhancement is possible, that would be lovely! Thank you very much!


Model extending and attributes

Lunar version: 1.0.0-beta.1
Laravel Version: 11.0.87
PHP Version: 8.3.1
Database Driver & Version: Mysql 8

Expected Behaviour:
When using model extending attributes would still be available on the product and product variant view.
Actual Behaviour:
When you go to the views the are no attributes.
Steps To Reproduce:
Set up lunar, set up an attribute, then after extend your model.
Internally Lunar is using product and product_variant to look them up, which no longer links with extending. When I switch them manually in the database to be \App\Models\Product (etc) they return, except that if I change them all I get no attributes as there is obviously a check somewhere to only display if there are any.
I would have expected that product and product_variant attributes were maintained.

Things seem got buggy after upgrading from the last Alpha version to first Beta version.
Like you I also extended the product class to add custom scopes. I lookup every table and change product to App\Models\Product then it seems working again, not sure if it'd cause other issues tho.

I've experienced this to. The getMorphClass method in HasModelExtending seems to be the method responsible.
This is what it is now:
public function getMorphClass(): string
{
    $morphMap = Relation::morphMap(); // <-- This part seems responsible. It only gets a map of all the relations of the current model.

    if (! empty($morphMap) && in_array(static::modelClass(), $morphMap)) {
        return array_search(static::modelClass(), $morphMap, true);
    }

    return parent::getMorphClass();
}

And this is what it was in the last alpha
public function getMorphClass(): string
{
    $morphClass = ModelManifest::getMorphClassBaseModel(get_class($this)); // <-- This seems more logical to me than the new approach. But I can imagine the new approach isn't there for nothing.

    return $this->morphClass ?: ($morphClass ?? parent::getMorphClass());
}

@ryanmitchell Are able to test against the latest merge #1944 to see if this fixes the problem for you? 🙏

@alecritson I've since updated all the data to point to our model class paths, so I can't verify it I'm afraid.

@alecritson I've since updated all the data to point to our model class paths, so I can't verify it I'm afraid.

the next release which fixed this in #1944 might break your app, you need to revert the data back to the relationship alias


Strange flip in metrics

I have a test cluster with constant resources, marathon with constant tasks, so I expect metrics incomingOffers to be constant(relatively). (All slaves run stably, no task fail, restart, no new task launch happen during test)
But my metrics showed on graphite is strange, incomingOffers flip periodically !!!

red: incomingOffers.m1_rate,  green: incomingOffers.m5_rate,  blue: incomingOffers.m15_rate

incomingOffers.m15_rate
I don't know how to explain this.
Anyone have the same problem? Any ideas why this happens?
Environment:
Marathon version: 0.11.1 with graphite reporter cherry-picked
Mesos version: 0.25.0
marathon decline_offer_duration: 120s
Thanks.

Hi @fengyehong, thanks for the interesting question. I'll have to do some digging on how Mesos allocation cycles work to get you a full answer.
Just to clarify, are you seeing any aberrant behaviour? Why do you regard this as a problem?

Just had a chat with @gkleiman who kindly clarified a few things for me. Basically there are two slightly odd things about what you're seeing. One is the regularity of the shape, which you wouldn't normally expect. The other is the length of time over which the offers increase - this would normally be rather shorter.
However without knowing more about your environment and workload, it's hard to say whether these numbers are unexpected.

Thanks, @philipnrmn
My environment has three nodes, A, B, C
A,B,C construct a zk cluster, used by mesos and marathon
A,B,C works as mesos master
A,B,C works as mesos slave
A works as Marathon master, in ha mode
Mesos: 0.25
Marathon: I cherry-picked graphite reporter to 0.11.1, changed report rate to TimeUnit.MINUTES, report interval is 60s
Graphite: retention with each point represents 60s
OS: Openstack VM Centos 7-1503, no ntpd service running
I think the workload is fairly low:
a. the cluster is untouched several days, so no manual operation
b. there are three httpd containers running in docker, with only workload from health check(with default interval 10s)

Just to clarify, are you seeing any aberrant behaviour? Why do you regard this as a problem?

And i didn't notice any aberrant behavior, everything looks good : (
Honestly, i don't know whether this is a problem, i just noticed it and confusing~~

Hi!
I think this is a normal pattern for the interaction of Marathon and Mesos, so there is no cause to be concerned. Please allow me to explain:

Mesos sends offers to Marathon in batches, and Marathon will decline unneeded offers. The first batch represents every resource in the cluster.
When modern versions of Marathon decline offers, they apply a filter against that agent to exclude all offers from that agent for several minutes (default 120 seconds).
When a new Deployment is detected, Marathon will revive all offers, allowing the whole batch of agents to make new offers.
Marathon will dispatch tasks as needed against these revived offers. All unused offers are declined, and the agents which declined offers come from are filtered.
In the event that the deployment continues (i.e. there's more tasks in the deployment than can be assigned in a single offer), more tasks will be launched on the remaining (read: not yet filtered) agents.
This cycle continues until all tasks in the deployment are dispatched. As you can imagine, each offer round will contain fewer agents, as incrementally more agents have been declined in each previous round. This causes the "draining" effect.
After the decline_offer_duration you should see a spike of new offers come in, and each offer cycle thereafter will contain fewer.
Because Marathon is able to revive offers (meaning remove its agent filters from Mesos), it can be sure that any dormant or filtered offers can be renewed almost instantly.

Let us know if you have any other questions.

Hi, @jgarcia-mesosphere

In my case, as marathon is left untouched, no revive offer happens.
Just a remind, the flip cycle is about 24 hours, far greater than decline_offer_duration(120s)
The shape is not a "draining" effect, it goes to the contrary

There is no expectation that this value will be consistent at this time. The graphs you've shown are consistent with a normal, healthy cluster.

Filters expire, even in the absence of revive offers.
We have no evidence that your decline_offer_duration is set to Marathon's default; many users set it to several hours or even days.
The specific direction of motion will vary depending on the way that deployments have been done in a cluster as well as the cluster size.

It's not unlike throwing a rock in a still pond - there will be ripples that bounce out in patterns, and they will rebound from the walls of the pond and make more patterns. In our pond, however, there's no natural friction to moderate these ripples, so they continue forever (or until revive_offers occurs, of course).

I just noticed com.codahale.metrics.Meter.m##_rate is not a simple moving average(SMA, which i expect), it is an exponential weighted moving average(EWMA), used for performance measurement

In my test case I expect offer receiving rate to be constant, I mean SMA. I'm now using graphite function to calculate my SMA, like: ?target=movingAverage(derivative(***.incomingOfferCpus.count), my_decline_offer_duration)

By now, I'm not very sure about the accurate meaning of incomingOffers.m##_rate

Thanks for replying, everyone.


Fix condition for evaluating crash loops

Looking into some cases where this triggered too slow for something that should have caught the startup failure loop. Trying to remember why this was a ! ...

🚢

🚢


domain validator fails for fully qualified ("absolute") domain names

>>> import validators
>>> validators.domain('foo.com')
True
>>> validators.domain('foo.com.')
ValidationFailure(func=domain, args={'value': 'foo.com.'})
>>>

Reference: https://tools.ietf.org/html/rfc1034

When a user needs to type a domain name, the length of each label is
omitted and the labels are separated by dots (".").  Since a complete
domain name ends with the root label, this leads to a printed form which
ends in a dot.  We use this property to distinguish between:

a character string which represents a complete domain name
(often called "absolute").  For example, "poneria.ISI.EDU."

a character string that represents the starting labels of a
domain name which is incomplete, and should be completed by
local software using knowledge of the local domain (often
called "relative").  For example, "poneria" used in the
ISI.EDU domain.

Discussion: http://www.dns-sd.org/trailingdotsindomainnames.html

I've recently run into this issue and actually want it to fail on those with a trailing dot.  Perhaps a configurable parameter to allow us to determine how to react to such entries
validators.domain('foo.com.', trailingdots=True)
also consider this in URLs:
validators.url('http://foo.com./content', trailingdots=True)

As @mschiffm mentioned, the trailing dot is default allowed, so if you want to make it optional then the failing should be optional:
validators.url('http://foo.com./content', trailingdots=False)


tried to compile the simple array example

i get this error....

In file included from C:\Users\Fahr Radl\Documents\Arduino\esp32pwm\esp32pwm.ino:33:0:
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h: In member function 'bool ESP32TimerInterrupt::setFrequency(float, esp32_timer_callback)':
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:296:100: error: 'timer_isr_callback_add' was not declared in this scope
timer_isr_callback_add(_timerGroup, _timerIndex, _callback, (void *) (uint32_t) _timerNo, 0);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h: In member function 'void ESP32TimerInterrupt::detachInterrupt()':
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:338:66: error: 'TIMER_INTR_T0' was not declared in this scope
timer_group_intr_disable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:338:82: error: 'TIMER_INTR_T1' was not declared in this scope
timer_group_intr_disable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h: In member function 'void ESP32TimerInterrupt::disableTimer()':
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:347:66: error: 'TIMER_INTR_T0' was not declared in this scope
timer_group_intr_disable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:347:82: error: 'TIMER_INTR_T1' was not declared in this scope
timer_group_intr_disable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h: In member function 'void ESP32TimerInterrupt::reattachInterrupt()':
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:357:65: error: 'TIMER_INTR_T0' was not declared in this scope
timer_group_intr_enable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:357:81: error: 'TIMER_INTR_T1' was not declared in this scope
timer_group_intr_enable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h: In member function 'void ESP32TimerInterrupt::enableTimer()':
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:367:65: error: 'TIMER_INTR_T0' was not declared in this scope
timer_group_intr_enable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
C:\Users\Fahr Radl\Documents\Arduino\libraries\ESP32_PWM\src/ESP32_PWM.h:367:81: error: 'TIMER_INTR_T1' was not declared in this scope
timer_group_intr_enable(_timerGroup, (_timerIndex == 0) ? TIMER_INTR_T0 : TIMER_INTR_T1);
^
exit status 1
Error compiling for board ESP32 Dev Module.

I compile without any problem. Have a look at Prerequisites and be sure to install the correct ESP32 core v2.0.1
Also have to follow the instruction to post issue, such as Arduino IDE and core version you're using, otherwise, the issue won't be answer next time.


NUnit and NCrunch are not ignored during DefaultNancyBootstrapper.AutoRegister

I have just tracked a large amount of slow tests down to this.
xunit and other test frameworks are ignored, but not nunit and ncrunch. ("MonoDevelop.NUnit" is excluded, but not regular "NUnit").
They are commonly used, make no sense to have auto discover anything from them, and though I can fix it for my project it would be a general benefit to fix for all users.
e.g. this is where "xunit" is ignored:
/src/Nancy/DefaultNancyBootstrapper.cs:
asm => asm.FullName.StartsWith("xunit", StringComparison.Ordinal),

I'm happy to make a PR if you agree?

Happy to take a PR :)

Closed with #2402


Make uid/gid configurable & change group of files

Description
This PR contains three related changes for UID/GID handling. I decided to lump these together because they are related but if whoever reviews this feels more comfortable I can also split this in multiple PRs.

Make user id & group configurable
This also switches to use numeric UIDs everywhere instead of hardcoding a name (e.g. stackable)
Change ownership of all things belonging to stackable so that they are owned by the root group (gid = 0)

Configurable user name, uid and gid
Using the new functionality to support global arguments this extracts the user id, user name and gid into arguments that can be changed easily.
They still stay at the 1000 we use so far even though that is not optimal and needs to be changed as well.
But because I don't know if any operators make any assumptions about the uid/gid (and fsgroup which is not handled here) I decided to split this into two steps.
This PR is step 1: Make things more configurable, step 2 will follow later.
Detailed reasoning
Using a hardcoded uid for our stackable user is a good idea in theory, in practice the id 1000 should be avoided.
This is because the users from Docker containers are mapped to users on the underlying host OS. Some OSes start "real" user ids at 1000 (or 500) and reserve everything before that to "system" users. User 1000 therefore has a good chance of being mapped to a real user that exists on the underlying system, which should be avoided.
The easiest way of doing so is by picking an arbitrarily large (more or less) number to statically use in our Dockerfiles.
This is exactly what OpenShift does by default. It picks a "random" UID from a range of UIDs (in reality it picks the first one from a range). The UID is larger than <IP_ADDRESS> by default.

[!NOTE]
There is a bug/problem and the number cannot be too large. The linked issue does include a workaround which did apply to our base images.

[!NOTE]
Kubernetes 1.30 contains user namespaces as a beta feature. Expected to be moved to GA at a later point but at the moment not for 1.32 so the earliest would be 1.33 (around April/May 2025) and it would be another 1,5-2 years before we could use it.

Numeric UIDs

[!NOTE]
This is to support securityContext.runAsNonRoot for users wanting to use it or in preparation for the future where we might want to enable it ourselves

The USER statement in a Dockerfile ends up in an image's metadata:

This user is used as the default user when an image is started using plain Docker:
docker run -it --entrypoint bash docker.stackable.tech/stackable/druid:30.0.0-stackable0.0.0-dev

It is also the default when used as a plain Pod in Kubernetes:
kubectl run test --image=docker.stackable.tech/stackable/druid:30.0.0-stackable0.0.0-dev --rm=true --restart=Never --tty=true --stdin=true -- bash

In OpenShift this is what it looks like as an admin user (they are exempt from SCCs):
kubectl run test --image=docker.stackable.tech/stackable/hbase:2.6.0-stackable0.0.0-dev --rm=true --restart=Never --tty=true --stdin=true --namespace test -- id

Warning: would violate PodSecurity "restricted:v1.24": allowPrivilegeEscalation != false (container "test" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "test" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "test" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "test" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
uid=1000(stackable) gid=1000(stackable) groups=1000(stackable)

Here is the same command run as a non-admin user (note the use of a non-1000 ID means that we bypass the SCC warning):
oc run test --as developer --image=docker.stackable.tech/stackable/hbase:2.6.0-stackable0.0.0-dev --rm=true --restart=Never --tty=true --stdin=true --namespace test -- id
uid=1000740000(1000740000) gid=0(root) groups=0(root),1000740000
pod "test" deleted

If we - or someone else - want to enforce that a user is non-root using the securityContext.runAsNonRoot field it will not work as Kubernetes has no way of mapping the string stackable to a UID (it is not aware of the implementation details inside the container, it could call out to LDAP for all it knows). Therefore this combination (non-numeric UID) and runAsNonRoot is forbidden and results in an error:

This PR, therefore, switches all Dockerfiles to use the numeric UID instead of the username.
Group of all files
To support our images to run as an arbitrary user we need to make sure that arbitrary users can read, write and execute all files and commands that user stackable can as well.
The container user is always a member of the root group and we're applying the suggested steps.
Definition of Done Checklist

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
Please make sure all these things are done and tick the boxes

- [ ] Changes are OpenShift compatible
- [ ] All added packages (via microdnf or otherwise) have a comment on why they are added
- [ ] Things not downloaded from Red Hat repositories should be mirrored in the Stackable repository and downloaded from there
- [ ] All packages should have (if available) signatures/hashes verified
- [ ] Add an entry to the CHANGELOG.md file
- [ ] Integration tests ran successfully

TIP: Running integration tests with a new product image
The image can be built and uploaded to the kind cluster with the following commands:
bake --product <product> --image-version <stackable-image-version>
kind load docker-image <image-tagged-with-the-major-version> --name=<name-of-your-test-cluster>

See the output of bake to retrieve the image tag for <image-tagged-with-the-major-version>.

Thanks @Techassi. Good catch. I'll update it now.

This is ready for review.
I did not run any tests yet but I'll try to to that this week.

Thank you! I'll let the tests for all operators run before I merge.

Tests:

Airflow: not done yet
Druid: not done yet
Hadoop: not done yet
HBase: not done yet
Hello World: not done yet
Hive:not done yet

This is now not ready to merge anymore because it first needs https://github.com/stackabletech/actions/pull/2 to be merged and then an update to the actions.

All tests pass. I now just need to update the action.

Action has been updated. This is ready for review again.

Followup PR with more products: https://github.com/stackabletech/docker-images/pull/890

Release Notes

Our Docker images now exclusively make use of numeric user IDs in USER statements allowing the use of securityContext.runAsNonRoot
The group id of all files relevant to our products is now set to 0. This allows the images to be used with any arbitrary user as every container user will always belong to the root group (0). This is especially useful on OpenShift when trying to move to the restricted-v2 SecurityContextConstraint (SCC), Stackable currently defaults to the nonroot-v2 SCC but we plan on migrating to restricted-v2 in the future


Create calleson.md

Creating a bio for calleson

Commenting by tdEmpl64; nice request--have a nice day!

Looks great. Merge it.


Create Jsonix service marshaller to XML

Service method to go from JSON to Geodesyml
Current debug to do this after Geodesy to JSON and printing to console

Rebase

Superfluous code removed and rebased.