Missing Context on tcp_listen_options: "exit_on_close"

Hello Team,
On the Website for RabbitMQ configuration, the tcp_listen_options setting is described as "Default socket options. You probably don't want to change this." Is there more context we can add for these settings?

source: https://www.rabbitmq.com/configure.html
Is there a design reason behind those default values? I can understand that enabling linger and setting the timeout to 0 can avoid excessive amounts of sockets stuck in the TIME_WAIT state, and thus is a desirable setting for a server. However, for the exit_on_close flag, in erlang docs it states that the default value is true, while the default value in RabbitMQ is false. This setting could avoid an excessive amount of CLOSE_WAIT, which we found that in some cases, setting this flag to true actually helps with closing dead connections that are stuck.
(Reference: https://groups.google.com/g/rabbitmq-users/c/MsTnhP9O5YM )
Would it be beneficial to update the docs with some more detailed explanation in why these settings are what they are?
For example for exit_on_close:
Setting this to true means RabbitMQ will automatically close the socket when
the client disconnects. One-way TCP connections will no longer be supported.

Note: AMQP 0.9 protocol does not support one-way TCP connections. Setting this
option to true will not impact clients.

You are welcome to contribute doc changes. We try to avoid overly "inside baseball" explanation, in particular for defaults. Instead we can document what the effects of changing this flag would be.
These defaults have been around for over a decade, and changing them will require a wide consensus on the core team.

Sure, I will look to create a PR, thanks

Fixed by #1416


Make updated max length settings variable backwards compatible

An extension of #21 to change the SHORTURL_LOCAL_BACKEND_ORIGINAL_URL_MAX_LENGTH setting to BREVISURL_LOCAL_BACKEND_ORIGINAL_URL_MAX_LENGTH to match the documentation.
This change allows both settings to work for backwards compatibility as proposed here: https://github.com/CodeScaleInc/django-brevisurl/pull/21#issuecomment-50590660.
Had some trouble trying to write tests for this and could use some help there if we want to make sure there's coverage for this.

Cool thanks.


Fix badgerengine tests on Windows

This PR ensures that we close engine before cleanup in enginetest. On Windows tests were failing with the following error.

2020/10/23 21:27:17 remove C:\Users\RUNNER~1\AppData\Local\Temp\genji245175255/badger\000000.vlog: The process cannot access the file because it is being used by another process.

  github.com/dgraph-io/badger/v2/y.Wrap
  	github.com/dgraph-io/badger/v2@v2.2007.2/y/error.go:71
  github.com/dgraph-io/badger/v2/y.Check
  	github.com/dgraph-io/badger/v2@v2.2007.2/y/error.go:43
  github.com/dgraph-io/badger/v2.(*valueLog).createVlogFile.func1
  	github.com/dgraph-io/badger/v2@v2.2007.2/value.go:1008
  github.com/dgraph-io/badger/v2.(*valueLog).createVlogFile
  	github.com/dgraph-io/badger/v2@v2.2007.2/value.go:1022
  github.com/dgraph-io/badger/v2.(*valueLog).open
  	github.com/dgraph-io/badger/v2@v2.2007.2/value.go:1120
  github.com/dgraph-io/badger/v2.Open
  	github.com/dgraph-io/badger/v2@v2.2007.2/db.go:396
  github.com/genjidb/genji/engine/badgerengine.NewEngine
  	github.com/genjidb/genji/engine/badgerengine/engine.go:24
  github.com/genjidb/genji/engine/badgerengine_test.builder.func1
  	github.com/genjidb/genji/engine/badgerengine_test/engine_test.go:22
  github.com/genjidb/genji/engine/enginetest.TestStoreNextSequence.func3
  	github.com/genjidb/genji@v0.9.0/engine/enginetest/testing.go:824
  testing.tRunner
  	testing/testing.go:1054
  runtime.goexit
  	runtime/asm_amd64.s:1373

Codecov Report

Merging #288 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #288   +/-   ##
=======================================
  Coverage   61.65%   61.65%
=======================================
  Files          69       69
  Lines        6496     6496
=======================================
  Hits         4005     4005
  Misses       1967     1967
  Partials      524      524

Continue to review full report at Codecov.

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


Clarify recommendation for deprecated registry.configs property

registry.configs is a wrapper around AuthConfig, and for AuthConfig we recommend migrating to ImagePullSecrets:
https://github.com/containerd/containerd/blob/v2.0.0/internal/cri/config/config.go#L228

Actually in 1.7 it looks like there's an additional TLSConfig:
https://github.com/containerd/containerd/blob/v1.7.23/pkg/cri/config/config.go#L249

Closing because not needed -- registry.config_path is the replacement for the TLSConfig in registry.configs in 1.X


[Browse -> Feed] Opening Source Feed doesn't auto-trigger its respective "saved search" anymore

Steps to reproduce
Open Browse -> Feed tab.
Tap the title (or arrow button) of any Source Feed you have previously added to the list.
Expected behavior
Opening the Source Feed should auto-trigger its saved search, in case it's a Source Feed based on a saved search.
Actual behavior
After upgrading to Preview r479, opening the Source Feed isn't auto-triggering its saved search.
Instead, it displays the source's default (Latest) results, even if it's a Source Feed based on a saved search.
Crash logs
No response
Tachiyomi version
Preview r479
Android version
7.1.1
Device
Samsung Galaxy J2 Pro (SM-J250M)
Other details
Similar, possibly-related issue:
https://github.com/jobobby04/TachiyomiSY/issues/683
Acknowledgements

[X] This is a TachiyomiSY specific issue that does not happen in Tachiyomi Preview.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extensions repository.
[X] I have tried the troubleshooting guide.
[X] I have updated the app to version 1.8.5.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Already fixed for the next build 👍


BIDS URIs failing for at least some datasets

What happened?
Phasediff fieldmaps are not being found when IntendedFor: ['bids::...', ...].
cc @julietteboscheron
What command did you use?
fmriprep-docker $DATA $OUT participant

What version of the software are you running?
24.1.0rc0
How are you running this software?
Docker
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
No response
Additional information / screenshots
No response

I had the same issue. I also used docker and fMRIPrep 24.1.0rc0 and my dataset is BIDS valid. fMRIPrep also did not report any error, it was only evident through the output.


quiche: update tar ball to f555d99a084cdd086a349548c70fb558ac5847cf

Signed-off-by: Dan Zhang<EMAIL_ADDRESS>Update QUICHE to commit f555d99a084cdd086a349548c70fb558ac5847cf to fix some Windows compilation errors.
Remove EnvoyCryptoServerStream interface because it was there purely to accessing proof source in quic:: QuicCryptoServerStream and quic:: TlsServerHandshaker. Now that QUICHE provide a common interface for these two to expose ProofSource object, we don't need to override them to obtain and access the proof source any more. Remove the envoy subclasses EnvoyQuicCryptoServerStream and EnvoyQuicTlsServerHandshaker.
Fixes #10420, #13154

/assign @wu-bin @alyssawilk

@danzh2010 there's a gcc CI failure in quiche (not envoy) code.
/wait

gcc is still broken in quiche
/wait

This looks good now on gcc @ggreenway
@danzh2010 TYVM!

Had to fix more in upstream, PTAL

As this is a blocking issue for other PR's we would ask @envoyproxy/senior-maintainers if anyone has cycles to give this a green light and pull it?


Fixing the versions numbers and links in the site docs

Fixing the versions numbers and links in the site docs

Fixed Bazel and Heron Versions in all versioned docs
Fixed en language-based problems
Fixed Release Notes problems
Fixed Broken Links
Updated the scripts to build the site

To Test:
cd incubator-heron/website2/website
make buildsite
cd ${ROOT_DIR}/generated-site/content/
Use now (npm i -g now & now)

@ChethanUK any updates on this PR?

It seems like @ChethanUK has been pretty busy recently. @joshfischer1108 maybe let's merge and then clean it up?

@nwangtw Sounds good to me.


Remove FIXME against scalajs-env-nodejs

Changes

Remove FIXME against scalajs-env-nodejs
because this bug is already fixed.

Codecov Report

Merging #204 (73e8f5e) into main (a04561b) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #204   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           50        50
  Lines         1663      1663
  Branches        83        83
=========================================
  Hits          1663      1663

Continue to review full report at Codecov.

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


Initial web frontend

Implement the initial web application

For now, just verify the backend stuff. Frontend is easier to work on with authentic data.


feat: update cmake to use a newer version

Description of Change

Updated CMake to use a newer version. It's set to the same as the C repo.
Checklist

[x] Added description of change
[ ] Added file name matches File name guidelines
[ ] Added tests and example, test must pass
[ ] Added documentation so that the program is self-explanatory and educational - Doxygen guidelines
[ ] Relevant documentation/comments is changed or added
[x] PR title follows semantic commit guidelines
[x] Search previous suggestions before making a new one, as yours may be a duplicate.
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:

Looks great thanks so much we've been wanting to upgrade cmake for a while now ❤

No problem


Get all places in my region

Hi, thank you for beautiful lib. If there an option if I need to get array of nearby addresses/places?

Thank you.
Not yet but with MKLocalSearch it's pretty easy:
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = "Restaurants"
request.region = mapView.region
let search = MKLocalSearch(request: request)
search.startWithCompletionHandler { (response, error) in
    guard let response = response else {
        print("Error: \(error)")
        return
    }

    for item in response.mapItems {
        // ... do something
    }
}


Add Redfish provider dependency

Commit in this pull requests adds new gem group with redfish provider in it.
/cc @gberginc @gtanzillo @Fryguy

This pull request should not be merged until Redfish provider is moved under ManageIQ organization, since manageiq_plugin tries do fetch gem from ManageIQ organization.

Marking WIP as it depends on the provider actually being migrated to ManageIQ.
@miq-bot add_label wip

@miq-bot remove_label wip

Related bugzilla entry: https://bugzilla.redhat.com/show_bug.cgi?id=1574808

@tadeboro besides the changes that you need to make to ensure tests regarding EMSes will pass, are there any other requirements needed for this provider that would affect other contributors? I guess not, but in case there are some additional dependencies, not specified in gemspec, the guides should also be updated.

Redfish provider currently has no non-ruby dependencies and instructions for setting up a provider developement environment in the guide are sufficient to get the things up and running.

LGTM
@miq-bot assing @gtanzillo.

@miq-bot assign @gtanzillo


Support bisect in spec opts

I'm breaking out a new PR to fix #2231, based on discussion in #2259.
To summarise progress: the infinite looping problem is solved by modifying the environment given to the child processes, so that only the parent process starts a bisection.
However, the existing invocation of Bisect::Runner from within OptionParser is problematic, because OptionParser is invoked twice: once for CLI args, and once for args set in the environment. We need to invoke the bisection only once all args have been parsed, so that the correct commands can be issued to the child processes.
@myronmarston has suggested we refactor the OptionParser so it no longer invokes any actions directly, but instead returns a callable that the main runner can invoke. The current diff contains a sketch implementation of what I understand this to mean.
@myronmarston - is this sort of thing what you envisaged? (Obviously there'd be further refactoring to do, I just wanted to check I've got the right general idea...)

Hey @urbanautomaton, thanks for taking a stab at this.  It definitely looks like a good start.
I think the refactoring of option parsing can be a self-contained PR.  What do you think about opening a PR for just that so we can get it merged quick?  Then you can deal with the bisect issues in a PR on top of that.
I'll go leave a few comments about the option parsing stuff on this PR now as well.

@myronmarston Thanks for the feedback. Responding inline here so the convo doesn't get lost when the diff changes:

options[:runner] = -> (opts, err, out) do
  initialize_project_and_exit
end

Could this be options[:runner] = method(:initialize_project_and_exit)? The method would have to take the args, but I think that's ok.

I had a stab at this, but ran into difficulties when porting #print_help_and_exit, because it requires extra information that's local to the parser, and not accessible via the options passed to the callable.
I've now tried something similar to what you suggest, but with factory methods returning lambdas that can capture any information necessary for the particular callable. What do you think?

I've now tried something similar to what you suggest, but with factory methods returning lambdas that can capture any information necessary for the particular callable. What do you think?

:+1:

I've addressed the feedback so far, and replaced the cuke with assertions at the Bisect::Runner unit test level. I think I'm happy with that, and don't feel like integration-level testing is necessary.
For JRuby and 1.8.7, Open3.popen3 doesn't support a passed environment. I've fallen back to modifying-and-restoring the env of the parent process in this case; I felt this was less error-prone than trying to build a command string with environment variables in it. I'd appreciate feedback on whether the assertions this necessitates are too complex as a result.
At the moment I'm testing the runner callables as part of the OptionParser tests, and have consolidated these tests there (moving some tests of the DRbRunner invocation as appropriate). Does this seem reasonable? I'm half-tempted to extract the callables to their own file and test them directly - would renaming the module something like RSpec::Core::Invocations make sense? (I would suggest Runners, but this name is pretty taken.)
The suite is almost totally green, but for a single warning generated by the 2.2 job. This job is running 2.2.0-p0, and the warning seems to be in error, as it doesn't appear in later versions of the 2.2.x branch. Is testing against 2.2.0-p0 deliberate, or could this job be updated to 2.2.5? If the former, I'd love a pointer as to how to address this warning, because I can't see anything wrong with the code that's triggering it.

The suite is almost totally green, but for a single warning generated by the 2.2 job. This job is running 2.2.0-p0, and the warning seems to be in error, as it doesn't appear in later versions of the 2.2.x branch. Is testing against 2.2.0-p0 deliberate, or could this job be updated to 2.2.5? If the former, I'd love a pointer as to how to address this warning, because I can't see anything wrong with the code that's triggering it.

This was a warning added to 2.2.0:
https://bugs.ruby-lang.org/issues/10661
Ruby-core removed the warning when I raised that issue, and it got removed from 2.2.1.  (Unfortunately, it was added at the last minute to 2.2.0 and so it was never part of any of the RCs so I could notice and comment then).
To fix the warning on 2.2.0, you'll need to apply one of these fixes:

Rename the args local variable from earlier in the file
Rename the let(:args)
Change the calls to the args method (defined by the let) so that they are obviously method calls and not variables -- e.g. args() or self.args.

All the fixes for this are sub-optimal and the warning is annoying (it's why I raised the issue on ruby-core when I first noticed).

Is testing against 2.2.0-p0 deliberate, or could this job be updated to 2.2.5?

Testing against 2.2.0-p0 is not deliberate. I thought that are use of 2.2 in .travis.yml would cause travis to pick the latest available version of 2.2 (something like 2.2.5) but that does not work.  So I think it's worth changing it to 2.2.5 in .travis.yml so we don't have to deal with the annoying warning anymore (it has come up multiple times, unfortunately).

:+1: Looking good, @urbanautomaton!  We are expecting to release 3.5 in the next few days (we plan to release as soon as rails 5 final ships, and we hear it should be this week), so I'm hoping we can get this merged before 3.5 ships :).

At the moment I'm testing the runner callables as part of the OptionParser tests, and have consolidated these tests there (moving some tests of the DRbRunner invocation as appropriate). Does this seem reasonable? I'm half-tempted to extract the callables to their own file and test them directly - would renaming the module something like RSpec::Core::Invocations make sense? (I would suggest Runners, but this name is pretty taken.)

What you've done is fine.  Your idea to take it a step further with RSpec::Core::Invocations sounds like a nice further improvement.  I don't consider it a pre-requisite to merge this PR but if you want to do that, please take a stab at it!

Your idea to take it a step further with RSpec::Core::Invocations sounds like a nice further improvement. I don't consider it a pre-requisite to merge this PR but if you want to do that, please take a stab at it!

Okay - given the imminent release, then, I'd like to make that change but will tackle it in a separate PR.
I think the build should be passing again now (it's being very slow kicking off for some reason). I'm still not entirely happy with the Open3 matchers (the way I've got it accessing the called_environment seems wrong somehow), but apart from that I think I'm about done. If there's no further feedback I'll rebase the commits into a better story and then we'll hopefully be ready to go.

I think the build should be passing again now (it's being very slow kicking off for some reason).

I think Travis is starting it now.  Must have just gotten backed up for some reason.

If there's no further feedback I'll rebase the commits into a better story and then we'll hopefully be ready to go.

I left the one comment above about switching back to a block perhaps making more sense and being OK, but whichever approach you decide to take there is fine.  Regardless, this LGTM.  I'll be happy to merge after you've rebased into a clearer story as you said :).

The build is green now, FWIW :).

Okay - I went back to the block form for the Open3 assertions and have rebased the branch into something more coherent.
The Invocations extraction turned out pretty easy, so I've done that too (but will happily revert and separately PR it if that commit contains anything controversial at all). Last question: I've marked that whole module @private for documentation purposes - is that okay? I wondered whether I should be documenting the module and marking the invocation methods @private instead. I don't think it's something any user is likely to access directly, though.

:+1: LGTM.  I plan to merge when the build goes green.

Missed out the @private declarations on the callable classes - patched and now it's green! 🎉

Thanks, @urbanautomaton!

As always, thanks for the great work, @urbanautomaton :).

Thanks, and a pleasure as always. 😄


Its possibel use the option "Continue Training" with the option "Finetune"?

I have a doubt:
Is it possible to use the "Continue Training" option with a voice that was previously trained using the "Finetune" option in the Colab Training Notebook? If it is possible how can I do this? I appreciate any information.

I have a doubt: Is it possible to use the "Continue Training" option with a voice that was previously trained using the "Finetune" option in the Colab Training Notebook? If it is possible how can I do this? I appreciate any information.

Hi @JeditPro,
Yeah it's possible. The notebook always continues from version 0 and last.ckpt as a checkpoint name.

Hi @rmcpantoja
Thanks for the info!

Hi @rmcpantoja
Thanks for the important info. Can you tell me how long, on average, I should train a voice with an audio dataset of just over 5 minutes?

@rmcpantoja
I'm trying to train a voice model for Brazilian Portuguese (pt_BR) using the "Finetune" option which uses pre-trained models with the Training Notebook on Google Colab. However, in the end result there are many "artifacts" in the generated voice, causing the voice to be "shaky".
Below is a comparison between the Original Audio and the Trained Model Audio.
https://drive.google.com/file/d/1WP8divAUCyaQVsV_9S2I4afe3F601g1k/view?usp=sharing
I trained this voice model using an audio dataset of more than 5 minutes as reported in the Training Notebook for 5 consecutive hours using the V100 GPU.
I don't know what I'm doing wrong. any help is appreciated.
The original files that I used to train the model and also the files generated at the end of training can be downloaded from this link below if you want to check.
https://drive.google.com/file/d/1Dpt0BK_qd5IgE0nn2N6OgaG8C72pfP2b/view?usp=sharing


Add missing dependencies to cli-connector extension and include dev-console service pattern

Added another missing dependency and ensured dev-console services are included.

Thanks a lot - going to be great to do camel jbang demo/blogs where CEQ is part of the gang


Source files and js file not generated

Hi Folks,
.js files for main.ts and source map files are not updating and not create again if deleted manually.
Regards,

I don't seen enough details to answer this question. Have you tried
npm run clean-install
# then
npm run build

FYI: you can use Yarn instead of npm.

yes I have tried this... but still not getting...

What do you mean? This doesn't generate files, is all in memory (for dev).


view: add custom new account form

Fixes #238

@rhtyd can be reviewed depending upon the comment on the original issue

@shwstppr or @davidjumani  can you fix the conflict? Thanks.

@rhtyd done

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/257 (JID-2001)

Closing in favour of #170


Responsiveness breaking on player 2 guess page

Responsiveness is breaking on mobile view for player 2 guess page

Issue fixed in commit b589646 on branch 'chore/add-player-authorization'


ENTESB-20593 - Azure Storage Blob Source Kamelet, switch to a pure consumer implementation

@squakez there is also an alignment to Camel 3.18.3 which will be the target release for 1.10, even for the product. In the utils we were still using 3.11.5


performance by bluebench

coverage: 80.056% (+0.02%) from 80.039%
when pulling c4d404b454c74dd753c576ed9918c7270b1e0180 on performance_blue_benchmark
into<PHONE_NUMBER>ef52c62eb82db80ef3635db838a9c4 on main.


[TACHYON 444] Create a separate jar for TachyonLocalCluster

https://tachyon.atlassian.net/browse/TACHYON-444
This is the first step to build a separate jar with a mock tachyon cluster.
This PR just moves several classes related to TachyonLocalCluster from integration-tests to new module minicluster.

Thanks Chang for cleaning that TODO (I left it), really appreciate for your help.
A few high-level comments:

There is a WIP aiming to refactor integration-tests. https://github.com/amplab/tachyon/pull/969
Is this PR orthogonal to that one?

shall we create a dedicate package for these classes, rather than still spreading each class in its original package. Do we have class visibility issues anywhere?

is it better to have this in jar or still in test-jar?

shall we call it minicluster, or make it more general tachyon-test (providing test facilities for Tachyon users)?

There are some questions, like to hear some discussion. @calvinjia

@calvinjia @apc999 comments resolved.

@apc999
This PR should be orthogonal to #969 @rvesse
I think the underfs package still makes sense but not the master.
I think a normal jar is fine, it is less work to add as a dependency.
I'm open to other names, minicluster is what is used in hdfs for their mock cluster so that may make it easier to understand.

In general look good to me. Just left a single comment regarding readability :) Thanks

+1 LGTM

+1 LGTM


PHP 8.3 support

Feature Request

Q
A

New Feature
yes

RFC
yes/no

BC Break
yes/no

Summary
Make this laminas/cache Adapter compatible with new php 8.3 release.

PR welcome.

@boesing Seems like boesing/psalm-plugin-stringf must be updated first. 🤷♂

Fixed with #83 and released with version 2.7.0.


Form submit integration tests fail after PSR request changes

Laravel Version
10.29
PHP Version
8.1
Database Driver & Version
No response
Description
A few of my integration tests in my project failed with 10.29, no issues in 10.28. I use PSR request in my controllers for being framework agnostic.
I also have  a few integration tests that test a form submit. A form submit POST body does not contain JSON, but url encoded (http_build_query). It seems that after the fix for #48696 an error is thrown on getPayload() as it tries to parse the url encoded POST body as JSON.
It could be this should be fixed in symfony/symfony since this issue is related to getPayload() not checking content types.
Steps To Reproduce
Make an integration tests and use a POST body with http_build_query and not JSON. The content-type header should be application/x-www-form-urlencoded. The controller it is testing is using ServerRequestInterface as typehint.

@pjordaan could you please let us know the error is you are seeing?
Also wondering if this might already have been fixed in: https://github.com/laravel/framework/pull/48823

No, it was not the fix in #48823. The problem is that it calls $illuminateRequest->getPayload()->all(), but the POST body is not JSON and getPayload() is not checking if the body is JSON.

Ok I removed the conflict 10.29 from composer.json and run composer update and run the tests again to get a stacktrace:
Symfony\Component\HttpFoundation\Exception\JsonException: Could not decode request body.

./project/vendor/symfony/http-foundation/Request.php:1530
./project/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php:142
./project/vendor/laravel/framework/src/Illuminate/Support/helpers.php:432
./project/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php:143
./project/vendor/laravel/framework/src/Illuminate/Container/Container.php:908
./project/vendor/laravel/framework/src/Illuminate/Container/Container.php:795
./project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:955
./project/vendor/laravel/framework/src/Illuminate/Container/Container.php:731
./project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:940
./project/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php:85
./project/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php:50
./project/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php:30
./project/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:60
./project/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:40
./project/vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
./project/vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
./project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:799
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
./project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:800
./project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:777
./project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:741
./project/vendor/laravel/framework/src/Illuminate/Routing/Router.php:730
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:200
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php:31
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:40
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:99
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
./project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:175
./project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:144
./project/packages/integration-tests/src/Applications/Laravel/LaravelTestApplication.php:124

I found out what the issue was. The issue is not found in Laravel. So I close my issue.

@pjordaan what was the issue?

@driesvints  I hope I'm clear because it is linked to many packages (Laravel, symfony http foundation and symfony psr bridge):
in my integration test I was creating a PSR server request object. The PSR server request object has a body and proper content-type header, but the parsed body was not filled in. The symfony bridge fills in $request->request for form submits by reading the request parsed body (which was not filled in). The getPayload method of Request assumes $request->request is not empty if it's a form submit and assumes it's JSON otherwise. Only if you convert a PSR server request object to a symfony/laravel Request object you can get the request object in this state. I fixed it in my test by parsing the body manually.
It would never happen in an actual application!


Update README.md

This solves this issue: https://github.com/bugsnag/bugsnag-laravel/issues/76

Hi @mabasic! This looks good, thanks!


Improve test coverage

Codecov Report

Merging #146 (017bfa2) into develop (d726dd7) will increase coverage by 18.41%.
The diff coverage is 80.00%.

@@             Coverage Diff              @@
##           develop     #146       +/-   ##
============================================
+ Coverage    68.37%   86.79%   +18.41%
============================================
  Files           27       27
  Lines         1325     1325
  Branches       210      210
============================================
+ Hits           906     1150      +244
+ Misses         349      101      -248
- Partials        70       74        +4

Impacted Files
Coverage Δ

src/FaceRecognitionDotNet/FaceRecognition.cs
85.32% <80.00%> (+14.46%)
:arrow_up:

...t/Extensions/EyeAspectRatioBaseEyeBlinkDetector.cs
72.72% <0.00%> (+4.54%)
:arrow_up:

...nitionDotNet/Extensions/SimpleHeadPoseEstimator.cs
89.69% <0.00%> (+6.18%)
:arrow_up:

...RecognitionDotNet/Extensions/SimpleFaceDetector.cs
80.00% <0.00%> (+10.00%)
:arrow_up:

src/FaceRecognitionDotNet/Image.cs
96.96% <0.00%> (+12.12%)
:arrow_up:

src/FaceRecognitionDotNet/FacePoint.cs
88.46% <0.00%> (+26.92%)
:arrow_up:

src/FaceRecognitionDotNet/HeadPose.cs
90.00% <0.00%> (+60.00%)
:arrow_up:

...RecognitionDotNet/Extensions/SimpleAgeEstimator.cs
70.00% <0.00%> (+70.00%)
:arrow_up:

...ognitionDotNet/Extensions/SimpleGenderEstimator.cs
78.94% <0.00%> (+78.94%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #146 (017bfa2) into develop (d726dd7) will increase coverage by 18.41%.
The diff coverage is 80.00%.

@@             Coverage Diff              @@
##           develop     #146       +/-   ##
============================================
+ Coverage    68.37%   86.79%   +18.41%
============================================
  Files           27       27
  Lines         1325     1325
  Branches       210      210
============================================
+ Hits           906     1150      +244
+ Misses         349      101      -248
- Partials        70       74        +4

Impacted Files
Coverage Δ

src/FaceRecognitionDotNet/FaceRecognition.cs
85.32% <80.00%> (+14.46%)
:arrow_up:

...t/Extensions/EyeAspectRatioBaseEyeBlinkDetector.cs
72.72% <0.00%> (+4.54%)
:arrow_up:

...nitionDotNet/Extensions/SimpleHeadPoseEstimator.cs
89.69% <0.00%> (+6.18%)
:arrow_up:

...RecognitionDotNet/Extensions/SimpleFaceDetector.cs
80.00% <0.00%> (+10.00%)
:arrow_up:

src/FaceRecognitionDotNet/Image.cs
96.96% <0.00%> (+12.12%)
:arrow_up:

src/FaceRecognitionDotNet/FacePoint.cs
88.46% <0.00%> (+26.92%)
:arrow_up:

src/FaceRecognitionDotNet/HeadPose.cs
90.00% <0.00%> (+60.00%)
:arrow_up:

...RecognitionDotNet/Extensions/SimpleAgeEstimator.cs
70.00% <0.00%> (+70.00%)
:arrow_up:

...ognitionDotNet/Extensions/SimpleGenderEstimator.cs
78.94% <0.00%> (+78.94%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

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


Upload Failure after page-type installation

Hello there,
after i finished my troublesome page-type installation today in the morning i am now stuck with a problem uploading images.
If i try to upload an Image i get the "Upload failure." inside the editor.
Resque scheduler and worker are running, the aws configuration didnt change and the upload was possible before.
Imagemagick is installed on the System and i checked the resque logs, the production log and the logs inside the "jobs" folder.
The "jobs" logs are not getting any entry from today.
The only error i can find is when looking into the browser console there is a Internal Server Error when trying to upload.
The POST to my.domain.com/editor/entries/19/files/image_files yields a 500. The Response just says {"status":"500","error":"Internal Server Error"}
i checked this issue : https://github.com/codevise/pageflow/issues/275
which seems to have a similar problem but their solution is just the aws config which didnt change for me. I have installed imagemagick as well, but not as a gem just onto the system.
I dont know which information i can support you more with. I hope you can help me again on this one.
[edit]
could this be a problem with redis-server after my passenger-config restart-appcall?
Considering the time the last uploads where possible this could match.
I really need this pageflow installation to run as fast as possible.
Thanks in advance
and
Best regards,
Ronald

I found the solution myself. The issue was Rails not finding imagemagick anymore for some reason so i added this line to my production.rb
Paperclip.options.merge!(:command_path => "/usr/bin")

and this fixed the Issue.
Thanks and best regards,
Ronald.
I would close this Issue then


[BUG] Import error for cuml.dask.extended.linear_model.logistic_regression.LogisticRegression

While working on #962, I got an ImportError: dask-glm >= 0.2.1.dev was not found, please install it to use multi-GPU logistic regression when trying to import cuml.dask.extended.linear_model.logistic_regression.LogisticRegression. Not sure if it's just a temporary version issue or something to to with our CI, so filing an issue here.

The fix: https://github.com/rapidsai/cuml/issues/4919

We'll expect an ImportError in the pytest with the idea that the user will see the message and install dask-glm themselves.


Don't fold flow.tensor.splat with dynamic shape

DenseElementsAttr requires static shape; we will hit assertions
when trying to fold dynamic shaped flow.tensor.splat.

Good catch!


NIOPipeBootstrap/PipeChannel: support only one direction

Allow only having one direction open. In many cases I happen to only need one direction (as in either input XOR output) when using NIOPipeBootstrap but NIO currently makes that very hard.
The workaround is to open a completely useless pipe that gets passed to the unneeded direction of the pipe bootstrap. The other end then gets immediately closed. Whilst that works, it (very temporarily) wastes two file descriptors and is just awkward.
To make matters worse, /dev/null and /dev/zero cannot be used as stand-ins because at least epoll doesn't support operating on these...
Example workaround (contains small bugs but you get the gist)
        // Just so we've got an input.
        let deadPipe = Pipe()
        let channel = try await NIOPipeBootstrap(group: eventLoop)
            .channelOption(ChannelOptions.allowRemoteHalfClosure, value: true)
            .channelOption(ChannelOptions.autoRead, value: false)
            .withPipes(
                inputDescriptor: dup(deadPipe.fileHandleForReading.fileDescriptor),
                outputDescriptor: dup(fd)
            ).get()
        channel.close(mode: .input, promise: nil)
        try! deadPipe.fileHandleForReading.close()
        try! deadPipe.fileHandleForWriting.close()

Ideally, withPipes would take optional file descriptors and if nil start closed in that direction.

@FranzBusch didn't you do some work on NIOPipeBootstrap recently? If there's any API change anyway (or new API) then we should add affordances for this in there too before release.


Add property hints for debugger/profiler editor settings

This also adds descriptions for those settings.

This closes https://github.com/godotengine/godot/issues/74919.

Thanks!


Do not allow trust without acceptance from recipient

Recipients of trust requests must accept it to begin seeing thhe trusters ads in their feed.

For now, mute is used as a default preference.


How to use Jmeter for UI performance testing?

Hi,
I would like to use Jmeter for UI performance testing.
How to use Jmeter for UI performance testing?
How can I get the loading time of the HTML elements?
Thanks

Hi @mhdmaktabi - for such specific questions, not directly related to our repository, we invite you to write an email to<EMAIL_ADDRESS>Thanks!


Setting websocket port

First check

[ ] I added a very descriptive title to this issue.
[*] I used the GitHub search to find a similar issue and didn't find it.
[*] I searched the FastAPI documentation, with the integrated search.
[*] I already searched in Google "How to X in FastAPI" and didn't find any information.
[*] I already read and followed all the tutorial in the docs and didn't find an answer.
[*] I already checked if it is not related to FastAPI but to Pydantic.
[ ] I already checked if it is not related to FastAPI but to Swagger UI.
[ ] I already checked if it is not related to FastAPI but to ReDoc.
[*] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug

Port
How to add port in a websocket. I want specifically mention a port in the websocket server. I can specity the port from JS while connecting to a websocket, but can't I do it from the server side. Is there any default value? Can I change that default value?
@app.websocket("/ws")
async def websocketEndpoint(websocket: WebSocket):
    print("Awaiting clients connection")
    await websocket.accept()
    while True:
        try:
            await websocket.receive_text()
            resp = {'value': random.uniform(0,1)}
            await websocket.send_json(resp)
        except Exception as e:
            print('error:', e)
            break
    print("connection ended")

Environment

OS: [e.g. Linux / Windows / macOS]: linux 18.04
FastAPI Version [e.g. 0.3.0]: 0.65.1

To know the FastAPI version use:

Python version: 3.8

To know the Python version use:

I think websockets' endpoints run on the same port as your http server, so in JS you specify the same port that you specify when calling uvicorn.run (or whatever else you're using).

Got it. Is there a way for Server to know that websocket connection is broken or disconnected from client side?
Suppose, a web page is reloaded or closed, how would server know that client cut the connection?

There are WebSocketDisconnect and WebSocketClose exceptions in fastapi.websockets module. I think you need experiment to figure which one is raised when, but as far as I remember, they are raised when you're trying to do something. So, usually there's some kind of loop inside the ws endpoint, and you wrap the code in this loop in try: .. except: .., so that the endpoint function exits when the client is no longer available.

So I am facing this issue. I am not able to add multiple clients to same server with different client Ids
`import os
from time import sleep, time
from typing import Optional
from fastapi import FastAPI, Request, WebSocket, WebSocketDisconnect
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from connectionManager import ConnectionManager
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
logfolder = "logfiles"
manager = ConnectionManager()
@app.get("/logdata/{filename}")
async def getLogUpdates(request: Request, filename: str):
return templates.TemplateResponse("main.html", context={"request": request, "filename": filename})
@app.websocket("/ws/{client_id}/{filename}")
async def websocket_endpoint(websocket: WebSocket, filename: str, client_id: str):
print("new client added to the file log " + str(filename) + ": " + str(client_id))
await manager.connect(websocket)
filepath = os.path.join(logfolder, str(filename) + ".log")
f = open(filepath, "r")
seek = 0
while True:
f.seek(seek)
line = f.readline()
seek = f.tell()
if not line:
break
try:
while True:
f.seek(seek)
line = f.readline()
if line:
await manager.broadcast(line.strip())
seek = f.tell()
else:
sleep(0.5)
except WebSocketDisconnect:
print("client " + client_id + " disconnected from the file " + str(filename))
manager.disconnect(websocket)
`
My connection manager:
`from typing import List
from fastapi import WebSocket
class ConnectionManager:
def __init__(self):
    self.activeConnections: List[WebSocket] = []

async def connect(self, websocket: WebSocket):
    await websocket.accept()
    self.activeConnections.append(websocket)

def disconnect(self, websocket: WebSocket):
    self.activeConnections.remove(websocket)

async def send_text(self, text: str, websocket: WebSocket):
    await websocket.send_text(text)

async def broadcast(self, text: str):
    for connection in self.activeConnections:
        await connection.send_text(text)`

My frontend: [I am kinda new to frontend, I did what I can]
`

Tail

`
I am not able to run a different client with same server. Not sure what I am doing wrong.

@chandu1263 the code you posted is not formatted properly. For multi-line code snippets you should use triple backticks (```) at the beginning and end.

@roveo I formatted it correctly. Can you help me with what I might be doing wrong?

Not sure. I would suggest you test parts of your code separately to make sure they work as intended (ConnectionManager class, ws endpoint and then frontend part).
That said, I see several issues with your solution:

time.sleep function is not asynchronous and so it is blocking (the whole app), you should use await asyncio.sleep(0.5)

file IO is also blocking. You should use aiofiles or run_in_executor to avoid this.

I would factor out the file listening logic to another class, so you would do something like this in the endpoint:

listener = FileListener(file)
while True:
    new_line = await listener.getnext()
    await websocket.send(new_line)

or even
listener = FileListener(file)
async for line in listener:
    await websocket.send(line)

I don't think that you need a separate ws endpoint for each client. If you eliminate the client_id part from the endpoint, you can also get rid of ConnectionManager class and broadcasting. Just open the log file for each connected client and send lines as they appear.

there's this library: https://github.com/samuelcolvin/watchgod that allows you to asynchronously listen to changes in files. Might help in your case.

I have modified this accordingly on what you suggested. I added a new class fileListener
import time

class FileListener:

    def __init__(self, filepath):
        self.seek = 0
        self.f = open(filepath, "r")
        self.latest_line = ""
        self.get_latest_seek()
        self.last_updated_time = time.time()
        self.thread = threading.Thread(target=self.update, args=())
        self.thread.daemon = True
        self.thread.start()

    def get_latest_seek(self):
        while True:
            self.f.seek(self.seek)
            self.latest_line = self.f.read()
            self.seek = self.f.tell()
            if not self.latest_line:
                break

    def update(self):
        while True:
            self.f.seek(self.seek)
            latest_line = self.f.read()
            if latest_line:
                if latest_line.strip():
                    self.latest_line = latest_line.strip()
                    self.last_updated_time = time.time()
                self.seek = self.f.tell()

    def get_latest(self):
        return self.last_updated_time, self.latest_line

Then I removed the client_id and connection manager. I also removed the time.sleep()
import pickle
import os
from time import sleep, time
from typing import Optional

from fastapi import FastAPI, Request, WebSocket, WebSocketDisconnect
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates

from fileListener import FileListener

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
logfolder = "logfiles"

@app.get("/logdata/{filename}")
async def getLogUpdates(request: Request, filename: str):
    return templates.TemplateResponse("main.html", context={"request": request, "filename": filename})

@app.websocket("/ws/{filename}")
async def websocket_endpoint(websocket: WebSocket, filename: str):
    print("new client added to the file log " + str(filename))
    await websocket.accept()
    fileListener = FileListener(os.path.join(logfolder, filename + ".log"))
    t = time()
    try:
        while True:
            latest_t, line = fileListener.get_latest()
            if latest_t != t:
                await websocket.send_text(line)
                t = latest_t
    except WebSocketDisconnect:
        print("client disconnected from the file " + str(filename))
        await websocket.close()

But still I am not able to add more than one client to the server. Second client is waiting for the first client to disconnect.
I modified the front end code [ removing the client id]
<!DOCTYPE html>

	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Tail </title>

Am I missing some basic async and await functionality

The way to think about async here is that the second client can connect only while the first endpoint is awaiting on something. Because your whole app works in the same thread, it can't accept a second connection because when client2 tries to connect, the thread is blocked at this line:
latest_t, line = fileListener.get_latest()

fileListener exists in a separate thread, BUT your main thread is blocked by waiting for the next line to appear. You can avoid this by making your file listener asynchronous.

Here's a working example with just one file per app and so one endpoint. Run this with python app.py yourlog.log, so your log file goes after app.py as an argument.
import asyncio
import sys

import uvicorn
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.responses import HTMLResponse

PATH = sys.argv[1]

app = FastAPI()

page = """

"""

@app.get("/")
def index():
    return HTMLResponse(page)

class Listener:
    def __init__(self, path: str, polling_interval: float = 0.5) -> None:
        self.path = path
        self.pos = 0
        self.polling_interval = polling_interval

    async def listen(self):
        loop = asyncio.get_running_loop()
        while True:
            lines = await loop.run_in_executor(None, self.poll)
            for line in lines:
                yield line
            await asyncio.sleep(self.polling_interval)

    def poll(self):
        with open(self.path, "r") as f:
            f.seek(self.pos)
            lines = f.readlines()
            self.pos = f.tell()
            return lines

@app.websocket("/ws/")
async def ws(websocket: WebSocket):
    await websocket.accept()
    port = websocket.client.port
    print(f"Client at :{port} connected")
    listener = Listener(PATH)
    try:
        async for line in listener.listen():
            await websocket.send_text(line)
    except WebSocketDisconnect:
        print(f"Client at {port} disconnected")

if __name__ == "__main__":
    uvicorn.run(app)

Thank you so much! I finally able to understand what I was doing wrong. That's a great code and very nice explanation.


updated noobaa-operator to 2.1 + vendor

@umangachapagain I've split to 2 commits. can you review it again?

/ok-to-test
Do we need this for OCS 4.3?

@umangachapagain yes we do


Add harvester for bicycle hiring in Barcelona

@cclauss please could you review this PR?

thanks @cclauss for the review and useful comments


[SPARK-48002][PYTHON][SS][TESTS] Adds sleep before event testing after query termination

What changes were proposed in this pull request?
This PR is a followup of https://github.com/apache/spark/pull/46237 that makes to wait 5 secs after the query termination to make sure the events arrive.
Why are the changes needed?
To deflake the test. It's flaky (https://github.com/apache/spark/actions/runs/8873809388/job/24360221027)
Does this PR introduce any user-facing change?
No, test-only.
How was this patch tested?
Manually.
Was this patch authored or co-authored using generative AI tooling?
No.

cc @WweiL

Merged to master.
I will revert this if that persists.


Add a call to query the servers defined in an OMAGServerConfigStore

Here is my draft design

introducing a new interface
`/**

OMAGServerConfigStoreQueryAll provides a method to retrieve all the stored servers. It is an extension to the OMAGServerConfigStore interface
to the configuration for an OMAG Server. This is accessed through a connector.

This function has been added to a new interface so existing implementations using OMAGServerConfigStore continue to work.
/
public interface OMAGServerConfigStoreRetrieveAll extends OMAGServerConfigStore
{
/*

Retrieve all the stored server configurations

@return the set of server configurations present in this OMAG Server Config store
*/
Set retrieveAllServerConfigs();

}`
The idea is to not effect existing connectors that implement the existing interface.

Changing EncryptedFileBasedServerConfigStoreConnector and FileBasedServerConfigStoreConnector to implement OMAGServerConfigStoreRetrieveAll

retrieveAllServerConfigs implementation will involve querying the current directory for files ending in config, it will loop through the files names it has found, putting them into the variable configStoreName and will call the existing retrieveServerConfig on each valid file it has found. This is a bit contrived but allows us hopefully not effect the existing implementations or duplicate code. If a file cannot be read or does not end in config - we ignore it.

A new admin call will be added called something like retrieveAllStoredServers,it will do a runtime check on the connector to see if it is implements the new interface, if it does not then a function not supported will be issued, if it does then the connector will be called.

The client will be updated to add the new method.

@mandy-chessell @cmgrote @grahamwallis @dkneisly @planetf1 Any feedback on this proposed design?

I have just been coding up the above design. I notice that OMAGServerConfigStore has an associated server, and the admin services obtain a  connection using a serverName. In my case I do not have a serverName. So I could

specify "." as the server name, which would mean the current folder and use the existing store
Expose a new connector that is not associated with a servername.
I plan to prototype with 1) to get something working. 2) seems a bigger change to make without getting feedback from others.

I wonder if this should be a different connector given that the current connector is focused on a single configuration document?  Also the file name for the config files follows a pattern that is configured for the connector - it does not necessarily end in "config"


Nixel clock

I have cleaned up all the number images to remove stray pixels, and remove the purple from the bottom of the tall numbers numbers. Hopefully it all looks a bit cleaner now.


Add this lib to sloth

Just for tracking purposes, would be great to get this added to https://github.com/googleapis/sloth/blob/master/repos.json

https://github.com/googleapis/sloth/pull/213


user16217248: Watch 91<PHONE_NUMBER>

user16217248 requests the watch of the watch_number 91<PHONE_NUMBER>. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by cocomac in Charcoal HQ


dotnet swagger tofile give error since v3.0.2

v3.0.1
dotnet swagger tofile --yaml --output openapi.json myproject.dll v1
Swagger JSON/YAML successfully written to /App/openapi.json

v3.0.2+
dotnet swagger tofile --yaml --output openapi.json myproject.dll v1
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'DotSwashbuckle.AspNetCore.Swagger, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

@Havunen You should use Tags and PRs. You spam the project with commits. It's going to be hard to diagnose.

It may relate to that change:
https://github.com/Havunen/DotSwashbuckle/commit/ac50b8916f8ce02c502a62379ec4adce3564c15b#diff-d9125c66d4c042c4f6320e6752dde14dfab438bfd620ba4b138ed51902fff6d3R96
Tomorrow could try to debug the project.

I had to redo the whole fork due to complains about commit history. You can check the changes between versions from the previous repo: https://github.com/Havunen/DotSwashbuckle2

I used the same version in the project and the CLI and it fix it.
Braking change in Patch version is a little bit hardcore...

Yeah the problem origins from Swashbuckle.
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2666
Do you know how it could be avoided to not throw exception if assembly versions dont match? Maybe we could experiment if opening nuget dependency range is enough to satisfy runtime?


docs: Updated ICE/PDP doc with PDP-based feature importance

Summary
Added documentation about PDP-based feature importance option for kind == feature. Added API calls and visualizations.
Tests
N/A
Dependency chances
N/A

/azp run

Codecov Report

Merging #1441 (e5e6e54) into master (74ed331) will decrease coverage by 1.85%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1441      +/-   ##
==========================================
- Coverage   84.64%   82.79%   -1.86%
==========================================
  Files         288      269      -19
  Lines       14298    13314     -984
  Branches      716      716
==========================================
- Hits        12103    11023    -1080
- Misses       2195     2291      +96

Impacted Files
Coverage Δ

...la/org/apache/spark/ml/param/TypedArrayParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...se/ml/cognitive/MultivariateAnomalyDetection.scala
13.83% <0.00%> (-75.00%)
:arrow_down:

...org/apache/spark/ml/param/JsonEncodableParam.scala
53.33% <0.00%> (-26.67%)
:arrow_down:

...ain/scala/org/apache/spark/ml/param/MapParam.scala
75.00% <0.00%> (-25.00%)
:arrow_down:

...zure/synapse/ml/stages/PartitionConsolidator.scala
70.21% <0.00%> (-23.41%)
:arrow_down:

...ala/org/apache/spark/ml/param/DataFrameParam.scala
58.33% <0.00%> (-12.51%)
:arrow_down:

...ala/org/apache/spark/ml/param/EstimatorParam.scala
75.00% <0.00%> (-12.50%)
:arrow_down:

...g/apache/spark/ml/param/PythonWrappableParam.scala
66.66% <0.00%> (-8.34%)
:arrow_down:

...hon/synapse/ml/core/serialize/java_params_patch.py
86.56% <0.00%> (-7.47%)
:arrow_down:

.../org/apache/spark/ml/param/UntypedArrayParam.scala
52.63% <0.00%> (-5.27%)
:arrow_down:

... and 28 more

Continue to review full report at Codecov.

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

/azp run

Thank you @memoryz and @mhamilton723 for the review! Sorry for my bad phrasing and grammar :)

/azp run


[Bug Report]: Possible bug with Adrenaline

Spark link
No response
Server Version
1.20.2
Server Platform
Paper
Describe the bug
It could be possible be tied to having Gears applied on the boots but I am not sure, the supposedly brief amount of the time the enchant is supposed to work for is actually very long

Steps to reproduce

Apply Adrenaline and try to use it for the intended use in the description.

Additional context
This could possibly be a result of a conflict with Gears, I am not sure.
Agreements

[X] I have searched for and ensured there isn't already an open issue regarding this.
[ ] I ticked all the boxes without actually reading them
[X] My version of Minecraft is supported by CrazyCrew.

It could've been my fault, closed.


Make Elvis a third-party Erlang.mk plugin

I would like to drop Elvis from the core Erlang.mk repository. I am currently documenting/testing plugins and came across a few third party things that should really be external plugins: Cowboy related templates, ErlyDTL and protobuffs compilation and Elvis.
Recently-ish I added support for external plugins, which can be loaded by using PLUGIN_DEP = elvis, for example. More info at https://github.com/ninenines/erlang.mk/blob/master/doc/src/guide/external_plugins.asciidoc
Would be great if you could try that. If it works, my work on the docs will amount to simply linking to this project's page rather than repeating everything.

@Euen @elbrujohalcon I would create a new repository elvis.mk like we did with hexer.mk.

@jfacorro you mean like this one? :trollface:


predicted landing spot displaying is wrong for drill blocks

A drill block removes normal blocks out of the way, and the landing predicting code doesn't take that in account.

Fixed in 50389e3


SHA-256 not supported for RSA encryption

I'm trying to verify the Azure attestation signature using this library and am able to successfully parse the signature, but validation fails with the following error.
pkcs7: unsupported digest "1.2.840.1135<IP_ADDRESS>" for encryption algorithm "1.2.840.1135<IP_ADDRESS>"

Hey @clarkmcc, looks like this case wasn't handled yet. I've opened a PR: https://github.com/smallstep/pkcs7/pull/12. Need to verify the allowed algorithms. The example from Microsoft succeeds validation with this single algorithm patched.

Fantastic news! Thanks for the quick turnaround.

@clarkmcc the PR was merged. Note that we've also changed the module name in https://github.com/smallstep/pkcs7/pull/16, so you should now be able to import it as github.com/smallstep/pkcs7.

I meant to ask about that. I had to jump through some hoops to work around that, so this is a great improvement! Thanks for your work on this.


Upgrade to opentelemetry 0.20

Upgrade to opentelemetry v0.20
Move init to zero test to separate file

This is unfortunately blocked on https://github.com/tokio-rs/tracing-opentelemetry releasing a new version

Specifically, need to wait for https://github.com/tokio-rs/tracing-opentelemetry/pull/36 to be merged and for a new version to be released


Vue: authentication JWT

Add authentication progress to vue application through pinia storage.
A login page has been created as a guard route.
Once connected you can access application single page and check your identity or ever log out.
Before adding jwt to vue generated application, make sur you added pinia or it gonna throw an error.
You can test it on this branch with credentials "admin, admin"

fix https://github.com/jhipster/jhipster-lite/issues/897

I edited your initial description to link to the original ticket

another comment: this feature is not tested in the CI, you need to update the generate.sh file


Bulk importing empty directory resulted in error

I accidentally bulk imported a directory that I had previously imported.  So the directory had no files in it.  I saw the following in the shell.   I am thinking it should not be an error in this case.  If we actually want an error for zero files, then it should be a nice clear error message.
root@muchos ci> importdirectory /tmp/bt/1/files true
2019-07-23 16:37:22,511 [shell.Shell] ERROR: org.apache.accumulo.core.client.AccumuloException: Internal error processing waitForFateOperation

I saw the following in the master logs.
2019-07-23 16:37:29,937 [thrift.ProcessFunction] ERROR: Internal error processing waitForFateOperation
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was END_ARRAY at line 1 column 3 path $[0]
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
        at com.google.gson.Gson.fromJson(Gson.java:927)
        at org.apache.accumulo.core.clientImpl.bulk.LoadMappingIterator.next(LoadMappingIterator.java:73)
        at org.apache.accumulo.core.clientImpl.bulk.LoadMappingIterator.next(LoadMappingIterator.java:40)
        at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47)
        at org.apache.accumulo.master.tableOps.bulkVer2.PrepBulkImport.checkForMerge(PrepBulkImport.java:108)
        at org.apache.accumulo.master.tableOps.bulkVer2.PrepBulkImport.checkForMerge(PrepBulkImport.java:167)
        at org.apache.accumulo.master.tableOps.bulkVer2.PrepBulkImport.call(PrepBulkImport.java:175)
        at org.apache.accumulo.master.tableOps.bulkVer2.PrepBulkImport.call(PrepBulkImport.java:68)
        at org.apache.accumulo.master.tableOps.TraceRepo.call(TraceRepo.java:49)
        at org.apache.accumulo.fate.Fate$TransactionRunner.run(Fate.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was END_ARRAY at line 1 column 3 path $[0]
        at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
        ... 14 more

Silently succeeding would be surprising behavior, because importing an empty directory is almost certainly a mistake on the user's part (typo: wrong directory specified). But, the above is very unfriendly, so a nice clear error message in the client would be nice.

One option would be to WARN on the client and then just pass through the server, succeeding.

I am leaning twoards succeeding on an empty directory because it makes it easier for user to wrote idempotent code.

I am leaning twoards succeeding on an empty directory because it makes it easier for user to write idempotent code.

It also makes it easier for the user to unintentionally write code like:
String dir;
while (dirs.hasMoreDirs()) {
  dirs.nextDir(); // forgot to assign to `dir`
  bulkImport(dir); // no indication whatsoever that there's a problem
}

I'm just glad I now know what that error messages means.  Thanks.

I like the idea of an explicit parameter and I think that would be easy to do in the Java API.  Not sure about the shell.

I like the idea of an explicit parameter and I think that would be easy to do in the Java API. Not sure about the shell.

Should be easy enough to add a shell option, --ignore-empty

Could make empty dir fail in 2.0 and open a 2.1 issue to add API and shell options to ignore empty.

Should be easy enough to add a shell option, --ignore-empty

Just have to consider that the shell may call the old or new API and think through how this option would work with both.

Could make empty dir fail in 2.0 and open a 2.1 issue to add API and shell options to ignore empty.

:+1: That would get us closer to 2.0 release faster.

I'll create a new issue - but related, it would be really helpful if the shell importdirectory command honored the -t table option.


Attempting to fix coverage issue by fixing coverage version to 6.5.0

Description

Checklist

[x] This PR has only one purpose or idea.
[x] Tests have been added/updated to verify that the new/changed code works.

[x] The code style follows good practices.
[x] The commit message(s) follow good practices.

[x] The release notes (location doc/release/0.X.rst) are up-to-date with any bug fixes or new features.
[x] The documentation is still up-to-date in the doc folder.
[x] The dependencies are still up-to-date in setup.py.

@jakehader Arrielle has run into an issue where she needs to update the version of coverage to get it working with Python 3.11.
This PR has no description.  Do you remember WHY you had to pin the version of coverage in the way you did?
Thanks!
Just FYI @opotowsky

Ah, @john-science, the linked issue describes the problem in detail:
https://github.com/terrapower/armi/issues/1058
Let's see how unpinning went in the py311 PR


Debian 10 no internet after restart system

Hello, No internet (on client) after reboot system. Connecting to server is fine but no internet. Using script for remove and install openvpn fix problem. Thanks.

@xMefistofelx I have checked the script and read all the options. This happened to me during a quick install, after checking,  I just  disable the following lines from the client machine:
ignore-unknown-option block-outside-dns
block-outside-dns

and if you want to specify the dns solvers of the client machine, try to add this to your ovpn file :
   pull-filter ignore "dhcp-option DNS"
This will avoid the dns overwrite,  it also will ignore all pushed config lines that we remove previously.

Hmm or just add a new line to set a new dns without removing the block outside dns line since it protects you from dns links

if this returns 0
sudo sysctl net.ipv4.ip_forward
sudo cat /etc/sysctl.d/30-openvpn-forward.conf
do this
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -p -f /etc/sysctl.d/30-openvpn-forward.conf

Closing this since the original reporting doesn't seem to be responding anymore.
This can happen for example in cloud servers which are behind NAT and the internal IP changes after rebooting them.


Host Admin is notified when a hosted Collective Admin removes a fellow Collective Admin.

Who is your user?
Fiscal Host administrators.
What are they trying to achieve?
We are legally responsible, with the degree of responsibility depending on the specific host, for the activities of hosted Collectives. While we may not get involved in every Collective conflict, we do need to be informed when a Collective admin removes another, so that we can check on the situation.
In many cases it is benign, but sometimes it is not (and there is an example that I can share with devs if necessary.)
How are they currently doing this?
I caught one that I would have liked to know about over a year later. Right now, there isn't really any good way to do this.

Triage Template (core team only)
This template is for members of the team to triage for prioritisation. For more guidance see https://www.loom.com/share/369ab467fbc64dec848085d38ff57ca0:
P1 high frequency, high impact
P2 low frequency, high impact
P3 high frequency, low impact
P4 low frequency, low impact
Examples of high impact - a problem affects users during an essential process (expenses and payments > onboarding and registration > contributing) with no workaround.
High frequency - >10% of users affected (measured as a proportion of total potential users for this case).

I think this will be best handled by #5195 where you'll be able to filter by admin change as a type of action.


Document using multiple sessions

Added some documentation for using multiple sessions/transactions in the one request.
Not sure if this is the best way of doing things but seems to be working fine for me.

Checklist:

[ ] Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.
[x] Add or update relevant docs, in the docs folder and in code.
[ ] Add an entry in CHANGES.rst summarizing the change and linking to the issue.
[ ] Add .. versionchanged:: entries in any relevant code docs.
[ ] Run pre-commit hooks and fix any issues.
[ ] Run pytest and tox, no tests failed.

It's not clear from the description or the docs why this is needed. And as you admit, it's not clear this is the correct way to do so or to solve the issue you're actually having. I'd prefer to leave this out of the docs.

No worries, I'll raise an issue with my use case for some further discussion :+1:


Pass changes in cfd proposals into projection actor

Instead of passing the whole HashMap to the projection actor, only send what has
actually changed.
Provide separate messages to update settlement proposal and roll over proposals,
as they will be sent from different actors.
Some type conversions added in this commit are meant to be temporary and will disappear when cfd actors will not be storing a joint hashmap of proposals (both settlement and rollover) anymore.

bors r+


IOBWS 3.0 > Claims Authentication and Authorization issues

The authentication group, strongly recommends having two separate endpoints for primary and secondary claims collection in order to simplify authentication and authorization, that else will become quite convoluted and require more complex implementation around  both the client and server authentication logic. Also, to make sure there are no mistakes, this will probably push quite a lot of the logic deep into the code base and increase the risk that the implementations are different in each financial institute.

Refer to issue #63


1.21 port

is it possible to build gradlew for 1.21 now? because I keep getting an error

If you dont know what you are doing, dont compile mods yourself.
To answer, no and even if it did compile the mod would do nothing for 90% of cit resourcepacks. Just be patient


Folder creation bugs

This one, I'm not sure if anyone else has every had this bug happening or even know that it can. I'm using Windows 8.1 and a Window 7 and I found on both that clicking on the "Destination Folder" for a location that has not been created yet and asking it to create the folder, well create an error and the text of this error is not in English in version 5.1.4 - 5.1.9. Same goes for if the folder your downloading a batched job to doesn't exist, it well not create it, but it well still download all the image 100%, then red them out.
The real problem starts when you use the "Save" or "Save and close" option when you click on a viewed image for a folder that doesn't exist. It well create any "Folder" you choose. Even hard to deleted ones, the system wouldn't let you make normally.
To re-create this error. Just create Folder destination with a SPACE at the end or just a space and that folder (e.g. "/funny /", "/ /" or "/ / / /funny /" or to be more specific to the programs destination Folder option "C:/Users/Name/Downloads/ARTISTS/test1 /") well be created as long as it doesn't already exist. This folder well report itself when you’re trying to delete it as "Could not find this item". This folder cannot be renamed and cannot be moved. If you somehow manage to rename this folder (I use a CMD command) before removing all files in the folder, all images in that folder well become inaccessible/un-viewable and the folder cannot be delete even with the CMD command I found on a Microsoft help page for space in folder problem in my experience.
This is CMD command that removes the folders that I found.
rd /s "\?\D:\bad\folder\path "
example: rd /s "\?\D:\Sharedata\folder1\folder2 " - note the space after folder2  as per the space in the folder name.
Hope this is just a run of the mile error encountered with programs running on windows. Since this doesn’t actually make the program not work and you can easy remember to check for spaces before using the ‘Save’ option in program for a new folder.

Just to be sure, the folders in question are the ones set manually in the options right? Not ones generated with filenames such as "%artist% /%md5%.%ext"?
I'll check both to be sure, thanks for the report :)


Add ability to delete using ip address

Description
I added lookup functions for each provisioner that list nodes based on tag/label where the provisioner supports it and then uses the ip to get the id of the node which is used to then delete it.
Related to #2
How Has This Been Tested?
I created an exit node and then deleted it using every provider.
 What migration steps/scripts do we need?
This functionality will only work on exit nodes created with a version that contains this pull request as it tags or labels the exit nodes.
Checklist:
I have:

[ ] updated the documentation and/or roadmap (if required)
[x] read the CONTRIBUTION guide
[x] signed-off my commits with git commit -s
[ ] added unit tests

Exceptional work 👏  thank you for testing each provider too.
I have a few review comments/questions, but this overall looks great.

I just merged in #16 which added the EC2 functionality. Would you be able to rebase this and add the delete by IP for EC2 please?

When rebasing / adding EC2, please could you squash the commits into one so that history doesn't contain the revisions, but just the final version?
Thanks a lot for getting this feature into inletsctl :100:

I just merged in #16 which added the EC2 functionality. Would you be able to rebase this and add the delete by IP for EC2 please?

Sure, will do!


Consumer not seeing message if started after message published

Describe the bug
If I start a consumer up after I placed a message on a topic, the consumer never see's the message.
To Reproduce
If none of the above are possible to provide, please write down the exact steps to reproduce the behavior:

Create brand new kafka instance
Run a producer and place 1 message on a topic
Run a consumer (fromBeginning: false) that subscribes to that topic and logs each topic offset
Consumer never see's producers message

Expected behavior
A consumer should pickup from the first available message
Observed behavior
Message is never received
Environment:

OS: alpine 3.11 container
KafkaJS version [e.g. 1.15.0]
Kafka version [e.g. 2.7]
NodeJS version [e.g. 12.6.3]

Additional context
I'm looking for the right way to configure the consumer group to start from the first message that has yet to be processed.  I cant think of a way in which I would know to set fromBeginning:true only once (im distributed in k8s and will be running a lot of consumers)
Some logs:
Kafka showing file-typer topic being created (when I wrote to it), then showing me turning on a single consumer (filetyper-fetcher in this case) and it connects and gets leader.  I then give it a little time and disconnect as it has not received any messages.
kafka        | [2021-04-14 15:21:35,119] INFO Creating topic file-typer with configuration {} and initial partition assignment HashMap(0 -> ArrayBuffer(1001)) (kafka.zk.AdminZkClient)
kafka        | [2021-04-14 15:21:35,161] INFO [KafkaApi-1001] Auto creation of topic file-typer with 1 partitions and replication factor 1 is successful (kafka.server.KafkaApis)
kafka        | [2021-04-14 15:21:35,209] INFO [ReplicaFetcherManager on broker 1001] Removed fetcher for partitions Set(file-typer-0) (kafka.server.ReplicaFetcherManager)
kafka        | [2021-04-14 15:21:35,219] INFO [Log partition=file-typer-0, dir=/kafka/kafka-logs-d50c860630f7] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
kafka        | [2021-04-14 15:21:35,221] INFO Created log for partition file-typer-0 in /kafka/kafka-logs-d50c860630f7/file-typer-0 with properties {compression.type -> producer, message.downconversion.enable -> true, min.insync.replicas -> 1, segment.jitter.ms -> 0, cleanup.policy -> [delete], flush.ms -><PHONE_NUMBER>854775807, segment.bytes -><PHONE_NUMBER>, retention.ms -> 604800000, flush.messages -><PHONE_NUMBER>854775807, message.format.version -> 2.7-IV2, file.delete.delay.ms -> 60000, max.compaction.lag.ms -><PHONE_NUMBER>854775807, max.message.bytes -> 1048588, min.compaction.lag.ms -> 0, message.timestamp.type -> CreateTime, preallocate -> false, min.cleanable.dirty.ratio -> 0.5, index.interval.bytes -> 4096, unclean.leader.election.enable -> false, retention.bytes -> -1, delete.retention.ms -> 86400000, segment.ms -> 604800000, message.timestamp.difference.max.ms -><PHONE_NUMBER>854775807, segment.index.bytes -> 10485760}. (kafka.log.LogManager)
kafka        | [2021-04-14 15:21:35,224] INFO [Partition file-typer-0 broker=1001] No checkpointed highwatermark is found for partition file-typer-0 (kafka.cluster.Partition)
kafka        | [2021-04-14 15:21:35,225] INFO [Partition file-typer-0 broker=1001] Log loaded for partition file-typer-0 with initial high watermark 0 (kafka.cluster.Partition)
kafka        | [2021-04-14 15:22:17,060] INFO [GroupCoordinator 1001]: Preparing to rebalance group filetyper-fetcher in state PreparingRebalance with old generation 0 (__consumer_offsets-2) (reason: Adding new member filetyper-fetcher-dcd5b6bb-bfea-46b3-9367-12aa75f9dbe9 with group instance id None) (kafka.coordinator.group.GroupCoordinator)
kafka        | [2021-04-14 15:22:17,064] INFO [GroupCoordinator 1001]: Stabilized group filetyper-fetcher generation 1 (__consumer_offsets-2) (kafka.coordinator.group.GroupCoordinator)
kafka        | [2021-04-14 15:22:17,100] INFO [GroupCoordinator 1001]: Assignment received from leader for group filetyper-fetcher for generation 1 (kafka.coordinator.group.GroupCoordinator)
kafka        | [2021-04-14 15:23:22,338] INFO [GroupCoordinator 1001]: Member filetyper-fetcher-dcd5b6bb-bfea-46b3-9367-12aa75f9dbe9 in group filetyper-fetcher has failed, removing it from the group (kafka.coordinator.group.GroupCoordinator)

consumer log: You can see I've enabled nearly all the kafkajs consumer events and they are outputting.  I see the group join and fetch requests happening, but none of my eachMessage stuffs gets called meaning the consumer is effectively at topic HEAD instead of 'last received message' which would be 0 in this case.
docker-compose up --build
Starting file-typer         ... done
Starting file-typer-fetcher ... done
Attaching to file-typer-fetcher, file-typer
file-typer-fetcher | 2021-04-14T15:22:16.285Z kafka:kadmin kafka connect string: kafka:9092 clientId: filetyper-fetcher
file-typer-fetcher | 2021-04-14T15:22:16.860Z kafka:producer creating producer filetyper-fetcher kafka:9092
file-typer-fetcher | 2021-04-14T15:22:16.869Z kafka:setup signals created [ 'producer.connect', 'producer.network.request_timeout' ]
file-typer-fetcher | 2021-04-14T15:22:16.871Z fetcher Server is running at port 8080
file-typer-fetcher | 2021-04-14T15:22:16.977Z kafka:setup signal producer.connect received InstrumentationEvent {
file-typer-fetcher |   id: 0,
file-typer-fetcher |   type: 'producer.connect',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>976,
file-typer-fetcher |   payload: undefined
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:16.978Z kafka:setup client created and connected
file-typer-fetcher | 2021-04-14T15:22:16.981Z kafka:setup signals created [
file-typer-fetcher |   'consumer.connect',
file-typer-fetcher |   'consumer.group_join',
file-typer-fetcher |   'consumer.network.request_timeout',
file-typer-fetcher |   'consumer.network.request',
file-typer-fetcher |   'consumer.fetch_start',
file-typer-fetcher |   'consumer.fetch',
file-typer-fetcher |   'consumer.crash',
file-typer-fetcher |   'consumer.heartbeat',
file-typer-fetcher |   'consumer.stop',
file-typer-fetcher |   'consumer.disconnect'
file-typer-fetcher | ]
file-typer-fetcher | 2021-04-14T15:22:16.987Z kafka:kadmin admin ready
file-typer-fetcher | 2021-04-14T15:22:16.999Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 2,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>999,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 0,
file-typer-fetcher |     size: 338,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>997,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>998,
file-typer-fetcher |     pendingDuration: 1,
file-typer-fetcher |     duration: 1,
file-typer-fetcher |     apiName: 'ApiVersions',
file-typer-fetcher |     apiKey: 18,
file-typer-fetcher |     apiVersion: 2
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.001Z kafka:setup signal consumer.connect received InstrumentationEvent {
file-typer-fetcher |   id: 3,
file-typer-fetcher |   type: 'consumer.connect',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>001,
file-typer-fetcher |   payload: undefined
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.001Z kafka:setup client created and connected
file-typer-fetcher | 2021-04-14T15:22:17.003Z kafka:consumer subscribing to topic file-typer
file-typer-fetcher | 2021-04-14T15:22:17.022Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 4,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>021,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 1,
file-typer-fetcher |     size: 110,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>016,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>017,
file-typer-fetcher |     pendingDuration: 1,
file-typer-fetcher |     duration: 4,
file-typer-fetcher |     apiName: 'Metadata',
file-typer-fetcher |     apiKey: 3,
file-typer-fetcher |     apiVersion: 6
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.025Z kafka:consumer subscribed to topic file-typer
file-typer-fetcher | 2021-04-14T15:22:17.030Z kafka:setup signal consumer.connect received InstrumentationEvent {
file-typer-fetcher |   id: 5,
file-typer-fetcher |   type: 'consumer.connect',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>030,
file-typer-fetcher |   payload: undefined
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.041Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 6,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>041,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 2,
file-typer-fetcher |     size: 31,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>038,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>038,
file-typer-fetcher |     pendingDuration: 0,
file-typer-fetcher |     duration: 3,
file-typer-fetcher |     apiName: 'GroupCoordinator',
file-typer-fetcher |     apiKey: 10,
file-typer-fetcher |     apiVersion: 2
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.053Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 7,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>053,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 3,
file-typer-fetcher |     size: 78,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>047,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>048,
file-typer-fetcher |     pendingDuration: 1,
file-typer-fetcher |     duration: 5,
file-typer-fetcher |     apiName: 'JoinGroup',
file-typer-fetcher |     apiKey: 11,
file-typer-fetcher |     apiVersion: 5
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.067Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 8,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>067,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 4,
file-typer-fetcher |     size: 234,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>057,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>058,
file-typer-fetcher |     pendingDuration: 1,
file-typer-fetcher |     duration: 9,
file-typer-fetcher |     apiName: 'JoinGroup',
file-typer-fetcher |     apiKey: 11,
file-typer-fetcher |     apiVersion: 5
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.073Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 9,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>073,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 5,
file-typer-fetcher |     size: 110,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>071,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>071,
file-typer-fetcher |     pendingDuration: 0,
file-typer-fetcher |     duration: 2,
file-typer-fetcher |     apiName: 'Metadata',
file-typer-fetcher |     apiKey: 3,
file-typer-fetcher |     apiVersion: 6
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.109Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 10,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>109,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 6,
file-typer-fetcher |     size: 44,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>094,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>095,
file-typer-fetcher |     pendingDuration: 1,
file-typer-fetcher |     duration: 14,
file-typer-fetcher |     apiName: 'SyncGroup',
file-typer-fetcher |     apiKey: 14,
file-typer-fetcher |     apiVersion: 3
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.112Z kafka:setup signal consumer.group_join received InstrumentationEvent {
file-typer-fetcher |   id: 11,
file-typer-fetcher |   type: 'consumer.group_join',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>112,
file-typer-fetcher |   payload: {
file-typer-fetcher |     groupId: 'filetyper-fetcher',
file-typer-fetcher |     memberId: 'filetyper-fetcher-dcd5b6bb-bfea-46b3-9367-12aa75f9dbe9',
file-typer-fetcher |     leaderId: 'filetyper-fetcher-dcd5b6bb-bfea-46b3-9367-12aa75f9dbe9',
file-typer-fetcher |     isLeader: true,
file-typer-fetcher |     memberAssignment: { 'file-typer': [Array] },
file-typer-fetcher |     groupProtocol: 'RoundRobinAssigner',
file-typer-fetcher |     duration: 81
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.114Z kafka:setup signal consumer.fetch_start received InstrumentationEvent {
file-typer-fetcher |   id: 12,
file-typer-fetcher |   type: 'consumer.fetch_start',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>114,
file-typer-fetcher |   payload: {}
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.125Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 13,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>124,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 7,
file-typer-fetcher |     size: 46,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>122,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>122,
file-typer-fetcher |     pendingDuration: 0,
file-typer-fetcher |     duration: 2,
file-typer-fetcher |     apiName: 'OffsetFetch',
file-typer-fetcher |     apiKey: 9,
file-typer-fetcher |     apiVersion: 4
file-typer-fetcher |   }
file-typer-fetcher | }
file-typer-fetcher | 2021-04-14T15:22:17.139Z kafka:setup signal consumer.network.request received InstrumentationEvent {
file-typer-fetcher |   id: 14,
file-typer-fetcher |   type: 'consumer.network.request',
file-typer-fetcher |   timestamp:<PHONE_NUMBER>139,
file-typer-fetcher |   payload: {
file-typer-fetcher |     broker: 'kafka:9092',
file-typer-fetcher |     clientId: 'filetyper-fetcher',
file-typer-fetcher |     correlationId: 8,
file-typer-fetcher |     size: 50,
file-typer-fetcher |     createdAt:<PHONE_NUMBER>133,
file-typer-fetcher |     sentAt:<PHONE_NUMBER>133,
file-typer-fetcher |     pendingDuration: 0,
file-typer-fetcher |     duration: 6,
file-typer-fetcher |     apiName: 'ListOffsets',
file-typer-fetcher |     apiKey: 2,
file-typer-fetcher |     apiVersion: 3
file-typer-fetcher |   }
file-typer-fetcher | }

Cody bits of how I establish the connection, its my simple abstraction so testing/etc is easier
const r = {
  // try 3 times, no random factor
  initialRetryTime: 300,
  multiplier: 2,
  retries: 3,
  factor: 0,
};

// create new kafka client configuration
const setup = (clientId, server, retry = r) => new Kafka({
  clientId,
  brokers: [server],
  logLevel: logLevel.NOTHING,
  retry,
});

// connect the client and listen to the signals passed in
const connect = async (client, signals = []) => {
  // set signals
  signals.forEach((s) => {
    client.on(s, (data) => {
      if (data) {
        log(`signal ${s} received`, data);
      } else {
        log(`signal ${s} received`);
      }
    });
  });

  log('signals created', signals);

  // connect
  await client.connect();

  log('client created and connected');

  // attempt cleanup
  process.on('exit', () => {
    log('closing connection due to term signal');
    client.disconnect();
  });
};

module.exports = {
  consumer: async (clientId, server) => {

    const kafka = setup(clientId, server);

    const consumer = kafka.consumer({ groupId: clientId });
    const {
      CONNECT,
      GROUP_JOIN,
      REQUEST_TIMEOUT,
      REQUEST,
      FETCH_START,
      FETCH,
      CRASH,
      HEARTBEAT,
      STOP,
      DISCONNECT,
    } = consumer.events;

    // eslint-disable-next-line max-len
    await connect(consumer, [CONNECT, GROUP_JOIN, REQUEST_TIMEOUT, REQUEST, FETCH_START, FETCH, CRASH, HEARTBEAT, STOP, DISCONNECT]);

    // return object, new each time
    return {
      subscribe: async (topic, fromBeginning = false, msgfn) => {
        logConsumer(`subscribing to topic ${topic}`);
        await consumer.subscribe({ topic, fromBeginning });
        logConsumer(`subscribed to topic ${topic}`);
        await consumer.run({ eachMessage: msgfn });
      },
      close: () => consumer.disconnect(),
    };

fromBeginning: true only means that if there's no valid committed offset to resume from, it will default to the latest offset on the partition. Same for fromBeginning: false, which means that if there's no valid committed offset to resume from, it will default to the earliest offset on the partition.
If you just run your consumer, commit some offsets, and then restart the consumer, you'll see that it resumes from the latest committed offset.

sigh and sometimes I need to go through all that testing and debugging to have the answer be 2 inches from my face the whole time. Thank you so much for the quick response!  Worked like a charm once I set fromBeginning: true


Need to define a minimum threshold for horizontal drag when minimized

Right now, "drag up to maximise" gesture has an small glitch, affecting user experience. In order to maximise, you have to drag the view directly up with zero movement on the X-axis,  otherwise you initiate a horizontal drag instead of a vertical one.
I tried the youtube app side by side with my own app using draggable panel. In the youtube app, maximize gesture works perfectly when I drag the view vertically. The way they achieve this is with a minimum movement threshold on the horizontal axis. So unless you drag the view horizontally for a few inches, it doesn't initiate the horizontal drag. However, in draggablePanel, this threshold is too small.
Is there any way to configure drag gesture to define a minimum threshold for horizontal drag with this library?

Hi @tuncaulubilge right now you can't configure this value. But you can send a PR with this configuration if you want :)

Hi, please implement this since this I quite annoying.
Thanks very much


Allow disabling the writing of Parquet Offset Index

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As of now, when writing Parquet files, the offset index structures are populated and written regardless of whether statistics and column indexes are written. It is unclear if this behavior is intended or not.
Describe the solution you'd like
Add a writer option to disable the collection and writing of the offset index. Of course the offset index is required if the column index is written, so this option would probably only be useful when not writing column indexes (i.e. when the statistics level is None or Chunk).
Describe alternatives you've considered
Alternatively, the writing of the offset index could be disabled whenever the column index is disabled (i.e. when the stats level is not Page). This solution assumes the current behavior is not intentional.
Additional context

After some git dumpster diving, it seems like at one point the offset indexes were not written if the column indexes were not valid. https://github.com/apache/arrow-rs/blame/fba19b0142daed54c181cdb8f634f29cf7d37f8d/parquet/src/column/writer/mod.rs#L503-L510
Writing of the page indexes was decoupled in #4567. Since this is a special case where page indexes are desired, but the column index cannot be written due to all NaNs, it seems the original intent was to not write the offset index. I think parquet-rs should then not write offset indexes if page statistics are not enabled.

take

I think parquet-rs should then not write offset indexes if page statistics are not enabled.

There are valid use-cases where the offset index is beneficial, but the page statistics might not be desired. For example, if using some external index or statistics. The offset index is critical to being able to efficiently perform pushdown.
I think we can add an option to disable offset index generation, but we should make this an explicit option and stick a big warning that it may severely degrade read performance

Thanks @tustvold, sounds reasonable. I'll start on adding an option next week.

label_issue.py automatically added labels {'parquet'} from #6797