Selecting members on the participants page then removing a member leaves button selector in a weird state

Coming from https://github.com/Expensify/App/pull/39757#issuecomment-2052597656
This is maybe not a really typical action to take, but we should do something about it.

Create a Group Chat
Navigate to participants
Select several participants
Tap a participant
Remove from group
Participants selector has wrong count.

Possible solution: On workspace tags we clear the selection when clicking on a tag, we can do similar thing here

This is being fixed in https://github.com/Expensify/App/pull/40136


adding the api

Mmh - do we want to put this into an appendix? It is a rather long block that comes before the final section(s). Perhaps to discuss later today.


Corrected the license file to be recognized by Github

Using the text of Apache License v. 2.0 provided by Github makes the "nice" badge appear in the section with the most important repository information -- it is a nice practice to provide a license in a uniform manner in every Github repository.
See https://help.github.com/articles/adding-a-license-to-a-repository/.

Thanks @wojtuch


Make use of the new GA topology labels

In https://github.com/istio/istio/pull/17755 we added support for the "informal" topology GA labels. The Kubernetes PR: https://github.com/kubernetes/kubernetes/pull/81431 adds now official topology GA labels (which will be introduced in Kubernetes 1.17 and support for the old beta labels will be dropped in 1.21.

@johscheuer: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
4d9104ed209b48f8b0402cdd9b9e0e344e1446b3
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Is anything using failure-domain.kubernetes.io/region today, or was the a future-looking change?

It was a future looking change -> https://github.com/kubernetes/kubernetes/pull/81431/files#diff-e567833c41b619e81b80227c8b8e1c43L40-L41 the fun fact here is that the kubelet complainted about the beta labels but the "ga" labels where never really "officially" ga we just used them in our setup to make the kubelet happy. In 1.17 the decision was to completely rename these labels.


How legal is it?

Hi! I would like to use your library in production for scraping data with the agreement of a bank client. But as far as I know PSD2 law explicitly prohibits screen scraping https://ec.europa.eu/commission/presscorner/detail/en/MEMO_17_4961. At the same time it says

PSD2 prohibits TPPs from accessing any other data from the customer payment account beyond those explicitly authorised by the customer. Customers will have to agree on the access, use and processing of these data

That's why I'm quite confused. It seems that if you have an agreement you may use it. Maybe you had an experience of using your library in production and could shed some light on legal aspects.

Hi,
from technical perspective, this is not a screen-scraper in my opinion, as it uses the official REST-API from N26.
I use this library only for my personal needs, so no production-setup (for other customers as well) yet. But I'm not totally sure about how this library and its usage is affected by the PSD2 rules...


Tagging support

Enable creating new options (tagging)

When this feature will be implemented?

I would really love to see this feature!


Integrate Dojo burner account

Description
Dojo burner account allows players to interact with the game and sign transaction without needing to connect their Starknet wallet. Players create burner account that will be stored in the browser and can be reused when next they visit the game. Example of a burner account can be found in the dojo-starter example project
Action Items

Integrate the burner account to allow players interact with StarkLudo with needing to connect their Starknet wallet

I w

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I'm a frontend developer
How I plan on tackling this issue
I will integrate a burner account system into StarkLudo, allowing players to interact without needing to connect their Starknet wallet. First, I will familiarize myself with the Dojo burner account functionality by reviewing the dojo-starter example project.
I will create a user-friendly interface with a button for players to create a burner account. When clicked, I’ll generate a unique identifier and optionally a public/private key pair, saving this information in local storage for future use. This allows players to perform actions without needing a wallet connection. When a player interacts with the game, I will prepare transaction data and sign it using the burner account's private key.
To facilitate interaction with Starknet, I’ll set up an API or smart contract method to accept signed transactions from burner accounts, ensuring the backend verifies these for authenticity. I’ll check local storage for existing burner accounts when players revisit the game, automatically loading their information, and providing an option to reset or delete the account if needed.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I am a blockchain developer , and i have experience in html, react , css, javascript , typescript, cario and solidity.
How I plan on tackling this issue
i will approach the problem by :
Integrating  a burner account system in StarkLudo that allows players to interact without connecting their Starknet wallet, using local storage for account reuse,doing so by  following the example in the dojo-starter project.
please assign me i am avaliable to work.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
hello i would love to work on this issue
How I plan on tackling this issue
i would solve this by:
Research: Review the dojo-starter project for burner account implementation.
Setup Creation: Implement functionality for players to create burner accounts, storing data in the browser.
Enable Interactions: Allow players to use burner accounts for game interactions without connecting a Starknet wallet.
Session Management: Ensure accounts are reusable across sessions.
User Interface: Update UI for managing burner accounts with clear instructions.
Testing: Verify creation, interaction functionality, and persistence of burner accounts.
Documentation: Document the feature for developers and players.


Optional parameter never used optionally

Swapped the parameter order to the Create HDAddress path as it had an optional parameter that was never used optionally. Therefore optional changed to explicit.
should be tagged very-low

Excellent, thanks mate.


WIP: resolve issue #38

simplify DiscoveryAllBuckets
get rid of a suspicious if

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 0% with 14 lines in your changes missing coverage. Please review.

Project coverage is 30.74%. Comparing base (dfa83c2) to head (62fed9b).

Files with missing lines
Patch %
Lines

discovery.go
0.00%
13 Missing :warning:

api.go
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
+ Coverage   30.31%   30.74%   +0.42%
==========================================
  Files          10       10
  Lines         719      709      -10
==========================================
  Hits          218      218
+ Misses        487      477      -10
  Partials       14       14

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Retire WebMatrix-specific curated-feed

The gallery still hosts a curated feed specific to WebMatrix.
URL: https://www.nuget.org/api/v2/curated-feed/webmatrix
Do we still need it now that WebMatrix is nearing EOL?
Formal support ends on November 1st, 2017.
I'd propose to also work out a retirement plan for this particular curated-feed on nuget.org, and remove it from the gallery when EOL.
The reason for the curated-feed can be found in the WebMatrixPackageCurator.ShouldCuratePackage method (mostly because of no PowerShell or T4 support in WebMatrix client).
Would be good to remove this code and relieve nuget.org of this duty :)

@xavierdecoster do we have telemetry on the usage of this feed?

Is there any other existing curated feed? May be time to retire all of them :)

@karann-msft you should be able to get those from AppInsights by checking request telemetry containing api/v2/curated-feeds/ in the url
@anangaur the list of curated feeds is stored in the gallery database. I remember there being a windows8 curated feed, and likely some others.

List of curated feeds:

windows8-packages
webmatrix
dotnetframework
microsoftdotnet

This is already done as a part of another work item.


Spec-first development with openapi-generator?

First Check

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

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
I have the following OpenAPI spec
openapi: 3.0.0
info:
  description: |
    Connector Builder Server API

  version: "1.0.0"
  title: Connector Builder Server API
  contact:
    email<EMAIL_ADDRESS>  license:
    name: MIT
    url: "https://opensource.org/licenses/MIT"

paths:
  /hello_world:
    get:
      description: "Sample endpoint"
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  hello:
                    type: string

When I run openapi-generator -i <path_to_spec> -g python-fastapi, a file src/openapi/apis/default_api.py (among other things) is autogenerated containing the following code:
router = APIRouter()

@router.get(
    "/hello_world",
    responses={
        200: {"model": InlineResponse200, "description": "Successful operation"},
    },
    tags=["default"],
)
async def hello_world_get(
) -> InlineResponse200:
    """Sample endpoint"""
    ...

My Question
How is a developer using this generator expected to implement and maintain these endpoints on an ongoing basis as the spec evolves over time? In other words, is there any way to:

override the behavior of these methods from outside this file (so my implementation logic doesn't get overwritten when I regenerate the file) , and
detect if an API method in the spec was not implemented by the developer, and raise an exception during CI or tests

If this was say, Java, the endpoints would be encapsulated under an interface like:
// DefaultAPI.java
// This interface is autogenerated
interface DefaultAPI() {
  InlineResponse200 helloWorld();
}

Then in a separate file I'd implement the API
// DefaultApiImplementation.java
class DefaultApiImplementation implements DefaultAPI {
  InlineResponse200 helloWorld() {
    // ...
  }
}

If a new method is added to the spec or an existing method is updated, I would run the generator and it would update DefaultAPI.java with any new parameters, return types, API endpoints, etc... And because the implementation (which I create by hand) implements that interface, the build will fail if one of the signatures doesn't correctly match or if an endpoint is not implemented.
Is the FastAPI OpenAPI Generator supposed to be used in this way? If so, how could I achieve my goals 1 & 2 above with the current output created by the generator?
Operating System
macOS
Operating System Details
No response
FastAPI Version
0.85.1
Python Version
3.9.11
Additional Context
No response

@iudeen fair enough, I asked the question there as well. I asked here since it wasn't clear to me who owns the OpenAPI Generator templates for FastAPI in that repo, so I thought I'd ask the community here since the ownership is more clearly defined.

Added an implementation suggestion in this issue https://github.com/OpenAPITools/openapi-generator/issues/13863 would love any feedback or opinions

FastAPI is actually not intended for you to work on the schema first. The design ideas and intention are more that you would write the code in Python, and that FastAPI makes it so easy to just use standard type annotations and minimal code that it would be easier to maintain that Python code than the spec.
In that case, anything that uses the spec (e.g. docs, generated clients) would use the spec generated by FastAPI.
The code generators would make more sense when you already have a spec and you need to migrate to FastAPI. But all that probably makes less sense if you want to keep updating the schema before the code.


Bug: unable to create a new worktree with the Add command

Hey Phil,
Today I sat down and tested the new version you published. Unfortunately I can't create a new worktree, I get this error:
---------------- Error Message ----------------

Error: command: 'git -C C:\.../worktree-1 push -u origin'. error: 'Command failed: git -C C:\.../worktree-1 push -u origin
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:main

To push to the branch of the same name on the remote, use

    git push origin HEAD

To choose either option permanently, see push.default in 'git help config'.

To avoid automatically configuring an upstream branch when its name
won't match the local branch, see option 'simple' of branch.autoSetupMerge
in 'git help config'.

I selected main as my tracking branch, and I've got gitWorktree.worktree.shouldPushBranchAutomatically set to true.

That's annoying, looks like it's failing to update upstream, It's working for me, but I think that's down to my git config 🤦♂
Raising an MR now

I'll reopen for now but just pushed some fixes, let me know if working 👍

Everything seems to work as expected with your update 👌

Great, thanks for reporting the issue 👍


Added Gaug.es Realtime analytics. Moved Tracking Code.

Added Gaug.es analytics. Moved tracking code to bottom of the page to allow user scripts to load first.
Version bumped :)

@tommy351 version update from 0.0.1 to 0.0.2, please push them to npm.


Add Points collection observability support for Polygon and Polyline

What does the pull request do?
Add Points binding observability support for Polygon and Polyline
What is the current behavior?
When ObservableCollection was bound to Points property, updating collection does not updates the geometry. See https://github.com/AvaloniaUI/Avalonia/issues/3623
What is the updated/expected behavior with this PR?
When ObservableCollection was bound to Points property, updating collection updates the geometry (and control actially re-rendered with a new geometry)
Checklist

[x] Added unit tests (if possible)? (not possible)
[x] Added XML documentation to any related classes?
[x] Consider submitting a PR to https://github.com/AvaloniaUI/avalonia-docs with user documentation

Breaking changes
None
Fixed issues
Fixes #3623

Can you add a simple unit test for this scenario?
It should be enough to check if shape.IsMeasureValid property returns false value.

@maxkatz6 done

@SKProCH ok... I have checked a little, and noticed that change notification should have already been working with this code:
https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Base/Media/PolylineGeometry.cs#L100-L107
But as you can see, it only supported IAvaloniaList. So, this PR should instead fix PolylineGeometry/PolygonGeometry not respecting INotifyCollectionChanged.

The problem with this geometry is under the hood implementation. We create a new Points collection inside geometry ctor:
https://github.com/AvaloniaUI/Avalonia/blob/4c949ee628ae5394e85003ff64d054b26d32c3f4/src/Avalonia.Base/Media/PolylineGeometry.cs#L46-L48
Points its just a sealed inheritor of AvaloniaList:
https://github.com/AvaloniaUI/Avalonia/blob/4c949ee628ae5394e85003ff64d054b26d32c3f4/src/Avalonia.Base/Points.cs#L6-L16
But as we can see inside AvaloniaList's ctor, it copying collection content from the collection parameter:
https://github.com/AvaloniaUI/Avalonia/blob/4c949ee628ae5394e85003ff64d054b26d32c3f4/src/Avalonia.Base/Collections/AvaloniaList.cs#L76-L79
So, at the moment where we create an Points collection inside of Geometry ctor we just copying the elements of the original collection, and we don't have reference to original collection and the changes doesn't propagated to the Points.
It's actually has the same effect if we just call .ToList() to original collection.
So, currently there is no actual benefits of changing OnPointsChanged implementation as you suggest.

Try to replace
return new PolylineGeometry(Points, true);

with
return new PolylineGeometry
{
    Points = Points,
    IsFilled = true
}

Actually some of tests failing, i'll fix that a little later


Restart of coordinator node cause cluster to stay in "STARTING" state

It's necessary to restart other nodes after coordinator restart too to return cluster to "NORMAL" state.
If pilosa nodes advertise themselves with plain IP address it looks as follows:
2018/10/11 14:47:28 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 14:47:48 [DEBUG] memberlist: Failed ping: 81abde46-5895-4328-b363-bf0668416f43 (timeout reached)
2018/10/11 14:47:50 [INFO] memberlist: Suspect 81abde46-5895-4328-b363-bf0668416f43 has failed, no acks received
2018/10/11 14:47:52 [DEBUG] memberlist: Failed ping: 81abde46-5895-4328-b363-bf0668416f43 (timeout reached)
2018/10/11 14:47:53 [INFO] memberlist: Suspect 81abde46-5895-4328-b363-bf0668416f43 has failed, no acks received
2018/10/11 14:47:53 [DEBUG] memberlist: Failed ping: 81abde46-5895-4328-b363-bf0668416f43 (timeout reached)
2018/10/11 14:47:54 [INFO] memberlist: Marking 81abde46-5895-4328-b363-bf0668416f43 as failed, suspect timeout reached (0 peer confirmations)
2018/10/11 14:47:54 received node leave on Node: 64f87e54-944c-42cd-bd23-c799af09acd7: Node: 81abde46-5895-4328-b363-bf0668416f43, uri: http://<IP_ADDRESS>:10101
2018/10/11 14:47:54 finished node leave on Node: 64f87e54-944c-42cd-bd23-c799af09acd7: Node: 81abde46-5895-4328-b363-bf0668416f43, uri: http://<IP_ADDRESS>:10101
2018/10/11 14:47:56 [INFO] memberlist: Suspect 81abde46-5895-4328-b363-bf0668416f43 has failed, no acks received
2018/10/11 14:47:58 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 14:48:06 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:42478
2018/10/11 14:48:06 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 14:48:06 merge cluster status: &{e2b8a9c7-46d0-4041-91f1-76fe29c87815 NORMAL [Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 Node: 64f87e54-944c-42cd-bd23-c799af09acd7 Node: 81abde46-5895-4328-b363-bf0668416f43]}
2018/10/11 14:48:06 add node Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 add node Node: 64f87e54-944c-42cd-bd23-c799af09acd7 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 add node Node: 81abde46-5895-4328-b363-bf0668416f43 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 mark node as joined (received coordinator update)
2018/10/11 14:48:06 merge cluster status: &{e2b8a9c7-46d0-4041-91f1-76fe29c87815 STARTING [Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 Node: 64f87e54-944c-42cd-bd23-c799af09acd7 Node: 81abde46-5895-4328-b363-bf0668416f43]}
2018/10/11 14:48:06 add node Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 add node Node: 64f87e54-944c-42cd-bd23-c799af09acd7 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 add node Node: 81abde46-5895-4328-b363-bf0668416f43 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 change cluster state from NORMAL to STARTING on 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 14:48:06 mark node as joined (received coordinator update)
2018/10/11 14:48:06 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 14:48:06 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 14:48:06 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 14:48:06 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 14:48:06 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:49532
2018/10/11 14:48:28 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 14:48:36 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:49812
2018/10/11 14:48:58 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 14:49:03 received NodeJoin event: &{0 Node: 81abde46-5895-4328-b363-bf0668416f43}
2018/10/11 14:49:06 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:50102
2018/10/11 14:49:28 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 14:49:33 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:56436
2018/10/11 14:49:36 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:50382

Sometimes node goes in the way described in #1688 also.
In case of DNS-based advertising:
2018/10/11 16:51:17 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:32918
2018/10/11 16:51:22 [DEBUG] memberlist: Failed ping: 81abde46-5895-4328-b363-bf0668416f43 (timeout reached)
2018/10/11 16:51:23 [INFO] memberlist: Suspect 81abde46-5895-4328-b363-bf0668416f43 has failed, no acks received
2018/10/11 16:51:24 [DEBUG] memberlist: Failed ping: 81abde46-5895-4328-b363-bf0668416f43 (timeout reached)
2018/10/11 16:51:25 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 16:51:26 [INFO] memberlist: Suspect 81abde46-5895-4328-b363-bf0668416f43 has failed, no acks received
2018/10/11 16:51:27 [INFO] memberlist: Marking 81abde46-5895-4328-b363-bf0668416f43 as failed, suspect timeout reached (0 peer confirmations)
2018/10/11 16:51:27 received node leave on Node: 64f87e54-944c-42cd-bd23-c799af09acd7: Node: 81abde46-5895-4328-b363-bf0668416f43, uri: http://dev-pilosa-0.dev-pilosa-headless.dev-pilosa.svc.cluster.local:10101
2018/10/11 16:51:27 finished node leave on Node: 64f87e54-944c-42cd-bd23-c799af09acd7: Node: 81abde46-5895-4328-b363-bf0668416f43, uri: http://dev-pilosa-0.dev-pilosa-headless.dev-pilosa.svc.cluster.local:10101
2018/10/11 16:51:33 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:36288
2018/10/11 16:51:45 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:55024
2018/10/11 16:51:45 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 16:51:45 merge cluster status: &{e2b8a9c7-46d0-4041-91f1-76fe29c87815 NORMAL [Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 Node: 64f87e54-944c-42cd-bd23-c799af09acd7 Node: 81abde46-5895-4328-b363-bf0668416f43]}
2018/10/11 16:51:45 add node Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 add node Node: 64f87e54-944c-42cd-bd23-c799af09acd7 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 add node Node: 81abde46-5895-4328-b363-bf0668416f43 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 mark node as joined (received coordinator update)
2018/10/11 16:51:45 merge cluster status: &{e2b8a9c7-46d0-4041-91f1-76fe29c87815 STARTING [Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 Node: 64f87e54-944c-42cd-bd23-c799af09acd7 Node: 81abde46-5895-4328-b363-bf0668416f43]}
2018/10/11 16:51:45 add node Node: 64bd7246-75e4-422e-8715-e2c3dc1cca18 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 add node Node: 64f87e54-944c-42cd-bd23-c799af09acd7 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 add node Node: 81abde46-5895-4328-b363-bf0668416f43 to cluster on Node: 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 change cluster state from NORMAL to STARTING on 64f87e54-944c-42cd-bd23-c799af09acd7
2018/10/11 16:51:45 mark node as joined (received coordinator update)
2018/10/11 16:51:45 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 16:51:45 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 16:51:46 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 16:51:46 [ERR] memberlist: Conflicting address for 81abde46-5895-4328-b363-bf0668416f43. Mine: <IP_ADDRESS>:11101 Theirs: <IP_ADDRESS>:11101
2018/10/11 16:51:55 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101
2018/10/11 16:52:03 [DEBUG] memberlist: Stream connection from=<IP_ADDRESS>:36570
2018/10/11 16:52:25 received NodeJoin event: &{0 Node: 81abde46-5895-4328-b363-bf0668416f43}
2018/10/11 16:52:25 [DEBUG] memberlist: Initiating push/pull sync with: <IP_ADDRESS>:11101

Configuration equal to #1687  #1688

related: #1585

@yuzhichang yes, it should be possible to set a new coordinator when the coordinator is down. Honestly though, I'm not sure we have a test for this particular case, so you may want to play with it a bit.
The cluster should still be able to respond to most requests when the coordinator is down (assuming replication is > 1) - the major exceptions would be things like cluster resize requests.


TL data integrity

@msfschaffner @tjaychen
Seems like we only implement cmd_intg check. I don't see our design generate integrity value for a_user.data_intg or check its value.

Thanks @weicaiyang. You are right, it looks like data integrity generation/checking is not fully enabled yet.
I.e., the devices seem to compute it:
https://github.com/lowRISC/opentitan/blob/2dae1b21f682740b7c13fc8efd7ff5aa2acc60e6/hw/ip/alert_handler/rtl/alert_handler_reg_top.sv#L68-L76
But the host does not, and it is not checked in neither the devices nor hosts.
Let me see if I can fix that.

Thanks @msfschaffner

sorry i'm confused, why do we say data integrity checking is not done yet? isn't that done inside tlul_rsp_intg_gen?

@tjaychen Welcome back.
tlul_rsp_intg_gen is for d_user. But I can't find where we generate integrity for a_user.data_intg.
we only generate a_user.cmd_intg in this module, while we generate both rsp and data for d_user
https://github.com/lowRISC/opentitan/blob/fd2d4ea506e074be11208ed1ff3dae84af9be23d/hw/ip/tlul/rtl/tlul_cmd_intg_gen.sv#L29

thanks for the reminder @weicaiyang
yes it looks like the data side is not there yet, because the data side generation / checks were meant to be done inside the host.
See this diagram.
Tom do you think you'll add the host side generation and checks soon? I can also temporarily add it into the adapters for now.
Thanks for filing this @weicaiyang, i'll spend some time and fill out this piece.

thanks for the reminder @weicaiyang
yes it looks like the data side is not there yet, because the data side generation / checks were meant to be done inside the host.
See this diagram.
Tom do you think you'll add the host side generation and checks soon? I can also temporarily add it into the adapters for now.
Thanks for filing this @weicaiyang, i'll spend some time and fill out this piece.

I see. Thanks for the explanation.

Planning to work on it soon, but it might not go in for a few weeks. I think it's worth enabling it in the adapters for now.

sounds good, let me do that.
Thanks Tom.
On Tue, Jun 15, 2021 at 2:00 AM Tom Roberts @.***>
wrote:

Planning to work on it soon, but it might not go in for a few weeks. I
think it's worth enabling it in the adapters for now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/opentitan/issues/6887#issuecomment-861321525,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH2RSQRDLGUNEEXN7BOH4DTS4JDPANCNFSM46KYR32Q
.

this should now hopefully be addressed, @weicaiyang let me know if you still see other issues.

Thanks @tjaychen


"failed to start user controllers for cluster XXXX" - "ClusterUnavailable 503: cluster not found"

What kind of request is this (question/bug/enhancement/feature request):
question/bug
Steps to reproduce (least amount of steps as possible):
After respawning of master nodes of a client cluster, it was not possible anymore to register/remove nodes to the cluster.
The rancher container on the seed instance complaint, that the api server can not be reached. But the apiserver IP was an old one, of a VM which was removed days ago.
https://github.com/rancher/rancher/issues/13314 describes similar error situation ("Turns out the cluster api definition shows the apiEndpoint and rkeConfig to still contain the node that I have already deleted from the ui, hence the issue while re-adding the instance again.")
So we tried to get rid of the apiEndpoint. Knowing that a new client cluster does not have the apiEndpoint in the etcd value for the cluster, we decided to remove the entry for the faulty cluster (in the etcd db). As well the old node entries were removed from the cluster json and also the keys. The changes were visible in the "View on API", but the rancher application had the following error:
"2019/05/31 15:33:12 [ERROR] ClusterController local [user-controllers-controller] failed with : failed to start user controllers for cluster c-jvfc5: ClusterUnavailable 503: cluster not found"
Looking into the code, it is tried in pkg/clustermanager/manager.go to load the  cluster.UID into a controller. I checked the UID in the etcd value, it seems not to be changed.
Result:
New master of a client cluster (still) stuck in Registering/"Waiting to register with Kubernetes"
What causes the rancher application to loose the cluster? How to overcome this situation?
Other details that may be helpful:
During analysis we saw that rke statefile and also the etcd value for the cluster still contains old IPs. is this a normal situation? Actually it is very hard to get single nodes respawned without trouble.
Environment information

rancher/rancher-agent:v2.2.2
HA

Cluster information

Cluster type: Custom/Imported
Machine type: Cloud
Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.2", GitCommit:"66049e3b21efe110454d67df4fa62b08ea79a19b", GitTreeState:"clean", BuildDate:"2019-05-16T16:23:09Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:30:26Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version):

18.06.3-ce

We found a workaround, just pinning IPs for resapwned master VMs. That works more stable.

Could you describe the exact steps to reproduce so we can determine what the exact bug is and how to reproduce and fix it? This includes describing the exact steps taken to create the cluster, how many nodes with what roles are initially added and what respawning of master nodes exactly means and what we can do to reproduce that same behavior? (especially what it means, in what order, and what nodes with what roles were respawned)
The requirement for static IP (or DHCP reserved lease) for cluster nodes is documented, but not sure if respawns means rebuild or reboot or anything else, if you could clarify that we can look into the issue.

Let me know if this needs help.

Would really love to know if there is a fix for this as we are experiencing the same issue as well


Opening the About menu and going back breaks the extension

On wikipedia.org, the extension says "No 2FA here". Going to the menu, selecting About, and then going back results in the text "2FA Guide for website.com" and it says that all 2FA options are supported.

I took a quick look, and in menu.html, the back arrow points to "supports2FA.html". When a page does not support it, it should actually not point to that URL, so I guess you would be better off with a click handler there. I may take some time to fix this.


Update README.md

Fixed the CSS and JS links to point to the bower_component. When I pulled it, I had to change them which I found confusing personally. This improvement just speeds up the process of somebody pulling the repo down.

Thanks!


PEX 1.23.3 | Unix(?) | SQL issue

Description
[Insert description of issue here]
Detailed Information
Is available here

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


Question: Comment Parser

Is there any comment parser similar to Commented in the Sprache library?

Would it make sense to configure the ParseContext.WhiteSpaceParser to also include the comments syntax?
Or should it be a separate property ParseContext.CommentParser.

I believe keeping it separate would be beneficial, in the event someone wants to do something with the comments instead of ignoring them.


[GLUTEN-2854] [VL] Refactor native defaultLeafVeloxMemoryPool usage for test and validation only

What changes were proposed in this pull request?
This patch limit defaultLeafPool method's usage, it only used in test and validation now.
After this patch, all memory pools used in real computation were tracked by Spark.
Fixes: #2854

@zhztheplayer could you help take a look? thanks!


Possible regression with ConnectedProps and React.ComponentProps<typeof ...> in 8.x

What version of React, ReactDOM/React Native, Redux, and React Redux are you using?

React: 16.14.0
ReactDOM: 16.14.0
Redux: 4.2.0
React Redux: 8.0.2
TypeScript: 4.8.3

What is the current behavior?
The following simplified snippet throws a TS2312 error after upgrading to react-redux v8.
import React from 'react';
import { connect, ConnectedProps } from 'react-redux';

interface Props extends React.ComponentProps<'div'>, ConnectedProps<typeof connector> {}

const ExampleComponent: React.FunctionComponent<Props> = ({ data, ...props }) => {
    return <div {...props} />
}

const mapStateToProps = (state: { data: unknown[] }) => ({
    data: state.data
});

const connector = connect(mapStateToProps);
const ConnectedExampleComponent = connector(ExampleComponent);

// This next line is where the error happens
interface Props2 extends React.ComponentProps<typeof ConnectedExampleComponent> {}

TS2312: An interface can only extend an object type or intersection of object types with statically known members.

There seem to be no apparent changes to the definition of ConnectedProps between @types/react-redux and react-redux so I'm not sure what could be causing this.
The changelog does mention changes to the types for connect where it no longer has the DefaultRootState included. But even changing the definition of connector in the example above to include a generic with any, {} or the actual global state interface does not resolve the issue.
What is the expected behavior?
It's still possible to use React.ComponentProps<typeof ...> like when using<EMAIL_ADDRESS>with<EMAIL_ADDRESS>Which browser and OS are affected by this issue?
N/A
Did this work in previous versions of React Redux?

[X] Yes

Huh. I certainly haven't seen that message before.
Uh.... summoning @phryneas and @Andarist HALP WAT THIS MEAN
(fwiw this is going to be pretty low priority for us to look at, given that we generally recommend using the hooks API instead of connect today, and we're focusing on RTK feature work atm.)

I could for a second reproduce this with the React 16 types, but then it was gone and just working. I guess this is some edge case with old React types?
Generally: you are using React 16 - is there any practical reason why you are updating React-Redux first? Generally I would probably update the rest of the stack first/at the same time.

(fwiw this is going to be pretty low priority for us to look at, given that we generally recommend using the hooks API instead of connect today, and we're focusing on RTK feature work atm.)

I understand. We have about 15 repositories with over 100 components still using connect (some of them class components) so it'd be nice to get this resolved but it's not blocking us as we're fine with staying on v7 if needed.

Generally: you are using React 16 - is there any practical reason why you are updating React-Redux first? Generally I would probably update the rest of the stack first/at the same time.

For a bit of context, we can't easily update to React 17+ at the moment because the decision was made to use Enzyme for unit testing about 4 years ago. Enzyme doesn't officially support React 17/18 and with several thousand unit tests it's still a bit of work till we've completely migrated to React Testing Library. The reason I ran into this is because we use Renovate to automatically update dependencies, I checked the changelog and it mentioned React-Redux v8 is still compatible with all versions of React that have hooks so I gave it a go. Everything else is as up-to-date as possible with the limitation we have on the React version.


GLOP: Wrong optimal solution for glass4

What version of OR-Tools and what language are you using?
Version: v9.4
Language: Python
Which solver are you using: GLOP
What did you do?
Using the mps file in glass4.zip (also contains file with optimal solution)
from ortools.model_builder.python.model_builder import ModelBuilder, ModelSolver

model = ModelBuilder()
model.import_from_mps_file("glass4.mps")
solver = ModelSolver("glop")
solver.enable_output(True) # after fixing the other issue
status = solver.solve(model)
print(status)
print(solver.objective_value)

The optimal solution should have an objective value of 1.200012600000e+09 not the one claimed by GLOP of 800002399.9999999
output:
Initial problem: 396 rows, 322 columns, 1815 entries with magnitude in [1.000000e+00, 8.400000e+06]
Objective stats: 19 non-zeros, range [1.000000e+00, 1.000000e+06]
Bounds stats: 751 non-zeros, range [-8.440000e+06, 8.000000e+02]

Starting presolve...
ShiftVariableBoundsPreprocessor              : 396(0) rows, 322(0) columns, 1815(0) entries. (0.000021s)
FixedVariablePreprocessor                    : 396(0) rows, 321(-1) columns, 1815(0) entries. (0.000217s)
ImpliedFreePreprocessor                      : 396(0) rows, 321(-1) columns, 1815(0) entries. (0.000100s)
Reached fixed point after presolve pass #1
ScalingPreprocessor                          : 396(0) rows, 321(-1) columns, 1815(0) entries. (0.000080s)

Presolved problem: 396 rows, 321 columns, 1815 entries with magnitude in [1.361325e-02, 1.000000e+00]
Objective stats: 19 non-zeros, range [1.000000e+00, 5.000000e+05]
Bounds stats: 743 non-zeros, range [-7.007317e+01, 7.017341e+01]

Starting basis: create from scratch.
Trying to remove 36 fixed variables from the initial basis.
The matrix with slacks has 396 rows, 717 columns, 2211 entries.
Number of basic infeasible variables: 45
Number of basic slack variables: 360
Number of basic variables at bound: 18
Number of basic fixed variables: 0
Number of basic free variables: 0
Number of super-basic variables: 0

Primal feasibility phase, iteration # 0, sum_primal_infeasibilities = 9.341229829404980E+01
Primal feasibility phase, iteration # 34, sum_primal_infeasibilities = 1.354472090042691E-14
Current status: PRIMAL_FEASIBLE
Primal infeasibility (bounds) = 7.10543e-15
Primal residual |A.x - b| = 7.10543e-15
Dual infeasibility (reduced costs) = 28.3117
Dual residual |c_B - y.B| = 5.82077e-11

Primal optimization phase, iteration # 0, objective = 8.000037000000001E+08
Primal optimization phase, iteration # 6, objective = 8.000024000000000E+08
Current status: OPTIMAL
Primal infeasibility (bounds) = 0
Primal residual |A.x - b| = 0
Dual infeasibility (reduced costs) = 0
Dual residual |c_B - y.B| = 5.82077e-11

Final unscaled solution:
Primal objective (before moving primal/dual values) = 8.000023999999999E+08
Dual objective (before moving primal/dual values) = 8.000024000000000E+08
Max. primal values move = 0
Max. dual values move = 0
Primal objective (after moving primal/dual values) = 8.000023999999999E+08
Max. rhs perturbation = 2.79397e-09
Max. cost perturbation = 0
Max. primal infeasibility = 2.79397e-09
Max. dual infeasibility = 0
Objective error <= 800.002
status: OPTIMAL
objective: 8.00002e+08
iterations: 40
time: 0.004103
deterministic_time: 0.000239013

SolveStatus.OPTIMAL
800002399.9999999

Sorry, misunderstanding with GLOP.
I think an error should, or at least a warning, should be thrown when trying to solve MIPs using GLOP.


Invalid context causes minc to fail, leaving Tablet in CLOSED state on split

Describe the bug
Call chain:
AddSplitsCommand ->
TableOperationsImpl.addSplits (in a loop) ->
TabletClientHandler.splitTablet (throws NotServingTabletException) ->
TabletServer.splitTablet ->
Tablet.split ->
Tablet.initiateClose
On the first iteration of the loop in TableOperationsImpl.addSplits, Tablet.initiateClose sets the closingState to CLOSING, closes the Compactable, and kicks off a minc. The MinorCompactionTask fails to load the VolumeChooser due to a invalid classloader context being set on the table.
2023-07-31T20:56:08,007 [tablet.MinorCompactionTask] ERROR: Unknown error during minor compaction for extent: 1<<
java.lang.RuntimeException: Failed to create instance for 1 configured to use org.apache.accumulo.core.spi.fs.PreferredVolumeChooser via volume.chooser
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.lambda$createVolumeChooser$0(DelegatingChooser.java:161) ~[accumulo-core-2.1.1.jar:2.1.1]
        at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908) ~[?:?]
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.createVolumeChooser(DelegatingChooser.java:142) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.getVolumeChooserForTable(DelegatingChooser.java:95) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.getDelegateChooser(DelegatingChooser.java:70) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.choose(DelegatingChooser.java:59) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.server.fs.VolumeManagerImpl.choose(VolumeManagerImpl.java:479) ~[accumulo-server-base-2.1.1.jar:2.1.1]
        at org.apache.accumulo.tserver.tablet.Tablet.chooseTabletDir(Tablet.java:250) ~[accumulo-tserver-2.1.1.jar:2.1.1]
        at org.apache.accumulo.tserver.tablet.Tablet.getNextMapFilename(Tablet.java:258) ~[accumulo-tserver-2.1.1.jar:2.1.1]
        at org.apache.accumulo.tserver.tablet.MinorCompactionTask.run(MinorCompactionTask.java:79) ~[accumulo-tserver-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-2.1.1.jar:2.1.1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-2.1.1.jar:2.1.1]
        at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalArgumentException: Unknown context invalid
        at org.apache.accumulo.start.classloader.vfs.ContextManager.getClassLoader(ContextManager.java:166) ~[accumulo-start-2.1.1.jar:2.1.1]
        at org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader.getContextClassLoader(AccumuloVFSClassLoader.java:420) ~[accumulo-start-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.classloader.DefaultContextClassLoaderFactory.getClassLoader(DefaultContextClassLoaderFactory.java:99) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.classloader.ClassLoaderUtil.getClassLoader(ClassLoaderUtil.java:79) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.classloader.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:87) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.conf.ConfigurationTypeHelper.getClassInstance(ConfigurationTypeHelper.java:199) ~[accumulo-core-2.1.1.jar:2.1.1]
        at org.apache.accumulo.server.ServiceEnvironmentImpl.instantiate(ServiceEnvironmentImpl.java:69) ~[accumulo-server-base-2.1.1.jar:2.1.1]
        at org.apache.accumulo.core.spi.fs.DelegatingChooser.lambda$createVolumeChooser$0(DelegatingChooser.java:154) ~[accumulo-core-2.1.1.jar:2.1.1]

Tablet.split then calls Tablet.completeClosewhich sets the closeState to CLOSED. I don't have enough information to know where this first iteration fails after this point, but I'm assuming that it does fail and the Tablet state is set to CLOSED. The first iteration ends in TableOperationsImpl.addSplits with an exception, which may not be logged on the client side, and then the operation is tried again. On the subsequent call to Tablet.initiateClose in Tablet.split an IllegalStateException is thrown because the Tablet is already CLOSED. Tablet.split logs File 1<< not splitting : Tablet 1<< already CLOSING and returns null. Returning null causes TabletClientHandler.splitTablet to throw a NotServingTabletException which is caught by TableOperationsImpl.addSplits and retried. It appears that this will retry forever.
Versions (OS, Maven, Java, and others, as appropriate):

Affected version(s) of this project: 2.1.2-SNAPSHOT

To Reproduce
User was able to replicate the issue with the configuring Accumulo with:
general.volume.chooser=org.apache.accumulo.core.spi.fs.DelegatingChooser
general.custom.volume.chooser.default=org.apache.accumulo.core.spi.fs.PreferredVolumeChooser
general.custom.volume.preferred.default=hdfs://localhost:8020/accumulo

and then running the following in the shell:
root@uno> insert -t test1 a c1 q1 v1
root@uno> insert -t test1 b c1 q1 v1
root@uno> insert -t test1 c c1 q1 v1
root@uno> config -t test1 -s table.class.loader.context=invalid
root@uno> flush -t test1
2023-07-31T22:21:28,451 [shell.Shell] INFO : Flush of table test1  initiated...
root@uno> config -t test1 -d table.class.loader.context
root@uno> scan -t test1
a c1:q1 []	v1
b c1:q1 []	v1
c c1:q1 []	v1
root@uno> addsplits -t test1 b

There are several table properties (classloader context, compaction service) that reference system-level properties. Validating that these table properties reference valid system-level properties will help alleviate some of these issues and provide a better user experience. A ClassNotFoundError being raised by a correctly configured classloader context would still cause this issue, but I'm not sure that we should try to fix that.

It would be nice to make the split abort if the minc can't complete successfully, so the tablet is not left in a bad state.
I think that should be attempted, regardless of what additional things we do to try to validate the user configuration.
I'm guessing this would have caused issues for a regular flush/minc or compaction/majc, as well, even if a split was not attempted.

An invalid context name is going to wreck a lot of things. In any location where we load classes using the context classloader (scan, minc, majc, balancing, pluggable volume chooser, etc.) an invalid context name will cause an issue even loading classes from Accumulo jars because it can't get a classloader at all. Validating that the property is valid will go a long way, but I can look to see if we can wait for minc to complete earlier in the split code.

Closed by #3677


not work for redmine 4.0.0

Try to install it in redmine 4.0.0, got following exception.
root@redmine:/opt/redmine# RAILS_ENV=production rake redmine:plugins:migrate NAME=event_notifications
rake aborted!
NoMethodError: undefined method alias_method_chain' for User (call 'User.connection' to establish a connection):Class Did you mean?  alias_method /var/lib/gems/2.5.0/gems/activerecord-5.2.2/lib/active_record/dynamic_matchers.rb:22:in method_missing'
/opt/redmine/plugins/event_notifications/lib/event_notification/patches/user_patch.rb:11:in block in included' /opt/redmine/plugins/event_notifications/lib/event_notification/patches/user_patch.rb:9:in class_eval'
/opt/redmine/plugins/event_notifications/lib/event_notification/patches/user_patch.rb:9:in included' /opt/redmine/plugins/event_notifications/lib/event_notification/patches/user_patch.rb:188:in include'
/opt/redmine/plugins/event_notifications/lib/event_notification/patches/user_patch.rb:188:in <top (required)>' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in block in require' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in load_dependency'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require' /opt/redmine/plugins/event_notifications/init.rb:4:in <top (required)>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in block in require'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in load_dependency' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require'
/opt/redmine/lib/redmine/plugin.rb:173:in block in load' /opt/redmine/lib/redmine/plugin.rb:164:in each'
/opt/redmine/lib/redmine/plugin.rb:164:in load' /opt/redmine/config/initializers/30-redmine.rb:21:in <top (required)>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:285:in load' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:285:in block in load'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in load_dependency' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:285:in load'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:657:in block in load_config_initializer' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications.rb:170:in instrument'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:656:in load_config_initializer' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:614:in block (2 levels) in class:Engine'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:613:in each' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:613:in block in class:Engine'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in instance_exec' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in run'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:61:in block in run_initializers' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in each'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in tsort_each_child' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:60:in run_initializers'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:361:in initialize!' /opt/redmine/config/environment.rb:14:in <top (required)>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in block in require'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in load_dependency' /var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in require'
/var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:337:in require_environment!' /var/lib/gems/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:520:in block in run_tasks_blocks'
/var/lib/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
Tasks: TOP => redmine:plugins:migrate => environment
(See full trace by running task with --trace)

Confirmed also here. Same environment of @davidgxxl .
Thanks.


Crash on email detection in TextInput on Xiaomi devices running android 10

Xiaomi devices running android 10 show a little popup with the Text Frequent email when they detect a valid email address in the text input currently selected.  This feature causes some crashes on my react native app. Sadly I can't reproduce in on an empty project, but it always happens on some inputs in my app. I have not been able to determine the difference between the textinputs that causes the problem and the textinput that does not cause any crash.
React Native version: 0.61.2
Steps To Reproduce

Select a textinput
digit a valid email address (such as test@test.com). As soon as I type the last c (creating a valid email format), the app crashed

The error:

java.lang.NullPointerException · Attempt to invoke direct method 'void android.widget.Editor$SelectionModifierCursorController.initDrawables()' on a null object reference

The full stack trace:
java.lang.NullPointerException: Attempt to invoke direct method 'void android.widget.Editor$SelectionModifierCursorController.initDrawables()' on a null object reference
        at android.widget.Editor$SelectionModifierCursorController.access$300(Editor.java:6696)
        at android.widget.Editor.getEmailPopupWindow(Editor.java:1469)
        at android.widget.Editor.showEmailPopupWindow(Editor.java:1477)
        at android.widget.Editor.handleEmailPopup(Editor.java:1456)
        at android.widget.Editor.updateCursorPosition(Editor.java:2099)
        at android.widget.TextView.getUpdatedHighlightPath(TextView.java:7813)
        at android.widget.TextView.onDraw(TextView.java:7998)
        at android.view.View.draw(View.java:21472)
        at android.view.View.updateDisplayListIfDirty(View.java:20349)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4396)
2019-11-12 17:19:57.876 20111-20111/com.yourvoice.ccApp.dev E/AndroidRuntime:     at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4369)
        at android.view.View.updateDisplayListIfDirty(View.java:20309)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:575)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:581)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:654)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3687)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3482)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2819)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1782)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7785)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1031)
        at android.view.Choreographer.doCallbacks(Choreographer.java:854)
        at android.view.Choreographer.doFrame(Choreographer.java:789)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1016)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:221)
        at android.app.ActivityThread.main(ActivityThread.java:7520)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

This issue is related to: #20887
Basically, when the issue described in #20887 occurs and you can't open the context menu, if you digit an email address in a Xiaomi devices running the latest OS version it results in an app crash.
The workaround described in #20887 fixes this issue too

having the same issue =(

Same problem here. It only happens on Xiaomi devices running Android 10.

We also fixed this hacky with a hooks version of https://github.com/facebook/react-native/issues/20887#issuecomment-416775306
It works but it breaks the autoFocus prop.
const [editable, setEditable] = React.useState(false)

React.useEffect(() => {
  React.useEffect(() => {
  setTimeout(() => {
    setEditable(true)
  }, 100)
})
return (
  <TextInput
    editable={editable}
    ...
  />
```

I have a user that is experiencing this same issue. Is it related to the autofocus when going to a screen? It's quite hard to replicate but had a couple of crashes when trying it myself.

It happened to me on screens without any autofocus, but sadly I had not been able to understand what the underlying cause is.

Same issue here. User gave a one star review for this. 😢

I have same problem with RN 0.61.4

having same issue with RN 0.59.0

We also fixed this hacky with a hooks version of #20887 (comment)
It works but it breaks the autoFocus prop.
const [editable, setEditable] = React.useState(false)

React.useEffect(() => {
  React.useEffect(() => {
  setTimeout(() => {
    setEditable(true)
  }, 100)
}, [])

return (
  <TextInput
    editable={editable}
    ...
  />
)

I try, but cannot fix this crash.

Same problem here, none of the proposed solutions worked in my production app. I have around 10K users so far (released 4 days ago). The models MI 9 (cepheus) | 163 users, Redmi K20 Pro (raphael) | 121 users and Mi 9T (davinci) | 36 users, are experiencing this issue, they can't even create an account on my app. And the 1 star review keep coming...

I had to set caretHidden to true and it's not crashing the app now (tested on Redmi K30).
The downside is you can't use the context menu actions. I am okay though with the trade off (for now) considering I'll be using it only on email address inputs.
<TextInput
    caretHidden
    autoCapitalize='none'
    autoCorrect={false}
    keyboardType='email-address'
    autoCompleteType='email'
/>

It would be great if this issue could get some attention from the React Native team. I initially fixed it using the timeout/editable workaround described here and in #20887, but since we migrated from Expo 34 to Expo 36 (React Native 0.61.5), it has returned and the workaround doesn't seem to work anymore.
This is exactly the type of bug that causes terrible user experiences, even if it's limited to a set of devices. The users impacted are quick to churn and write 1-star reviews.

Same issue here on a MI 9.
Setting caretHidden={true} is the only solution that works but really destroys the user eperience.

Same here.. +1

Same issue here on a MI 9.
Setting caretHidden={true} is the only solution that works but really destroys the user experience.

Same issue here on a MI Mix 2s.

What about using react-native-device-info to check if it Xiaomi to enable caretHidden ?

thats my plan for now, but i don’t have Xiaomi device to check what exactly device model returns, thats why i am asking for it 🤔

I am experiencing this issue, any update for this? this happen only when the TextInput is prefilled with email value.

For temperary fix you can use like this as mentioned at https://github.com/facebook/react-native/issues/20887#issuecomment-416775306 :
..
..
constructor(props) {
    super(props)

     this.state = { editable: false }
  }

  componentDidMount() {
      setTimeout(() => { this.setState({ editable: true }) }, 100);
  }

  render() {
    return (
         ...
         ...
            <TextInput editable={this.state.editable} />
        ...
        ...
      )
   }
}

It's temperary but it works for now. But of course it should be fixed soon as possible.

+1

Nothing officially yet?

I found the problem. This is a bug in the mi system on android 10, because it will have a prompt view when you type an email in the input box.When we put the input box in the scroll view, the system failed to locate the prompt view properly, causing the application to crash.If the input field is outside of the scroll view you can avoid this problem and hopefully this will help you out, this is not the optimal solution.Because it might require us to change our layout.That's what I'm going to do.

Oh, I'm sorry that the previous answer was problematic. Please remove the removeClippedSubviews property from your ScrollView component. This is the cause of the problem

Oh, I'm sorry that the previous answer was problematic. Please remove the removeClippedSubviews property from your ScrollView component. This is the cause of the problem

+1
in my case I have to set removeClippedSubviews={false}, I use FlatList, and the input is outside the screen view

setting editable true explicitly fixed the problem for me

+1

just happened to experience it as well in my Redmi Note 8 Pro
The only solution that works is applying caretHidden. Try to set timeout in editable doesn't work
Hope this can get fixed asap

Someone knows if there is a workaround for the user?

We have a similar issue with users who have Xiaomi. Does anyone know how to test this without actual device? Any emulator which acting like this?

I think I found a workaround, just disable the scrolling of ScrollView when user starts editing, then everything will turn back to normal:
const [isScrollEnable, setIsScrollEnable] = useState(true)

return (
    <ScrollView scrollEnabled={isScrollEnable}>
        <TextInput
            onTouchStart={() => setIsScrollEnable(false)}
            onEndEditing={() => setIsScrollEnable(true)}
        />
    </ScrollView>
)

Keep in mind that this crash happens because of how MIUI is rendering email suggestion box - so it's not limited strictly to Xiaomi branded phones, it can happen also on phones that are made by "sister" brands like Redmi and Poco so when you are creating check if caret needs to be turned off (or any other workaround that works for you) do not include only xiaomi in check but also the rest of miui family.
I don't have any pocophone or know someone with one so I can't tell for sure what BUILD.Brand is reported there so my check looks like this
const brandsNeedingWorkaround = ['redmi', 'xiaomi', 'poco', 'pocophone']
const needsXiaomiWorkaround =
    type === 'email' &&
    brandsNeedingWorkaround.includes(getDeviceBrand().toLowerCase()) &&
    getDeviceOSVersion() > 28

I had the same problem. I had to remove
keyboardType='email-address'
to get rid of the crashing

react-native: "0.61.5", device:xiaomi  MI 8 SE,android10,MIUI 11.0.3
In my project  , it worked.Just add  View in outside.Maybe you can try try
<View>                     <TextInput                         keyboardType={'email-address'}                         multiline={false}                         placeholder={'请输入邮箱'}                         onChangeText={(inputData) => {                          }}/> </View>

    autoCompleteType='email'

Thank you @ahdzlee ! Saved me a lot of time searching for workarounds! Whew 👍

Should be fixed in next version of react native.
Based on commit 07a597a

My hack:
// https://github.com/facebook/react-native/issues/27204
const InputTextWrapper = forwardRef(({ onFocus, caretHidden, ...others }, ref) => {
    const [hackCaretHidden, setHackCaretHidden] = useState(needsXiaomiWorkaround ? true : caretHidden);

    const handleFocus = useCallback(() => {
        if (needsXiaomiWorkaround) {
            setHackCaretHidden(caretHidden);
        }
        if (onFocus) onFocus();
    }, [onFocus, caretHidden]);

    return (
        <RNTextInput
            ref={ref}
            {...others}
            onFocus={handleFocus}
            caretHidden={hackCaretHidden}
        />
    );
});

Should be fixed in next version of react native.
Based on commit 07a597a

I don't think that this is a good solution, I think its possible to handle this problem without hide the cursor forever, like in @claudiaps hack.

There is a solution, using caretHidden prop and pass it as true value, more explanation on StackOverflow post.

Until this issue is fixed & released, here is a simple solution for it:
const deviceName = Device.manufacturer;

    if (deviceName ==="Xiaomi") {
      this.setState({
        caretHidden: true,
      });

    } else {

      this.setState({
        caretHidden: false,
      });

    }

<TextInput
        caretHidden = {this.state.caretHidden}
/>

Finally 😄  https://github.com/facebook/react-native/commit/07a597ad185c8c31ac38bdd4d022b0b880d02859

Finally 😄  https://github.com/facebook/react-native/commit/07a597ad185c8c31ac38bdd4d022b0b880d02859

Its not only on Xiaomi, and the problem happens even when is not type email-address but the MI UI detects an email.

Finally 😄  07a597a

Its not only on Xiaomi, and the problem happens even when is not type email-address but the MI UI detects an email.

Hmmm, I didn't encounter with this error on any other device. But actually when I review the commit. It's just a workaround. Not a full covered solution I think.
But still many many thanks to who commit that solution.

Actually it's still crashing on some Mi devices because the fix https://github.com/facebook/react-native/commit/07a597ad185c8c31ac38bdd4d022b0b880d02859 only works for phones who have exactly "Xiaomi" as Manufacturer, but there are more Xiaomi brands affected (Poco, Redmi etc. and some weird unique names for some new models).
I made a pull request that should cover more devices: https://github.com/facebook/react-native/pull/30109
Feel free to add more if you see that some are missing, I just took the ones I found in my app's error reports.

Just wondering but does that fix actually  work because on one of my team's test devices the issue also happens if keyboardType is set to default as soon as the user enters something that resembles an email address and from what I  can see that is  basically what this fix does?

Just wondering but does that fix actually work because on one of my team's test devices the issue also happens if keyboardType is set to default as soon as the user enters something that resembles an email address and from what I can see that is basically what this fix does?

Same here, the only way we can avoid crash is with caretHidden: true, just like @claudiaps suggested.

Yeah, after looking this error still exists.
import { getBrand } from "react-native-device-info"

I solved this problem with brand check and caretHidden.
If phone brand is one of these brands. I'm giving true value for the caretHidden.
const brandsNeedingWorkaround = ["redmi", "xiaomi", "poco", "pocophone"]
const needsXiaomiWorkaround = Platform.OS !== "ios" ? brandsNeedingWorkaround.includes(getBrand().toLowerCase()) : false

😞

Something really weird happened today: On the device where it crashed yesterday, it seems to work fine today without any changes regarding the input fields. We tried the caret workaround but after reverting it still worked fine (and the caret is visible and the correct keyboard input type is used).
The only thing that might remain is that I installed the dependency expo-device for the workaround but that really should not fix it.
And as far as we know we did not install any updates on the device.
I tried to determine what might have fixed this but I really don't know it should now work.

Something really weird happened today: On the device where it crashed yesterday, it seems to work fine today without any changes regarding the input fields. We tried the caret workaround but after reverting it still worked fine (and the caret is visible and the correct keyboard input type is used).
The only thing that might remain is that I installed the dependency expo-device for the workaround but that really should not fix it. And we added alwaysBounceVertical to the ScrollView bur that is an iOS only property.
And as far as we know we did not install any updates on the device.
I tried to determine what might have fixed this but I really don't know it should now work.

We have noticed this behavior as well. Especially after giving the focus without crashing once, the next times it won't crash either. (Perhaps due to livereload refresh)
But when you close the app and open it again, the problem appears again.

As far as I could tell it was still working after a complete restart. However, as it is his own device and he is not working as a developer I can't do any in-depth analysis.
As it is an app we have just started developing, we will keep it in mind and hope it won't re-occur, if not we will need to re-activate the caret workaround.
Could be that some weird combination of changes fixed it which also means that it could easily re-occur.

As far as I could tell it was still working after a complete restart. However, as it is his own device and he is not working as a developer I can't do any in-depth analysis.
As it is an app we have just started developing, we will keep it in mind and hope it won't re-occur, if not we will need to re-activate the caret workaround.
Could be that some weird combination of changes fixed it which also means that it could easily re-occur.
In any case, all of the current "fixes" are workarounds and no real fixes.
However, as I doubt nearly all apps with form inputs are crashing on Xiaomi devices that do not use one of those workarounds,
I really think it has to be also react native related and not just an issue with the OS.

It took me some time to find out that if I type a . (dot) in the email input field and then clear it, after that typing the email does not crash the app anymore. So here is yet another workaround that does not include caret hiding and still working for me on Redmi 9.
const [email, setEmail] = useState(".");

useEffect(() => {
  setTimeout(() => {
    setEmail("");
  }, 1);
}, []);

It seems this issue was fixed on React native 0.63.3, could someone double-check?
https://github.com/react-native-community/releases/blob/master/CHANGELOG.md#fixed
07a597a

This issue was fixed on React native 0.63.3 go npx react-native upgrade

Just wondering but does that fix actually work because on one of my team's test devices the issue also happens if keyboardType is set to default as soon as the user enters something that resembles an email address and from what I can see that is basically what this fix does?

As mentioned by me and @AndreasA, its NOT fixed on 0.63.3, for many reasons.

Sharing our solution for this problem that uses the editable solution listed before but also works (in our tests) for autoFocus. Setting caretHidden to true does work but it makes for a jarring UI. Using the editable workaround the user experience is not changed.
This is our text field component that we use instead of calling TextInput directly:
import { Platform, TextInput } from 'react-native'
import { getBrand } from 'react-native-device-info'

const EMAIL_CRASH_WORKAROUND_BRANDS = ['m2002j9g', 'm2002j9g', 'm2004j19c', 'm2007j20cg', 'mi', 'mi', 'mix', 'poco', 'pocophone', 'redmi', 'xiaomi']
const EMAIL_CRASH_WORKAROUND_NEEDED = EMAIL_CRASH_WORKAROUND_BRANDS.includes(getBrand().toLowerCase()) && Platform.Version > 28

I stripped down our code to show the relevant methods of the component:
// allows parent to set focus to the input
focus(){
	// console.log('set focus to text field')
	// set flag so we know if focus() was called
	this.wasFocusHandlerCalled = true
	this.input.focus()
},

// capture reference to the input
setRef(ref){
	this.input = ref
},

render(){
	let attribs = {}
	// email crash workaround
	if(EMAIL_CRASH_WORKAROUND_NEEDED){
		if(this.state && this.state.emailCrashEditable)
			attribs.editable = 'editable' in this.props ? this.props.editable : true
		else
			attribs.editable = 'editable' in this.props ? !this.props.editable : false

		// console.log(`editable for ${this.props.fieldName}:`, attribs.editable)
	}

	return (
		<TextInput
			ref={this.setRef}
			{... this.props}
			{ ... attribs}
		/>
	)
}

Finally the most important part. We toggle the editable prop of the input once the component is loaded.
We check for the autoFocus prop here and set focus if necessary.
A parent component using a ref to this component could call focus() on it so we also check if that was called and set focus if necessary:
componentDidMount(){
	// 'editable' email crash workaround
	if(EMAIL_CRASH_WORKAROUND_NEEDED){
		setTimeout(() => {
			if(this.hasUnmounted) return // set this in componentWillUnmount

			// console.log('set emailCrashEditable')
			this.setState({ emailCrashEditable: true }, () => {
				if(this.props.autoFocus || this.wasFocusHandlerCalled){
					// when focus was set by calling the focus handler then we need to blur it first
					if(this.wasFocusHandlerCalled)
						this.input.blur()

					this.input.focus()
				}
			})
		}, 100)
	}
}

Looking forward to an actual fix for this in the core code so that we can get rid of this kludgy workaround.

+1, i use the carretHide but i need a better solution

+1, i use the carretHide but i need a better solution

having the same issue =(

La aplicación se rompe cuando se escribe un punto en el control. Al parecer esta solución funciona para mi, en un dispositivo redmi note 9.
const [email, setEmail] = useState('.');
useEffect(() => {     setTimeout(() => {       setEmail('');     }, 1);   }, []);
<Input         placeholder="Email"         value={email}       />
=)

having the same issue =(

La aplicación se rompe cuando se escribe un punto en el control. Al parecer esta solución funciona para mi, en un dispositivo redmi note 9.
const [email, setEmail] = useState('.');
useEffect(() => {     setTimeout(() => {       setEmail('');     }, 1);   }, []);
<Input         placeholder="Email"         value={email}       />
=)

I had same problem when i added selectionColor={'#ea8478'} property in TextInput and when i removed that property it worked just fine..

I have this problem when I have an input on a screen that is in a bottomNavigator or in a Stack inside the bottomNavigator.
If I use it only on a stack it does not crash the application
I´m using

RN version 0.63.0
react-navigation/bottom-tabs: 5.11.8
react-navigation/native: 5.9.3
react-navigation/stack: 5.14.3

The caret and disabled workaround are working.

It took me some time to find out that if I type a . (dot) in the email input field and then clear it, after that typing the email does not crash the app anymore. So here is yet another workaround that does not include caret hiding and still working for me on Redmi 9.
const [email, setEmail] = useState(".");

useEffect(() => {
  setTimeout(() => {
    setEmail("");
  }, 1);
}, []);

it sounds the best fix GG man

No crash in React native 0.64.1 but caret is hidden.

@Bardiamist this is because a totally wrong "fix" was accepted by the core team. As we mentioned here https://github.com/facebook/react-native/issues/27204#issuecomment-702662348, https://github.com/facebook/react-native/issues/27204#issuecomment-703704916 and https://github.com/facebook/react-native/issues/27204#issuecomment-707478867.

Hi! I have a few crashes related to this issue, too.
Any news regarding this?
Thanks

Works for me, not optimal but a seamless solution for me.
  const [caretLoaded, setCaretLoaded] = useState(true)

  useEffect(() => {
    setCaretLoaded(false)
  }, [])

  return (
      <InpupText
          caretHidden={caretLoaded}
      />
  )

Has anyone tried contextMenuHidden props?

Still issue

Any solution?

Any solution?

Try:
<TextInput caretHidden={true} ... />
See: https://facebook.github.io/react-native/docs/textinput#carethidden

Sorry... Not working on redmi note 9 pro max.

I had to set caretHidden to true and it's not crashing the app now (tested on Redmi K30). The downside is you can't use the context menu actions. I am okay though with the trade off (for now) considering I'll be using it only on email address inputs.
<TextInput
    caretHidden
    autoCapitalize='none'
    autoCorrect={false}
    keyboardType='email-address'
    autoCompleteType='email'
/>

you saved my day. thank you


Bump version of sage-installer

With this version bump, Sage will now correctly install the latest Tailwind version when you choose it as a preset during install. Currently all new Sage 9 projects would start you off with an old beta Tailwind release.

tracking here: #2466


Docker image for Arm64 platform is required

Hi Team,
I am trying to use the helm-tools image on arm64 platform but it seems it is not available for arm64.
I have successfully built the image using the command docker build -t <image_name> . on the arm64 platform with small changes in the Dockerfile.
Commit Link - c4d1e2f4345918a5306030f1daa40282df363528
Docker Hub Link - https://hub.docker.com/repository/docker/odidev/helm-tools
Do you have any plans on releasing arm64 images?
May I know how the amd64 image is getting published on Dockerhub?
If interested, I will raise a PR.

@krancour , can you please look into above issue?

Closing due to staleness. This issue will be subsumed by a larger effort to get all of Brigade working on arm64 post v2.


Qa

Coverage decreased (-0.2%) to 82.873% when pulling 7fea1338bc88e1a83b79a7e52157676e9b1a7e75 on qa into 2e6414f4796b506bcc5368b46b1fcc2e38fb7788 on master.


corrupted zip

The released sdcard zip is corrupted

I ran the script locally and it worked for me.

@jlavoieqc thank you for your report and sorry that happened. could you post some details, like which zip you downloaded and what error you got how?
I am adding something to remove old zips so it's possible it will get removed, but perhaps if we can reproduce this issue I can try preventing it in the future.

Dont remember but i think its https://github.com/katlol/awesome-flipperzero-pack/releases/tag/v0.0.202402100235

@jlavoieqc thank you for your report and sorry that happened. could you post some details, like which zip you downloaded and what error you got how?
I am adding something to remove old zips so it's possible it will get removed, but perhaps if we can reproduce this issue I can try preventing it in the future.

I just tried to open it in explorer windows but it said corrupted

I downloaded and tested all the files in the release you linked
for i in $(ls awesome-flipperzero-pack-v0.0.202402100235-*); do echo md5sum $i; unzip -t $i | grep -v OK$; echo ---; done
md5sum awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip.
---
md5sum awesome-flipperzero-pack-v0.0.202402100235-microsd.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-microsd.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-microsd.zip.
---
md5sum awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip.
---

and all 3 zip files tested successfully.
Is it possible it was a bad download? If you still have the file, or maybe in your browser history you have an entry, and it's a different file I can check those too

I downloaded and tested all the files in the release you linked
for i in $(ls awesome-flipperzero-pack-v0.0.202402100235-*); do echo md5sum $i; unzip -t $i | grep -v OK$; echo ---; done
md5sum awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-microsd-wavplayer.zip.
---
md5sum awesome-flipperzero-pack-v0.0.202402100235-microsd.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-microsd.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-microsd.zip.
---
md5sum awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip
Archive:  awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip
No errors detected in compressed data of awesome-flipperzero-pack-v0.0.202402100235-tweaks.zip.
---

and all 3 zip files tested successfully.
Is it possible it was a bad download? If you still have the file, or maybe in your browser history you have an entry, and it's a different file I can check those too

I dont know but I tried to download it 2 times but corrupted i think they are no longer availible

OK, feel free to reopen if you know what file it was or it happens again.


Update metadata retrieval patterns

The older ADFS uses one pattern to download the metadata synchronously in the constructor. The newer WsFed middleware uses an updated ConfigurationManager to download and refresh the metadata during requests. When porting from Katana, update the ADFS middleware to use the new ConfigurationManager.
Ported from: https://katanaproject.codeplex.com/workitem/94

Fixed: https://github.com/aspnet/Security/commit/49e66f03110b486f8dd9959dd2cee802d676c28f


feat: image widget insert from url should be optional

Summary
Fixes: Image widget "Insert From URL" should be optional as requested here: #5558

Test plan
By puting the option choose_url as true:

We see this in the cover image section when creating a new post:

By putting false:

We see that the option of Insert From URL does not appear:

A picture of a cute animal (not mandatory but encouraged)

Huzzah, thanks @Edald123  & @erezrokah

Great, Thank you!


test: add tests for payload parser

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 77.77778% with 2 lines in your changes missing coverage. Please review.

Project coverage is 40.51%. Comparing base (ca9ff07) to head (e970a46).

Files
Patch %
Lines

internal/webhook/security.go
77.77%
1 Missing and 1 partial :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #69       +/-   ##
===========================================
+ Coverage   29.79%   40.51%   +10.72%
===========================================
  Files          11       11
  Lines         537      543        +6
===========================================
+ Hits          160      220       +60
+ Misses        342      283       -59
- Partials       35       40        +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Report does not show TestNg test names and method names correctly

Hi,
I added Allure reports to my existing TestNg framework. I run the tests using Maven from test suite files which have defined which classes and tests to run. For some reason, the generated report shows test names as "Unknown test case" and for some Parameterized test cases it shows the dataset parameters as the test name.
Is it expected behaviour? How do i make it show proper test names.
Here's snippet of test suite: testng.xml
<suite name="SMOKE-TEST-SUITE" verbose="1">
	<test name="SMOKE-TESTS" parallel="false" preserve-order="true">
		<groups>
			<run>
				<include name="Group1" />
				<include name="Group2" />
			</run>
			<dependencies>
				<group depends-on="Group1" name="Group2" />
			</dependencies>
		</groups>
		<classes>
			<class name="TestCase1" />
			<class name="TestCase2" />
		</classes>
	</test>
</suite>

Test case example:
@Test(groups = Group2)
@Features("Feature1")
public class TestCase1 extends Setup {
	@Test(dataProvider = "dataset1")
	public void testCaseMethod(@Parameter("param1") String param1, @Parameter("param2") String param2) {
		 doSomething(param1, param2);
	}
       @DataProvider(name = "dataset1")
	private Object[][] getDataset1() {
		return new Object[][] {
				{ "param1data1", "param2data1"},
				{ "param1data2", "param2data2"}
           };
	}

@baev  Anything you see i'm missing?

@irushah sorry I don't know much about TestNg, it is supported mostly by the community.

@irushah can you show screenshots?

Here's screenshot of above described code

@irushah could you please describe how Test ID 4413 got included in report (there is no such ID in your code)?

Ohh, ignore that, i missed to add in my example code above. I dont think its related to that. But, i have corrected the example code with TestCaseId annotation above after @Test

@TestCaseId("4413")

@irushah Allure takes test case meta data from annotations on method level, not on type level.
Also if you annotate type as @Test it will execute all public methods as tests not taking into account method annotations. That is why IMO it is a mistake to annotate both type and method.

Ohh.. I got it. I removed @Test(groups = Group2)  from the type and added the group to method. And that fixed it.
Thanks alot @volkovs.
Closing the bug.


Add wrapper for polyglot

This PR introduces a wrapper command for polyglot, a command-line interface for gRPC service.
Note that grpc-call requires Python3.
This PR is inspired by grpc-call, which is implemented in shell script.
grpc-call: https://github.com/g-hyoga/dotfiles/blob/master/tools/grpc-call

Thank you for the amazing repo and reviewing. :pray:


Fix skills field to accept space, hashtag and colon

Closes #113
Changed the regex of the skill field to accept space, hashtag, and colon. I updated the Message as well.

lgtm


Write-Output instead of Write-Host

Sorry, I'm not really up on Github etiquette, so please let me know if this is the wrong place to put this.
I've noticed that all of your screen output uses the Write-Host cmdlet. Jeffrey Snover (inventor of PS) has written an article on the harmful consequences using write-host can cause: http://www.jsnover.com/blog/2013/12/07/write-host-considered-harmful/
Very quick find->replace job, just thought I'd bring it up :)

Even if it may not show, this is not my first PowerShell rodeo, so I'm aware about the contents of the linked article. I thought about which Write- to use before. The topic is still open for discussion, but consider these:

First and foremost, it should be possible to use the script with the least effort possible. Since it's being used by unskilled BFUs for which even right-clicking and selecting Run in PowerShell is a complex task, Write-Verbose would either require manually entering the command or using $VerbosePreference = "Continue". Moreover all messages are prepended by "VERBOSE: " string. This may be matter of personal preference, but I personally don't like it.
It should be also possible to use the script as a base for provisioning automation and incorporate the functions into another PS script. Possible candidate would then be Write-Output but since the messages are intended to be informational for the user, redirecting such script to a log would eat them too. I'm aware about Tee-Object cmdlet but that doesn't help if the whole process output gets redirected. This again is a matter of personal preference, whether to "force" the information to show or whether to leave the decision on the downstream maintainer.

So I needed a Write- which would not be redirected but at the same time which would be always visible without any extraneous information or setting. Hence I got stuck with Write-Host.
What would your preference be and why?

Just to chime in, I replaced all the Write stuff with Write-Output and it breaks the script, it just keeps asking for parameters now. Clearly it isn't just a case of find-replace.

Just to chime in, I replaced all the Write stuff with Write-Output and it breaks the script, it just keeps asking for parameters now. Clearly it isn't just a case of find-replace.

That's just the Write-Host without parameter in WaitForKey function. It can't handle colors either. Can be replaced with
Function WaitForKey {
	Write-Output "`nPress any key to continue..."
	[Console]::ReadKey($true) | Out-Null
}

(Although this particular function won't be used in automation anyway due to the key press)

My apologies, I never meant to call into question your Powershell knowledge - you clearly know your stuff!
I only decided to bring this up as a best practices type of deal, but it seems you've clearly thought hard about the consequences of each possibility. From your explanations, I'd tend to agree with your choice of Write-Host in this case, although I've only been using Powershell for about 1 year now, so my opinion may not be 100% valid :)
I've switched my copy of the script with Write-Output for my own consistency and fixed the WaitForKey issue, but for complete novice users, Write-Host will do the trick just fine.
Thank you for keeping this up to date and writing it in the first place - it's incredibly useful!


Possible bug in multi_threaded_vector test

While running the tests in my branch (which I'm pretty sure I haven't broke anything related to it), I got a failure in this test for the x86 Debug config: https://github.com/alvinhochun/cppwinrt/actions/runs/3255357951/jobs/5344593918
-------------------------------------------------------------------------------
multi_threaded_vector
-------------------------------------------------------------------------------
D:\a\cppwinrt\cppwinrt\test\test\multi_threaded_vector.cpp(455)
...............................................................................

D:\a\cppwinrt\cppwinrt\test\test\multi_threaded_vector.cpp(419): FAILED:
  CHECK( conditional_unbox<T>(t) == 1 )
with expansion:
  42 == 1

Perhaps there is a real race condition somewhere? I haven't checked it locally.

@dunhor wrote the multithreaded implementation and may have some insights.

The multithreaded vector tests are not very reliable.
https://github.com/microsoft/cppwinrt/actions/runs/3267638358/jobs/5373066605

Yes, they often segfault when testing on my own machine
On Mon., Oct. 17, 2022, 14:52 Kenny Kerr, @.***> wrote:

The multithreaded vector tests are not very reliable.
https://github.com/microsoft/cppwinrt/actions/runs/3267638358/jobs/5373066605
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/cppwinrt/issues/1202#issuecomment-1281327044,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRELNTEIKJVH6WYCSS57E3WDWN5DANCNFSM6AAAAAARF3YFY4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

So, I did a little bit of debugging and testing and realized that the tests rely on a "deadlock" timeout, which effectively means that there's no guarantee of determinism as I originally thought.  If that's the case, InsertAt will "win" and the test will fail as it has here. Ideally it seems like we'd have more than one timeout value (10 ms is the default for all waits) so that step 1 waits longer. @oldnewthing can comment on the analysis/viability of such a proposal


[Feature]: Can you add support for the new keras_core library?

Description
I am training a neural network using the new keras_core library using pytorch backend, and I am having the following error:
ModuleNotFoundError: No module named 'tensorflow'
So I decided to install tensorflow (I hate it, that't why I use pytorch) and I got the following error:
File "/home/.../wandb/data_types.py", line 1512, in from_keras     for in_layer in _nest(in_node.inbound_layers): AttributeError: 'Node' object has no attribute 'inbound_layers'
Which is obvious because I am using PyTorch backend instead of Tensorflow backend.
Can you provide a quick solution please?
Suggested Solution
Instead of use keras, use keras_core in all your code and put requirements keras_core instead of keras when installing your library, so the user will use the backend they want.
Alternatives
No response
Additional Context
No response

Hey @hdnh2006, our prototypes of the backend-agnostic KerasCore callbacks are ready for use. Please let me know if you have any further issues/questions.

Do you plan to finally add this feature to the wandb in production?
Thanks

Sydney Hollingsworth commented:
Auto-assigned

Uma Krishnaswamy commented:
MY reply:
Hey @hdnh2006, thank you for bringing this up. I made a feature request for this and will write back in once progress arises.

Uma Krishnaswamy commented:
https://wandb.productboard.com/insights/notes/view/1513-followed-notes/notes/34425012

Uma Krishnaswamy commented:
sent prototype

@hdnh2006 We will likely add this feature once Keras 3.0 is released. If you have any feedback regarding the backend agnostic prototypes, we'd love to know how well this is working for you and if there's any room for improvement!

Any news on this?


WIP for recording network requests as spans

Goal

Testing

Release Notes

WHAT:
WHY:
WHO:

#734  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @bidetofevil and the rest of your teammates on  Graphite