Changes to handle the double precision errors

Currently, there are some data verification failures for near equal values, this PR is to ignore them as data verification failures and to mark as a new type data precision failure if they are failing for the precision value, also it has changed the precision value to a more accepted value and the following changes as well:-

parameterize the precision value(FEPS ksay)
2)checking for 2 more precision values for the same value in case of an error (i.e. FEPS * 10 AND FEPS * 100)

The results previously were for eg:-
Query: /root/drillAutomation/master/framework/resources/Advanced/tpch/tpch_sf1/sanity/maprdb/json/query10_sum.sql
select sum(L_DISCOUNT) from lineitem
Baseline: /root/drillAutomation/master/framework/resources/Advanced/tpch/tpch_sf1/sanity/maprdb/json/query10_sum.e_tsv
Expected number of rows: 1
Actual number of rows from Drill: 1
Number of matching rows: 0
Number of rows missing: 1
Number of rows unexpected: 1
These rows are not expected (first 10):
300057.3300002678
These rows are missing (first 10):
300057.3299997481 (1 occurence(s)
After Proposed Change:-
[PASS] (10.51 s) /root/drillAutomation/master/framework/resources/Advanced/tpch/tpch_sf1/sanity/maprdb/json/query10_sum.sql
There is only one failure in data verification remaining which looks like an actual failure:-
These rows are not expected (first 10):
able	AAAAAAAAABBAAAAA	5201	1	1	1	1	1	1	1
able	AAAAAAAAABBAAAAA	5202	1	1	1	1	1	1	1
able	AAAAAAAAABBAAAAA	5203	1	1	1	1	1	1	1
These rows are missing (first 10):
able	AAAAAAAAABBAAAAA	5201	1.02596238783322112347	0.92348065982403962962	1.03775175070487385991	1.1958496976011165	0.89227580926364466986	0.93194781639240754520	1.4127765679517665 (24 occurence(s))
able	AAAAAAAAABBAAAAA	5202	1.1275577509523670	0.85947464754000782300	0.68491126287602118020	0.96069716471214886353	1.00142901006058381877	1.10846217231602910574	1.1287102632635932 (49 occurence(s))
able	AAAAAAAAABBAAAAA	5203	1.01586468414891918392	0.95815542511844994124	0.93023648307049253221	0.95005761509395845600	0.83205349185674132545	0.94734936141143506888	0.93014764945033420991 (27 occurence(s))

@kedarbcs16 (cc: @Agirish )
what is the status of the precision check ? @agozhiy also had PR #527 that does the same. We should close one if the other is ready to be merged.

@kkhatua / @Agirish do you know the status of this PR? Will it be merged?


Reading/writing datasets in COCO, VOC, KITTI, BDD, CVAT, and TFRecord formats

Dataset import/export

adding support for importing and exporting datasets in a bunch of common formats:

COCO (fiftyone.types.COCODetectionDataset)
VOC (fiftyone.types.VOCDetectionDataset)
KITTI (fiftyone.types.KITTIDetectionDataset)
Image classification TFRecords (fiftyone.types.TFImageClassificationDataset), including support for reading/writing sharded TFRecords
TF Object Detection API TFRecords (fiftyone.types.TFObjectDetectionDataset), including support for reading/writing sharded TFRecords
CVAT image (fiftyone.types.CVATImageDataset)
Berkeley DeepDrive (fiftyone.types.BDDDataset)

adding Dataset.add_dir() and Dataset.from_dir() methods that allow for convenient ingestion of datasets on disk in any of the above formats into FiftyOne datasets
updating Collections.export to support export of samples in all available dataset types listed above
added a fiftyone.utils.data.convert_dataset() method that allows for convenient conversion of datasets on disk between available formats (under the hood a non-persistent FO dataset is created as the intermediate type)

Core data model

added the notion of fiftyone.core.labels.Attributes, including CategoricalAttribute, NumericAttribute, BooleanAttribute, and VectorAttribute subclasses. These are used to store attributes of various types that can now be attached to fiftyone.core.labels.Detection instances in a new attributes dictionary field to represent object attributes. These were necessary to represent attributes in dataset types such as COCO, VOC, CVAT, etc

CLI additions

fiftyone convert to convert datasets on disk between any supported formats
fiftyone datasets head/tail to print the head/tail of datasets
fiftyone datasets stream to stream the samples in a dataset to the terminal with a less-like interface. I think this is pretty cool!
fiftyone datasets export to export datasets in any available format

Dataset Zoo

adding full support for downloading COCO 2014/2017 via the Torch backend

Documentation

splitting the dataset creation example into the three guides below. This probably breaks the doc building process, but this "tutorial" is being migrated to the user guide/recipes anyway, so it's not important

zoo datasets: significantly expanded description of interacting with the dataset zoo
datasets on disk: a new section that provides examples of importing datasets in all available formats
custom datasets: this describes how to add samples to a dataset in various formats using Dataset.add_*_samples. I'm working on updating this to remove the need for all of these * methods. Stay tuned on that

added a CLI guide at docs/cli_guide.md that provides a raw dump of the CLI documentation. We'll likely want to upgrade this somehow to create the final "CLI documentation" in the docs

Cleanup

removing the fiftyone.experimental package, which now contains nothing of interest (import/export was the last thing there that needed to be properly implemented in the official package)

As to BDDDataset, I need to convert the initial data structure to the below data structure, right? But I have a question, the initial label.json is independent, so as .json, if I have 50k images to covert to the dataset, do I need the 50k label.json to one labels.json? If yes, then the labels.json is huge and the process is not flexible.
<dataset_dir>/
data/
.
.
...
labels.json

Another question with the bdd100k dataset, the inner structure between the bdd100k and BDDDataset is different. So I need to rewrite the labels.json from scratch, right?

Hi @qingzi02010, I'll clarify a couple things for you that should help.

The BDDDataset format is a specification that we define for reading/writing arbitrary datasets (other than the official BDD100k dataset) in a format similar to how the BDD authors distributed the BDD100k dataset (more on that next). As you mention, the spec requests that datasets of this kind be arranged on disk as follows:

<dataset_dir>/
    data/
        <filename0>.<ext>
        <filename1>.<ext>
        ...
    labels.json

You raise a good point that labels.json may be large if there are many images. This would apply to other formats like COCO, CVAT, etc. as well, where the labels are stored in a single JSON/XML file. I'll make an issue to consider supporting sharded labels files in these cases.

We provide support for loading the BDD100k dataset itself via the Dataset Zoo. You can do that as follows:

import fiftyone.zoo as foz

# Parse the raw download in `source_dir`
foz.download_zoo_dataset("bdd100k", source_dir="/path/to/bdd100k-download-folder")

# Load the validation split into FiftyOne
validation = foz.load_zoo_dataset("bdd100k", split="validation")

Ordinarily, running the download_zoo_dataset() will download the source files from the web and wrangle them into a format that FiftyOne understands. In the case of BDD100k, you provide the path to the raw download of the BDD100k files that you downloaded from https://bdd-data.berkeley.edu/login.html via the source_dir argument, and the command will take care of wrangling the data into a known format for FiftyOne.
The description below explains what format source_dir should be in:
zoo_dataset = foz.get_zoo_dataset("bdd100k")
print(zoo_dataset.__doc__)

The Berkeley Deep Drive (BDD) dataset is one of the largest and most
diverese video datasets for autonomous vehicles.

The BDD100k dataset contains 100,000 video clips collected from more than
50,000 rides covering New York, San Francisco Bay Area, and other regions.
The dataset contains diverse scene types such as city streets, residential
areas, and highways. Furthermore, the videos were recorded in diverse
weather conditions at different times of the day.

The videos are split into training (70K), validation (10K) and testing
(20K) sets. Each video is 40 seconds long with 720p resolution and a frame
rate of 30fps. The frame at the 10th second of each video is annotated for
image classification, detection, and segmentation tasks.

This version of the dataset contains only the 100K images extracted from
the videos as described above, together with the image classification,
detection, and segmentation labels.

**Manual download instructions**

This dataset requires you to download the source data manually. You must
register at https://bdd-data.berkeley.edu/ in order to get the link to
download the dataset.

After extracting the download, you will find contents similar to::

    bdd100k/
        labels/
            bdd100k_labels_images_train.json
            bdd100k_labels_images_val.json
        images/
            100k/
                train/
                test/
                val/
        ...

You must provide the path to the above ``bdd100k/`` folder when loading
this dataset.

Dataset size:
    7.1GB

Source:
    https://bdd-data.berkeley.edu

Args:
    source_dir (None): the path to the downloaded ``bdd100k/`` folder on
        disk
    copy_files (True): whether to move (False) or create copies (True) of
        the source files when populating the dataset directory

OK. I need to process the initial image, so the fiftyone-zoo-dataset zoo is not suited for me. So I had better wait for the sharing label method, although I can not understand how to share the label.json. Thanks very much!


Prepping fly for rebuild

@miroswan Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Usage at runtime?

I noticed the API documentation was rather forgotten which is kind of a regular occurrence for open source I've noticed.
Is there any plans to expand and better document how to implement and use Realtime CSG?
As a programmer of 25 years and am having trouble piecing this together. I also don't understand why it can't just be made to work nearly identical as it does in the editor, that would be a brilliant feature!
Curious if this area could get some love. Cheers!

Damn...
https://github.com/LogicalError/realtime-CSG-for-unity/issues/7#issuecomment-244211321
Zero count runtime csg libraries for unity...

As was stated, there are currently no plans to add runtime support. Runtime support is planned for Chisel, but Chisel as a whole is currently still in early development, and not quite ready for production yet.


Restoring Group Members isn't mentioned here

This is great for groups which are outright deletions but what about when the members of a group are removed either by a person or programmatically. How do we see what group X looked like, last week?

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

ID: 15f3d6f9-06fa-f9f8-233d-97b239153e45
Version Independent ID: bdac0301-26d3-d52c-c883-3e588ed55296
Content: Restore a deleted Office 365 group - Azure AD
Content Source: articles/active-directory/users-groups-roles/groups-restore-deleted.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@gbollardgit Thank you for your query. We will investigate and update this thread.

@gbollardgit WE checked this and currently the functionality is not available by design. You would have to programmatically store the group state multiple times and store this information to later cross reference it with the list of members to find out which members were added or removed. I would suggest you to open a Uservoice feature request . It is periodically reviewed by the product group and the feature request will be considered accordingly. We will now close this issue. Should you have any further queries , please let us know and we will hep you further.
Thank you.


feat(dashboard): add toast feedback to dashboard actions

SUMMARY
This PR adds new toast messages as a feedback to user actions in Dashboard.

Success toast when user refreshes a chart
Success toast when user refreshes a dashboard
Success toast when user sets a refresh interval for dashboard
Success toast when user edits dashboard properties in Edit mode

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
https://user-images.githubusercontent.com/15073128/150378408-ff0b8711-66ef-404f-b4cb-0692b3b6591c.mov
TESTING INSTRUCTIONS
Perform the actions listed in summary and verify that success toasts show up
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

CC @yousoph @rusackas
https://app.shortcut.com/preset/story/35386/dashboards-system-feedback

/testenv up

@jess-dillard / @kasiazjc if you feel like taking a look to validate from the design side, you can check the ephemeral environment link above. :)

@rusackas Looks good to me!


Add baseof.html layout to docs

For #28479
Adds a base layout used by most other layouts. Also adds a base "redirect" layout to avoid some duplication.

Biggest sticking point here is body_override.
Seems like hugo doesn't like having an attribute defined like this:
<body {{ block "body_attribute" . }}{{ end }}>

Since this is used just for the class attribute, you could add a class override like this:
<body class="{{ block "body_class" . }}{{ end }}">

But then you have <body class=""> on most pages. The issue indicates that you may want to add a body class for most pages anyways, so if this is a preferable approach let me know.
Preview: https://deploy-preview-31608--twbs-bootstrap.netlify.app/

@NotWoods Thanks for the PR. Can you rebase this please?
@regisphilibert could you also have a quick look please?

But then you have <body class=""> on most pages. The issue indicates that you may want to add a body class for most pages anyways, so if this is a preferable approach let me know.

Indeed, I'd like to always have a body class, but maybe we should tackle that later. My idea was to has a body class automatically generated based on the layout used and page's file path (with slashes and the extension removed).
I think your patch is a good start and can land as is for now :)

BTW it seems the example.html is left out.

I changed it around to use a block for the class, and that can be expanded upon later to generate a class name from the page path. example.html is intentionally left out because the layout is unique and doesn't share much with the other pages.

I changed it around to use a block for the class, and that can be expanded upon later to generate a class name from the page path. example.html is intentionally left out because the layout is unique and doesn't share much with the other pages.

I'll revert the change since it doesn't make sense to have this unless it's ready.
About examples, I still think we could reuse some of the partials, but I'll leave this to explore later. Like scripts.html and try to generate the placeholder inline CSS from Sass instead of manually hardcoding its output.

I'll do a little more testing later and merge this. Thanks for your contribution(s)!

@NotWoods can you apply this against my v4-dev-xmr-hugo branch too please? The only difference is the meta viewport tag and the fact that we don't include footer.html in the docs layout.

#32192


Decentral Registry Update to 24.05 Release

As everyone,
I want to update the Registry to the R24.05 state,
so that a working System exists.
Link

child of eclipse-tractusx/sig-release#446
relates to https://github.com/eclipse-tractusx/traceability-foss/issues/599

Hints / Details

https://github.com/eclipse-tractusx/sldt-digital-twin-registry/releases/tag/digital-twin-registry-0.4.9-RC2
Currently the info is, that no API Changes are to be expected on data consumption side
On Data Provisioning side we shall check for changes during PI12 and see how that affects our IRS Product
Feature
https://github.com/eclipse-tractusx/sldt-digital-twin-registry

Outcome / Acceptance Criteria

Acceptance Criteria

[ ] Version for R24.05 is integrated in the IRS
[ ] IRS job is running successfully
[ ] Asset Adminstration Shell v3.1 s fully supported

Out of Scope

...

Remove status "BLOCKED" as new R24.5 state of dDTR is present

Planning 2:

update Registry on DEV and test the Testdata upload and IRS flow
I dont expect breaking changes, but if something occurs, fix it

pull request: https://github.com/catenax-ng/tx-item-relationship-service/pull/829

both PRs approved and merged

Test

Import Insomnia Collection https://github.com/catenax-ng/tx-item-relationship-service/blob/main/local/testing/request-collection/IRS_Request_Collection.json

@ds-ext-kmassalski it is incomprehensible to me that the submodel descriptors are dependent on the added aspects. This does not seem to be implemented correctly.

@jzbmw
For missing aas standard conformity, I have created a new issue https://github.com/eclipse-tractusx/item-relationship-service/issues/510
The functionality is implemented as expected.
Ready for PO acceptance.


[Docker Desktop] Add installer to Flathub and Snap Store for Linux

Tell us about your request
It would be great if Docker Desktop for Linux were available as a flatpak app that is distributed on flathub.org
Apps that offer flatpaks include: podman, vs code, pycharm, sublime, slack, chrome, postman, firefox, spotify, etc.
https://flathub.org/apps/io.podman_desktop.PodmanDesktop

What problem does this solve

End User:There is a lot of friction in the install process for entry-level users. For example, before the desktop app can be installed, users have to add the docker repo and install several dependencies. Sometimes I get an error 85% of the way through installing these dependencies and decide to nuke my system. In contrast, a flatpak could be installed with one click.

Internal Developer:There are many Linux distros. Flatpak provides a way to ensure cross-distro compatibility. In the long run, this may enable you to consolidate your Linux support footprint.

Big Picture:The Docker philosophy is essentially "don't install stuff on your real system." Yet, standing up Docker requires doing just that.

Hi @aiqc , thank you for the suggestion! We are now considering both Flathub and Snap Store in Q1 this year.

@KatTomrushka Will the Flathub/Snap package support only rootless mode or both root and rootless?

Rootless support would be amazing in addition to support for root. I regularly use rootless installs, especially on environments that may be shared by multiple users so that I can allow the use of Docker without giving what is essentially sudo permissions to anyone who is able to run a container on the system.

Socializing this idea with Linux users surfaced dissatisfaction with the fact that Docker Desktop for Linux redundantly runs a Linux VM. Although I understand the need for standardization, if you are considering major changes for this year, perhaps a layer of abstraction would enable decoupling from the hypervisor to get information straight from docker engine (e.g. docker stats) instead. This may benefit WSL too?

After careful consideration of our current priorities and acknowledging the relatively lower usage of our application on Linux compared to other operating systems, we have decided to place this request on our backlog for the time being.
We sincerely apologize for any inconvenience this may cause and appreciate your understanding as we focus on areas of higher demand.
Thank you for your patience and support!

https://flathub.org/apps/io.podman_desktop.PodmanDesktop

snap not needed; and if you add flatpak you can remove your other linux clients (=> less tech debt)

+1 this


Error encoding json in release mode with standard fastest, smallest optimizations

Only when the standard default optimizations for speed and size are on, mongo stitch throws an error with the json encoding. (error code 1). Stitch is horribly ridden with bugs and was one of the worst decisions I ever made to use in my app. But it's too late now. I can't be bothered at this point to provide any more detail so don't ask. This is enough.
Stitch is not a production ready tool. It's an experiment at best.
Error is: could not encode document as extended JSON string

The same problem. All our production release stopped 😡.

@EthanSK , Could you give advice? Which optimization levels should set to fix it? I tried different, but nothing help. 🥺🙏

This whole project has been deprecated. Someone should sue mongo. My entire app is now worthless, and has to be rewritten from the ground up...

Hi Ethan – While we're not adding new features/addressing all bugs in the Stitch SDKs they will continue to work for the next 12 months. Issues like this (which related to issues with the underlying Swift SDK + newer xCode versions) are now resolved by moving to the Realm SDKs.  There are some changes in syntax with the new Realm SDKs, but overall they are relatively minor and syntax for interacting with MongoDB/calling functions remains essentially the same so there shouldn't be a need to re-write your application.


Support for Markdown Tables

Hi there
I am currently working on a project where I have to create a documentation for a Graphql API.
As stated in the Readme the description fields support Markdown. This works quite well. Sadly it doesn't support Markdown-Tables.
Are there plans to enhance markdown support for the extended syntax?
https://www.markdownguide.org/extended-syntax/

I am also working on a project where we use markdown tables in some of the graphql field descriptions, so this would be a nice feature.

I'll keep this in mind during the next big batch of updates


AutoFixture.AutoEF does not have a strong name

I'd like to use the AutoFixture.AutoEF package, but it cannot be made due to the fact my application is strongly signed and yours doesn't have a strong name.
Intentional?
Using the following packages:
AutoFixture 3.41.1
AutoFixture 0.5.0
Castle.Core 3.2.2

Hi Sam,
I have not looked into strong signing as I have never personally needed it, so I guess it is intentional! The licenses of the library is MIT so feel free to do whatever you want with the source - you could import it into your project or compile it separately and strong sign it?

Ok :+1:


release on PyPi

Move some of the eval dependencies into extras

done https://pypi.org/project/gptchem/


Push pre-release V4 Bootstrap-Sass gem

X-Ref: #17290
I think it'd be great to have a pre-release version released. Pre-release gems can be released as such:
Source: http://guides.rubygems.org/patterns/#prerelease-gems
Many gem developers have versions of their gem ready to go out for testing or “edge” releases before a big gem release. RubyGems supports the concept of “prerelease” versions, which could be betas, alphas, or anything else that isn’t ready as a regular release.
Taking advantage of this is easy. All you need is one or more letters in the gem version. For example, here’s what a prerelease gemspec’s version field might look like:
```ruby`
Gem::Specification.new do |s|
s.name = "bootstrap-sass"
s.version = "4.0.0.alpha.1"
Other prerelease version numbers might include `2.0.0.rc1`, or `1.5.0.beta.3`. It just has to have a letter in it, and you’re set. These gems can then be installed with the `–pre` flag, like so:

```shell
% gem list bootstrap-sass -r --pre

*** REMOTE GEMS ***

bootstrap-sass (4.0.0.alpha.1)

% gem install bootstrap-sass --pre
Successfully installed bootstrap-sass-4.0.0.alpha.1
1 gem installed

Have we decided on how we deal with this yet? If the gem is published from the repo, it should include the sprockets asset-url hack. Perhaps it would be cleaner to have separate repos for each framework/distribution (bootstrap-sprockets, bootstrap-compass, bootstrap-mincer, etc).

@glebm that's a fair point. I guess my ultimate point is I'd love to see a pre-release gem. I personally think it makes more sense to use Elastic's style of making separate gems and have a gem which pulls them all together this allows people to take them as needed. E.g. https://rubygems.org/gems/elasticsearch

@kkirsche You mean separate gems for separate components? The components are not loaded in RAM, sounds like too much overhead for saving 50KB of disk/network in 2015.

No, I meant bootstrap-core (main library), bootstrap-mincer with the mincer integration pieces, bootstrap-compass with the compass integration pieces, etc.

Mincer is only usable from node. For ruby, there are only 2 options: bootstrap-sprockets and bootstrap-compass. They only differ in https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/_bootstrap-sprockets.scss vs https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/_bootstrap-compass.scss, but I suppose having different gems would make sense. Until someone uses compass with sprockets, and pulls the wrong gem (bootstrap-compass would be the wrong one).

Fair enough. You have more experience with SASS gems so I'll defer to you. My experience lies in deploying more complex gems that can be compartmentalized in a way that probably isn't as simple for a front-end framework.

Just realized that none of these hacks are necessary anymore because we do not provide glyphicons. The ruby gem can be published directly from this repo. I'll get a PR going.

Thanks @glebm — not sure what needs to be done but figure it relies on an admin ultimately to push it so figured best for someone else to take care of this.

I am not going to push the gem until we decide on the best way to do this, just doing some experimental work.

Note that there is ongoing work in the bootstrap-sass repo, so you can use that branch if you want to try it out with your ruby project: https://github.com/twbs/bootstrap-sass/pull/954

@glebm thanks. I wouldn't be able to push to it though since not part of the core team for any of the repos. I made https://github.com/kkirsche/bootstrap_migrator though for now just waiting to hear from mdo about how he wants a focused example then I'll build it and provide a gem for the core team to try out and see what they think

Thoughts after looking through everything carefully:

Bootstrap rubygem would need to take care of the sprockets manifest, sass setup, compass templates,  rubygem-specific tests, and a ruby-specific Readme section. This is quite a few files that have to be at specific paths. I've tried adding them here and it's lots of clutter.

bootstrap-sass codebase can be used to provide all these things, and there is a work in progress that nails it: https://github.com/twbs/bootstrap-sass/pull/954.

Therefore, here is what seems like a good course of action:

[ ] Create a new repo: bootstrap-rubygem, based on the https://github.com/twbs/bootstrap-sass/pull/954, that would provide a rubygem that can be used standalone, or with sprockets or compass.
[ ] Update the docs.
[ ] Publish the alpha.

@twbs/team Thoughts?

So, would we be publishing separate bootstrap-sprockets and bootstrap-compass gems from the same repo (bootstrap-rubygem)?
Anyway, the main point about separating out twbs/bootstrap-rubygem from twbs/bootstrap SGTM.

So, would we be publishing separate bootstrap-sprockets and bootstrap-compass gems from the same repo (bootstrap-rubygem)?

I believe that would no longer be necessary since we ditched Glyphicons - Sprockets required some sort of "asset-url hack", as @glebm mentioned earlier.

Anyway, the main point about separating out twbs/bootstrap-rubygem from twbs/bootstrap SGTM.

Agreed. We already have too many files in this repo anyway.

@glebm Will it break anything if we just rename bootstrap-sass -> bootstrap-rubygem?

@cvrebert Best keep them in the same gem, as having 2 would be confusing for those who use sprockets with compass. The compass-specific part now is just the template (manifest + variables), so it's no maintenance burden.
@thomas-mcdonald We would break all the package managers pulling directly from the repo (bower), and everyone relying on the repo directly.

Meanwhile, trying to get the bootstrap gem name: http://help.rubygems.org/discussions/questions/9220-reporting-abuse-on-bootstrap

As the creator of the MR that adds alpha support, my 2 cents:

You don't need separate versions, since there are no glyphicons anymore. Adding a readme section on how to include different alternatives (there is a font awesome gem for example)
Basically the gem comes down to pull bootstrap branch and save it in the right locations and make sure it integrates easily into rails/sprockets/compass

What could be added:

Rake/Rails task for installing bootstrap or one of its variants (flex/grid/reboot)
Rake/Rails task to copy over the variables.scss file so people can start overwriting

@twbs/sass So, https://rubygems.org/gems/bootstrap/versions/4.0.0.alpha3 and https://github.com/twbs/bootstrap-rubygem are now things. We still need to add an entry for the Gem to http://v4-alpha.getbootstrap.com/getting-started/download/ , but other than that, are there any remaining TODOs here?

Everything is done, now it's just the docs :+1:

Closed by #18597.


⚠ Spryr has degraded performance

In ca2fb8c, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 5534 ms

Resolved: Spryr performance has improved in 11e9c1a after 7 minutes.


only run release artifact on release flows

https://github.com/siliconcompiler/siliconcompiler/actions/runs/6519197312

it just fails luckily


Example of time-varying rates

Introduces two ways of modeling time-varying rates in ixa and Rust -- in particular, a seasonal force of infection and a recovery rate that scales with the number of infected people. This PR and the readme focuses on how to model time-varying rates and different methods of doing so.
The example is the same as the basic-infection example, except that it:

Has been updated to include the built-in people module. The tests can therefore be a bit more intense and are properly updated.
Has been updated to include the built-in global_properties module. The R code also reads from the json file and some small bugs in the R code have been cleaned up.
A periodic report has been added!

This looks fine from my perspective.


No Q-Classes are generated since Spring Boot 3.0 Upgrade

May also see this issue in the main project:
https://github.com/querydsl/querydsl/issues/3651
I am so happy that you guys forked the project.
So since I have loads of problems with querydsl since Spring 3.0 upgrade, I thought its may an good Idea to test it with your fork (6.0.0.M3). However when I add your fork, I come back to the problem, that the Q-Classes for my "QueryEntity" annotated classes are not generated.
Here some basics of my environment:
Spring Boot 3.0.13
Spring Cloud 2022.0.3
Java 17.0.7
Gradle 8.5 (gradle wrapper)

Querydsl version: 6.0.0.M3

Querydsl module: querydsl-mongodb

Database: mongodb

JDK: 17

I hope that someone here may could help me.

I'm more than happy to take a look
Could you make me an example project?
There are 2 spring examples using JPa and SQL. But none with mongo
https://github.com/OpenFeign/querydsl/tree/master/querydsl-examples/querydsl-example-kotlin-mongodb
Could you make one?

Hi,
Seems there is no activity or feedback on this ticket, I will be closing it.  If someone willing to help, we can reopen.
Cheers


Problem when renaming file

From @Brakkar on May 20, 2016 9:47

VSCode Version: 1.1.1
OS Version: OS X 10.11.5

Steps to Reproduce:

Have vscode open with ts compiler running and watching.
Create a new ts file.
Rename this file

Problem: it didn't rename this file, it created another one, leaving the original one with the old name.
Also ignored js file now appear on the file browser for one of those file.
Copied from original issue: Microsoft/vscode#6574

Does not repro with nightly. It may have been caused by file locking that we used to do, however that was fixed in master.


Updated build.gradle with spelling mistake

[I](url

) also want to mention that when I was going through the Codelabs there is a spelling mistake in the step 3:
In the first code block where all dependencies are added. The comment above testing dependency is wrong it has a spelling mistake
//Testig
androidTestImplementation "androidx.arch.core:core-testing:$rootProject.coreTestingVersion"

@googlebot I signed it!


Updated quic-go for QUIC 39

1. What does this change do, exactly?
This is just a simple PR pointing towards the latest commit on lucas-clemente/quic-go's master branch.
2. Please link to the relevant issues.
#1858.
3. Which documentation changes (if any) need to be made because of this PR?
Just that it's updated for QUIC 39?
4. Checklist

[x] I have written tests and verified that they fail without my change (go test passes)
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I am not willing to help maintain this change if there are issues with it later (I merely updated the vendoring files).

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

The lastest commit on master of https://github.com/lucas-clemente/quic-go is not a released version.
https://github.com/lucas-clemente/quic-go/releases
https://github.com/lucas-clemente/quic-go/blob/master/Changelog.md
It is probably better to wait for a release.

@lbguilherme, I understand your concerns over this but the maintainers of quic-go has stated that they will not be tagging releases and rather would just work towards ensuring that the master branch keeps up-to-date with Google Chrome's QUIC support.
https://github.com/mholt/caddy/issues/1858

Author of quic-go here. @LFlare is right, we're currently not tagging any releases of quic-go.
Please always use the current master of the quic-go repo. This applies to this PR as well as to future Caddy releases.

Hello @mholt,
Would you review this?

Just got back from a trip, please give me a few weeks to catch up with the end of school and the holidays.

No problem @mholt, just try to prioritize this as soon as you can, just for it's importance level :)

Hey @mholt, are you able to review this any time soon?

I recently created a new release of quic-go: https://github.com/lucas-clemente/quic-go/releases/tag/v0.6.0. Feel free to use that one, if you prefer to vendor on git tags.

When the official will be out of caddy support quic-39

I just released quic-go v0.7.0. This release implements packet pacing, which should significantly increase the throughput of QUIC connections. Furthermore, it contains a bunch of optimizations, which will result in a lower CPU consumption.
Please make sure to update the vendored quic-go version in order to take advantage of these changes.

@mholt, @lbguilherme and @marten-seemann, I've updated the repository to reflect the latest commit on lucas-clemente/quic-go. Hopefully this time it can be merged.

I believe this should be merged

@mholt, in that case, please mark it with the milestone for next release. Honestly, this update has been delayed for nearly half a year. For a product that claims to be the easiest zero-configuration secure-by-default web server, not having the latest QUIC version is just depressing.

Updating the vendored quic-go just before the release is a good idea, since QUIC (the protocol) is moving fast, and quic-go is as well. I don't know your build and release process, but maybe it would even make sense to automate that?
Nevertheless, I think this PR could be merged right now. All the people building Caddy from source would be able to use QUIC again (after support was effectively broken for almost half a year). I got a few bug reports from Caddy users in the past, mostly for bugs that would've stayed undiscovered for a long time otherwise, so making the quic-go changes of the 6 months or so available to people for testing would actually be helpful for me.

For a product that claims to be the easiest zero-configuration secure-by-default web server, not having the latest QUIC version is just depressing

@LFlare - Me too have been terribly disappointed by caddy not supporting v.39, and had to fix it myself by merging your PR locally instead (thank you for that!).  However I think is a bit unfair to attack @mholt for not giving precedence to an experimental feature supporting an experimental protocol (experimental implies no guarantees about security).  I have started with QUIC literally a couple of weeks ago - so I may be wrong here - but my understanding is that Chromium used to support a few versions of the protocol at once, while the latest version only supports v.39 and this exacerbated the problem.  Not a caddy fault, I'd say...

I have started with QUIC literally a couple of weeks ago - so I may be wrong here - but my understanding is that Chromium used to support a few versions of the protocol at once, while the latest version only supports v.39 and this exacerbated the problem. Not caddy's fault, I'd say...

While the QUIC protocol itself supports version negotiation (i.e. both client and server both support a set of versions, and agree on a common version during connection establishment), Chrome never actually supported more than one version at a time. That's why in quic-go, we always support all QUIC versions for which Chromes are out there (with a non negligible market share).  Currently, this is only QUIC 39, since Google hasn't released a new version for quite some time, but there were times where quic-go used to support 4 different QUIC versions or so.
Unfortunately, the fact that Chrome only supports a single version means that in order to continue using QUIC, you'll have to update your server as soon as Google rolls out a new QUIC version into Chrome.

@marten-seemann it's fine for only supporting the supported version used in Chrome, as non-functioning versions of QUIC would gracefully degrade to HTTP/2 and no other browsers are supports QUIC on default setting anyways. Note that one should always test if it's faster for using QUIC over HTTP/2 in their own scenarios.

@marten-seemann Thanks for working on quic-go. Expect this to go out Monday or so. I noticed the quic-go library is gaining some pretty large dependencies. Any idea if that trend is going to continue? (This update added about 22,000 lines of code.)

@mholt The only dependency of quic-go (in production code, and not just for tests or code generation) is mint, a TLS 1.3 library. It will be needed for the QUIC Version that is currently being specified by the IETF. I'm not planning to add any other dependencies beyond a TLS library.

Thanks Marten -- that's good then. I hope, when Go gets TLS 1.3 into the standard lib, maybe that dependency will not even be necessary! Thank you again.


fluentd prometheusRule more configurable

Is your feature request related to a problem? Please describe.
It is okay, if just a small count of error or retries happen. Just a big count in short time are eval.
Describe the solution you'd like
Make it configurable the threashold of increases (not static 0).
Describe alternatives you've considered
Additional context
i am talking about this lines:
https://github.com/kube-logging/logging-operator/blob/6472cec6305064c65c9e45e54627bf10aa4efa74/pkg/resources/fluentd/prometheusrules.go#L95-L122

thanks for reporting makes sense


Improving UI of home page

The UI of the home page looks very messed up and needs to improve as all the component's are colliding with each other making the UI look more confusing and messed up
I want to place all the component in the right place and keep minimum space between them so they don't collide with each other and looks clean
Adding the screenshot of the home page below

Hey @Satyam1923 please assign me this issue.

@vaishnavip27 fine you can work on it.

Hey @vaishnavip27 can you share a screenshot of how are you going to organize the components ?

@vaishnavip27 and currently UI I have fixed elements according to  1080p 100% fractional scaling but it's cause issues for 125% fractional scaling, So do tell about approach how you are gonna fix it.


Got this error of "lights" being set to null

Happens on loading my world
Uncaught (in promise) TypeError: Cannot read property 'lights' of null
at LightingLayer.refresh (foundry.js:38347)
at dynamic-illumination.js:73

Can you confirm this is on the 0.7.7 version of the module?

Can confirm, I have version 0.7.7. I deleted and reinstalled and still have that error. I don't believe it is doing anything to my performance at all, it only happens on load.
I've also encountered a new issue, for whatever reason my transition buttons are not doing what they usually do. If I click a button, it will change the darkness level of the map, but it won't actually show on the map, only in the settings that it has changed. Any lights I have set for a certain darkness level begin to illuminate, but the map stays bright, the color doesn't change, and the vision of tokens remains. I have confirmed that Global illumination turns off at a certain threshold, but it doesn't do anything even with a reload of the map.
Without the module enabled, the transitions from day to night work as intended.
I have a screen capture of me clicking the buttons and showing the settings change without actually seeing the changes if you want me to send a link via google drive.

LightingLayer.refresh (and refresh on any layer) must not be called before the "canvasReady" event. I suggest:
- Hooks.once("canvasInit", () => {
+ Hooks.on("canvasReady", () => {

It should probably be on and not once, otherwise the hook is only executed for the initial scene but never again when switching scenes. It looks like the code needs to be called for each scene.

LightingLayer.refresh (and refresh on any layer) must not be called before the "canvasReady" event. I suggest:
- Hooks.once("canvasInit", () => {
+ Hooks.on("canvasReady", () => {

It should probably be on and not once, otherwise the hook is only executed for the initial scene but never again when switching scenes. It looks like the code needs to be called for each scene.

I made those changes, and the error has gone away! Thanks!


Questions about g_loss

The G loss is close to zero in the begging of the iteration. But the G loss is growing with the increase of iteration.
After one epoch. Is it right?
I use their own data sets, similar mnist data sets

I am having the same situation. I am also using my own dataset. Can anyone explain if this is normal or if this is incorrect?

Hi! I have the same issue with u, have you solved it?
PS: I using the MNIST data set

Hi! I have the same issue with u, have you solved it?
PS: I using the MNIST data set


make webapp url configurable

When the webapp is deployed on a normal server, it url is SERVER:PORT/camunda. For the spring boot webapp its SERVER:PORT/app
This is configured in  ./extension/camunda-spring-boot-starter-webapp/src/main/java/org/camunda/bpm/spring/boot/starter/webapp/CamundaBpmWebappInitializer.java
I would like to make this configurable by adding a property with default value "app".

Ok, I just learned that of course the spring boot webapp does not have "camunda" in its path since it already IS the camunda application ...


Version bump with TypeScript 1.7.5

I am having issues pulling in gulp-typescript as a git dependency through npm due to the submodules being too large. I was wondering if it would be possible to have a version tagged with the updates to typescript.

Released. You can also specify a different version of the compiler (for instance a nightly or beta). See the readme for more details.

Thank you for the fast turnaround. Sorry, can't believe I missed that.


Setup Tasks Provider

Fixes #21

The TasksProvider is set, now I just need to figure out the best way to perform these tasks

9d96ba0 demonstrates that it is possible to provide tasks that run powershell scripts in the extension root.
While this solves the problem, it is also kinda scary. Should a VS Code extension have this much power?!


Display the total amount of storypoints given at the end of the game

When playing Planning Poker, it is useful to get an estimate of the total amount of work involved. So at the end of the game we should add up all the points and display them.

Can I take this up?

Hey @zephy20, of course! I've assigned you to the issue. If you have any questions feel free to ask.


connlib: Use latest swift-bridge release

A new version of swift-bridge released today, so we don't need it to be a git dependency anymore.

#1756 should fix the pipeline (third time's a charm!)


Add screenshot-part where you see where these app-settings are located

Please clarify in the text that the app-settings are in the app (sales hub) itself (of course when you have the right rights). Really had to search a long time till I understood where too look. Using the complete screenshot would be the best way I think.

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

ID: b742aaed-9d84-68cb-e2bd-dcfb7349360d
Version Independent ID: b742aaed-9d84-68cb-e2bd-dcfb7349360d
Content: Configure Microsoft Teams dialer in Dynamics 365 Sales
Content Source: ce/sales/configure-microsoft-teams-dialer.md
Service: dynamics-365-sales
GitHub Login: @udaykirang
Microsoft Alias: udag

Updated the doc with your suggestion. please feel free to reach me if you need any further information.
Thanks,
Uday.


Create a button that adds a meal

Add the button that will carry out the add meal action in the top right of the screen.

Add Meal button


Link to sources in the static site is wrong

Hi! The link to the git sources in:
http://sheffieldml.github.io/GPyOpt/
Actually links to the GPy sources

Thanks for the comment. We are going to release the devel branch soon and a new web is also on the way :)

The GPyOpt website has been updated.


feat(l2g): implement variant consequence features from VEP

✨ Context
Closes https://github.com/opentargets/issues/issues/3554

🛠 What does this PR implement

Removes the dependency of the consequence to score file. This is now an attribute of the VariantIndex class
Implements the features described in https://github.com/opentargets/issues/issues/3554 following the formulas defined in https://docs.google.com/spreadsheets/d/1wUs1AprRCCGItZmgDhc1fF5BtwCSosdzFv4NQ8V6Dtg/edit?gid=452826388#gid=452826388
The approach is tested with semantic tests

🙈 Missing

🚦 Before submitting

[X] Do these changes cover one single feature (one change at a time)?
[X] Did you read the contributor guideline?
[X] Did you make sure to update the documentation with your changes?
[X] Did you make sure there is no commented out code in this PR?
[X] Did you follow conventional commits standards in PR title and commit messages?
[X] Did you make sure the branch is up-to-date with the dev branch?
[X] Did you write any new necessary tests?
[ ] Did you make sure the changes pass local tests (make test)?
[X] Did you make sure the changes pass pre-commit rules (e.g poetry run pre-commit run --all-files)?

@addramir As discussed, the maximum score is fetched from the variant index directly. This branch now has https://github.com/opentargets/gentropy/pull/811 as a base. I'd suggest merging that one first.

Approved


sort_reverse doesn't  work

Using latest rails_admin from gem 'rails_admin', :git => 'https://github.com/sferik/rails_admin.git'
  config.model Post do
    list do
      sort_by :weight
      sort_reverse false # or true anyway sorting goes ASC
      exclude_fields :created_at, :updated_at
    end
    weight 203
  end

@adriansalceanu - It looks like what rails admin is doing is equivalent to
"#{table_name}.#{YOUR_INPUT.to_s} desc"
Adding the following, and leaving off the last ASC working for me:
list do
  sort_reverse false
  sort_by 'event_id DESC, position'
end


No docs for 0.9 versions

https://github.com/bazelbuild/rules_pkg/blob/main/docs/latest.md documents 0.8.2
Is this a manual process on releases?

It's manual. I have not found the time payoff in automating it robustly.
Doing 'latest' is easy, or not, depending on what we consider latest to mean.
I've been treating it as head, but the issue description might imply you take it to mean latest release.
The versioned releases are their own question. I don't think having a distinct text for every release adds value. It encourages web search to find obsolete docs. OTOH, some people do want the docs for the specific thing they are using.
Anyway, #739 and #740 are out to do some updates.

I'd like to fix this permanently to reduce the maintenance burden in this repo. I have the time to automate it robustly.
https://github.com/bazel-contrib/rules-template/tree/main/docs is the pattern used in a dozen rulesets. It's just a regular test that asserts the markdown at HEAD always matches the stardoc output at HEAD. Every PR updates the docs.
Users can use the GitHub UI to read docs at any tag they choose.
Can I send you a PR for this, rather than a special effort for 0.9? I think we should cut releases regularly, but the more effort required, the less likely we are to find the time to perform them.

How does this account for the post processing pipeline that assembles the
unified doc set and fixes the bad stardoc generation.
On Tue, Aug 22, 2023 at 10:38 AM Alex Eagle @.***>
wrote:

I'd like to fix this permanently to reduce the maintenance burden in this
repo. I have the time to automate it robustly.
https://github.com/bazel-contrib/rules-template/tree/main/docs is the
pattern used in a dozen rulesets. It's just a regular test that asserts the
markdown at HEAD always matches the stardoc output at HEAD. Every PR
updates the docs.
Users can use the GitHub UI to read docs at any tag they choose.
Can I send you a PR for this, rather than a special effort for 0.9? I
think we should cut releases regularly, but the more effort required, the
less likely we are to find the time to perform them.
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/716#issuecomment-1688317986,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHH4I3I2THEDM7BJL43XWS77ZANCNFSM6AAAAAA2JSIFDI
.
You are receiving this because you commented.Message ID:
@.***>

There's no post-processing. We can make a unified experience with a table of contents like https://github.com/aspect-build/bazel-lib#public-api
and for bad stardoc generation, I either fix that upstream or use a fork of stardoc with some of my fixes.
Would you like a PR to see what this will look like?

I'm not going to fork stardoc. I will keep nudging them to fix it instead.
How about if the update rule from the template were modified to take two
parameters

the target which generates the doc file(s)
the page(s) to place them at.

That would incorporate any doc generation scheme, stardoc or not.
On Tue, Aug 22, 2023 at 1:24 PM Alex Eagle @.***> wrote:

There's no post-processing. We can make a unified experience with a table
of contents like https://github.com/aspect-build/bazel-lib#public-api
and for bad stardoc generation, I either fix that upstream or use a fork
of stardoc with some of my fixes.
Would you like a PR to see what this will look like?
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/716#issuecomment-1688618850,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHEUUIA62YJUUKCBMWTXWTTLHANCNFSM6AAAAAA2JSIFDI
.
You are receiving this because you commented.Message ID:
@.***>

Can you point to the stardoc bug? I wonder if it's the dedenting issue that caused me to fork but was recently fixed.

https://github.com/bazelbuild/stardoc/issues/120
https://github.com/bazelbuild/stardoc/issues/118
https://github.com/bazelbuild/stardoc/issues/98s
There are probably others.
I'm not sure if the stardoc rule lets me control the order of methods declared, or if it would sort them alphabetically (that would be a new bug).
The non-generated text that I need could be put in the silverlight template.

There are docs for 0.9 now, so this is solved as reported. I get the sense that you're not really interested in automating the docs process and don't want to make a big deal out of it.

There is some push from internal security teams to redo the release process
in specific ways.  I'm in negotiation with them about their requests
On Sun, Oct 1, 2023, 5:37 PM Alex Eagle @.***> wrote:

Closed #716 https://github.com/bazelbuild/rules_pkg/issues/716 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/716#event-10519898600,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHGVUCQJDW2S5UZQDEDX5GEZZANCNFSM6AAAAAA2JSIFDI
.
You are receiving this because you commented.Message ID:
@.***>

Could I get a contact info from someone there? I'd like to get the Bazel-contrib rules-template that all the community rules are based on

+Tobias Werth @.***>
The best contact for Bazel policy is Tobi, or myself if strictly about
rules_license or rules_pkg.
On Mon, Oct 2, 2023 at 3:33 AM Alex Eagle @.***> wrote:

Could I get a contact info from someone there? I'd like to get the
Bazel-contrib rules-template that all the community rules are based on
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/716#issuecomment-1742290324,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHHQWOB3ZTLTWLON5Y3X5IKYNANCNFSM6AAAAAA2JSIFDI
.
You are receiving this because you commented.Message ID:
@.***>

Probably better to take this to a dedicated issue: https://github.com/bazel-contrib/rules-template/issues/99


French translations for missing parameters (access control and batch loading)

Description
Addition to the json5 french file to fix missing parameters for access control and batch loading in DSpace.

Thank you @pilasou
I added a few suggestions to the translations. @pilasou : you might want to correct your title issue "French rranslations..."
@tdonohue everything else seems good to me!

@pilasou : This PR appears to be failing lint checks.  Could you update it to fix the small issues?   They should be visible to you locally by running yarn lint, and you might be able to run yarn lint --fix to fix them automatically.  (The automatic fixes don't always work)

@pilasou : There's another lint formatting error now.  Here's the new one:
/home/runner/work/dspace-angular/dspace-angular/src/assets/i18n/fr.json5
Lint errors found in the listed files.

  6635:38  error  Parsing error: Unexpected character '“'

It appears to think that one of the double-quotes (") on line 6635 is invalid?  Maybe it's accidentally a special character and not a double-quote character?  It's unclear to me though because the error isn't obvious when you view this file in GitHub.  (My suspicion is maybe this text was copied from a different document like Word and it changed the character)

I've pushed up some additional lint fixes as this still had lint failures.  I simply checked out this PR and ran yarn lint --fix to automatically apply the fixes.  Once the build succeeds, I'll get this merged & backported to 7.x


Adding a new milestone for continuous integration workflows

A new milestone should be added, that links all commits and pull requests that are related to changes in Android and Arduino workflows.

Milestone created. In case you need to visit Continuous Integration

Awesome, looks great!


Fix gitattributes so that the files are not binary

@chStaiger I think I just got the gitattributes file from your repo. Is there any reason to have git consider everything as a binary? I now understand why I couldn't rebase properly last time...

No not really. If it does not make any difference, let's change it.


GCS upload timeout / spinning in poll

Does this issue affect the google-cloud-cpp project?
Yes, we are using the google-cloud-cpp library to upload files.
What component of google-cloud-cpp is this related to?

Cloud Storage specifically uploading new files.

What version of google-cloud-cpp are you using?
0.12.0 & 0.11.0
What compiler and version are you using?
gcc 7.4.0
What operating system and version are you using?
NixOS with based on commit https://github.com/nixos/nixpkgs/commits/3f4144c30a6
(curl version 7.65.3, manually bumped google-cloud-cpp to 0.12.0 from 0.11.0 but same issue persists)
What were you trying to do?
Upload files to a GCS bucket using nix. Specifically with the changes from my PR https://github.com/NixOS/nix/pull/3021.
We tried with big and small files. Both InsertObject and WriteObject and in all cases we get the same result (randomly). The relevant code is are at https://github.com/NixOS/nix/pull/3021/files#diff-b1e603a1ea8f9c5a0d38f7caf7079cdaR97-R122.
Command that we used (after building nix from that PR with a recent nixpkgs checkout):
$ nix copy --to gs://my-bucket-name?secret-key=/my/secret/signing/key /nix/store/…-something

What did you expect to see?
To successfully upload the binary without wasting a lot of time in poll(2) and without seeing the error message in the end.
What did you see instead?
nix did waste a lot of CPU time (minutes) in poll(2) called by Curl_poll(2). See backtrace and perf data below.
Eventually the google-cloud-cpp library did throw an exception showing a Request Timeout error.
It seems like it never tells google that the upload is finished but waits for a response to the request.
Anything else you would like us to know?
I am currently working on integrating GCS support into nix. While I can not see any obvious errors with my implementation this error occurs randomly for some people.
We captured a backtrace while the process was spinning in poll(2):
Thread 1 (Thread 0x7f0418b7fa00 (LWP 15471)):
#0  0x00007f0419ba8501 in poll () from target:/nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib/libc.so.6
#1  0x00007f0419639399 in Curl_poll () from target:/nix/store/n8h43z4dh14hzqlvs7166sg53s1l6m2l-curl-7.65.3/lib/libcurl.so.4
#2  0x00007f0419632a8f in Curl_multi_wait.part.9 () from target:/nix/store/n8h43z4dh14hzqlvs7166sg53s1l6m2l-curl-7.65.3/lib/libcurl.so.4
#3  0x00007f041962c723 in curl_easy_perform () from target:/nix/store/n8h43z4dh14hzqlvs7166sg53s1l6m2l-curl-7.65.3/lib/libcurl.so.4
#4  0x00007f041906d7d4 in google::cloud::storage::v1::internal::CurlHandle::EasyPerform (this=0x7fff89bc3028) at /build/source/google/cloud/storage/internal/curl_handle.h:161
#5  google::cloud::storage::v1::internal::CurlRequest::MakeRequest (this=this@entry=0x7fff89bc2f70, payload=...) at /build/source/google/cloud/storage/internal/curl_request.cc:30
#6  0x00007f0419073538 in google::cloud::storage::v1::internal::CurlClient::UploadChunk (this=0xb41580, request=...) at /build/source/google/cloud/storage/internal/curl_client.cc:306
#7  0x00007f04190a0b7c in google::cloud::storage::v1::internal::CurlResumableUploadSession::UploadFinalChunk (this=0xd37aa0, buffer=..., upload_size=45744) at /build/source/google/cloud/storage/internal/curl_resumable_upload_session.cc:34
#8  0x00007f04190c578c in google::cloud::storage::v1::internal::LoggingResumableUploadSession::UploadFinalChunk (this=<optimized out>, buffer=..., upload_size=45744) at /build/source/google/cloud/storage/internal/logging_resumable_upload_session.cc:42
#9  0x00007f0419121dcd in google::cloud::storage::v1::internal::RetryResumableUploadSession::UploadFinalChunk (this=0xd3b880, buffer=..., upload_size=45744) at /build/source/google/cloud/storage/internal/retry_resumable_upload_session.cc:68
#10 0x00007f04190f0d0b in google::cloud::storage::v1::internal::ObjectWriteStreambuf::FlushFinal (this=this@entry=0xc6aeb0) at /build/source/google/cloud/storage/internal/object_streambuf.cc:297
#11 0x00007f04190f29a9 in google::cloud::storage::v1::internal::ObjectWriteStreambuf::Close (this=<optimized out>) at /build/source/google/cloud/storage/internal/object_streambuf.cc:226
#12 0x00007f041914d44b in google::cloud::storage::v1::ObjectWriteStream::CloseBuf (this=this@entry=0x7fff89bc4b00) at /build/source/google/cloud/storage/object_stream.cc:87
#13 0x00007f0419150f90 in google::cloud::storage::v1::ObjectWriteStream::Close (this=0x7fff89bc4b00) at /build/source/google/cloud/storage/object_stream.cc:83
#14 0x00007f041a3de33f in nix::GCSBinaryCacheStore::uploadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#15 0x00007f041a3df8f7 in nix::GCSBinaryCacheStore::upsertFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#16 0x00007f041a33a860 in nix::BinaryCacheStore::addToStore(nix::ValidPathInfo const&, nix::ref<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, nix::RepairFlag, nix::CheckSigsFlag, std::shared_ptr<nix::FSAccessor>) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#17 0x00007f041a4569e8 in nix::Store::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag, std::shared_ptr<nix::FSAccessor>) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#18 0x00007f041a45f60d in nix::copyStorePath(nix::ref<nix::Store>, nix::ref<nix::Store>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nix::RepairFlag, nix::CheckSigsFlag) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#19 0x00007f041a45f988 in nix::copyPaths(nix::ref<nix::Store>, nix::ref<nix::Store>, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, nix::RepairFlag, nix::CheckSigsFlag, nix::SubstituteFlag)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#3}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#20 0x00007f041a45fc81 in std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), nix::copyPaths(nix::ref<nix::Store>, nix::ref<nix::Store>, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, nix::RepairFlag, nix::CheckSigsFlag, nix::SubstituteFlag)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#3}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#21 0x00000000004fb1ba in std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const ()
#22 0x00007f041a461ced in nix::processGraph<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(nix::ThreadPool&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#23 0x00007f041a4621f0 in std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), nix::processGraph<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(nix::ThreadPool&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#24 0x00000000004fb1ba in std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const ()
#25 0x00007f041a460668 in std::_Function_handler<void (), std::_Bind<std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> (std::reference_wrapper<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const>)> >::_M_invoke(std::_Any_data const&) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#26 0x0000000000479cee in std::function<void ()>::operator()() const ()
#27 0x00007f041a24ec76 in nix::ThreadPool::doWork(bool) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixutil.so
#28 0x00007f041a24f87a in nix::ThreadPool::process() () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixutil.so
#29 0x00007f041a461318 in void nix::processGraph<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(nix::ThreadPool&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#30 0x00007f041a45db20 in nix::copyPaths(nix::ref<nix::Store>, nix::ref<nix::Store>, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, nix::RepairFlag, nix::CheckSigsFlag, nix::SubstituteFlag) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixstore.so
#31 0x00000000004b7912 in CmdCopy::run(nix::ref<nix::Store>, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) ()
#32 0x00000000004b4f5d in nix::StorePathsCommand::run(nix::ref<nix::Store>) ()
#33 0x00000000004b2881 in nix::StoreCommand::run() ()
#34 0x00000000004ce597 in nix::mainWrapped(int, char**) ()
#35 0x00000000004ce7d8 in std::_Function_handler<void (), main::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#36 0x0000000000479cee in std::function<void ()>::operator()() const ()
#37 0x00007f041a503194 in nix::handleExceptions(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()>) () from target:/nix/store/yi7w4516mlkd21h6sap40qzn2xha7xns-nix-2.3pre6779_324a5dc9/lib/libnixmain.so
#38 0x00000000004cde85 in main ()

The error messages that was eventually thrown was:
post-build-hook: Uploading paths /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxx-<IP_ADDRESS>-doc /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxx-<IP_ADDRESS>
post-build-hook: error: GCS error uploading 'nar/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.nar.xz': Permanent error in InsertObjectMedia: <!DOCTYPE html>
post-build-hook:
post-build-hook:   <meta charset=utf-8>
post-build-hook:   <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
post-build-hook:   <title>Error 408 (Request Timeout)!!1</title>
post-build-hook:
post-build-hook:
post-build-hook:
408. That’s an error.
post-build-hook:
Your client has taken too long to issue its request.  That’s all we know.
post-build-hook:  [INVALID_ARGUMENT]
error: program '/nix/store/mkgkz2pixh1wljvvcvqn8hp6h36i3nc1-upload-to-cache' failed with exit code 1

Here is the corresponding perf -n --stdio output:
https://storage.googleapis.com/nix-gcs-debugging/gi-soup/report_stdio.txt
This is currently a blocker for https://github.com/NixOS/nix/pull/3021.

Thank you for the detailed bug report.  It looks as-if the server is failing to respond, more than as-if the library is failing to send the final chunk.  But the library should handle this case, so we most likely have a bug regardless.
Can you answer some further questions to help us reproduce this problem?
Are you doing a lot of uploads through the same client before this failure?  If so, how many, how much time between them?
Are you waiting a long time in between uploads?  Sometimes the server closes the connection, but we should reconnect in that case, just trying to see if that is the problem.
I noticed you set the contentType, can you tell us what it is set to?  The server side handles gzip files differently, that would also help with any repro.  BTW, it should be possible to set  the ContentEncoding and ContentType options for an upload.
Can you tell us how often this happens?  You said "randomly", but does it happen 1% of the time, 10% of the time, 50% of the time?  Just trying to make sure our repro actually looks like yours.
There is another outstanding bug that might be related (#2980).

Thank you for the detailed bug report. It looks as-if the server is failing to respond, more than as-if the library is failing to send the final chunk. But the library should handle this case, so we most likely have a bug regardless.

Thank you for the quick reply. I agree that it seems like a server error and the client should probably handle that without hicups.

Can you answer some further questions to help us reproduce this problem?

Of course :-)

Are you doing a lot of uploads through the same client before this failure? If so, how many, how much time between them?

In the case where we observe the error only a few uploads were made.
We usually upload on build results that consists of a small .narinfo file and one to three .nar.xz files. The outputs vary in size. Some of them are 500k and then there is usually a bigger one with up to 100MB.

Are you waiting a long time in between uploads? Sometimes the server closes the connection, but we should reconnect in that case, just trying to see if that is the problem.

We are applying LZMA compression to all the files. The compression is applied before calling InsertObject or WriteObject. Some of the compression tasks last about a minute or two. The client is not destructed between those uploads. If it has an internal cache/pool of connections than that would be reused.

I noticed you set the contentType, can you tell us what it is set to? The server side handles gzip files differently, that would also help with any repro. BTW, it should be possible to set the ContentEncoding and ContentType options for an upload.

We are setting  application/x-nix-nar for all the files in nar/ and  text/x-nix-narinfo for all the files in the root ending in .narinfo. There isn't much an encoding besides binary I guess. The .narinfo files are just plaintext (possibly restricted to ASCII).
You mentioned contentType and ContentType. What is the difference?

Can you tell us how often this happens? You said "randomly", but does it happen 1% of the time, 10% of the time, 50% of the time? Just trying to make sure our repro actually looks like yours.

During our ~12h of debugging yesterday we probably hat a hit chance of about 20%.
Let me know if you need anything else.

Thank you for the additional information.  There must be something else going on because we have tests that upload files in the 100MiB range running more or less continuously.

We are applying LZMA compression to all the files. The compression is applied before calling InsertObject or WriteObject. Some of the compression tasks last about a minute or two. The client is not destructed between those uploads. If it has an internal cache/pool of connections than that would be reused.

I think that may be it.  I do not believe our tests pause between uploads, and the server can close connections that become idle.
At least that is something we can try to reproduce.

You mentioned contentType and ContentType. What is the difference?

Other than me not spelling things consistently?  google::cloud::storage::ContentType is a type that you can provide to WriteObject() this sets the Content-Type header.  The service then puts that in the contentType metadata field.  There is a similar type (storage::ContentEncoding) to set the contentEncoding URL parameter.
You can also set those directly in the ObjectMetadata (or WithObjectMetadata) C++ arguments.
Why two ways to do the same thing?  Because setting the full object metadata implies a multi-part upload, and one may want to save a few bytes and use just headers and URL parameters.

I checked the logs again - indeed the timeout occured in the second upload round, after some compressing action - so the server might have decided to close the connection in the meantime.
I assume with server you mean a backend server? I assume the Error 408 (Request Timeout) comes from a reverse proxy in front of it.

I assume with server you mean a backend server?

Yes, I did.  Unfortunately I cannot share details about the architecture (I am sure we must have published something, but I cannot speak about it without seeing what we have published, sorry).

Sure, no worries - just wanted to confirm I understood that part right :-)
Please let me know once you have some patch to share - happy to give it a try!

In the meantime, would you mind removing the compression from upsertFile to see what happens?

Hm, disabling compression to wait less in betwen didn't seem to do the trick.
I created an empty bucket as a new cache, and started building (and uploading) again.
It succeeded in uploading some derivations, but failed again after some time:
post-build-hook: Uploading paths /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-bash
post-build-hook: error: GCS error uploading 'nar/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy.nar': Permanent error in UploadFinalChunk: <!DOCTYPE html>
post-build-hook:
post-build-hook:   <meta charset=utf-8>
post-build-hook:   <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
post-build-hook:   <title>Error 408 (Request Timeout)!!1</title>
post-build-hook:
post-build-hook:
post-build-hook:
408. That’s an error.
post-build-hook:
Your client has taken too long to issue its request.  That’s all we know.
post-build-hook:  [INVALID_ARGUMENT]
error: program '/nix/store/878v8a3h17ml84vh42afgazva90w5xbc-upload-to-cache' failed with exit code 1

This was now a version only using the streaming path:
https://github.com/andir/nix/commit/16a19e16e18426ec5685d1788c3fc1d16f850f07

With compression enabled, I hit a segfault (with coredump) - not sure if related, but there were quite some threads busy with curl and poll:
Backtrace: https://pastebin.com/FrwwixkG

With compression enabled, I hit a segfault (with coredump) - not sure if related, but there were quite some threads busy with curl and poll:

We do not create threads in the GCS client library, nor does libcurl AFAIK.  Is the application creating threads, maybe in nix::ThreadPool?
If so, approximately how many?  And do they share the storage::Client?  Keep in mind, I still think this is a library bug, but that information helps us design a proper test to reproduce it.

With compression enabled, I hit a segfault (with coredump) - not sure if related, but there were quite some threads busy with curl and poll:

We do not create threads in the GCS client library, nor does libcurl AFAIK. Is the application creating threads, maybe in nix::ThreadPool?
If so, approximately how many? And do they share the storage::Client? Keep in mind, I still think this is a library bug, but that information helps us design a proper test to reproduce it.

Yes, threads are being created. Currently up to std::thread::hardware_concurrency() many threads. (@flokli: can you give us the hardware spec of your test VM?)
As far as I can tell from the top of my head all of them share the same storage::Client but not all threads are involved in uploading files.
Uploads are done in a way that keeps referential integrity. So if we build something and that depends on 5 libraries those libraries will uploaded before the final build result is being uploaded. Each of those libraries follows the same pattern. If multiple outputs that are queued for uploading have no pending dependencies then those will/can be uploaded in parallel.
The code for the graph processing can be found here: https://github.com/NixOS/nix/blob/fda7b95cb08c447a7ee4ec18ea3574d76e6264df/src/libutil/thread-pool.hh#L68
The way it is being used in our tests can be found here: https://github.com/NixOS/nix/blob/fda7b95cb08c447a7ee4ec18ea3574d76e6264df/src/libstore/store-api.cc#L613

The instance is a n1-standard-8, so it has 8 logical cores, and I see 16 threads in the stacktrace (8 of them doing GCS-related things).

I have not had a chance to write a test to reproduce this, but #2993 (part of the 0.13.0 release) has a good chance of fixing this problem.  Is there any chance you can test it?

I'll try to give this a go till the end of this week.

For what is worth.  I just sent PR #3066, it has an attempt to reproduce your problem, unfortunately it does not work as a repro. I was able to run 25 copies of the program at the same time, each copy running 4 threads, each thread doing 100 uploads and it just completes fine.
Maybe you can take a look and tell me if there is something about your application that I did not capture in the repro?
Also note that the StreamingByChunk test consumes about 8 times less memory than the StreamingAll test.

Any further thoughts?  I would really like to fix this, but if we cannot reproduce the problem I just will need to close the issue.

Sorry, I was quite busy - I'll try to get to this this week.

Bumping google-cloud-cpp to a recent version was a bit more work than I hoped - finished that in https://github.com/NixOS/nixpkgs/pull/70485, and will test GCS upload with this PR and google-cloud-cpp 0.14.0 tomorrow :-)

On a quick glimpse, I wasn't able to trigger the issue anymore, at least not with the current setup. I can do some more extensive testing mid of next week, but feel free to close for now.
However, I ran into another issue, maybe something not yet fixed by https://github.com/googleapis/google-cloud-cpp/pull/3062 - I opened https://github.com/googleapis/google-cloud-cpp/issues/3184 for that.

Thanks for looking into it. Closing, will continue the discussion on #3184.

Just as an update:
With the latest version of this library and a dedicated client (with no connection pooling) per upload I am still running into the 408s. I was able to upload the very same files (to a different bucket) with the S3 compatibility enabled on the GCS site. I am starting to think that at least the timeouts are definitely something funny going on the backend.
I haven't had any crashes we this setup. Also leading me to the conclusion that some kind of concurrency issue is happening in the library despite the use of the supposedly threadsafe cURL APIs.

@coryan
Just as an update:
With the latest version of this library and a dedicated client (with no connection pooling) per upload I am still running into the 408s.

FWIW, 408s indicate that the server timed out a request because the client failed to send the complete request quickly enough.  Not sure that that means in this context. Possibly it means the client is starving threads and they cannot make progress or possibly it means you are trying to send a very large upload in a single request (from what I recall of the code that is unlikely).

I was able to upload the very same files (to a different bucket) with the S3 compatibility enabled on the GCS site. I am starting to think that at least the timeouts are definitely something funny going on the backend.

Maybe.  It would not be the first time.  It is also possible you are running into something like:
https://cloud.google.com/storage/docs/request-rate#auto-scaling

I haven't had any crashes we this setup. Also leading me to the conclusion that some kind of concurrency issue is happening in the library despite the use of the supposedly threadsafe cURL APIs.

It is entirely possible that the library has some concurrency problem.  It would not be the first time. It is also possible that it is libcurl (would not be the firs time either).  I had no luck debugging the problems for your setup (but admittedly I am not that familiar with NixOS), any output from valgrind / ASAN would be greatly appreciated.

I think this issue is unrelated to the google-cloud-cpp library and probably a bug on GCS. Because I'm getting the exact same error when uploading a file with curl over a slow internet connection:
<!DOCTYPE html>

  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 408 (Request Timeout)!!1</title>

408. That’s an error.

Your client has taken too long to issue its request.  That’s all we know.

But the strange thing is, that the file is being uploaded completely without any interruptions and at 100% it gets stuck and returns the error message above after a while.

Yeah, after all this time I also believe it is GCS that is at fault. How
large are your files? I believe we are supposed to use the chunked
uploading and large single-stream uploads might simply not be used
enough and buggy.
On 22:26 21.12.20, Manu Miu wrote:

I think this issue is unrelated to the google-cloud-cpp library and probably a bug on GCS. Because I'm getting the exact same error when uploading a file with curl over a slow internet connection:
<!DOCTYPE html>

  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 408 (Request Timeout)!!1</title>

408. That’s an error.

Your client has taken too long to issue its request.  That’s all we know.

But the strange thing is, that the file is being uploaded completely without any interruptions and at 100% it gets stuck and returns the error message above after a while.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/googleapis/google-cloud-cpp/issues/3029#issuecomment-749368108


bruig: Own avatar sometimes shown for others

There have been a couple reports of people seeing their own loaded avatar in the place of another user on comments to posts.
Doesn't sound like it's being seen anywhere else (in GCs or in chats list)

Another clue to the issue, is the fact that the user wasn't yet KX'd with the user that they were seeing their own avatar


ARROW-1146: Add .gitignore for *_generated.h files in src/plasma/format

Great, thanks for doing that!

@wesm this is passing on appveyor: https://ci.appveyor.com/project/cpcloud/arrow/build/1.0.182

+1


Add to jsdelivr?

I'm really loving your plugin.  I really saved me while trying to build a responsive page that uses scaling images!
Would it be possible to add it to the jsdelivr project?
https://github.com/jsdelivr/jsdelivr
If you're swamped I don't mind adding it for you, just let me know!
THANKS!
-Zac

The new backend is live. It pulls files directly from npm and github https://github.com/jsdelivr/jsdelivr#usage


handle ReadonlyArray in isArray function

@joeferner Your PRs has been published 👍
TY

@all-contributors add @joeferner for code.


Unable to convert a hash to a HeaderValue.

The library I am using to make the hash is hmac-sha256 and it generates a Vec<u8>.
My code is :
.header(
"X-Auth-Signature",
hmac_sha256::HMAC::mac(request_string, api_secret).to_ascii_lowercase(),
)
How do I make a Vec<u8> into a HeaderValue?

I'd assume that would work. You can see in the documentation, there is an implementation for TryFrom<Vec<u8>>. Perhaps you're passing a different type? Check the error message.

No I am still getting the same problem:
println!(
"{:?}",
hmac_sha256::HMAC::mac(request_string, api_secret).to_ascii_lowercase()
);
.header(
"X-Auth-Signature",
HeaderValue::try_from(
hmac_sha256::HMAC::mac(request_string, api_secret).to_ascii_lowercase(),
)
.unwrap(),
)
[211, 51, 186, 101, 190, 5, 9, 165, 194, 123, 45, 3, 163, 20, 234, 4, 58, 171, 156, 138, 62, 42, 58, 197, 60, 37, 191, 41, 243, 108, 171, 54]
thread 'test_request' panicked at 'called Result::unwrap() on an Err value: InvalidHeaderValue', src\main.rs:59:14

Oh, that's because you're trying to pass the raw bytes, and that includes some illegal characters when considered utf-8. You'll need to encode the hash into printable characters, may as hex or bae64 or something.


Consolidate transformers for common CRD fields, registry and config

Fixes #26
Also factored the common test utilities out of images.go and into a common/testing package.
All tests should remain intact -- eventing had a few more than serving -- now all in a single place.

/retest

/retest

/hold cancel
/lgtm


message view: Fix margin for date separator.

Without this tweak the date separator overlaps
the left borner.

Nice; this was really subtle :)


Serverside store init

I have store something like:
export const $cookies = appDomain.createStore<CookiesType | null>(null);
In samples its data available only on server side, on client I get null.
But in components with useStore I get actual data.
Is it possible to init store on server side and then use it in samples on client?

fix in #21


Unrecognized Selector crash in iOS 8 ([UITouch maximumPossibleForce:])

in FLEXKeyboardShortcutManager.m, line 168
double adjustedPressureLevel = pressureLevel * 20 * touch.maximumPossibleForce;

maximumPossibleForce is iOS 9 and above  ;(
Using FLEX 2.2.0 via CocoaPods, repros easily by launching iOS 8.4 simulator and pressing cmd+ctrl+shift together while tapping mouse.

Fixed in bd821dc553a837c4c9f46226a3192e8d4dbc1f4c


cargo-deny: 0.11.1 -> 0.11.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/cargo-deny/versions.
meta.description for cargo-deny is: "Cargo plugin to generate list of all licenses for a crate"
meta.homepage for cargo-deny is: "https://github.com/EmbarkStudios/cargo-deny"
meta.changelog for cargo-deny is: "https://github.com/EmbarkStudios/cargo-deny/blob/0.11.2/CHANGELOG.md"
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/b8nzdb2m0l1q5r82j6p7psy2ij9cjcfn-cargo-deny-0.11.2/bin/cargo-deny had a zero exit code or showed the expected version
0 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 0.11.2 with grep in /nix/store/b8nzdb2m0l1q5r82j6p7psy2ij9cjcfn-cargo-deny-0.11.2
found 0.11.2 in filename of file in /nix/store/b8nzdb2m0l1q5r82j6p7psy2ij9cjcfn-cargo-deny-0.11.2

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

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
cargo-deny

Instructions to test this update (click to expand)

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

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

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

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-deny

Maintainer pings
cc @figsoda @matthiasbeyer @06kellyjac for testing.

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

1 package built:

cargo-deny


ensure that ArcGIS Online geocoding requests to the World Geocoding Service are always encrypted

right now request protocol is inherited from the application.  people are rightfully concerned about privacy so it seems sensible enough to just always use https instead.
more info here

388ba04


fix: project sidebar does not show active page

Elements Default PR Template
In general, make sure you have: (check the boxes to acknowledge you've followed this template)

[X] Read CONTRIBUTING.md

Other Available PR Templates:

Release: https://github.com/stoplightio/elements/compare?template=release.md

[x] Read the release section of CONTRIBUTING.md

Regarding versions keep in mind that Kayla just merged release PR with the same versions that you used: https://github.com/stoplightio/elements/pull/2207

Looks great! You may consider keeping bumping and releasing elements to another PR (example). We often took this approach to keep it clean as it can contain more than one fix and version numbers might not be up to date.

Thanks for the review! Yeah, that makes sense to bump versions in another PR, I just didn't know the flow that these went through.
Either way, I've updated to the latest version post Kayla's change


Horusec cli is not running on docker version > 19.3

Hi all! I need some help about Horusec CLI + Docker.
I installed the Horusec CLI using this command line
curl -fsSL https://raw.githubusercontent.com/ZupIT/horusec/main/deployments/scripts/install.sh | bash -s latest
Then when I run it (horusec start), this is the error that I see:
"time="2023-11-15T10:06:29-03:00" level=error msg="{HORUSEC_CLI} Your docker version is below of: " error=19.3
Error: docker not found. Please check and try again"
Environment:

Horusec version 2.8.0
Operating System: Windows 11 but horusec is installed and running inside Ubuntu using WSL 2.
Current docker version: 24.0.6.

Same issue on a machine running Ubuntu 22.04.

Hello
I also had this problem and it has been fixed with the solution.
The point is to install latest-beta version instead of latest.

Thank you @offnaria but I would like to run the most stable version instead of a beta one.

Hello did you try this image gilsdav/horusec-cli ?
This is the result of my PR https://github.com/ZupIT/horusec/pull/1163

Try the beta version as a workaround:
image="horuszup/horusec-cli:v2.9.0-beta.3"; \
docker pull $image ;\
docker run --rm \
	-v /var/run/docker.sock:/var/run/docker.sock \
	-v $(pwd):/src/horusec $image horusec start \
	-p /src/horusec -P $(pwd)


Not enough information...

Check my attached pic ... it have borders but in fact no borders i see small borders in 4 sides and spaces between borders  ... can i remove it ??

Not enough? Man, I'm sorry, but it is clearly visible. Just select any image from your computer on the tool and download the .zip file. Open up any image saved and you will see a black border on the image.
Is there a way to take it off?
By the way, great work with the tool. It would be excellent if the 9 patch tool could be working perfectly :)

Same dirty borders on my images too, at 2018.

Those borders are part of the nine patch. Android reads that information to decide how to stretch your image.


Allow COMMAND health checks without ports

Fixes #891.

@ConnorDoyle see my comment to your comment in the code.

Removed the portIndex check for the COMMAND case.

:100:


[5.4] Stay consistant with casting.

Stay consistant with casting.

Just leaving if it is not broken.


update date in readme for rebuild

Signed-off-by: Will Kutler<EMAIL_ADDRESS>to trigger rebuild for https://github.com/open-cluster-management/backlog/issues/15227

/cherry-pick release-2.3


Transform the basic hardware from Raven to Sigyn

Basic hardware should include:

Power Supply

24 V 10 A
12 V 30 A
5 V 10 A
3.3V 10 A

Fuses for all four supplies
Current shunts for all four supplies
Pair of motors and encoders
Wheels
Caster wheel
RoboClaw motor driver
Teensy monitor/controller connected to RoboClaw
CPU
USB hub
LIDAR
HDMI/USB external interface

All hardware is functional and demonstrated.


Rework UI for Add/Edit Allocation fields

Relabel the Rate Type selector to Prorated and Budgeted (see video for details)

Change Expected monthly hours to Expected hours

Below "Total hours per week = " add an expandable section called Advanced

Add field: minimum_expected_hours

Add field: maximum_expected_hours

Add field: minimum_hourly_rate

Add field: maximum_hourly_rate

All Advanced fields are optional

depends on #640


Fix decorators for use in typescript

This enables all possible forms:
class Planet extends Model {
  @key remoteId: string;
  @key() remoteId: string;
  @key({}) remoteId: string;

  @attr name: string;
  @attr() name: string;
  @attr('string') name: string;
  @attr('string', {}) name: string;
}

The other option is to require in TypeScript to use @attr() and @key(). In JavaScript both @attr and @attr() will work.
What do you think @dgeb ?

@tchak I like the flexibility to use @key and @attr :+1:


Module 04, error when trying to compile a single typescript file

No problem calling tsc  on the folder level to build a separate JS file but an error is encountered when calling the tsc on a specific file like tsc module04.ts
Error displayed below
../../../../../node_modules/@types/node/globals.d.ts:72:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'AbortSignal' must be of type '{ new (): AbortSignal; prototype: AbortSignal; abort(reason?: any): AbortSignal; timeout(milliseconds: number): AbortSignal; }', but here has type '{ new (): AbortSignal; prototype: AbortSignal; }'.

72 declare var AbortSignal: {
               ~~~~~~~~~~~

  ../../../../../../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:2071:13
    2071 declare var AbortSignal: {
                     ~~~~~~~~~~~
    'AbortSignal' was also declared here.

Found 1 error in ../../../../../node_modules/@types/node/globals.d.ts:72

Try following the instructions in the documentation and type this into Terminal : tsc module04.ts