How to prevent an infinite loop when the current view is updating the database?

I have a View with a segmented control picker which is used to update some column named status in my database.
Based on the demo app, I have created the following publisher:
// Publisher
func myPublisher(taskId: UUID) -> DatabasePublishers.Value<Task?> {
    ValueObservation
        .tracking { db in
            try Task
                .select(Task.Columns.status)
                .filterId(taskId)
                .fetchOne(db)
        }
        .removeDuplicates()
        .publisher(in: database)
}

The publisher is used in my ViewModel:
@Published var taskStatus: TaskStatus {
    didSet {
        // Updates database...
    }
}

// Subscriber
init(task: Task) {
    Current.tasks()
        .myPublisher(taskId: task.id)
        .fetchOnSubscription()
        .catch { _ in Empty() }
        .sink { [weak self] in
            if let task = $0 {
                // Update status
                self?.taskStatus = task.status
            }
        }
        .store(in: &cancellableSet)
}

On initialization, the picker gets its initial value from @Published var taskStatus as expected. However, when the picker's value is changed, the following happens:

The @Published var taskStatus's didSet{} observes the change, and updates the status column in the database.
myPublisher() observes the change in the status column, and the subscriber is triggered.
When the subscriber is triggered, @Published var taskStatus is updated, and its didSet{} is fired, updating the database (again).
This starts an infinite loop.

Is it possible to make the publisher (or subscriber) aware of the source of the database update, so that I can break this infinite loop?

Hello @simensol,
I'm not quite versed in data-flow design in Combine apps, so I won't comment on your setup.
I don't understand how you can get an infinite loop with the removeDuplicates() modifier.

Thanks anyway, @groue! I will investigate and follow up.

I didn't managed to fix the cause. By comparing the old Task record to the updated one, the second update in the loop were never executed, hence, breaking the loop:
// ViewModel.swift
@Published var taskStatus: TaskStatus {
    didSet {
        Task.updateStatus()
    }
}

// Tasks.swift
func updateStatus(_ existingTask: Task, newStatus: TaskStatus) throws -> Bool {
    _ = try database.write { db in
        if var task = try Task.fetchOne(db, key: existingTask.id) {
            let isTaskUpdated = try task.updateChanges(db) {
                $0.status = newStatus
            }

            #if DEBUG
            if isTaskUpdated {
                print("Task.status was updated")
            } else {
                print("Task.status was not updated")
            }
            #endif
        }
    }
}

OK, @simensol. I'd be happy if you could share a reproducible case, so that someone else can keep on investigating (probably me). The sample code you provide is not enough to reproduce the issue and perform adequate debugging.

I will see what I can find, @groue. I'm the only developer on my project, so the git commits are unfortunately a bit messy.

I'm still working on this issue. I think the problem is related to SwiftUI, and not GRDBCombine, but I'm not sure yet. When I initiate the app, 4 TransactionObservation are created. However, after opening the same View 20 times, the number of TransactionObservation has increased to 24. I call Cancel() on the cancellableSet. Is it a memory or database issue that the number of TransactionObservation increases?

Closing due to lack of activity. See you later in the GRDB repository, because GRDBCombine is no longer an independent library!


create CMS fields for content type based on survey

need to have nadine add some. a few questions still around whether to have dropdowns or checkboxes...
also build this into another static angular page with map interface for saving as ngResource... or integrate map directly if that's easier...


DPG, support special-header x-ms-client-request-id

It would not appear on method signature.
Impl automatically sets a random GUID, if not set by user.
Handle similar to RepeatableRequests https://github.com/Azure/autorest.java/issues/2063

It's used as a correlation id among a group of request ids: https://github.com/Azure/azure-sdk/issues/576#issuecomment-1029635259
Will treat the same as the repeatability id.

Seems we already have it in RequestIdPolicy in our default HttpPipeline? It applies to both dpg and mgmt...

We can talk in meeting.
ARM always support x-ms-client-request-id, but not so for data-plane. I am not sure if service would behave unexpectedly, if we sent this when backend does not expect it.

Close as discussed.
We've already supported and will have future discussions if one service throws an error due to this header.


Capture the 7.5.18 code. and the @variadic change

@AlexMouton, I was late to seeing this PR, and had published a 7.5.19 version this morning, which captured the variadic update only, but obviously not the rest of this PR. rescript-fields was already pointing to rescript-rxjs 7.5.18, but our main app was at rescript-rxjs 7.5.17. So, we merged in the variatic chage and published as 7.5.19 and updated our main app to point to .19 instead of .17.
I will go ahead and merge this update in, tag it as 7.5.20, and publish once verified to not break our smokes. When the main app is updated, you can go ahead and start work on rescript-fields bug fixes, but will need to update the package json to this newly published .20 version. Make sense and in agreement?


Change Term - lifeStage

Change term

Submitter: Paula Zermoglio (@pzermoglio)
Justification (why is this change necessary?): Consistency and clarity
Proponents (who needs this change): Everyone

Proposed new attributes of the term:

Term name (in lowerCamelCase): lifeStage
Organized in Class (e.g. Location, Taxon): Occurrence
Definition of the term: (unchanged): The age class or life stage of the Organism(s) at the time the Occurrence was recorded.
Usage comments (recommendations regarding content, etc.): Recommended best practice is to use a controlled vocabulary.
Examples: zygote, larva, juvenile, adult, seedling, flowering, fruiting
Refines (identifier of the broader term this term refines, if applicable): None
Replaces (identifier of the existing term that would be deprecated and replaced by this term, if applicable): http://rs.tdwg.org/dwc/terms/version/lifeStage-2017-10-06
ABCD 2.06 (XPATH of the equivalent term in ABCD or EFG, if applicable): DataSets/DataSet/Units/Unit/MycologicalUnit/MycologicalSexualStage or DataSets/DataSet/Units/Unit/MycologicalUnit/MycologicalLiveStages/MycologicalLiveStage (Note DwC spec uses "MycologicalLifeStage" or DataSets/DataSet/Units/Unit/ZoologicalUnit/PhasesOrStages/PhaseOrStage

Current dwc:lifeStage definition:

The age class or life stage of the biological individual(s) at the time the Occurrence was recorded.

Why "biological individual(s)" and not "organism(s)" as defined in the Organism class? (which by the way has such a circular definition!).

This change is highly desirable so that we can take advantage of the
rigorously defined class. I think doing so might even be just an
erratum without need for a full public review. Thoughts from others?
On Fri, Feb 26, 2021 at 2:18 PM Paula Zermoglio<EMAIL_ADDRESS>wrote:

Current dwc:lifeStage http://rs.tdwg.org/dwc/terms/lifeStage definition:
The age class or life stage of the biological individual(s) at the time
the Occurrence was recorded.
Why "biological individual(s)" and not "organism(s)" as defined in the Organism
class http://rs.tdwg.org/dwc/terms/Organism? (which by the way has such
a circular definition!).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/dwc/issues/321, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ727DLP5SHO7YKB6LRPTTA7JXTANCNFSM4YIZWIUQ
.

I would say: Make it so.  It's clear that "biological individual(s)" is synonymous with dwc:Organism; so there is no sematic change -- just correcting an out-dated term.  My 2 cents, anyway.

I have changed the title of the issue and prepended a templated term change request to the original comment so as not to have to make a separate issue and relate it to the discussion in this one.

The dwciri: analog shares the same definition as the dwc: term, so it should just be updated to match.

@EstebanMH-SiB Multiple values are not recommended, as they do not lend themselves well to a controlled vocabulary. Instead, the recommendation is to have two Occurrence records for the example your gave. One would have lifeStage juvenile and individualCount 2 while the other would have lifeStage adult and individualCount 4.

Done.


Reuse agent

Added

Reuse agent - first process that runs will create the agent and its children will be able to reuse the same one to avoid creating many agents.

Cool stuff. Does the agent not assume in any point it is managing a single client?

It shouldn't as the whole code is based around multiple clients (which was pretty annoying, but now it's paying it off..)

bors r+


GEM: add_data to buffer

https://github.com/aimagelab/mammoth/blob/f3effb9dc2098c0463d214c4f8e5e69f38517e13/models/gem.py#L126
Dear authors,
This part where you add data to buffer in GEM is probably wrong because size of task_labels should be equal to that of examples, but not 'samples_per_task'.
Thank you for revising this.

Hi @tunglamlqddb , this is now fixed in the new version.
It didn't really affect performance but it was defenately wrong.


Fix CVE-2024-47191 in oath-toolkit

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary

What does the PR accomplish, why was it needed?
This PR fixes CVE-2024-47191 in oath-toolkit.
Change Log

CVE-2024-47191

Does this affect the toolchain?

NO
Links to CVEs

https://nvd.nist.gov/vuln/detail/CVE-2024-47191

Test Methodology

Pipeline build id: FastTrack Build - 652431

Auto cherry-pick results:

main :white_check_mark: -> https://github.com/microsoft/azurelinux/pull/10650

Auto cherry-pick pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=653357&view=results


Fix small bug intro'd in PR #251

Extra conditional to fix bug intro'd by https://github.com/johnynek/bazel-deps/pull/251
This change was originally suggested by @Reflexe in the thread, but they didn't make a PR for it. https://github.com/johnynek/bazel-deps/compare/master...Reflexe:master

sorry for the latency.
I'd be happy to merge the PR with the fix. It would be good if we could find some way to test and show the previous bug so we can prevent future regressions.
About the protobuf hack, I don't think I want to merge that. I think if we could encapsulate it somehow in rules scala inside of a function that users could call in their repo as needed, but I don't want to cargo-cult weird workarounds.

About the protobuf hack, I don't think I want to merge that. I think if we could encapsulate it somehow in rules scala inside of a function that users could call in their repo as needed, but I don't want to cargo-cult weird workarounds.

😄 I definitely wasn't intended that to enter this PR. I was trying something last night and forgot I had the PR pointing at :master.

Closing to reopen this change request from a PR-specific branch.


Change the subject of the email - Form module / Cockpit and React JS

I'm developing a website with Cockpit and React JS.
In this project, there is a very simple contact form (name, email, message).
I created a form in Cockpit, via the Forms module, and I added a configuration file in Cockpit (config/config.yaml) :
mailer:
  from<EMAIL_ADDRESS>  transport: smtp
  host: smtp.ionos.fr
  user<EMAIL_ADDRESS>  password: ***
  port: 587
  auth: true
  encryption:

The form module is configured to record data in Cockpit, but also to send me an email as soon as a new record is added (in plain language, as soon as a user clicks on the submit button on the form). That's why I had to create the config/config.yaml file with this informations.
Everything works perfectly. The datas are well recorded in Cockpit and I receive the email.
But I have a problem.
I want to change the subject of the email. For the moment, when I receive an email the subject is : "New form data for: Contact".
In the modules/Forms/bootstrap.php file, line 325... I found this :
$response = $this->app->mailer->mail($frm['email_forward'], $options['subject'] ?? "New form data for: {$formname}", $body, $options);

So, it's in this file that the subject of the email is managed. So, in theory, it's possible to pass an option to modify the subject of the email.
The problem is, I don't see how I should go about sending this information.
I have tried adding the information to the config/config.yaml file but it doesn't work. Like this :
mailer:
  from<EMAIL_ADDRESS>  subject: test /* <= I added this information */
  transport: smtp
  host: smtp.ionos.fr
  user<EMAIL_ADDRESS>  password: ***
  port: 587
  auth: true
  encryption:

On this page, it's indicated that it's necessary to create a hidden field named "__mailsubject" and with as value the desired subject. The problem is that I'm using React JS (+ axios) and not PHP (no access to : $_REQUEST, $_POST, ...).
Here is the code my React component
import React, { Component } from "react";
import axios from "axios";

class Form extends Component {
  constructor(props) {
    super(props);

    this.onChangeName = this.onChange.bind(this);
    this.onChangeEmail = this.onChange.bind(this);
    this.onChangeMessage = this.onChange.bind(this);
    this.onSubmitForm = this.onSubmitForm.bind(this);
  }

  state = {
    name: '',
    email: '',
    message: ''
  }

  onChange(e) {
    this.setState({ [e.target.name]: e.target.value })
  }

  onSubmitForm(e) {
    e.preventDefault()

    const dataForm = {
      "form": {
        name: this.state.name,
        email: this.state.email,
        message: this.state.message
      }
    };

    axios
      .post('http://dev.site.com/api/forms/submit/contact?token=XXX', dataForm)
      .then((res) => {console.log(res.data)} )
      .catch((error) => {console.log(error)} );

    this.setState({
      name: '',
      email: '',
      message: ''
    })
  }

  render() {
    return (
      <>

{this.props.title}

            <form onSubmit={this.onSubmitForm}>
              Your name :
              <input name="name" value={this.state.name} onChange={this.onChangeName} type="text" />

              Your email :
              <input name="email" value={this.state.email} onChange={this.onChangeEmail} type="text" />

              Your message :
              <textarea name="message" value={this.state.message} onChange={this.onChangeMessage}></textarea>

              <input type="submit" value="Submit" />
            </form>

      </>
    );
  }
}

export default Form;

I tried this. But it doesn't work :
const dataForm = {
  "form": {
    __mailsubject: "test",
    name: this.state.name,
    email: this.state.email,
    message: this.state.message
    }
  };

PS: I will use later Formik and Yup to create and validate the form.
I don't see how I can achieve what I want, other than directly changing the modules/Forms/bootstrap.php file ! But this isn't a good solution because it will give me problems during updates !
The only solution is to use the form templates, like here ?
An idea ?

Hi, I already replied this question here on Stack overflow, but here it is:
In order to update the mail subject you need to pass the value as parameter and not as form data.
On your request you should have something like:
axios
  .post('http://dev.site.com/api/forms/submit/contact?token=XXX&__mailsubject=My email subject', dataForm)
  .then((res) => {console.log(res.data)})
  .catch((error) => {console.log(error)})

The code for this can be seen at modules/Forms/Controller/RestApi.php
if ($this->param('__mailsubject')) {
   $options['subject'] = $this->param('__mailsubject');
}

This means it will only check for __mailsubject as a parameter value and not as a form data value.

Thank you for that answer. It works perfectly.
Indeed, I read this code in Cockpit:
if ($this->param('__mailsubject')) {
   $options['subject'] = $this->param('__mailsubject');
}

But the problem is that I didn't understand that "$this->params" corresponded to the parameters in the URI.
I think this information should be in the official Cockpit documentation.
Anyway, thank you for your help.


Field relation/addition in BQ

Summary
When table is not partitionned and truncate is requested or when table does not exist remove field addition/relaxation options.
PR Type: Bug Fix
Status: Ready to review
Breaking change? No

Codecov Report

Merging #32 (4131aa2) into master (adfb346) will decrease coverage by 0.26%.
The diff coverage is 63.33%.

@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
- Coverage   66.60%   66.33%   -0.27%
==========================================
  Files         111      112       +1
  Lines        4671     4676       +5
  Branches      231      233       +2
==========================================
- Hits         3111     3102       -9
- Misses       1560     1574      +14

Flag
Coverage Δ

unittests
66.33% <63.33%> (-0.27%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

.../scala/com/ebiznext/comet/config/DatasetArea.scala
89.28% <ø> (ø)

...ain/scala/com/ebiznext/comet/config/SparkEnv.scala
100.00% <ø> (ø)

...a/com/ebiznext/comet/job/ingest/IngestionJob.scala
56.79% <ø> (-0.20%)
:arrow_down:

...m/ebiznext/comet/job/ingest/JsonIngestionJob.scala
100.00% <ø> (ø)

.../ebiznext/comet/job/ingest/KafkaIngestionJob.scala
0.00% <ø> (ø)

...iznext/comet/job/ingest/PositionIngestionJob.scala
97.61% <ø> (ø)

...next/comet/job/ingest/SimpleJsonIngestionJob.scala
55.55% <ø> (ø)

...om/ebiznext/comet/job/ingest/XmlIngestionJob.scala
75.67% <ø> (-0.65%)
:arrow_down:

...la/com/ebiznext/comet/job/metrics/MetricsJob.scala
91.66% <ø> (ø)

.../com/ebiznext/comet/schema/generator/DDL2Yml.scala
87.05% <ø> (-0.10%)
:arrow_down:

... and 11 more

Continue to review full report at Codecov.

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


Improve base Flask route and graph visualization tool

Upgrade pydot version. Old version was hitting an error.
Base Flask route shows link to Flask-JSONRPC's API browser and link to graph visualizer route if a network is running.
Add some error handling and hint about installing graphviz to the /net route.

ACK https://github.com/cdecker/lnet/pull/13/commits/8b7f8bc4532c2abe86f2fdb7eb2f7b305a26895f


$ in example table not escaped correctly

Summary
Given the following gherkin:
Scenario Outline:
  Given <x>

  Examples:
    | x  |
    | $$ |

The step becomes Given $ instead of Given $$.

Possible Solution
I believe the problem is in the pickle generation here as the $ is a special character in replacement strings.

See https://github.com/cucumber/cucumber-js/issues/1077 for the original issue

@aslakhellesoy when is a new version of gherkin going to be released? I want to get this fix into cucumber-js

I'll try to get it done this week


Consider having a spring autoconfigure feature

We may want to consider having a spring autoconfigure feature for the spring folks.

@mirage22 - since you're a spring fan, I am sure this would be right up your alley. You could put a folder in the root named, for example, java-jfr-tracer-spring or java-jfr-tracer-spring-autoconfigure.

well, thank you! ;) what do you think about this : java-jfr-tracer-spring-autoconfigure which is consistent with the project name java-jfr-tracer ?

No, I think we'll keep with the current naming scheme. Please sync your repo.

It is in line with how other repos have done. I.e. the repo name is java-, the folder names correspond to -.


Add support for passing array attributes via ffi_call and an example demonstrating the different attribute APIs supported by the FFI

The XLA FFI supports a rich interface for specifying "attributes", but this interface hasn't been widely used from the JAX side. We discovered that passing array attributes wasn't supported by the current front end, so I added support for that and took advantage of this change to add a more complete example of the e2e usage of attributes.
The core JAX change that was needed was to add support for passing np.array objects (which aren't hashable!) as keyword arguments to the ffi_call primitive. To do this, I wrap any unhashable keyword arguments in the _HashableByObjectId helper which creates a hashable object based on the id.
"Why not pass these unhashable objects as positional arguments?" you ask. Well, the problem is that we need access to the concrete value of this array when lowering, so we can't have them turning into tracers.
I don't expect this to introduce any real caching issues, but if anyone has concerns or other suggestions for a better API, I'd love to hear them!

@gspschmid: Great question - thanks for bringing this up! This is more or less the question I was asking, but I think the specific points you bring up are not a concern here. Let me see if I can lay out my thinking here!
JIT cache
This change doesn't affect which kinds of arguments can be treated as static arguments to jax.jit, and the cache is based on the types of the input arguments, not the Jaxpr. This means that this change doesn't affect cache hits when using jax.jit. For example, in the example included with this PR, we call FFI call as follows:
def fun(num: int):
  return jex.ffi.ffi_call(
      "array_attr",
      jax.ShapeDtypeStruct((), np.int32),
      array=np.arange(num, dtype=np.int32),
  )

and it's totally fine to jit this function:
jitted_fun = jax.jit(fun, static_argnums=(0,))

and this will cache as expected:
jitted_fun(5)  # traces here
jitted_fun(5)  # cache hit
jitted_fun(3)  # traces again

I note that it's still not possible to pass the np.array as a static argument to JIT, and that's disallowed for good reason. If that's the behavior that a user needs: they're going to have to find another way, but that has nothing to do with this change!
Persistent cache
Another cache that we might be concerned about is the persistent compilation cache. This one also isn't a problem because that cache is keyed on the lowered HLO, which doesn't include any references to the object IDs. For example, if we lower the example above:
print(jitted_fun.lower(5).as_text())

the HLO is:
module @jitted_fun attributes {mhlo.num_partitions = 1 : i32, mhlo.num_replicas = 1 : i32} {
  func.func public @main() -> (tensor<i32> {jax.result_info = "", mhlo.layout_mode = "default"}) {
    %0 = stablehlo.custom_call @array_attr() {backend_config = "", mhlo.backend_config = {array = array<i32: 0, 1, 2, 3, 4>}, operand_layouts = [], result_layouts = [dense<> : tensor<0xindex>]} : () -> tensor<i32>
    return %0 : tensor<i32>
  }
}

where the array has already been materialized as:
array<i32: 0, 1, 2, 3, 4>

Now, things get a little more complicated if our array has an inexact type (e.g. float32). In that case, I could imagine the we could end up with unexpected cache misses depending on numerics, but this is also true for any floating point scalar inputs, which are hashable and unaffected by this change.
XLA caches
There may be questions to ask about how XLA handles caching with array or dict attributes in the HLO, but that's separate from this PR, which just exposes an API for accessing an existing XLA feature. The JAX-specific hashing hacks are stripped before we ever get to XLA.
Other caches in JAX core?
LRU caches are used throughout JAX core, and I could certainly imagine this complicating logic somewhere, but I haven't thought of anywhere where it would!
Stepping back
I think it's useful to step back and comment a bit more on the motivation for this change. The ffi_call function is really just a simple shim to let users define a lowering rule without having to think about MLIR. (The ffi_call primitive doesn't really do anything else besides lowering!) If we weren't using ffi_call, we could write our own primitive that has array attributes roughly as follows:
def my_ffi_call_lowering(ctx, *operands, array_size: int):
  return jex.ffi.ffi_lowering("array_attr")(ctx, *operands, array=np.arange(array_size))

my_ffi_call_p = core.Primitive()
# impl, abstract_eval, etc...
mlir.register_lowering(my_ffi_call_p, my_ffi_call_lowering, platform=...)

def fun(*args, array_size: int):
  return my_ffi_call_p.bind(..., array_size=array_size)

and everything works! The problem comes from the fact that ffi_call can't really have any runtime logic in the lowering rule, so we need to have a way to pass the concrete array through from the binding to the lowering. It's important to make sure we can support such a use case (it was a feature request!), and I think this is a reasonable approach!

@dfm Thanks for the elaborate answer, makes sense that this can't affect the caching at the JIT boundary! Do you have a sense of why the values actually need to be hashable? Ultimately HashableById makes equality among two wrapped values inexact by erring on the side of "not equal". That's a safe choice in the context of caching, I just couldn't easily gather how the hash and equality come into play here.

Do you have a sense of why the values actually need to be hashable?

You know... this is a great question! And in trying to answer it, I realized that there was a much simpler approach here, which doesn't have these same caveats. I should have figured this out earlier!
The hashability requirement was coming from the fact that I was using dispatch.apply_primitive as the impl rule for the ffi_call_p primitive, and that function caches the jitted call to the primitive.
Having worked that out, I've updated the ffi_call_p impl rule to use a version of the logic from dispatch.apply_primitive, but removing that caching. This will have performance implications if the same ffi_call is executed several times in eager mode (because the primitive will be re-lowered each time), but this doesn't affect the behavior of ffi_call under JIT.
I'm much happier with this approach! Thanks @gspschmid for asking the straightforward question that I should have asked myself in the first place 🤣

It's a bit nasty, but @hawkinsp convinced me that it's probably better to just hash by value (rather than id), since these arguments are small (they're going to end up in the HLO anyways). We special case to handle np.array and dict arguments, and we could add other cases in the future if necessary.


POST not appearing in statistics

Prerequisites

[X] I am using the latest version of Locust
[X] I am reporting a bug, not asking a question

Description
I have a task including several GET and one POST. Logs and the database show that POST is successful. But LocustIO statistics only shows GETs.
Command line
locust -f load_test.py --modern-ui
Locustfile contents
class NordpolUser(HttpUser):
    wait_time = between(20, 25)

    headers_buchen = {"Host": "localhost",
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        "Accept-Language": "de,en-US;q=0.7,en;q=0.3",
        "Accept-Encoding": "gzip, deflate",
        "Content-Type": "application/x-www-form-urlencoded",
        "Content-Length": "108",
        "Origin": "http://localhost:8080",
        "Connection": "keep-alive",
        "Referer": "http://localhost:8080/karte",
        "Upgrade-Insecure-Requests": "1",
        "Pragma": "no-cache",
        "Cache-Control": "no-cache"}
    freie_plaetze = ["a327743d-ed8f-4bde-b08" + str(num+1) + "-df7c8018cd5" + str(num) for num in range(0, 9)]
    belegte_plaetze = []
    buchungs_ids = []

    @task(4)
    def bucheParkplatz(self):
        self.client.get("/")
        self.client.get("/karte")
        print(len(self.freie_plaetze))

        if(len(self.freie_plaetze) > 0):
            index = random.randrange(len(self.freie_plaetze))
            parkplatz_id = self.freie_plaetze.pop(index)
            print(parkplatz_id)

            data = {"datum": time.strftime('%Y-%m-%d'),
                    "parkplatzId": parkplatz_id}
            print(data)

            response = self.client.post(
                    url="/buchen",
                    headers=self.headers_buchen,
                    data=data,
                    name="buchen",
                    catch_response=True)
            print(response)
            print(response.headers.get("BuchungsId"))

            self.buchungs_ids.append(response.headers.get("BuchungsId"))
            self.belegte_plaetze.append(parkplatz_id)

Python version
3.12.1
Locust version
2.20
Operating system
Fedora 39

remove catch_response=True

But as you can see, I need the response. Any other options ?

Also, either with or without "catch_response" I don't see the header. In a browser it's clearly available, so I don't see where the problem is.

I checked, all other Headers are received. I add mine with
HttpServletResponse response
...
response.addHeader("BuchungsId",...);

A browser sees it, Locust doesn't.

But as you can see, I need the response. Any other options ?

You still get the response. catch_response is only for modifying the result of the request (see https://docs.locust.io/en/stable/writing-a-locustfile.html#validating-responses)
Please ask questions on slack or stackoverflow.

The remaining problem is the necessary custom header that the response doesn't show. The POST controller answers with a redirect 302. As we could see Locust receives a 200. I thought that maybe the redirect is automatically followed and the response is from the next HTML page. So I added the custom header there, too. I.E. both the POST controller and the GET controller of the redirected URI put out the same custom header. But the response in Locust doesn't contain that header. That is the issue, now.


veraison-procesed-evidence is misspelled

In the proto/result.proto file, the JSON name for the processed_evidence member of the AttestationResult message is misspelled as veraison-procesed-evidence.

Has been resolved by https://github.com/veraison/services/pull/15


use named export from @cucumber/html-formatter

This PR upgrades the @cucumber/html-formatter dependency to the latest version, and changes the import of CucumberHtmlStream to be from the new named export, rather than the default export. This is to free up the default export, because in future we will export a full formatter plugin from this package, and the convention with those will be using the default export. See https://github.com/cucumber/html-formatter/pull/320 and https://github.com/cucumber/cucumber-js/discussions/2091#discussioncomment-10228427.

Thank you @davidjgoss


[Question] Data with nested keys

Question - does Store & MutableStore have the ability to handle data which has nested keys?  The classic example would be:
A list of TODO objects (key "todos_list")
A single TODO object in that list (key "todo_{id}")
A common API structure in this setup might be to have a GET "/todos" endpoint which fetches the whole list, and then a PUT "/todo/id" endpoint which updates a single TODO.
With this setup, consider the Store doing the following operations:

get "todos_list" from the server
Update some data on "todo_1"
get "todos_list" from the server again.

In the above example, since the key for "todo_1" is different than "todos_list", would Store not detect a conflict between operations 2 and 3, meaning that operation 3 would potentially overwrite operation 2's data?   What is the recommended way to use Store to handle this kind of situation?
Thanks!

Hey @gregkerzhner Sorry to be slow. Very busy few weeks. Documentation is WIP but if I am understanding correctly I'd recommend using Store5 with MultiCache. Check out these:

Data model
MultiCache usage
More context on MultiCache


Fix rg only

Description

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

I removed the validation block as it's causing issue and generally unmaintainable

:tada: This PR is included in version 1.0.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Initial skeleton for L7 load balancing core

What this PR does / why we need it:
This PR is the first step towards adding L7 load balancing capabilities to KubeLB. It introduces a "core" that is generic and highly extensible, being a platform on which we can build more features/integrations.
To avoid a huge PR, I've only implemented the CRDs and how the CCM will deal with "Ingresses." This gives us all the necessary information and outlook on how this core is designed. Some of my thoughts have been dumped here https://github.com/ahmedwaleedmalik/kubelb-ce/blob/layer7/docs/loadbalancing.md
Once we have agreed on this PR, I can move forward with the implementation for other parts such as KubeLB manager, support for Gateway API, etc.
Which issue(s) this PR fixes:

Towards https://github.com/kubermatic/kubelb/issues/10
What type of PR is this?

/kind feature
/kind design
Special notes for your reviewer:
Does this PR introduce a user-facing change? Then add your Release Note here:

TBD

Documentation:

TBD

Will fix the failing tests in https://github.com/kubermatic/kubelb/pull/17

/approve


Misspelling on demo page

🐛 Bug Report
Misspelling on the landing page fro the word "Projects"
To Reproduce

go to: https://www.smooth-code.com/open-source/svgr/
observe in the top left of the navbar the word "projets" instead of "projects"

Expected behavior
The link should say "Projects"
Link to repl or repo (highly encouraged)
https://github.com/smooth-code/svgr
And sorry I didn't just submit a PR! I couldn't find the code anywhere in the repo.

Yeah I know, it is a problem, but the main problem is that www.smooth-code.com is currently only available in french! We will take care of translating the navigation.

Fixed.


"Folded code" arrow misplaced within sticky scroll

Repro:

fold code
scroll slowly until you see:

https://github.com/microsoft/vscode/assets/16353531/5bdc0185-5876-43f2-b3b0-e7b84dc3e1b5

should be fixed with https://github.com/microsoft/vscode/pull/235804


Header.js Module does not exist

Platform: Android
React-Native Version : 0.43. 3
React Version:  16.0.0-alpha.6
React-navigation Version : 1.0.0-beta.7
bundling: UnableToResolveError: Unable to resolve module react/lib/ReactComponentWithPureRenderMixin from D:\CodeRoom\ReactNative\Temple\node_modules\react-navigation\src\views\Header.js: Module does not e
xist in the module map or in these directories:
D:\CodeRoom\ReactNative\Temple\node_modules\react-navigation\node_modules\react\lib
,   D:\CodeRoom\ReactNative\Temple\node_modules\react\lib

This has been resolved in master, you can just remove the relative lines

OK，thanks


The license file is not a license file.

I might be missing something, but the license file is a bunch of information that has nothing to do with licensing.

Aand now it is.


Don't allow create Source and Destination connectors with the same configurations (file path, table, etc.)

It leads to data duplication after starting the pipeline

This is not for Conduit to decide, it has no knowledge about what configurations of connectors make sense.


Warnings when minifying css: [WARNING] Unexpected "," [css-syntax-error]

Hi, I used latest version of nuxtjs and nuxt-monaco-editor v1.2.3  and just wondering if the error is caused by the nuxt-monaco-editor. I encounter the error when running production build. The error is
warnings when minifying css:
▲ [WARNING] Unexpected "," [css-syntax-error]
 <stdin>:2757:112:
2757 │ ...t:focus .selected .monaco-icon-label:after,/* list */,/* list */

I got the same warning. Did you find a workaround ?


Area fill for linear lines

Hi,
Had a look at the Scatter graph because of the time series support as per here. Works great. My lines are linear, and I'm wondering if Scatter supports the area fill, like the line graphs.

It seems like it doesn't, for some reason. Same issue. Tried the datasetFill : true; doesn't work.

+1

+1

+1

is there any way to make this work?

Hi,
You can not do that with Chart.js v1 and Chart.Scatter, but you can use Chart.js v2 which contains it's own scatter plugin which has area fill ability.
--
Dmitry
-----Исходное сообщение-----
От: "WADIGZON DIAZ-WONG"<EMAIL_ADDRESS>Отправлено: 08.12.2016 4:04
Кому: "dima117/Chart.Scatter"<EMAIL_ADDRESS>Тема: Re: [dima117/Chart.Scatter] Area fill for linear lines (#19)
is there any way to make this work?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

thanks for the info.
Where is the scatter plugin for ChartJS 2.0? didn't see it on the site.

@wadigzon http://www.chartjs.org/docs/#line-chart-scatter-line-charts

I was looking at that, so it's embedded no need for xtra files. thanks much!


vocabularies: set vocab max results window to 500

vocab max results window to 500
max results window to 5000

Does this solve the export issue in the end?

I tried with the 5000 and sometimes it threw Bad Gateway. With 4000 it seems it works.


localhost socket only not working

If I start with the localhost socket only option
$ sudo /usr/bin/pigpiod -l
x_pigpiod_if2 is unable to connect to the daemon:
$ ./x_pigpiod_if2
pigpio initialisation failed (-2003).

It will only work without the -l option.
I'm using the V61 on a RaspberryPi B
$ sudo /usr/bin/pigpiod -v
61

I will modify the start of pigpio_start() in pigpiod_if2.c as follows:
int pigpio_start(char *addrStr, char *portStr)
{
   int pi;
   int *userdata;

   if ((!addrStr) || (strlen(addrStr) == 0))
   {
      addrStr = "localhost";
   }

If you get a chance could you try the above fix.

Hey, great! That did fix it for me!

Okay, I'll add that change in the next software release.  I am not sure when that will be.

Should be fixed in V62.


Create a contact info block

Add links to social networks (LinkedIn, Facebook, Instagram), phone number, email, Telegram username, etc.

This task done


Multi-monitors not working.

I got this so when using the RD app in android  I can access all monitors in W7 professional, but nothing seems to have changed and it still is only showing me the main monitor.

This is normal behaviour. You can't access your physical monitors with RDP, it doesn't matter how much of them on the host.
Multi-monitor feature allows to use multiple client side monitors - if you have two or more monitors, and connecting to a host via RDP.
An Android device have only one "monitor", so this is normal.


create a message indicating the processing of the Slackbot

User story

As an admin
I want to inform the user that the Slackbot is processing
So that the user experience is improved

Acceptance criteria

The message should inform the user that the processing is happening.
The message must be removed once the final response is sent.

Definition of done (DoD)

Acceptance criteria are met.
Work products are uploaded to the Github repository.
A pull request is created for each related branch.
The work products in the pull requests are reviewed.
The corresponding branches are merged and closed.
The bill of materials section of the planning documents is updated.
All defined conventions are complied with.

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

duplicate


Add doc comment detailing fee calculation

Update doc comment to make clear that the ceiling is computed instead of the default behavior for integer division.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.765%

Totals

Change from base Build<PHONE_NUMBER>5:
0.0%

Covered Lines:
18930

Relevant Lines:
22872

💛  - Coveralls

I think we should be more explicit:
When the resulting fee would be a non-integer amount, we round up, to ensure that transactions have at least the required fee.

I think we should be more explicit:

I dig it.  Used your suggestion and doctored it to match the rest of the comments and be more explicit.

In 83520e00692eb1c0fb197f6a1cbaa595f337589d there is trailing whitespace.

Damn, one more reason to never review using GitHub interface, even for simple patches.

In https://github.com/rust-bitcoin/rust-bitcoin/commit/83520e00692eb1c0fb197f6a1cbaa595f337589d there is trailing whitespace.

Thanks, fixed.


Fix typo

@nftw : Thanks for your contribution! The author, @rwike77, has been notified to review your proposed change.

@nftw Good catch, thanks.  #sign-off


Remove several special method of complex class

This revision removes below special method from complex class

__int__
__float__
__floordiv__
__mod__
__divmod__
__rfloordiv__
__rmod__
__rdivmod__

According to Cpython 3.10 changes, these special methods of complex class are removed as they always raise TypeError.
reference : https://bugs.python.org/issue41974

Oh I should have removed related test cases. I'll applying it later


Proxying request?

Is there a way to proxy a http request to another server?

I believe you should use a proxy server for that, or maybe you can explain the situation better to understand what exactly u are trying to achieve?

Sorry about that. Let's say I have two servers, A and B. I want any requests that do not get caught by A's routes to be sent to B, and ultimately returned back to the client. The biggest issue I'm having is proxying requests for the rendered html page because I can't find a method on the adonis response object for sending rendered html.

The response.sendView can be used to render HTML views

Regarding proxying requests, do you want the URL also to get changed for the client or should it internal handled and response is sent to the user?

Closing, since no response from the issue reporter


Improve sidebar on repo

Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Let's add the live domain, extra topics, and a description to the sidebar
Describe alternatives you've considered
N/A
Additional context
N/A

All done chief


cloud-sql-proxy crash loop on workload identity support

I have a deployment with the cloud-sql-proxy sidecar that I'm trying to get work. Following the documentation step-by-step for the workload identity path has lead to a dead-end.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sherpa
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sherpa
  template:
    metadata:
      labels:
        app: sherpa
    spec:
      serviceAccountName: k8s-gcp-sa-1
      containers:
        - name: cloud-sql-proxy
          image: gcr.io/cloudsql-docker/gce-proxy:1.17
          command:
            - "/cloud_sql_proxy"
            - "-instances=montfont:us-central1:mf-central-1=tcp:5432"

$ gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:montfont.svc.id.goog[default/k8s-gcp-sa-1]" \
<EMAIL_ADDRESS>Updated IAM policy for serviceAccount<EMAIL_ADDRESS>bindings:
- members:
  - serviceAccount:montfont.svc.id.goog[default/k8s-gcp-sa-11]
  - serviceAccount:montfont.svc.id.goog[default/k8s-gcp-sa-1]
  role: roles/iam.workloadIdentityUser
etag: BwWn3xEgguA=
version: 1

$ kubectl describe serviceaccount
Name:                default
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   default-token-n7tvh
Tokens:              default-token-n7tvh
Events:              <none>

Name:                k8s-gcp-sa-1
Namespace:           default
Labels:              <none>
Annotations:         iam.gke.io/gcp-service-account<EMAIL_ADDRESS>                     kubectl.kubernetes.io/last-applied-configuration:
                       {"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"k8s-gcp-sa-1","namespace":"default"}}
Image pull secrets:  <none>
Mountable secrets:   k8s-gcp-sa-1-token-9h9mn
Tokens:              k8s-gcp-sa-1-token-9h9mn
Events:              <none>

Everything appears to be configured properly. Yet when I apply the yaml file, cloud-sql-proxy launches into a crash loop.
$ kubectl logs sherpa-6ffc74748b-7lb74 cloud-sql-proxy
2020/06/12 08:27:53 current FDs rlimit set to 1048576, wanted limit is 8500. Nothing to do here.
2020/06/12 08:27:53 the default Compute Engine service account is not configured with sufficient permissions to access the Cloud SQL API from this VM. Please create a new VM with Cloud SQL access (scope) enabled under "Identity and API access". Alternatively, create a new "service account key" and specify it using the -credential_file parameter

Name:           sherpa-87cdd6c97-bhsk7
Namespace:      default
Priority:       0
Node:           gke-cluster-1-default-pool-3b02b786-3srj/<IP_ADDRESS>
Start Time:     Fri, 12 Jun 2020 01:37:31 -0700
Labels:         app=sherpa
                pod-template-hash=87cdd6c97
Annotations:    kubernetes.io/limit-ranger: LimitRanger plugin set: cpu request for container cloud-sql-proxy
Status:         Running
IP:             <IP_ADDRESS>
IPs:            <none>
Controlled By:  ReplicaSet/sherpa-87cdd6c97
Containers:
  cloud-sql-proxy:
    Container ID:  docker://6ffc6d07b2f9d1cb8b4aaa264fb601ed790621195e64c0c5b4aa018699f0863c
    Image:         gcr.io/cloudsql-docker/gce-proxy:1.17
    Image ID:      docker-pullable://gcr.io/cloudsql-docker/gce-proxy@sha256:d38c54dd31e4302a1c8f976ef67eca3f1b076500cd599f623aba93eb4a78748b
    Port:          <none>
    Host Port:     <none>
    Command:
      /cloud_sql_proxy
      -instances=montfont:us-central1:mf-central-1=tcp:5432
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Fri, 12 Jun 2020 01:43:29 -0700
      Finished:     Fri, 12 Jun 2020 01:43:29 -0700
    Ready:          False
    Restart Count:  6
    Requests:
      cpu:        100m
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from k8s-gcp-sa-1-token-9h9mn (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  k8s-gcp-sa-1-token-9h9mn:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  k8s-gcp-sa-1-token-9h9mn
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                     From                                               Message
  ----     ------     ----                    ----                                               -------
  Normal   Scheduled  9m58s                   default-scheduler                                  Successfully assigned default/sherpa-87cdd6c97-bhsk7 to gke-cluster-1-default-pool-3b02b786-3srj
  Normal   Pulled     8m21s (x5 over 9m57s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Container image "gcr.io/cloudsql-docker/gce-proxy:1.17" already present on machine
  Normal   Created    8m21s (x5 over 9m57s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Created container cloud-sql-proxy
  Normal   Started    8m20s (x5 over 9m57s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Started container cloud-sql-proxy
  Warning  BackOff    4m56s (x25 over 9m56s)  kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Back-off restarting failed container

I'm completely lost on why this is broken.
Thank you for your time and help.

From the looks of it, it looks like you are getting the compute service account and not from Workload Identity. Can you verify that Workload Identity is enabled for your cluster?
On the cluster details page there should be "Workload Identity" that says "enabled".

Hi @kurtisvg thank you very much for the quick reply.
It shows:
Workload Identity
Enabled
Workload Identity Namespace
montfont.svc.id.goog

Is that right?

What's odd is that the cloud-sql-proxy container seems to be receiving the service account credentials but it's just not using them or they're receiving the wrong ones labelled as the right ones.
Mounts: /var/run/secrets/kubernetes.io/serviceaccount from k8s-gcp-sa-1-token-9h9mn (ro)

That looks right to me. Can you double check these instructions  and make sure you've bound the KSA and GSA together correctly?
I think that mount file is only a Kubernetes thing, and means the service account is active in the pod. However, it doesn't mean that Workload Identity is returning the metadata for the GSA correctly.

Yeah, I did that and included it in the original post. But just now I went ahead and deleted the service account, recreated it, ensured it was annotated in kubernetes
$ kubectl annotate serviceaccount \
k8s-gcp-sa-1 \
<EMAIL_ADDRESS>error: --overwrite is false but found the following declared annotation(s): 'iam.gke.io/gcp-service-account' already has a value<EMAIL_ADDRESS>
and ran the binding
$ gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:montfont.svc.id.goog[default/k8s-gcp-sa-1]"<EMAIL_ADDRESS>Updated IAM policy for serviceAccount<EMAIL_ADDRESS>bindings:
- members:
  - serviceAccount:montfont.svc.id.goog[default/k8s-gcp-sa-1]
  role: roles/iam.workloadIdentityUser
etag: BwWn6PlCBTc=
version: 1

The only thing I can think is that I'm either missing a typo here, or there's a bug somewhere in GCP

$ kubectl describe po sherpa-87cdd6c97-w6kv5
Name:           sherpa-87cdd6c97-w6kv5
Namespace:      default
Priority:       0
Node:           gke-cluster-1-default-pool-3b02b786-3srj/<IP_ADDRESS>
Start Time:     Fri, 12 Jun 2020 13:32:39 -0700
Labels:         app=sherpa
                pod-template-hash=87cdd6c97
Annotations:    kubernetes.io/limit-ranger: LimitRanger plugin set: cpu request for container cloud-sql-proxy
Status:         Running
IP:             <IP_ADDRESS>
IPs:            <none>
Controlled By:  ReplicaSet/sherpa-87cdd6c97
Containers:
  cloud-sql-proxy:
    Container ID:  docker://c9a7b68942a691b74eae7ac44123fccd05a5344d308e2036a940c2791d14c34d
    Image:         gcr.io/cloudsql-docker/gce-proxy:1.17
    Image ID:      docker-pullable://gcr.io/cloudsql-docker/gce-proxy@sha256:d38c54dd31e4302a1c8f976ef67eca3f1b076500cd599f623aba93eb4a78748b
    Port:          <none>
    Host Port:     <none>
    Command:
      /cloud_sql_proxy
      -instances=montfont:us-central1:mf-central-1=tcp:5432
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Fri, 12 Jun 2020 13:38:36 -0700
      Finished:     Fri, 12 Jun 2020 13:38:36 -0700
    Ready:          False
    Restart Count:  6
    Requests:
      cpu:        100m
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from k8s-gcp-sa-1-token-9h9mn (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  k8s-gcp-sa-1-token-9h9mn:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  k8s-gcp-sa-1-token-9h9mn
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                     From                                               Message
  ----     ------     ----                    ----                                               -------
  Normal   Scheduled  7m52s                   default-scheduler                                  Successfully assigned default/sherpa-87cdd6c97-w6kv5 to gke-cluster-1-default-pool-3b02b786-3srj
  Normal   Pulled     6m15s (x5 over 7m51s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Container image "gcr.io/cloudsql-docker/gce-proxy:1.17" already present on machine
  Normal   Created    6m15s (x5 over 7m51s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Created container cloud-sql-proxy
  Normal   Started    6m14s (x5 over 7m51s)   kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Started container cloud-sql-proxy
  Warning  BackOff    2m41s (x26 over 7m50s)  kubelet, gke-cluster-1-default-pool-3b02b786-3srj  Back-off restarting failed container

Note, as mentioned in the original post, the k8s-sa iam is configured as such:
<EMAIL_ADDRESS>| k8s-sa | Cloud SQL Admin / Cloud SQL Client

These are the correct permissions aren't they?

Is it possible that something else is preventing cloud-sql-proxy from connecting to the database, and that error it's giving is inaccurate? i.e. maybe a network connection issue between cloud-sql-proxy and cloud sql which the proxy container is incorrectly interpreting as a permissions error

Here's what my firewall settings look like. I don't see anything that would block gke from communicating with cloud sql

I deleted the entire cluster, deleted the service account and IAM entry. Recreated everything from scratch in the exact same way, with the only difference being that I created the cluster from the CLI using the following line:
gcloud beta container clusters create cluster-name \
  --release-channel regular \
  --workload-pool=project-id.svc.id.goog

Rather than creating the cluster in the web interface and later enabling the workload identity.
I can't explain why but it all works now.

@warent As far as I can tell, everything is correct.
I don't believe it's an issue with either IAM permissions or your firewall (or other related connectivity issues) since those would return different errors (incorrect permissions or non existent resources for the first, and connect timeouts for the second).
This specific error it thrown here, which should only happen if the proxy get's the metadata for the Compute default service account.
I see you've closed this as I'm finishing typing out this response, but another thing to check would have been that the node pool has the GKE Metadata Server enabled:

If a similar issue occurs I will look there as well next time. Thank you for your help!

I had a similar issue last night (but 500s on Metadata calls) despite things working. My issue seemed to stem from a problem with the default compute service account. I've started used my own least-privileged SA and that solved the issue. 😁


Update project-metrics dashboard to show metrics from CircleCI rather than Travis

The project metrics dashboard is still showing metrics related to Travis. Because we are no longer using Travis I am removing the code used to show these metrics and reimplementing them to show data from CircleCI.

@rcebulko I'm always a fan of smaller prs and this one has definitely ballooned into more than originally intended. I'll look into refactoring

Implemented as #1468 #1469 #1470 #1471


Xamarn.FireBase.JobDispatcher dependency on other libraries?

@topgenorth I am trying to get up and running with the JobDispatcher. I create a simple app to test but was getting a crash when the job kicked off until I added the Xamarin.Android.Support.v4 library.  Adding that library forced me then to add Support.Compat, Support.Core.UI, ...   Is there any reason why I need those other libraries in order to use the job dispatcher?

Good question - this might just be a "legacy thing" left over from an older version of the FJD that I was using. Looking into this.

So @mikevandre, yes the original Firebase JobDispatcher does require the Android Support v4 library. Forgot to declare that dependency in the NuGet. Fix is incoming so that adding the Xamarin.Firebase.JobDispatcher via NuGet will also ensure that Xamarin.Support.V4 is included as well.
Thanks for catching this!

@topgenorth:  For me, it was not enough to just add the Xamarin.Support.V4 library. It also required me to add the other libraries I listed above Support. compat, support.core.ui, etc.  Are all of these necessary?

The NuGet is very out of date, and there is an outstanding bug which prevents Xamarin.Android from compiling an updated binding.
Right now, there are two, or maybe three options I can suggest:

use the Android Job Scheduler that is provided by Android in API level 21 and higher (this would be my recommendation)
wait for 15.7 (and an updated binding of the library)
bind the Evernote android-job library

@mikevandre @ericlee1974 we pushed out an updated version to nuget at the end of may, can you try this out and see if it fixes your issues -> https://www.nuget.org/packages/Xamarin.Firebase.JobDispatcher/


Testing routes manually - issues list for test to be added to issue.

Addresses seems to work well. Successful Get, Get/:id, Delete/:id, Put/:id, and Posts (with correct error).

btw for future testing - curl shorthand:
curl -X DELETE localhost:1337/whateveryou/wanttohit
curl -X PUT -d arg=val -d arg2=val2 localhost:1337/whateveryou/wanttohit
curl -X POST localhost:1337/whateveryou/wanttohit (need to look up -d data format)

Users Models needs to have additional validations (or hooks to incorporate session info ?) added. Updated billing_id and shipping_id with put. Eager loading of both those addresses thus work. The routes seem fine, but was about to add an entirely null user with the empty post curl --- seems like an additional value for holding session might be useful. Discuss...

Seller routes seem okay - again, there are very few validations.
Seller eager loading is fine (for user, contact,  products).
Do we want a hook to automatically updates 'is admin' on users when they register as sellers?

Reviews- see the pull review.


[KYUUBI #4937] [FOLLOWUP] Remove redundant quoteIfNeeded method

Why are the changes needed?

Remove redundant quoteIfNeeded method

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Thanks, merged to master


Anyone get Application Initialization working?

Here's my dockerfile set up..
RUN powershell.exe -NoProfile -Command Add-WindowsFeature Web-AppInit; `
		Import-Module WebAdministration ; `
		Set-ItemProperty 'IIS:\AppPools\DefaultAppPool' -name startMode -Value AlwaysRunning ; `
		Set-ItemProperty 'IIS:\Sites\Default Web Site' -name applicationDefaults.preloadEnabled -Value True ;

Here's my web.config...
<system.webServer>
      <applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
        <add initializationPage="/forms/assignmentqueue.aspx" />
      </applicationInitialization>
</system.webServer>

I can't get the application initialization to work. Anyone have any luck with this?

Bump. Same here.
I've made every single adjustment possible and checked all the settings. Nothing seems to get ApplicationInitialization working.
Any info from one of the contributors?


New verify_email_code step. Import random module.

Referencing to #1462 - checking new "verify_email_code" step_name.
Referencing to #1460 - module random was not imported, would have caused an error.

@Yessirskiy thanks!


I would like to add a new section for the  tag.

Is your feature request related to a problem? Please describe.
Html5 nav tag
Describe the solution you'd like
I want to contribute by creating a new section for the  tag.

I want to contribute too


Javascript refactor

@williaster a first pass using jshint

I would really prefer not to make this much of the d3 code hard to read, see my last two comments. other changes LGTM/was just trying to explain rules to you for going forward.
how hard is it to disable that rule (lines that follow lines that don't end in a semi colon start at the same indentation)?
I'll also still work on making this part of the build process with npm.


traefik does not passTLSClientCert on tls session resumption

Do you want to request a feature or report a bug?

Bug

What did you do?

Configured middleWare "passTLSClientCert" to be able to retrieve the Client certificate informations on the backend via http header as documented. In my case I want to evaluate these headers on the forwardAuth service.
Works fine as long as no tls session resumption is happening (first request).
What did you expect to see?
http headers with the certificate informations on every request:

X-Forwarded-Tls-Client-Cert
X-Forwarded-Tls-Client-Cert-Info

What did you see instead?
Headers are not set when a tls session is reused. I even get log entries in this case:
time="2020-12-09T14:49:53Z" level=error msg="Error while Hello: bufio: buffer full"
time="2020-12-09T14:49:53Z" level=warning msg="Tried to extract a certificate on a request without mutual TLS" middlewareName=esb-test-passtlscert@kubernetescrd middlewareType=PassClientTLSCert

Output of traefik version: (What version of Traefik are you using?)

2.3.4

What is your environment & configuration (arguments, toml, provider, platform, ...)?
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: passtlscert
spec:
  passTLSClientCert:
    pem: false
    info:
      subject:
        commonName: true
        serialNumber: true
      issuer:
        commonName: true
        serialNumber: true

If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
time="2020-12-09T14:49:53Z" level=error msg="Error while Hello: bufio: buffer full"
time="2020-12-09T14:49:53Z" level=warning msg="Tried to extract a certificate on a request without mutual TLS" middlewareName=esb-test-passtlscert@kubernetescrd middlewareType=PassClientTLSCert

Hello @kayuma :wave: and thanks for your interest in Traefik.
I tried to reproduce the issue but without success.

Error while Hello: bufio: buffer full

It tells us that the expected length of the client hello message is smaller than specified in the record.
In order to diagnose this further we would need more info. Could you give us your complete dynamic config, static config, Traefik logs in debug mode (from the beginning), TLS version?

Hi @jspdown,
Unfortunately I do no longer have the traefik installation and therefore I can't provide all of the requested configs/logs. Sorry about that. But what I can say is that the setup was in no way special. Configure TLSOption like
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
  name: tls-options
spec:
  minVersion: VersionTLS12
  cipherSuites:
    - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  clientAuth:
    secretNames:
      - quovadis-europe-ev-ssl-ca-g1
    clientAuthType: RequireAndVerifyClientCert
  sniStrict: true

Apply these TLSOption to an IngressRoute:
...
  tls:
    options:
      name: tls-options-es.bfh.ch
      namespace: esb-test
...

and apply the following middlewares to the IngressRoute:
- name: passtlscert
- name: forward-auth-service-v1

I expected to see the "X-Forwarded-Tls-Client-Cert-*" headers in every request on the auth-service backend but when a TLS session resumption occurs the headers are missing.
The difficulties to reproduce it will be to trigger a tls session resumption. With the SoapUI tool I could easily trigger a TLS session resumption.
As a further help to diagnose the issue you can pass the java system property "-Djavax.net.debug=all" to soapui. Java logs then the complete TLS traefik incl. handshake and resumption informations to stdout.
Apart from SoapUI I could even trigger a session resumption with firefox. Just do a full reload the page (pressing the shift key while clicking on reload). When I remember correctly firefox did not resume the session on every reload but most of the time. Whats interesting here is that firefox did a session resumption while holding the "shift" key but not when doing a normal reload. I expected the opposite, but this is a different story.
Hope that helps further,
Marc

Hi @jspdown,
Unfortunately I do no longer have the traefik installation and therefore I can't provide all of the requested configs/logs. Sorry about that. But what I can say is that the setup was in no way special. Configure TLSOption like
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
  name: tls-options
spec:
  minVersion: VersionTLS12
  cipherSuites:
    - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  clientAuth:
    secretNames:
      - quovadis-europe-ev-ssl-ca-g1
    clientAuthType: RequireAndVerifyClientCert
  sniStrict: true

Apply these TLSOption to an IngressRoute:
...
  tls:
    options:
      name: tls-options-es.bfh.ch
      namespace: esb-test
...

and apply the following middlewares to the IngressRoute:
- name: passtlscert
- name: forward-auth-service-v1

I expected to see the "X-Forwarded-Tls-Client-Cert-*" headers in every request on the auth-service backend but when a TLS session resumption occurs the headers are missing.
The difficulties to reproduce it will be to trigger a tls session resumption. With the SoapUI tool I could easily trigger a TLS session resumption.
As a further help to diagnose the issue you can pass the java system property "-Djavax.net.debug=all" to soapui. Java logs then the complete TLS traefik incl. handshake and resumption informations to stdout.
Apart from SoapUI I could even trigger a session resumption with firefox. Just do a full reload the page (pressing the shift key while clicking on reload). When I remember correctly firefox did not resume the session on every reload but most of the time. Whats interesting here is that firefox did a session resumption while holding the "shift" key but not when doing a normal reload. I expected the opposite, but this is a different story.
Hope that helps further,
Marc

I ran traefik tcp/tls router performance test with 70 clients and confirmed the log message: "Error while Hello: bufio: buffer full".
Added manually certificate which issued by LetsEncrypt.
I think related package: https://golang.org/pkg/bufio/#pkg-variables

Increased resources for the client and error goes to away.

@bngabor Can you share how or at least where you did that?

@jspdown this issue happened for us as well (among others). Would it make sense to make the max cert size configurable in Traefik or is that more of a workaround for a bug with session resume?

@leitmedium increased cpu and mem for docker engine on client side.

closed by #8194


Fixed #28529 -- Cleaned variable errors in admin templates

Did you consider how we might add tests for this to prevent regressions?

I don't think that's possible at the moment. It would require a possibility to turn on strict mode for template rendering which would raise exceptions in case of exception occurs in template rendering.
Also I'm not entirely convinced it's necessary. The templates produce the same result regardless of their tidiness. Although it's better to have clean templates, I don't think it's so critical to add special tests for templates purity.
Possible improvement would be an option to turn on template errors when running tests of Django itself. I wasn't able to manage that and I had to add extra print statement to see them. That would definitely help to maintain clean templates.

On another note: is_popup is the most commonly missing variable in admin contexts. I considered adding is_popup=False into AdminSite.each_context. Any thoughts on that?

"Possible improvement would be an option to turn on template errors when running tests of Django itself." That's what I meant by "add tests". Putting is_popup=False in each_context() seems okay.

I modified the each_context and rebased.
The tests would probably be for another ticket, as I found no simple way to turn templates into strict mode.

as I found no simple way to turn templates into strict mode.

What about the technique described in the following mailing list thread:
https://groups.google.com/d/topic/django-developers/ZMzF0PgNb-k/discussion

It as actually possible, just in a very hacky way. Django has a setting called TEMPLATE_STRING_IF_INVALID (or TEMPLATES[0]["OPTIONS"]["string_if_invalid"] in current versions of Django). If you override it and set it to a class with a str that raises an exception you can get the effect you want. We use this in tests to find missing variables quickly.

I saw that, but I consider it too big a hack to use it in tests. It's basically turning a string_if_invalid into a raise_if_invalid which is currently missing.
I'd rather leave it untested, until the strict template rendering is properly implemented.

In template django/contrib/admin/templates/admin/edit_inline/tabular.html there is the variable:
{{ inline_admin_form.fk_field.field }}

The fk_field method can sometimes return an empty string. When it does, this template is referencing invalid attribute field on an empty string, which does not exist. Not sure if this counts as an variable error in the context of this PR, but I thought I would mention it. If so, you could wrap the variable rendering in a {% if inline_admin_form.fk_field %} statement.

In the documentation docs/ref/templates/api.txt, there is the blurb

Many templates, including those in the Admin site, rely upon the silence of the template system when a nonexistent variable is encountered. If you assign a value other than '' to string_if_invalid, you will experience rendering problems with these templates and sites.

I think this should be updated as "including those in the Admin site" should now be inaccurate. Perhaps

Many templates from third party applications rely upon the silence ...

fk_field treated in both edit_inline templates. Thanks for pointing it out.
Regarding the docs, I would claim this just yet. Admin templates shouldn't anymore rely on string_if_invalid, but currently there's no way to be sure.

Admin templates shouldn't anymore rely on string_if_invalid, but currently there's no way to be sure.

But the phrase "including those in the Admin site" suggests to the reader that the admin app is intentionally taking advantage of the loose variable handling, which is no longer true.

I ran the test suite with a very rough, very WIP strict template mode. A number of tests are still failing due to undefined variables. Only some are in the admin. Is the goals to clean up all undefined variables in the test suite, or just ones on the admin ones?
You can see my WIP branch at:
https://github.com/jdufresne/django/tree/templates-if-invalid
Here is the list of failed tests in strict mode.
test-failure-strict-mode.txt

This ticket only tries to mitigate problems in admin application. Thus I've changed the docs to "including some of the Django's templates" which is true.
I'm looking forward to see the if_invalid in the upstream.

Any progress?

@ziima we often have weird hacks in tests to ensure that certain code paths are never reached, and the hacky value of string_is_invalid is a possible example.


Include reference to CoC instead of CoC itself

Following the discussion during the monthly CHAOSS meeting today,
I'm substituring the whole CoC by a reference to the "canonical" CHAOSS CoC.

Sounds good to me.


kokoro job grpc/core/master/linux/grpc_build_boringssl_at_head failing

The job has been red on kokoro for a while, but it would be good to fix it so it's green most of the times and we don't have that much noise in our master builds.
Also, it looks like there are strange infrastructure failures associated with this jobs (they don't happen elsewhere).

After a bunch of fixes, it's passing now:
https://source.cloud.google.com/results/invocations/239d5f3a-5a1f-4b95-b444-c6f61f499d98/targets


 - AppPlatform_android::setStorageDirectory - using External dir (NEW) - CurrentFileStoragePath is now '/Users/proton0/Library/Application Support/mcpelauncher/'
19:14:37 Warn  [Minecraft] NO LOG FILE! - [Graphics] The graphics context was gained
19:14:37 Warn  [Minecraft] NO LOG FILE! - [Graphics] The graphics context was gained
19:14:37 Warn  [Minecraft] MinecraftGame::init && MinecraftGame::setSize!
19:14:37 Warn  [FakeEGL] eglQueryString 308d
19:14:37 Warn  [Main] Android stub called
19:14:37 Info  [GL] Vendor: Google Inc. (Apple)
19:14:37 Info  [GL] Renderer: ANGLE (Apple, Apple M1, OpenGL 4.1 Metal - 88.1)
19:14:37 Info  [GL] Version: OpenGL ES 3.0.0 (ANGLE 2.1.22420 git hash: a3a43254afd1)
19:14:37 Info  [GL] Vendor: Google Inc. (Apple)
19:14:37 Info  [GL] Renderer: ANGLE (Apple, Apple M1, OpenGL 4.1 Metal - 88.1)
19:14:37 Info  [GL] Version: OpenGL ES 3.0.0 (ANGLE 2.1.22420 git hash: a3a43254afd1)
19:14:37 Warn  [Main] Android stub called
linker: mcpelauncher_linker_notifylldb /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libMediaDecoders_Android.so 0x11ad42000
19:14:37 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:14:37 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:14:37 Trace [ShadersMod] Patched shader RenderChunk.material.bin via AAssetManager
19:14:37 Trace [ShadersMod] Patched shader RenderChunk.material.bin via AAssetManager
19:14:37 Info  [GL] Vendor: Google Inc. (Apple)
19:14:37 Info  [GL] Renderer: ANGLE (Apple, Apple M1, OpenGL 4.1 Metal - 88.1)
19:14:37 Info  [GL] Version: OpenGL ES 3.0.0 (ANGLE 2.1.22420 git hash: a3a43254afd1)
19:14:37 Warn  [Main] Android stub called
19:14:37 Debug [HttpCallStaticGlue] Successfully registerered HttpCall methods
19:14:37 Debug [XboxLiveAppConfig] Successfully registerered XboxLiveAppConfig methods
19:14:37 Debug [XSAPI.Android] Successfully registerered HttpCall tcuiMethods
19:14:38 Info  [Minecraft] NO LOG FILE! - Time played notifier not required for 'en'
19:14:38 Trace [ShadersMod] Patched shader LegacyCubemap.material.bin via AAssetManager
19:14:38 Trace [ShadersMod] Patched shader LegacyCubemap.material.bin via AAssetManager
2024-06-06 19:14:42.527 mcpelauncher-client-arm64-v8a[77689:723271] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
19:14:47 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:14:47 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:16:46 Info  [Minecraft] NO LOG FILE! - Opening level '/Users/proton0/Library/Application Support/mcpelauncher/minecraftpe/blob_cache'
19:17:13 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:17:13 Trace [ShadersMod] Patched shader Actor.material.bin via AAssetManager
19:17:13 Trace [ShadersMod] Patched shader Sky.material.bin via AAssetManager
19:17:13 Trace [ShadersMod] Patched shader Sky.material.bin via AAssetManager
19:17:13 Trace [ShadersMod] Patched shader Clouds.material.bin via AAssetManager
19:17:13 Trace [ShadersMod] Patched shader Clouds.material.bin via AAssetManager
terminating
Signal 11 received
Backtrace elements: 25
#0 0   mcpelauncher-client-arm64-v8a       0x0000000100584ad8 _ZN12CrashHandler12handleSignalEiPv + 280
#1 1   libsystem_platform.dylib            0x0000000191bd7584 _sigtramp + 56
#2 2   libsystem_c.dylib                   0x0000000191a402c8 __vfprintf + 5120
#3 3   libsystem_c.dylib                   0x0000000191a4e86c __xvprintf + 276
#4 4   libsystem_c.dylib                   0x0000000191a4e738 vfprintf_l + 68
#5 5   libsystem_c.dylib                   0x0000000191a4e6e8 fprintf + 68
#6 6   mcpelauncher-client-arm64-v8a       0x00000001005a2c90 _ZN4shim25android_set_abort_messageEPKc + 44
#7 7   ???                                 0x0000000104ed3fa0 0x0 +<PHONE_NUMBER>
#8 8   ???                                 0x0000000104ed40ac 0x0 +<PHONE_NUMBER>
#9 9   ???                                 0x0000000104ee8e84 0x0 +<PHONE_NUMBER>
#10 10  ???                                 0x0000000104ee8e08 0x0 +<PHONE_NUMBER>
#11 11  ???                                 0x000000015aaee8e8 0x0 +<PHONE_NUMBER>
#12 12  ???                                 0x000000015aaec3f8 0x0 +<PHONE_NUMBER>
#13 13  ???                                 0x000000015aaec364 0x0 +<PHONE_NUMBER>
#14 14  ???                                 0x000000015aad0654 0x0 +<PHONE_NUMBER>
#15 15  ???                                 0x000000015aad0314 0x0 +<PHONE_NUMBER>
#16 16  ???                                 0x000000015aacffc4 0x0 +<PHONE_NUMBER>
#17 17  ???                                 0x000000015aacfe0c 0x0 +<PHONE_NUMBER>
#18 18  ???                                 0x000000015ab5945c 0x0 +<PHONE_NUMBER>
#19 19  ???                                 0x000000015ab59048 0x0 +<PHONE_NUMBER>
#20 20  ???                                 0x000000015ab58b14 0x0 +<PHONE_NUMBER>
#21 21  ???                                 0x000000015ab59f48 0x0 +<PHONE_NUMBER>
#22 22  ???                                 0x000000015ab59df8 0x0 +<PHONE_NUMBER>
#23 23  ???                                 0x000000015ab59c78 0x0 +<PHONE_NUMBER>
#24 24  ???                                 0x000000015ab551ec 0x0 +<PHONE_NUMBER>
Dumping stack...
#8 LINKER (null)+0x104ed3fa0 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xd1fa0 [0x104ed3fa0]
#9 LINKER (null)+0x104ed40ac in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xd20ac [0x104ed40ac]
#10 LINKER (null)+0x104ee8e84 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xe6e84 [0x104ee8e84]
#11 LINKER std::terminate()+0x28 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xe6e08 [0x104ee8e08]
#12 LINKER (null)+0x15aaee8e8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb6a8e8 [0x15aaee8e8]
#13 LINKER (null)+0x15aaec3f8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb683f8 [0x15aaec3f8]
#14 LINKER (null)+0x15aaec364 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb68364 [0x15aaec364]
#15 LINKER (null)+0x15aad0654 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4c654 [0x15aad0654]
#16 LINKER (null)+0x15aad0314 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4c314 [0x15aad0314]
#17 LINKER (null)+0x15aacffc4 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4bfc4 [0x15aacffc4]
#18 LINKER (null)+0x15aacfe0c in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4be0c [0x15aacfe0c]
#19 LINKER (null)+0x15ab5945c in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd545c [0x15ab5945c]
#20 LINKER (null)+0x15ab59048 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5048 [0x15ab59048]
#21 LINKER (null)+0x15ab58b14 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd4b14 [0x15ab58b14]
#22 LINKER (null)+0x15ab59f48 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5f48 [0x15ab59f48]
#23 LINKER (null)+0x15ab59df8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5df8 [0x15ab59df8]
#24 LINKER (null)+0x15ab59c78 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5c78 [0x15ab59c78]
#25 LINKER (null)+0x15ab551ec in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd11ec [0x15ab551ec]
#284 LINKER (null)+0x15aa7d76c in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcaf976c [0x15aa7d76c]
#292 LINKER (null)+0x15a896488 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xc912488 [0x15a896488]
#336 LINKER (null)+0x104e4ea3b in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca3b [0x104e4ea3b]
#348 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#352 LINKER __llvm_libc::printf_core::StringWriter::write_str(void*, __llvm_libc::cpp::string_view)+0x48 in /Applications/Minecraft Bedrock Launcher.app/Contents/Resources/mcpelauncher/lib/arm64-v8a/libc.so+0x525d8 [0x1019545d8]
#357 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#360 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#364 LINKER __llvm_libc::printf_core::Writer::write(__llvm_libc::cpp::string_view)+0x68 in /Applications/Minecraft Bedrock Launcher.app/Contents/Resources/mcpelauncher/lib/arm64-v8a/libc.so+0x53f6c [0x101955f6c]
#369 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#376 LINKER __llvm_libc::printf_core::printf_main(__llvm_libc::printf_core::Writer*, char const*, __llvm_libc::internal::ArgList&)+0x134 in /Applications/Minecraft Bedrock Launcher.app/Contents/Resources/mcpelauncher/lib/arm64-v8a/libc.so+0x521a4 [0x1019541a4]
#382 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#385 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#388 LINKER (null)+0x104e4ea3b in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca3b [0x104e4ea3b]
#394 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#398 LINKER (null)+0x104e4ea3b in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca3b [0x104e4ea3b]
#404 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#407 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#452 LINKER (null)+0xb8 in /Applications/Minecraft Bedrock Launcher.app/Contents/Resources/mcpelauncher/lib/arm64-v8a/libc.so+0x7f9d8 [0x1019819d8]
#492 LINKER (null)+0x104e4ea30 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0x4ca30 [0x104e4ea30]
#495 LINKER __llvm_libc::printf_core::StringWriter::write_chars(void*, char, unsigned long)+0x0 in /Applications/Minecraft Bedrock Launcher.app/Contents/Resources/mcpelauncher/lib/arm64-v8a/libc.so+0x52604 [0x101954604]
#500 LINKER (null)+0x104ed3f98 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xd1f98 [0x104ed3f98]
#502 LINKER (null)+0x104ed3fa0 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xd1fa0 [0x104ed3fa0]
#546 LINKER (null)+0x104ed40ac in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xd20ac [0x104ed40ac]
#550 LINKER (null)+0x15bbd80e0 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdc540e0 [0x15bbd80e0]
#557 LINKER (null)+0x15bbd6fa8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdc52fa8 [0x15bbd6fa8]
#679 LINKER (null)+0x15bbd4d70 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdc50d70 [0x15bbd4d70]
#686 LINKER (null)+0x104ee8e84 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xe6e84 [0x104ee8e84]
#688 LINKER (null)+0x15bbd80e0 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdc540e0 [0x15bbd80e0]
#692 LINKER std::terminate()+0x28 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xe6e08 [0x104ee8e08]
#694 LINKER std::terminate()+0xc in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libc++_shared.so+0xe6dec [0x104ee8dec]
#695 LINKER (null)+0x152a28510 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0x4aa4510 [0x152a28510]
#698 LINKER (null)+0x15aaee8e8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb6a8e8 [0x15aaee8e8]
#700 LINKER (null)+0x15aaec3f8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb683f8 [0x15aaec3f8]
#714 LINKER (null)+0x15aaecc98 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb68c98 [0x15aaecc98]
#730 LINKER (null)+0x15aaecbb8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb68bb8 [0x15aaecbb8]
#734 LINKER (null)+0x15aaeca48 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb68a48 [0x15aaeca48]
#738 LINKER (null)+0x15bbd8148 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdc54148 [0x15bbd8148]
#746 LINKER (null)+0x15aaec1bc in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb681bc [0x15aaec1bc]
#750 LINKER (null)+0x15aaec364 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb68364 [0x15aaec364]
#760 LINKER (null)+0x15aad0654 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4c654 [0x15aad0654]
#783 LINKER (null)+0x15be9b4a8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xdf174a8 [0x15be9b4a8]
#788 LINKER (null)+0x15aad0314 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4c314 [0x15aad0314]
#790 LINKER (null)+0x15aaef754 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb6b754 [0x15aaef754]
#804 LINKER (null)+0x15aacffc4 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4bfc4 [0x15aacffc4]
#838 LINKER (null)+0x15aacfe0c in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcb4be0c [0x15aacfe0c]
#876 LINKER (null)+0x15ab5945c in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd545c [0x15ab5945c]
#892 LINKER (null)+0x15ab59048 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5048 [0x15ab59048]
#906 LINKER (null)+0x15ab58b14 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd4b14 [0x15ab58b14]
#920 LINKER (null)+0x15ab59f48 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5f48 [0x15ab59f48]
#934 LINKER (null)+0x15ab59df8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5df8 [0x15ab59df8]
#948 LINKER (null)+0x15ab59c78 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd5c78 [0x15ab59c78]
#960 LINKER (null)+0x15ab551ec in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd11ec [0x15ab551ec]
#974 LINKER (null)+0x15ab54ae8 in /Users/proton0/Library/Application Support/mcpelauncher/versions/<IP_ADDRESS>/lib/arm64-v8a/libminecraftpe.so+0xcbd0ae8 [0x15ab54ae8]
program failed with unix signal number: 11

Process exited with unexpected exit code: 11

I have put the shader's material.bin files in /shaders and the .so file in /mods

Same outcome here

@Proton0  @MaezrFulldive not sure what's causing the lag but you may want to try shaders "that are specifically compatible with 1.20.80 and above."
like newb x beta v15.50

The problem is you are using shaders that do not support 1.20.80+


Fix grant_user logic

Unclear logic, is this fix for wrong arguments order? It will not work in case of not None request and None grant_user.
AttributeError: 'Request' object has no attribute 'generate_user_info'

[x] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes

[x] No

[x] You consent that the copyright of your pull request source code belongs to Authlib's author.

This is a backward compatible code.

It will be removed in the future, but not now.


runtime: with -test.blockprofile program run even faster.

What version of Go are you using (go version)?

$ go version
go version go1.19.3 linux/amd64

Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/usr/local/go/pkg/mod/"
GONOPROXY=""
GONOSUMDB="gopkg.mihoyo.com"
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/root/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/root/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.19.3"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/profilerbench/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build799047141=/tmp/go-build -gno-record-gcc-switches"GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/usr/local/go/pkg/mod/"
GONOPROXY=""
GONOSUMDB="gopkg.mihoyo.com"
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/root/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/root/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.19.3"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/profilerbench/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build799047141=/tmp/go-build -gno-record-gcc-switches"

What did you do?
run benchmark test of src/runtime/chan_test.go.
one with blockprofile, another not.
/root/go/bin/go test -run=^$ -bench=BenchmarkChanProdConsWork0$ -benchtime=10000000x
goos: linux
goarch: amd64
pkg: github.com/zdyj3170101136/profilerbench/sync
cpu: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
BenchmarkChanProdConsWork0-8    10000000               839.0 ns/op
PASS
ok      github.com/zdyj3170101136/profilerbench/sync    8.490s

/root/go/bin/go test -run=^$ -bench=BenchmarkChanProdConsWork0$ -benchtime=10000000x -blockprofile=b
goos: linux
goarch: amd64
pkg: github.com/zdyj3170101136/profilerbench/sync
cpu: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
BenchmarkChanProdConsWork0-8    10000000               793.7 ns/op
PASS
ok      github.com/zdyj3170101136/profilerbench/sync    8.059s

What did you expect to see?
with blockprofile, the program should run slower!
What did you see instead?
with blockprofile, the program run faster !
helpful information
here is the cpu profile diff:

saveblockevent cost lots of cpu.
runtime.lock save lots of cpu, which means contention is less.

@golang/runtime

Since that benchmark is a microbenchmark, it's possible there's a scalability failure as it hammers on a particular lock. The CPU profile seems to suggest this. By adding in time between lock calls via the block profile operations, it actually eases up barging behaviors causing better performance.
I'm not sure there's anything to do here. In general, scalability failures aren't a good thing to have, but unless they're affecting real-world Go programs, I'm not too worried. They usually require a non-trivial amount of work to resolve, though this may be related to just general channel performance.
Please see #8899 for one possible solution/mitigation. Closing for now.

(To be clear, I don't think we shouldn't make channels scale better in general. :) It's just going to be a non-trivial effort, potentially with a long bug tail, and we have to weigh that against everything else.)


Process still cannot be terminated by CTRL+C

Describe the bug
Similar to this issue https://github.com/cirospaciari/socketify.py/issues/103, processes cannot be terminated by Ctrl+C.
To Reproduce
A simple fastapi app:
from fastapi import FastAPI
from fastapi.responses import JSONResponse

app = FastAPI()

@app.get("/")
async def index():
    return JSONResponse({"hello": "world"})

run python -m socketify app:app --workers 8 --disable-listen-log,
then use CTRL+C to terminate it
Screenshots

Double CTRL+C will exit this, but run ps -ef | grep socketify indicates that the process has not been terminated.

Additional context
Ubuntu 20.04, zsh
Python3.11.4
socketify version: 0.0.24

Thanks for reporting, I publish the version v0.0.25 right now, this should work fine now.