Add more extensive examples to the docs, like how to deal with arrays and objects

Can you talk about what functionality exists in the library to support properties that are arrays or objects? I'm just working on a simple contact form as a learning exercise, but it features the ability to add multiple emails or phone numbers. Here is the schema:
new SimpleSchema({

   name: {
      type: String,
      label: 'Name',
      max: 40
   },
   emails: {
      type: [String],
      regEx: SimpleSchema.RegEx.Email,
      max: 40
   },
   phones: {
      type: [String],
      max: 20
   },
   description: {
      type: String,
      label: 'Description',
      max: 1000
   }

})

Any suggestions as to how I would use Forms to support this?

Of course!
You could create a custom element called multiString and use the validationValue function when you call createElement to do something like this--although I haven't tested it:
<template name="elements__multiString">

    {{#each value}}
      <input type="text" value={{.}}>
    {{/each}}

</template>

ReactiveForms.createElement({
  template: 'elements__multiString',
  validationEvent: 'keyup',
  validationValue: function (el, clean, template) {
    var values = $(el).find('input').map(function () {
      return $(this).val();
    });
    return values; // An array with all your input values
  }
})

Hope this helps, definitely share any cool things you come up with!

Thanks for the quick reply! I will meditate on your solution and see if I can get it to work.
Your library, imho, has good smell. Much better than autoForm, which seems to have gone down a certain rabbit hole. I've got some Angular experience, and I've been kind of shocked that there isn't a full featured form library for Meteor. Yours is the best I've seen so far, and I would love to see you continue to add to it. Have you looked at the Angular form docs? You're not that far away from what they have, and your approach is similar. If you duplicated much of the functionality they have there, but in the much nicer and more sane Meteor way of doing things, you would be a hero.
Is there an object that the form is bound to, such that, if I modify that object then the content of the form's fields changes? I know, for updates, you can use a data object to populate the form. Does that object get bound to the form then? What about an insert form with no data object? Is there an object somewhere that represents the form data?

Thank you for the kind words. I definitely intend to do my best with this package--I'm using it myself in all kinds of ways, and constantly thinking about how to improve it as well.
The form-level data object is privately scoped, and the only way to change it manually is:

Pass in reactive data as the initial data. Update that data and the form will attempt to handle it.
From the outside, you can change the value of an element and use jQuery to trigger the validationEvent.

The form's data context is passed into the action function here:
https://github.com/meteortemplates/forms/blob/master/lib/module.coffee#L207
For version 2.0.0 of this package, I'll introduce named contexts as a possibility, so you'll be able to access form data contexts from the outside--allowing you to persist form state across template renderings and create widgets in other parts of the page (for example, to use the forms package to create a shopping cart).

Having access to the form's backing object, and having that object be reactively tied to the form is incredibly powerful. For example, in an Angular template, you can loop over an array property and build up some form fields. In your code, if you simply add another element to the array, boom, you get another set of fields. Makes dealing with nested properties really easy. Perhaps a block template that allows looping over a property could be useful?
I know I mention Angular a lot, but I'm not really a fan of the library. I just think that, when it came to forms, they got the concepts right and that it should be used as a reference. Trying to do something in Angular still makes my head want to explode.

Haha that's why I never really got into it. Seemed like there were too many ways to do the same thing and a lot of boilerplate and jargon for everything.
In templates:forms it's possible to control an element's state in several ways. You can easily add your own reactive state to any element using the created callback:

// Add a helper for the custom state
Template['inputElement'].helpers({
  numberOfFields: function () {
    var currentFieldCount = Template.instance().numberOfFields.get();
    var times = [];
    _.times(currentFieldCount, function (n) {
      times.push(n);
    });
    return times;
  },
  getValueFor: function (n, values) {
    if (n && values) {
      return values[n];
    }
  }
});

// Add event to change custom state
Tempate['inputElement'].events({
  'click .add-field': function (event, template) {
    var currentFieldCount = Template.instance().numberOfFields.get();
    Template.instance().numberOfFields.set(currentFieldCount++);
  }
});

// Add ReactiveVar here using the `created` callback
ReactiveForms.createElement({
  template: 'inputElement',
  validationEvent: 'keyup',
  validationValue: function (el, clean, template) {
    var values = $(el).find('input').map(function () {
      return $(this).val();
    });
    return values; // An array with all your input values
  },
  created: function () {
    this.numberOfFields = new ReactiveVar(1); // Default to one field
  }
});

Then in the element's template:
<template name="inputElement">

    {{#each numberOfFields}}
      <input class="reactive-element" value={{getValueFor .}}>
    {{/each}}

  <button class="add-field">Add another field</button>
</template>

The created callback is run after the element is set up by templates:forms, so you have access to any reactive data that was placed in the element and can perform any custom initialization you like.
You can also specify custom event handlers on elements (because they're just Blaze templates) to allow people to add and subtract fields manually.
Try to avoid thinking of templates:forms in the context of two-way data binding. Using a form block, the trip back to the original data object never gets completed unless you manually handle it that way in your action function--although that would be an odd way to use the package. The form block's internal data context is meant to be stored until the action function is run, and the only reason you should try to access that context is to read from it, not write to it. The writing should happen via elements.
One of the cool things about this package is that you can create pretty much any crazy element you want. I think the key to that is

Wow! Thanks for the long reply. I'm new to Meteor and Blaze, and am still learning the right way of doing things. Hopefully in time it'll become more natural to me. I'm gonna spend some time really trying to get what you wrote.
I like what you said about not focusing on 2-way binding. And I don't really think the 2-way thing is strictly necessary if there's another, elegant way to get the job done. What I'm really looking for in a form library is what I guess I might call FOM, or Form-to-Object Mapping. Sort of like ORM, but instead of the impedance mismatch existing between objects and the RDB, it's between the form and the structured data. Features that make it easy to map between form fields and arrays and sub-objects would be nice. That's really all I'm looking for, but it may just be staring me in the face.

Right, this package does that using the validationValue function. The data in this in your action function is an object--the compiled results of everything returned from validationValue in your elements, or $(el).val() if you didn't specify a validationValue. It will be formed in a way that matches what you specified in your schema. With arrays, objects, and integers, it's in your hands to use validationValue to form the data from the DOM properly before it gets passed through validation, and subsequently added to the form's internal data context.

Ok, I will chew on that. Thanks, Jon.

I have used the complete code example and wrapped the input element inside form block, but when I make click Add another field the form make submit.

You may need to put event.preventDefault() at the top of the event handler for the button.

I want have validation String in each input from array (see my before figure). So I made this:
<template name="inputElement">

    {{#each numberOfFields}}
      {{> basicInput field="answers.ans"}}
    {{/each}}

  <button class="add-field">Add another field</button>
</template>

The field answers.$.ans is required but the validation doesn't works.
Other question: where and how the helper getValueFor should be in this design.
Thanks

If you can make an example repository for this I can help solve it. There have been a few other requests around validating a variable list of fields.

When I wrote the example above, the idea was to put the field on the outer element, retrieve the values from the inputs inside and compile them into an array, and send those for validation.

Hello jonjamz here the repository: https://github.com/johngonzalez/examples-forms

1 Also looking for docs on Arrays.

@jonjamz Really enjoying this package. Any change we can see the example in plain JS instead of coffeescript? Thanks!

Hi I'm also looking for more documentation or support with regards to arrays of objects
@jonjamz have you solved out how to solve the way @johngonzalez implements it? I was also trying to do it in the same way. Though it appears that this package wasn't designed to be used for that?
Also I found a bug wherein the schema isn't retrieved if the field you specify for the element component is a field within an object element of an array field.
Like this field 'position.$.supplierId' -> wherein position is an array of objects field

The issue with @johngonzalez example from what I can tell after a quick look is that he is generating many components with the same field. This package does not examine template structure--it is up to you to create components that ingest data in the format you want, create the template with the structure you want, and then grab and format data the way you want before passing it to validation.
As for the rest I'll have to answer later...


Timer support in openmme

We need to have timer support in MME. This timer can be used for message retransmission or error recovery, cleanup of any stale data/entry.

Timer framework for MME needs to consider its own internal timers as well.
e.g.
Timers mentioned in 36.412 - section 9.5
NAS timers from 24.301

I have timer framework. Once checked in then application can use it as per the procedure requirements.


What does count mean in change object

{ count: 27,
added: true,
removed: undefined,
value:
'is an American multinational technology company that specializes in Internet-related services and products' },
{ count: 2, value: ', ' },
I get the following change object can anyone explain this to me
what does count actually mean

I believe count is the number of items in the value.
For diffWords it is the number of words or non word characters (i.e. ' ', ',', '-')

Duplicate of https://github.com/kpdecker/jsdiff/issues/210


Untangle the edges

Related declarations should be sorted side-by-side whenever possible.

im interested please assign me, ill share my proposed solution as soon as u ping me

Ok, thank you

Is there any contribution.md or any doc which can help me.

Oh, I was so unkind. I created CONTRIBUTING.md.
But, since this repository is a tool for visualizing Inga's results, it may require more than understanding the overall specifications from this alone.
I will attach a sample report.json to run inga-ui alone. report.json.zip

Hi, There has been no response, so I will remove the assignment

As a user, it is easier to understand if the order of functions is arranged according to a set rule, such as the order of definition or alphabetical order. Since it is better not to dynamically adjust the order to avoid overlapping relationships, I will close this issue.


Fix:Changed q's to k and Repositioned UnWrapSDKContext

Description

As per the issue Code consistency nits in grpc handler https://github.com/cosmos/ibc-go/issues/3422 ,
I have changed the q's to k and changed the UnWrapSDKContext to first line in all required files.
closes: #3422
Commit Message / Changelog Entry
type:fix: Changed q's to k and Repositioned UnWrapSDKContext

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md).
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[ ] Added relevant godoc comments.
[x] Provide a commit message to be used for the changelog entry in the PR description for review.
[x] Re-reviewed Files changed in the Github PR explorer.
[x] Review Codecov Report in the comment section below once CI passes.

Codecov Report

Merging #3424 (411bb21) into main (b562f24) will decrease coverage by 0.02%.
The diff coverage is 58.44%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #3424      +/-   ##
==========================================
- Coverage   78.59%   78.57%   -0.02%
==========================================
  Files         181      181
  Lines       12546    12539       -7
==========================================
- Hits         9861     9853       -8
- Misses       2252     2253       +1
  Partials      433      433

Impacted Files
Coverage Δ

modules/core/keeper/grpc_query.go
0.00% <0.00%> (ø)

modules/core/keeper/msg_server.go
54.78% <50.00%> (-0.02%)
:arrow_down:

modules/core/02-client/keeper/grpc_query.go
69.45% <84.00%> (ø)

modules/core/03-connection/keeper/grpc_query.go
90.83% <93.33%> (ø)

modules/core/04-channel/keeper/grpc_query.go
85.03% <94.11%> (ø)

...nterchain-accounts/controller/keeper/grpc_query.go
100.00% <100.00%> (ø)

...s/27-interchain-accounts/host/keeper/grpc_query.go
100.00% <100.00%> (ø)

modules/apps/29-fee/keeper/grpc_query.go
74.71% <100.00%> (-1.22%)
:arrow_down:

modules/apps/transfer/keeper/grpc_query.go
73.07% <100.00%> (ø)


Memory leaking when Loki server is down

Which version of Serilog.Sinks.Grafana.Loki are you using?
м7.1.1
Which version of .NET are you using?
net6.0
Describe the bug
When Loki server is down, serilog taking lot of memory and not purging it.
To Reproduce
Turn off Loki server.
Create many logs as you can.
Watch profiler.
Expected behavior
I think that system should purge logs if there is no connection to Loki.
Or should keep controlled amount of logs to try to upload to Loki of server will appear.
Logging system should not crash host system relating to its problems.
Log/SelfLog output or exception with stacktrace
No response
Application or code sample, which could be used to reproduce a bug
No response
Additional context
No response
I have read the documentation

[X] I have read Common Problems section in project wiki

Hello @DanielSanIT ,
The reason behind this behavior is described here https://github.com/serilog-contrib/serilog-sinks-grafana-loki/issues/90#issuecomment-1065023112
Agree, that is could be reasonable to control max amount of log in buffer. But it is important to have a behavior understanding - should we push out the older one, when new will arrive. Or should we just drop new, while buffer is full?

So, according to a doc, you could next parameters to adjust behavior more precisely:

batchPostingLimit  - the maximum number of events to post in a single batch. Default value is 1000
queueLimit  - the maximum number of events stored in the queue in memory, waiting to be posted over the network. Default value is infinitely
period - the time to wait between checking for event batches. Default value is 2 seconds


chore: Update EKS clusters to 1.29 in Terraform configs

The current 1.28 version will reach end of standard support on November 26, 2024. The latest available version is 1.30, but cluster version upgrades must be done one minor version at a time.

This change is


Crash when adding a comment after an import in script setup

Created an issue on the Vue repo (https://github.com/vuejs/vue-next/issues/2102) they said to post it here:
Version
3.0.0-rc.10
Reproduction link
https://github.com/gawlk/vue-bug-comment-after-import
Steps to reproduce

yarn create vite-app test-comment-crash
yarn && yarn add mediasoup-client
Go to App.vue and add the setup tag to <script>
Lauch the app
Add this import mediasoup from 'mediasoup-client' // remove this comment and it'll work BEFORE import HelloWorld from './components/HelloWorld.vue' otherwise it won't crash, it can't be after the latest import
See that is crashes
Remove the comment and see that it works

What is expected?
To work flawlessly
What is actually happening?
The app crashes because of a comment

It is a bug for vue-core, I fixed it and please track here https://github.com/vuejs/vue-next/pull/2107


Upgrade yard gem / bump version

Coverage remained the same at 100.0% when pulling 10abf03984dee3bac7b50524fecd38492840ca01 on up-yard into dc39c38a3af668e1a63cb6244a5c67e9a10e7945 on master.


Output includes ANSI escape sequences when inappropriate

safety version: 2.2.0
Python version: 3.9.6
Operating System: Linux: CentOS 7

Description
Printing full report output in a CI test run prints ANSI codes, even though the environment does not indicate that ANSI color is appropriate. I also tried piping the output through less, and commands should, by default, not include ANSI codes in output when piped (stdout is not a terminal). I tried running with TERM set to "dumb" instead of "xterm-256color" and with CLICOLOR set to "0". None of that convinced safety to not print the ANSI escape sequences.

I finally realized that I could get a list of options for the check subcommand with safety check --help and was able to figure out by trial and error that --output text will eliminate the ansi codes from the output. It would still be nice if safety would automatically not include those in cases where commandline apps are supposed to know not to do that.

Hi @stevecj, we are sorry for your bad experience with the ANSI color and the documentation. We have tried to link our documentation in all the possible places; maybe we may add the docs link in Safety CI too.
You can find all the available outputs in the docs portal: https://docs.pyup.io/docs/safety-20-configuration-outputs.
We updated the docs portal to include the No Styling option. Safety reads an environment variable called SAFETY_COLOR, but in 2.2.0 and below, there is a bug reading that ENV var; The fix for the bug is in PR #412, so SAFETY_COLOR will be usable in the next release.
I agree with your recommendation, Safety should try to detect when the style is inappropriate, I'm going to keep this open.

I'm closing this issue because the latest Safety version supports the SAFETY_COLOR var. Trying to detect when using the style or text automatically will need another issue and more details.


Remove call method from EnvServlet.

more code deletion!

Merge activity

Feb 14, 3:50 PM EST: @rohinb2 started a stack merge that includes this pull request via Graphite.


Attention: We intend to remove the archivebox oneshot  command from ArchiveBox in the next 0.7 release

Long long ago before archivebox was a Django app, it used to be a one-shot bash script called archive-pocket-stream.sh. When we moved to the Django system archivebox oneshot was provided as an escape hatch for users that did not like being forced to create collections and manage data directories all of a sudden. It allows the new fancy django archivebox to run in "oneshot" mode without creating a main index file, data dir, etc. and only outputting the results of one snapshot into PWD.
As you might imagine, it required tremendous haxx to run the new Django archivebox without a db file in this way, including instantiating a fake sqlite3 db in memory, filesystem write filtering, etc. and it's imposing a large maintenance burden by making it hard to refactor other subsystems.
Now that we have solidly been on Django for several major versions, I think we can safely retire archivebox oneshot ?
Iif anyone is using it, speak up now and make a case for keeping it 😅 🤠👋

This is my entire use case, I need to be able to do single page snapshots on a daily basis, and have no need for any of the other functionality of ArchiveBox, I'll be running it CLI only, and using another tool to trigger the daily snapshots of the pages, and piping them into specific directories.
Without the ability to create multiple snapshots of the same URL in your normal use cases, this is the only way I can achieve it.

Good to know! Would your needs be satisfied if we add better native support for multiple snapshots in archivebox instead of keeping this older feature? @ianrobertsFF

I'm also using this. I think it makes a lot of sense to keep a command like oneshot around because it's fairly self-contained, and it aligns well with the UNIX philosophy. It does one thing and it does it well, without the need for archive init and the use of the rest of the software. Please don't take it away.

My needs would be satisfied by multiple snapshots, although I still wouldn't be using any of the functionality that oneshot doesn't currently use, so it wouldn't be a better workflow, as oneshot does exactly what I need.
However assuming I can continue to take on-demand snapshots with the native support for multiple snapshots, this would be acceptable to me.

Q:
Would it be possible to fork this off into its own separate project/repo?
Would it even be desireable?

Ok I've decided to keep oneshot because it ties in nicely with a refactor I'm down to breakdown archivebox jobs into individually runnable subcommands.
My plan is to split it into two commands:
archivebox snapshot
Can be run to snapshot an individual URL into the current directory (runs all extractors by default).
archivebox snapshot --methods=all 'https://example.com/somepage.html'

This works the same way as oneshot does now, and I'll alias oneshot to the new command so we don't break backwards compatibility.
archivebox extract
This runs an individual extractor method and outputs into the current directory.
archivebox extract --method=PDF --method-args-here 'https://example.com/somepage.html'

archivebox snapshot will work by internally by calling archivebox extract --method=... for each method.

Please subscribe to this issue for updates: https://github.com/ArchiveBox/ArchiveBox/issues/1289


Using JWT bearer token configuration results in "Unknown security definition type"

Using version 1.3.0
.NET 6
Functions isolated V4
With the following configuration of OpenApi on our Function HTTP trigger endpoint:
        [OpenApiOperation(operationId: nameof(GetXXX), tags: new[] { "XXX" })]
        [OpenApiSecurity("OAuth token", SecuritySchemeType.Http, Scheme = OpenApiSecuritySchemeType.Bearer, BearerFormat = "token", In = OpenApiSecurityLocationType.Header)]
        [OpenApiParameter("param1", In = ParameterLocation.Path, Type = typeof(int), Required = true)]
        [OpenApiParameter("param2", In = ParameterLocation.Query, Type = typeof(List<string>), Required = false)]
        [OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(IList<XXXModel>))]
        [OpenApiResponseWithoutBody(statusCode: HttpStatusCode.Unauthorized)]
        [OpenApiResponseWithoutBody(statusCode: HttpStatusCode.InternalServerError)]
        public async Task<HttpResponseData> RunAsync([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "xxx/{abc}/yyy")] HttpRequestData request, int abc)
        {

we always get the message "Unknown security definition type"

What are we doing wrong in the configuration for OpenApiSecurity?

I am having the same issue.  Configuration is
[OpenApiSecurity("Bearer", SecuritySchemeType.Http, Name = "authorization", Scheme = OpenApiSecuritySchemeType.Bearer, In = OpenApiSecurityLocationType.Header, BearerFormat = "JWT" )]

@kaka2k I found the solution in this earlier issue https://github.com/Azure/azure-functions-openapi-extension/issues/107#issuecomment-830672190
It is now working for me after I implemented IOpenApiConfigurationOptions

Bump. I have the same issue.


Private server

Add private symbol server support, fixes #4

looks good. can u add some docs to the readme

I did 😄 See d68b497a959260af32210de460bd62c1355f70a3 for details...

thanks. deploying now

Also, I was impressed by the readme and the tests. Good to see someone putting in the effort to produce a high quality experience.

I'm not sure if net7 will actually cover this

only a small part of it https://github.com/SimonCropp/Cymbal/issues/7  ie it doesnt pre-download symbols

Also, I was impressed by the readme and the tests. Good to see someone putting in the effort to produce a high quality experience.

glad u like it. i try to keep that level of quality in all my projects https://www.nuget.org/profiles/simoncropp


Add a user collection

This allows you to add apps to your personal collection or remove them.
We should also list the collection in the users private profile.
I'm not too sure about the naming collection, but I don't like bookmark either.
The frontend is pretty rought/unfinished. The backend works, as far as I can tell, but not a python crack.

If we are adding this, I think it would be a good idea, to allow multiple lists which custom Names, so a User could maybe have a Development Tools and a Games list.

I also thought about public lists etc, but that's not the clear design I would want.
I think a collection is different from a custom list. Mostly taken Inspiration from pages like Trakt.

If we are adding this, I think it would be a good idea, to allow multiple lists which custom Names, so a User could maybe have a Development Tools and a Games list.

Hi, or just one list but you can add text box with your own discritpion example. Office, Audio, Video, Games, Note... etc.


pre-lgfx patches

Hey @tobozo,
Something went wrong with the build.
TravisCI finished with status errored, which means the build failed because of something unrelated to the tests, such as a problem with a dependency or the build process itself.
View build log
TravisBuddy Request Identifier: 664619f0-83de-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: esp32: Unknown package
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 1.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"
ERROR: Specified sketch: /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino doesn't exist
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 1.

$ USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
$ REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
$ publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 16:31:24	714	714.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677762581	pull_request		133	master	fdf6f52aa50317b17c83165abeae35c25f3c73b9	09b0d730eb9ab752fff7a626fe4704901643b353...1e9f4cbb50b85258a7bab51c5787f71eec4124be	Merge 1e9f4cbb50b85258a7bab51c5787f71eec4124be into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12				false	3

Total failed sketch builds: 1
Total warnings: 0
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...
Error: esp32: Unknown package
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"

ERROR: Specified sketch: /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino doesn't exist

TravisBuddy Request Identifier: 8feec860-83ed-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: esp32: Unknown package
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 1.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"
ERROR: Specified sketch: /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino doesn't exist
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 1.

$ USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
$ REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
$ publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 16:35:18	718	718.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677765504	pull_request		133	master	fecdd912068648eea59bdee48f529506abfc9e80	09b0d730eb9ab752fff7a626fe4704901643b353...b24979dea9b139e19d71b1f973cab3e161b7b5d0	Merge d3bab14114716fd557721884718a5455807825c0 into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12				false	3

Total failed sketch builds: 1
Total warnings: 0
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...
Error: esp32: Unknown package
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"

ERROR: Specified sketch: /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino doesn't exist

TravisBuddy Request Identifier: 1886e450-83ee-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...

Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: FlashFreq: Invalid option for board "m5stick-c"
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 1.

$ USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
$ REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
$ publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 16:48:14	721	721.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677770635	pull_request		133	master	f42a34d0acd7298e7142535839ac805a5f6e9319	09b0d730eb9ab752fff7a626fe4704901643b353...92107f0cb943d3fb8590a2499e706036f7890f38	Merge 92107f0cb943d3fb8590a2499e706036f7890f38 into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12	1084038	62032	1	false	0	0		0
2020-04-21 16:48:19	721	721.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677770635	pull_request		133	master	f42a34d0acd7298e7142535839ac805a5f6e9319	09b0d730eb9ab752fff7a626fe4704901643b353...92107f0cb943d3fb8590a2499e706036f7890f38	Merge 92107f0cb943d3fb8590a2499e706036f7890f38 into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino	esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600	1.8.12				false	3

Total failed sketch builds: 1
Total warnings: 1
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...

Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600" "false" "newest"

travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: FlashFreq: Invalid option for board "m5stick-c"
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:

TravisBuddy Request Identifier: e8435290-83ef-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...

Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c:UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: 921600: Invalid value for option "UploadSpeed" for board "m5stick-c"
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:UploadSpeed=921600" "false" "newest"" exited with 1.

$ USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
$ REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
$ publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 16:55:35	723	723.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677775799	pull_request		133	master	6a7a9f22507705fa3dc9b5b5ecd7a3bc3bea51b5	09b0d730eb9ab752fff7a626fe4704901643b353...a4dad16e7e1063f740e4bb7a8fbea6efdb245633	Merge a4dad16e7e1063f740e4bb7a8fbea6efdb245633 into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12	1084038	62032	1	false	0	0		0
2020-04-21 16:55:40	723	723.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677775799	pull_request		133	master	6a7a9f22507705fa3dc9b5b5ecd7a3bc3bea51b5	09b0d730eb9ab752fff7a626fe4704901643b353...a4dad16e7e1063f740e4bb7a8fbea6efdb245633	Merge a4dad16e7e1063f740e4bb7a8fbea6efdb245633 into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino	esp32:esp32:m5stick-c:UploadSpeed=921600	1.8.12				false	3

Total failed sketch builds: 1
Total warnings: 1
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...

Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c:UploadSpeed=921600" "false" "newest"

travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c:UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Error: 921600: Invalid value for option "UploadSpeed" for board "m5stick-c"
travis_fold:end:build_sketch
arduino Exit Status: 3, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:

TravisBuddy Request Identifier: f4f7c650-83f0-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...

E.
E.
E.
E.
E.
/home/travis/arduino-sketchbook/libraries/M5Stack/src/utility/In_eSPI.cpp:4345:17: warning: 'char_count' defined but not used [-Wunused-variable]
 static uint32_t char_count = 0;
                 ^
E.
E.
E.
E.
E.
E.
Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Verifying...
m5stickc_tiny_menu:1:22: fatal error: M5StickC.h: No such file or directory
compilation terminated.
exit status 1
travis_fold:end:build_sketch
arduino Exit Status: 1, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c" "false" "newest"" exited with 1.

$ USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
$ REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
$ publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 16:59:39	725	725.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677778351	pull_request		133	master	263dd2ea08214628c4304254557cb89fd3d3f456	09b0d730eb9ab752fff7a626fe4704901643b353...551a3a4cff2e84283cf0ce89852a47279063a5db	Merge 551a3a4cff2e84283cf0ce89852a47279063a5db into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12	1084038	62032	1	false	0	0		0
2020-04-21 16:59:44	725	725.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677778351	pull_request		133	master	263dd2ea08214628c4304254557cb89fd3d3f456	09b0d730eb9ab752fff7a626fe4704901643b353...551a3a4cff2e84283cf0ce89852a47279063a5db	Merge 551a3a4cff2e84283cf0ce89852a47279063a5db into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino	esp32:esp32:m5stick-c	1.8.12				false	1

Total failed sketch builds: 1
Total warnings: 1
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...

E.
E.
E.
E.
E.
/home/travis/arduino-sketchbook/libraries/M5Stack/src/utility/In_eSPI.cpp:4345:17: warning: 'char_count' defined but not used [-Wunused-variable]
 static uint32_t char_count = 0;
                 ^
E.
E.
E.
E.
E.
E.
Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c" "false" "newest"

travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...
Verifying...
m5stickc_tiny_menu:1:22: fatal error: M5StickC.h: No such file or directory
compilation terminated.
exit status 1
travis_fold:end:build_sketch
arduino Exit Status: 1, Allow Failure: false, # Warnings: , # Board Issues: , # Library Issues:

TravisBuddy Request Identifier: 80e72390-83f1-11ea-9e5c-e3b4a9537513

Travis tests have failed
Hey @tobozo,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
1st Build
View build log

     check_library_manager_compliance "$TRAVIS_BUILD_DIR"

The command "check_library_manager_compliance "$TRAVIS_BUILD_DIR"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600 false 1.8.12
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
Preparing boards...

D.
D.
D.
D.
D.
/home/travis/arduino-sketchbook/libraries/M5Stack/src/utility/In_eSPI.cpp:4345:17: warning: 'char_count' defined but not used [-Wunused-variable]
 static uint32_t char_count = 0;
                 ^
D.
D.
D.
D.
D.
D.
Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0
The command "build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"" exited with 0.
$ build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c" "false" "newest"
travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c false 1.8.12
report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 17:04:03	727	727.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677780521	pull_request		133	master	16ffaa92035a612368a9d81380caaca93734f81e	09b0d730eb9ab752fff7a626fe4704901643b353...c1dadff7e938baaf2937d22a84a676fa6136ff5d	Merge c1dadff7e938baaf2937d22a84a676fa6136ff5d into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12	1084038	62032	1	false	0	0		0
2020-04-21 17:04:15	727	727.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677780521	pull_request		133	master	16ffaa92035a612368a9d81380caaca93734f81e	09b0d730eb9ab752fff7a626fe4704901643b353...c1dadff7e938baaf2937d22a84a676fa6136ff5d	Merge c1dadff7e938baaf2937d22a84a676fa6136ff5d into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino	esp32:esp32:m5stick-c	1.8.12				false	1

Total failed sketch builds: 1
Total warnings: 1
Total board issues: 0
Total library issues: 0

Done.
Initializing packages...
Preparing boards...

D.
D.
D.
D.
D.
/home/travis/arduino-sketchbook/libraries/M5Stack/src/utility/In_eSPI.cpp:4345:17: warning: 'char_count' defined but not used [-Wunused-variable]
 static uint32_t char_count = 0;
                 ^
D.
D.
D.
D.
D.
D.
Sketch uses 1084038 bytes (82%) of program storage space. Maximum is 1310720 bytes.
Global variables use 62032 bytes (18%) of dynamic memory, leaving 265648 bytes for local variables. Maximum is 327680 bytes.
travis_fold:end:build_sketch
arduino Exit Status: 0, Allow Failure: false, # Warnings: 1, # Board Issues: 0, # Library Issues: 0

     build_sketch "${TRAVIS_BUILD_DIR}/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino" "esp32:esp32:m5stick-c" "false" "newest"

travis_fold:start:build_sketch
build_sketch /home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino esp32:esp32:m5stick-c false 1.8.12
report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
ERROR: GitHub token not specified. Failed to publish build report. See https://github.com/per1234/arduino-ci-script#publishing-job-reports for instructions.
$ display_report

**************Begin Report**************

Build Timestamp (UTC)	Build	Job	Job URL	Build Trigger	Allow Job Failure	PR#	Branch	Commit	Commit Range	Commit Message	Sketch Filename	Board ID	IDE Version	Program Storage (bytes)	Dynamic Memory (bytes)	# Warnings	Allow Failure	Exit Status	# Board Issues	Board Issue	# Library Issues	Library Issue
2020-04-21 17:04:03	727	727.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677780521	pull_request		133	master	16ffaa92035a612368a9d81380caaca93734f81e	09b0d730eb9ab752fff7a626fe4704901643b353...c1dadff7e938baaf2937d22a84a676fa6136ff5d	Merge c1dadff7e938baaf2937d22a84a676fa6136ff5d into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino	esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600	1.8.12	1084038	62032	1	false	0	0		0
2020-04-21 17:04:15	727	727.1	https://travis-ci.org/tobozo/M5Stack-SD-Updater/jobs/677780521	pull_request		133	master	16ffaa92035a612368a9d81380caaca93734f81e	09b0d730eb9ab752fff7a626fe4704901643b353...c1dadff7e938baaf2937d22a84a676fa6136ff5d	Merge c1dadff7e938baaf2937d22a84a676fa6136ff5d into 09b0d730eb9ab752fff7a626fe4704901643b353	/home/travis/build/tobozo/M5Stack-SD-Updater/examples/m5stickc_tiny_menu/m5stickc_tiny_menu.ino	esp32:esp32:m5stick-c	1.8.12				false	1

Total failed sketch builds: 1
Total warnings: 1
Total board issues: 0
Total library issues: 0

Done. Your build exited with 1.

TravisBuddy Request Identifier: 223f00a0-83f2-11ea-9e5c-e3b4a9537513


Not able to register the resource provider kubernetesconfiguration in my subscription

Scenario which you are working on
A link to the Jumpstart scenario you are working on.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
I run command to register the resource provider but it keeps on waiting and showing state as registering.

Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration

ProviderNamespace : Microsoft.KubernetesConfiguration
RegistrationState : Registering
ResourceTypes     : {sourceControlConfigurations}
Locations         : {East US, West Europe, West Central US, West US 2…}
ProviderNamespace : Microsoft.KubernetesConfiguration
RegistrationState : Registering
ResourceTypes     : {operations}
Locations         : {}
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Thank you @nitinkansal1984
This is not really a Jumpstart scenario issue. Can you please validate you have sufficient permission on your subscription to register a provider as described here?
If the problem still persists, please open an Azure support ticket.


The examples can't run

"main_absolute_pose_scenario1_toy_example.m" can't run,because the function 'dataGenerator' can't be recognized.
There are similar errors in other examples.
For example,"main_absolute_pose_scenario2_toy_example.m" can't find function "skewm".
"main_relative_pose_scenario1_toy_example.m" can't find function "to_virtual_camera_coordinate".
"main_relative_pose_scenario2_toy_example.m" can't find function "skewm".
I can't run the examples, looking forward to your reply, thanks so much!

I will check this issue hopefully within this week and upload necessary missing files.

I will check this issue within this week.

"main_absolute_pose_scenario1_toy_example.m" can't run,because the function 'dataGenerator' can't be recognized. There are similar errors in other examples. For example,"main_absolute_pose_scenario2_toy_example.m" can't find function "skewm". "main_relative_pose_scenario1_toy_example.m" can't find function "to_virtual_camera_coordinate". "main_relative_pose_scenario2_toy_example.m" can't find function "skewm". I can't run the examples, looking forward to your reply, thanks so much!

Missing files have been uploaded.
Let me know if there are further issues.

"main_absolute_pose_scenario1_toy_example.m"still can't run, the function 'dataGenerator' can't be recognized.
”main_absolute_pose_scenario2_toy_example.m“ line 103 ,“[Rana,Cana] = Hanner_8pt(Q,q,K,miu,R1,C1);” line 31,the function q2R can't be recognized.
"main_relative_pose_scenario1_toy_example.m" line 100 ,refractive_rel_pose_linear_solver>solve_kernerl line 95 , 'Essential_decomposition' can't be recognized.  And in line 54 ,"[mincost, R, t] = solve_kernerl(A,sol) " also have an error.

https://github.com/xiahaa/MATLAB/tree/master/quaternion: q2R

dataGenerator and Essential_decomposition have been uploaded.

Now all four examples are running successfully. Thank you for your response.

Now all four examples are running successfully. Thank you for your response.

Glad to hear that.


NetCDF file with time overlap

Hello,
I have two netCDF files with a time overlap.
E.g. the file A cover the time from the 00:30 to 23:30 of the 01/06/2019 (just 24h), and the file B from the 00:30 of the 01/06/2019 to 23:30 of the 05/06/2019 (5 days) always with the same time step of 1h.
So the two files share the first 24h, but just in time not in velocity!
I would like to track objects for 5 day, but using for the first 24h the data from file A and for the other days the data from file B. Is there a way to do this in Parcels without manipulate the files by hand?
Thanks!
Francesco

Depending on how you want to ingest the data in Parcels, from_xarray_dataset might be an option. This would enable you to stitch together those parts of the two netcdf files that you want to use to drive the experiment.

Usually I use from_netcdf, so I give to Parcels the files and everything works fine, but now I have this problem.
If I understand correctly,  with from_xarray_dataset, I have to manipulate the array so to substitute the overlapping data with the right one and then give it to Parcels. Am I right?

Yes. You'll probably have to use the isel method to select the relevant parts of both datasets and then the concatenate function to stitch them together.

Sorry for the delay. Thanks I will try it, for now I close this issue.


socket ssl wrapping error

it's throw EXCEPTION
("('socket ssl wrapping error: [SSL: CA_MD_TOO_WEAK] ca md too weak (_ssl.c:3874)',)",)

Hello,
It seems that your Domain Controller uses md5 (or maybe sha1) as signature algorithm for its CA cert. You can confirm this by running openssl s_client -connect  <IP_ADDRESS>:636 on your Kali.
This problem is related to Python/openssl/your crypto stack, not from our tool, sorry. Maybe you can try to re-enable weak protocols but I don't know I never tried it on Kali.
I'm closing this issue but feel free to post a workaround.
:sunflower:

弱协议

Have you solved the problem?

Just wanted to post that I solved this issue by downgrading to python 3.6


Merge develop into main for 0.0.27 release

Description of the change
Merging develop into main to release 0.0.27
Type of change

[ ] Bug fix
[ ] New feature

Checklists
Development

[ ] All changed code has 80% unit test coverage
[ ] All changed code has been automatically (smoke test or otherwise) or manually verified in alfa (or with a cross namespace setup, e.g. developer namespace for this feature, pointing at shared alfa resources)

Code review

[ ]  This pull request has a title that includes the ticket # and a short useful summary, e.g. CP-4051: Create TEMPLATE Feature Repo.

closed in favor of https://github.com/Cloudzero/cloudzero-k8s-charts/pull/40


IterableDataset.from_spark does not support multiple workers in pytorch Dataloader

Describe the bug
Looks like IterableDataset.from_spark does not support multiple workers in pytorch Dataloader if I'm not missing anything.
Also, returns not consistent error messages, which probably depend on the nondeterministic order of worker executions
Some exampes I've encountered:
File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 79, in __iter__
    yield from self.generate_examples_fn()
  File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 49, in generate_fn
    df_with_partition_id = df.select("*", pyspark.sql.functions.spark_partition_id().alias("part_id"))
  File "/databricks/spark/python/pyspark/instrumentation_utils.py", line 54, in wrapper
    logger.log_failure(
  File "/databricks/spark/python/pyspark/databricks/usage_logger.py", line 70, in log_failure
    self.logger.recordFunctionCallFailureEvent(
  File "/databricks/spark/python/lib/py4j-<IP_ADDRESS>-src.zip/py4j/java_gateway.py", line 1322, in __call__
    return_value = get_return_value(
  File "/databricks/spark/python/pyspark/errors/exceptions/captured.py", line 188, in deco
    return f(*a, **kw)
  File "/databricks/spark/python/lib/py4j-<IP_ADDRESS>-src.zip/py4j/protocol.py", line 342, in get_return_value
    return OUTPUT_CONVERTER[type](answer[2:], gateway_client)
KeyError: 'c'

  File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 79, in __iter__
    yield from self.generate_examples_fn()
  File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 49, in generate_fn
    df_with_partition_id = df.select("*", pyspark.sql.functions.spark_partition_id().alias("part_id"))
  File "/databricks/spark/python/pyspark/sql/utils.py", line 162, in wrapped
    return f(*args, **kwargs)
  File "/databricks/spark/python/pyspark/sql/functions.py", line 4893, in spark_partition_id
    return _invoke_function("spark_partition_id")
  File "/databricks/spark/python/pyspark/sql/functions.py", line 98, in _invoke_function
    return Column(jf(*args))
  File "/databricks/spark/python/lib/py4j-<IP_ADDRESS>-src.zip/py4j/java_gateway.py", line 1322, in __call__
    return_value = get_return_value(
  File "/databricks/spark/python/pyspark/errors/exceptions/captured.py", line 188, in deco
    return f(*a, **kw)
  File "/databricks/spark/python/lib/py4j-<IP_ADDRESS>-src.zip/py4j/protocol.py", line 342, in get_return_value
    return OUTPUT_CONVERTER[type](answer[2:], gateway_client)
KeyError: 'm'

File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 79, in __iter__
    yield from self.generate_examples_fn()
  File "/local_disk0/.ephemeral_nfs/envs/pythonEnv-68c05436-3512-41c4-88ca-5630012b70d1/lib/python3.10/site-packages/datasets/packaged_modules/spark/spark.py", line 49, in generate_fn
    df_with_partition_id = df.select("*", pyspark.sql.functions.spark_partition_id().alias("part_id"))
  File "/databricks/spark/python/pyspark/sql/utils.py", line 162, in wrapped
    return f(*args, **kwargs)
  File "/databricks/spark/python/pyspark/sql/functions.py", line 4893, in spark_partition_id
    return _invoke_function("spark_partition_id")
  File "/databricks/spark/python/pyspark/sql/functions.py", line 97, in _invoke_function
    jf = _get_jvm_function(name, SparkContext._active_spark_context)
  File "/databricks/spark/python/pyspark/sql/functions.py", line 88, in _get_jvm_function
    return getattr(sc._jvm.functions, name)
  File "/databricks/spark/python/lib/py4j-<IP_ADDRESS>-src.zip/py4j/java_gateway.py", line 1725, in __getattr__
    raise Py4JError(message)
py4j.protocol.Py4JError: functions does not exist in the JVM

Steps to reproduce the bug
import pandas as pd
import numpy as np

batch_size = 16

pdf = pd.DataFrame({
    key: np.random.rand(16*100) for key in ['feature', 'target']
})
test_df = spark.createDataFrame(pdf)

from datasets import IterableDataset
from torch.utils.data import DataLoader

ids = IterableDataset.from_spark(test_df)
for batch in DataLoader(ids, batch_size=16, num_workers=4):
    for k, b in batch.items():
        print(k, b.shape, sep='\t')
    print('\n')

Expected behavior
For num_workers equal to 0 or 1 works fine as expected:
feature	torch.Size([16])
target	torch.Size([16])

feature	torch.Size([16])
target	torch.Size([16])
....

Expected to support workers >1.
Environment info
Databricks 13.3 LTS ML runtime - Spark 3.4.1
pyspark==3.4.1
py4j==<IP_ADDRESS>
datasets==2.13.1 and also tested with datasets==2.14.6

I am having issues as well with this.
However, the error I am getting is :
RuntimeError: It appears that you are attempting to reference SparkContext from a broadcast variable, action, or transformation. SparkContext can only be used on the driver, not in code that it run on workers. For more information, see SPARK-5063.
Also did not work with pyspark==3.3.0 and py4j==<IP_ADDRESS>

Hi, may you have some solution of this bug now?

cc @maddiedawson if you have an idea ?


Angular 8 and Asp.Net Core 3.1

I'm submitting a...

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

Browser:

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

Library version

Library version: @azure/msal-angular": "^0.1.4
"@angular/core": "8.2.14"
.Net Core 3.1

Current behavior
I am able to login with Azure AD correctly from the client side.  However, when I make an API call back to the server (the angular app and Web API site are the same site) it always returns a unauthorized response.  I'm using the MsalGuard and MsalInterceptor.  The guard and interceptor seem to be doing what they should be doing.  The interceptor is passing the token back to the server.
My configurations may be the problem.  I've tried a ton of variations of the configuration.  Here is what it is now.  Angular:

.Net Core 3.1

I receive this error on the server:
IDX10205: Issuer validation failed. Issuer: 'https://login.microsoftonline.com/XXXX/v2.0
I've tried setting:  config.TokenValidationParameters.ValidateIssuer = false; and that didn't change anything.
Question of the day:  what thing am I doing wrong?  I know the error is on the server, but it seems like the problem is with my configuration of the client.  I don't know.
Expected behavior
I expect to not receive unauthorized responses from the server (again it is the same Url as the angular app).
What parts of the settings on the server/client should be the same?  I know the clientID and tenetID are used in multiple locations.  I'm not convinced I'm using them in the correct places.
Any help would be appreciated.

@jsmith39 Given that you have scopes for two different resources (Graph and your web API), you will get a separate access token for each resource (as access tokens are issued per-resource). Can you confirm that the right access token is being used in the request to your web api? Might help to see your protectedResourceMap.

Sorry for the delayed response.  Unfortunately, the client has put this project on hold for the next month at least.  I'll close it for now and open a new one if necessary in the future.


SSL: CERTIFICATE_VERIFY_FAILED

Receiving  the following error
aiohttp.client_exceptions.ClientConnectorError: [Errno 1] Cannot connect to host myanimelist.net:443 ssl:True [Can not connect to myanimelist.net:443 [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)]]
by adding
connector=aiohttp.TCPConnector(verify_ssl=False)
to line 53 in client
with aiohttp.ClientSession(auth=self._auth, headers={"User-Agent": self.user_agent}, connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
and to line 72 in client
with aiohttp.ClientSession(auth=self._auth, headers={"User-Agent": self.user_agent},connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
I was able to resolve the issue.

Honestly not going to ever recommend not verifying SSL certificates.
Probably an error on MAL's end since when I tested it everything was fine.
@b-rockx does this error still occur when enforcing the validity of the SSL cert?

No response. Closing issue.


tomcat session replication with non-sticky session not working, multiple issues

Hi,
I'm trying to setup a Tomcat 8 cluster with 2 nodes without sticky session.
Issues:
1.java.lang.IllegalStateException: setAttribute: Session [F766FB4EAE8FE29451215A67300EF46A] has already been invalidated
2. ```
Caused by: java.io.IOException: java.lang.ClassNotFoundException: xxx.dto.PermissionDTO
at org.redisson.codec.SerializationCodec$1.decode(SerializationCodec.java:53)
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:259)
at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:289)
at org.redisson.client.handler.CommandDecoder.decodeFromCheckpoint(CommandDecoder.java:154)
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:101)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:367)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)

3. From RedissonSessionManager and RedissonSession i can't understand how this solution replicates in real time( no sticky sessions) the same session from one node to another.I was expecting that method getAttribute should use the map also. If someone can explain this.

And a feature if it is possible:
can we filter some session attributes from going into RMap?

Thanks.

Hi

I need a test case to reproduce it. Could you describe it?
Issue arises since you didn't copy jar with your dto objects to tomcat/lib directory.
session store maintained by Redis and not Redisson.

can we filter some session attributes from going into RMap?

It's not implemented yet.

my dto is in tomcat webapp folder

2 tomcat nodes in a cluster no sticky session.

first request hit node1, create a session and store some data
second request with same jsessionid hit node2. node2 ask for session by hitting method findSession on RedissonSessionManager. ReddisonSessionManager loads session from redis.
something new is saved on session
third request hit node1 again with same jsessionid.
at this point what node2 have written on session is not visible, as session is not reloaded from redis

my dto is in tomcat webapp folder

It should be in tomcat/lib too because these jars are loaded by different ClassLoader it's not used to load classes from /webapp folder.

application war file should reside in webapp folder , and tomcat-session-manager should be aware of all classes.
i think the solution is to use the WebappClassLoader: getContext().getLoader().getClassLoader().
Maybe this would work, but I have bot tested it.
config = Config.fromYAML(new File(configPath), getContext().getClass().getClassLoader());

Interesting idea. It would be great if you could you test that. Could you?

i have tested it.
seems that getContext().getLoader().getClassLoader() resturns correct class loader, but...
my configuration is using "codec: !<org.redisson.codec.SerializationCodec> {}" and this codec has 2 constructors
`    public SerializationCodec() {
this(null);
}
public SerializationCodec(ClassLoader classLoader) {
    this.classLoader = classLoader;
}`

it seems that default constructor with null class loader is always called.
this is my YAML config :
singleServerConfig:
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
password: null
subscriptionsPerConnection: 5
clientName: null
address: "redis://<IP_ADDRESS>:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 10
connectionPoolSize: 64
database: 0
dnsMonitoring: false
dnsMonitoringInterval: 5000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.SerializationCodec> {}
useLinuxNativeEpoll: false

This problem bothered me before. Try Thread.currentThread().getContextClassLoader(), it works perfectly for me.

I mean Thread.currentThread().getContextClassLoader() resolved the ClassLoader issue, but it didn't resolve the non-sticky issue.

Fixed issue with ContextClassLoader. I'm unable to reproduce non-sticky issue. Please re-check it with version from 'master' banch.

try the steps for reproduce the non-sticky issue:

having 2 tomcat server with one non-sticky load balancer.
login the web application.
do some actions, make sure that both tomcat servers already have your session in their memory.
perform one action which will change the session attributes, assume session attributeA being changed from "A" to "B" by tomcat server 1. and this change is sent to Redis server.
try to read the session attributeA from tomcat server 2, you will find it's still "A".
because though attributeA's new value already sent to Redis server, but tomcat server 2 is not notified, so it keep on reading the value of attributeA from its memory, instead of reloading it from the Redis server.

though attributeA's new value already sent to Redis server, but tomcat server 2 is not notified, so it keep on reading the value of attributeA from its memory, instead of reloading it from the Redis server.

Tomcat server doesn't store sessions in memory if you setup RedissonSessionManager properly. It read values directly from Redis and not own memory.

I have the same exactly configuration and behavior as @miriamccp. My instances are on Azure, this is my redisson.conf:
{
   "singleServerConfig":{
      "idleConnectionTimeout":10000,
      "pingTimeout":1000,
      "connectTimeout":10000,
      "timeout":3000,
      "retryAttempts":3,
      "retryInterval":1500,
      "reconnectionTimeout":3000,
      "failedAttempts":3,
      "password":"<redis_password>",
      "subscriptionsPerConnection":5,
      "clientName":"<node_name_#>",
      "address": "redis://<my_azure_redis>.redis.cache.windows.net:6379",
      "subscriptionConnectionMinimumIdleSize":1,
      "subscriptionConnectionPoolSize":50,
      "connectionMinimumIdleSize":10,
      "connectionPoolSize":64,
      "database":0,
      "dnsMonitoring":false,
      "dnsMonitoringInterval":5000
   },
   "threads":0,
   "nettyThreads":0,
   "codec":null,
   "useLinuxNativeEpoll":false
}

Any idea how to debug the issue on a low level?

Ok, I've tested it also on version 3.4.5-SNAPSHOT and same behavior.
My test case is this one:

I have a first service that retrieves data from DB and puts it on session.
The second service checks in session if some data is stored in the session. If yes, good, otherwise returns an error.

As I'm using a load balancer, I can clearly see that each request on the second service is served from both servers, in a round robin scenario (Server 1, Server 2, Server 1, Server 2, ...). Also, I'm sure that the cookie ID sent to the server is the same (I'm putting it in the output of the service as echo).
When the request 2 is served from the same Tomcat that received the service on point 1, no problem at all. Otherwise, when served from the other instance, I got an error. To be more sure, I've removed one server from the load balancer and in that case, I have no issue at all (of course).
It's driving me crazy, any suggestion on how to debug this is much appreciated.
Thanks,
IP

@iakko Which tomcat version do you use?

Hi @mrniko , @gabydinu , and @iakko
By reading the RedissonSession class, the Session doesn't retrieve any values from the Redis after the first load inside RedissonSessionManager calling the RedissonSession#load.
I solved the non-stickiness issue by creating my own RedissonSession class and overriding the getAttribute method of StandardSession to directly get from the RMap.
@override
public Object getAttribute(String name) {
  return map.get(name);
}

I think I have fixed invalidated session problem. Problem was in order of loading attributes - isValid attribute should always be read before set any attribute to local Session object.

@mrniko I'm using Tomcat 8.
Anyway, I've started using redisson 3.5.0 and seems like the problem has being solved (partially in my case).
No more exceptions, everything is good, but I'm noticing a delay on updating the session. This is the scenario:
Service A is used to populate the session, service B needs data populated by service A, so the right way to use them is using Service A and after service B (similar to a login phase).
The clients calls service A, that is served fron Tomcat #1, the the clients calls service B immediately after, but it goes on error because service B cannot find data populated by service A.
Reproducing the scenario manually, with Postman for example, no problem at all.
I realized that the problem seems to be a delay of tomcat #1 synchronizing the redis server. I was expecting that the setAttribute() call would be synchronous on putting data in cache, but apparently it is not (in my expectation, when the setAttribute() returns, I should be sure that data have been stored on redis server).
To solve this issue, i have to use sticky sessions.
Any idea on this?
Thanks a lot.

@iakko,look at hans123456's comment, override the getAttribute method will resolve the issue, but meanwhile, i think the RedissonSession load() method would be meaningless，as that method is to load all session attrs from redis server into tomcat server memory, which according to @mrniko's comment, should not happen.(he mentioned server won't read attrs from memory, but from redis server directly) i think the load method should load only the basic session attrs( isValid, isNew...something like that.)

@miriamccp my mistake, currently Redisson Manager loads all attributes to minimize access time to them.

@iakko

I was expecting that the setAttribute() call would be synchronous on putting data in cache, but apparently it is not. In my expectation, when the setAttribute() returns, I should be sure that data have been stored on redis server.

Have a look at RedissonSession.setAttribute method, Redisson stores attribute in synchronous mode.

@mrniko actually, I see this code:
    @ Override
    public void setAttribute(String name, Object value, boolean notify) {
        super.setAttribute(name, value, notify);

        if (map != null && value != null) {
            map.fastPut(name, value);
        }
    }

But I usually use the function with signature public void setAttribute(String name, Object value), which is not handled in https://github.com/redisson/redisson/blob/3c0449eda7d426a879a10f6121d3c214525c54aa/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSession.java#L34, thus it calls the implementation of the extended object (which frankly, I don't know how it handles the setAttribute() in details).
Does it make any difference?

Ok, I understand that.
Assuming that, and assuming as you sad before that getAttribute never reads from memory, but directly from Redis Server, the only explanation is that maybe the Azure Redis PaaS return a not-fresh version of data just retrieved.
Have you ever heard about this kind of issue before?

I'm sorry to continue bothering with this, but I have a big issue retrieving cached data with Tomcat 8 and Redisson 3.5.0 (without sticky sessions).
Seems like to me that every time I try to get data from session from within my service (using HttpServletRequest.getSession().getAttribute()) Redisson is not going to get it from server.
I've monitored that using MONITOR on Redis server and I never see a HGETALL on the session ID, but only some HSET.
Looking the RedissonSession class, I don't see any public Object getAttribute(String name). I guess this means that it's using the StandardSession getAttribute definition, that is not calling Redis.
Any hints? Thanks.

@iakko That's what I said in the comment above, the getAttribute wasn't overriden so all the attributes are retrieved from memory after calling RedissonSession#load inside RedissonSessionManager#findSession.
https://github.com/redisson/redisson/issues/974#issuecomment-318644918

Ok, sorry guys.
@hans123456: glad to know that I've come to your same conclusion :)
@mrniko: any idea when the fix will be available?

@iakko
https://github.com/redisson/redisson/issues/974#issuecomment-318992217
Could you please describe your case? I thought Session should be used by only one user at a time, but in your case it's not so.

@mrniko: of course session is supposed to be used by one user at a time, but there might be some circumstances where a web application can invoke several services in parallel for different reasons. In that case, you might need to handle synchronization between calls with some session data.
Although, my concern related that comment is the fact that due to the missing getAttribute, I was having very bad drawbacks and seemed like the Redis session update was not syncronous with the setAttribute call, that would have lead to a non synchronous call between the setAttribute and the next getAttribute. Also, the missing getAttribute on the RedissonSession class, takes Tomcat to store data on the local memory, this is very confusing because when the call landed on the Tomcat with data in memory, everything was working. Instead, when landed on the wrong Tomcat, data on Redis were not updated. Very confusing scenario.
Anyway, do you have any clue when the updated version will be available?
Thanks!

setAttribute: Session xx has already been invalidated 这个问题还没有解决的吗，我现在使用出现了这个问题 @mrniko ,有临时的解决方法吗

@maichaojiu fixed in "master" branch https://github.com/redisson/redisson/commit/056adfa7d5288e2864443b937cdc3cb9234cc9ae

@mrniko ok,thanks

@iakko
I have added readMode property to RedissonSessionManager, it's has two options: MEMORY and REDIS. MEMORY is default, so you should set it to REDIS.

Hello @mrniko,
Can you kindly explain how to use that?
Also, I've just checked out the 3.0.0 branch to see if the "getAttribute" issue was solved, but I still cannot see it in the RedossonSession.java class for Tomcat 8.
Thank you.

@iakko I have just pushed it forward to 3.0.0 branch.

Done

HEllo @mrniko ,
I've updated the version to 3.5.1 but seems like the REDIS session is not updated properly.
I think it's because I've not set readMode from MEMORY to REDIS, but I don't understand where to set it (I've tried on redisson.conf but without success).
Can you explain where should I put that configuration?
Thanks.

@iakko based on the code, you put it in the context.xml
Example:
<Manager ... readMode="REDIS" ... />

Yes, I was writing you that I figured it out, I need some days off :smile:
Seems to work well now, thank you very much!
Ciao.

@hans123456 thanks for support!
@iakko you're welcome!

Sorry guys, but I have to go back to the "Session has already been invalidated" issue.
I'm using Redisson 3.5.1 on Tomcat 8, and sometimes I get the annoying exception:
HTTP Status 500 - setAttribute: Session [<SESSION_ID>] has already been invalidated

type Exception report

message setAttribute: Session [<SESSION_ID>] has already been invalidated

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException: setAttribute: Session [71C7FE8F05C874E641C094C1909BAB26] has already been invalidated
	org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1462)
	org.redisson.tomcat.RedissonSession.setAttribute(RedissonSession.java:146)
	org.redisson.tomcat.RedissonSession.load(RedissonSession.java:205)
	org.redisson.tomcat.RedissonSessionManager.findSession(RedissonSessionManager.java:115)
	org.apache.catalina.connector.Request.doGetSession(Request.java:2906)
	org.apache.catalina.connector.Request.getSessionInternal(Request.java:2559)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:429)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1460)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.32 (Ubuntu) logs.

Should it be fixed on 3.5.1?
Thanks
IP

@iakko Due to https://github.com/redisson/redisson/issues/1031 bug I would recommend you to update on 3.5.3

@mrniko: I've just updated to it, I'm trying to reproduce the issue but it's not so easy. Does the 3.5.3 resolves the session issue or is it just a suggestion?

Actually issue you're talking about had been resolved in 3.5.1 But it also introduced a regression bug, which has been solved in 3.5.3

You're right Redisson attempts to load session from Redis if it couldn't be located in Tomcat.

So, is it a bug or a correct behavior? In case it's correct, how should it be treated?

It's correct behavior. Since session should be loaded in Tomcat first. As for you bug. Have you checked for presence of "session:isValid" property? Since StandardSession.isValid is false by default. I think this is the cause.

I'm trying to reproduce it, but it's not easy.
Most likely, it's because the session id does not exists in redis anymore.
So, the "session:isValid" ia not present at all.
Scenario:

Creating a session, server responds with session cookie. Everything is
working fine.
Session timeout expires, tomcat removes session from redis
(sessionDestroy() is triggered).
Time passes, many things happen, like server reboot. Also, tomcat might
destroy session because it goes on timeout.
the client tries to use the expired session giving the old session
cookie, boom!

Another idea is: what happens if tomcat reboots before session expires?
Does tomcat remembers about sessions created with redisson and triggers the
setDesteoy() or does it loose this?
I'm on short of ideas :(
--
This message has been typed with my mobile device, sorry for typos and/or
missformats.
On Sep 25, 2017 16:58, "Nikita Koksharov"<EMAIL_ADDRESS>wrote:
It's correct behavior. Since session should be loaded in Tomcat first. As
for you bug. Have you checked for presence of "session:isValid" property?
Since StandardSession.isValid is false by default. I think this is the
cause.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/redisson/redisson/issues/974#issuecomment-331908645,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABOmeagiDkYYUJGv6PCrJVFP0y4KOc_mks5sl7-mgaJpZM4OcuQM
.

I realized what is the problem during StandardSession.expire method invocation: manager.remove method removes session completely which is correct but next invocation setValid(false) recreates it again

@iakko I did few changes related to my previous comment. Could you please check your issue again?

@mrniko: I'm trying to find out where the change is, but I can't see any 3.5.* tag/branch containing the fix, only on master branch.

@iakko I have just updated 3.0.0 branch

@mrniko: ok, I've replaced 3.5.3 with 3.5.4-SNAPSHOT and at first sight, seems working now. I'll perform additional, more reliable, tests in these days, I'll let you know.
Do you have an idea when the official release of version 3.5.4 will be available? If I use a "SNAPSHOT" version in production I'll be killed :)
Thanks.
IP

@iakko I'm going to publish it today

Just to confirm that after a couple of months of testing, this issue has never shown again.

@iakko That's great! Thank you!


Certificate expired, clean and trust does not create a new certificate

Describe the bug
Launch react website using kestrel, when browsing, brower say certificate invalid.
After looking at the certificate it is expired.
Tried to clean and recreate certificate but it still says certificate invalid.
When looking at the certificate store I can't find a expired certficiate.
Other dotnet website use the new certificate and does not show the same error
To Reproduce
Sorry I don't know how to reproduce this one
Expected behavior
Kestrel use a valid certificate
Additional context
Certificate is invalid on all browsers

@kYann  is this still an issue? If not, can you close? Did you try the instructions at Troubleshoot certificate problems
Are you saying other ASP.NET Core web apps use the ASP.NET Core HTTPS development certificate but react website using Kestrel can't?

I am saying that one of the project was using an expired certificate was not visible in the certificate store. And the other was fine.
Cleaning the certificate did not fix it.
When migrating to .Net Core 3, Visual Studio ask me if I needed to create a new certificate. Clicking on Yes and trusting it fix the issue.

Sounds like the issue is fixed. Can you close this issue?


Option to exclude files/paths from project tree

Something along the lines of:
excludes: [
  "path1\"
  "file.txt"
]

or
excludes: [
  regexp: "path[1|2]\"
  regular: "help*.*"
]

would be great...

A quick search and I found tree-ignore. 😃


Added StringIO/Image example to quickstart documentation.

I added an example of how to create an Image object from the binary response content. I think this is quite a common issue.

I love it. Thanks!


Extension Component

This pull request only adds the ExtensionHandler component, and nothing else.
Also we're missing chaos monkey changes on the main branch from my other pull requests, so lets get those resolved asap!

Dillon here, it all seems to function correctly.


Closure conversion: type variables

Closure conversion needs to handle use of type variables in hoisted functions.

Fixed by 3551403.


DBZ-1642 Support SQL Server Alwayson node

Ref: https://issues.redhat.com/browse/DBZ-1642
Perform a commit operation for compatibility with SQL Server read-only nodes

Hi, thanks a lot, @cobolbaby! I'm a bit wary about any kind of commit, as the connectors should never write anything, but only read from the database. Could you give some background on why this is needed?  Thanks!

@gunnarmorling It seems that when reading from read only replica the CDC metadata (max LSN) are not updated - only at point of starting the transaction. When I manage to setup a cluster I'll do deeper investigation - this is more of proff to verify the problem is solved.

@gunnarmorling I've got SQL Server read-only running and I can confirm that the LSN is not updated without commits. I've found that reading from replaica always applies snapshot isolation which means that unless comit is executed Debezium sees the same values.
At the same time I am not a fan of unnecessary commits applied. @cobolbaby Could you please confirm whether you needed to set database.applicationIntent=ReadOnly? If yes then I propose to execute commits only when this config option is set. WDYT?
@cobolbaby Also could you please introduce method commit into JdbcConnection and call it?

@jpechane In the master-slave mode, the slave database is usually read-only to ensure that the data will not be inconsistent due to user misoperation. So I'm pretty sure I need the configuration item.

@jpechane

Also could you please introduce method commit into JdbcConnection and call it?

If I modify the code as follows, is that ok?
public <T> T queryAndMap(String query, StatementFactory statementFactory, ResultSetMapper<T> mapper) throws SQLException {
        Objects.requireNonNull(mapper, "Mapper must be provided");
        Connection conn = connection();
        if (!conn.getAutoCommit()) {
            conn.commit();
        }
        try (Statement statement = statementFactory.createStatement(conn);) {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("running '{}'", query);
            }
            try (ResultSet resultSet = statement.executeQuery(query);) {
                return mapper.apply(resultSet);
            }
        }
    }

@cobolbaby I am sorry for the confusion. I meant please create method called commit() in JdbcConnection class that will call commit on database connection so the call will look like dataConnection.commit();. It is probably about time to do it as we call commit this way in multiple places

Please review the changes.

Is there a way we could mark this transaction as read-only?

@gunnarmorling That's database.applicationIntent=ReadOnly. Without that the read-only replica will refuse to execute any commands.

@jpechane, ah, that's interesting. So can we somehow detect that we are connected to a secondary and then either

pass that option automatically or
fail if the user has not set it?

Also, commit() should be implemented as no-op then if ReadOnly is set?

@gunnarmorling Please take a look at https://github.com/debezium/debezium/pull/1167#issuecomment-564521420

Could you please confirm whether you needed to set database.applicationIntent=ReadOnly? If yes then I propose to execute commits only when this config option is set. WDYT?

Ok, that sounds good. So I'd suggest then to override commit() on SqlServerConnection so it's a no-op when that option is set.
Ideally, we set the option ourselves when detecting we're connected to a secondary. If that's not possible, it should be highlighted in the docs clearly, that this option must be set in this case.
@jpechane, @cobolbaby, does that make sense?

Superseded with https://github.com/debezium/debezium/pull/1176

Closing in favour of #1176. Thanks, @cobolbaby!