attempt to patch locked table (dynamodb fivetran_connector_schema_config)

Describe the bug
Some DDB tables pass "plan" but fail in "apply".
│ Error wile applying schema config patch. error while patching schema dynamodb_raw:
│       attempt to patch locked table a5-n-rt-x; Please report this issue to the provider developers.

To Reproduce
data "aws_ssm_parameter" "ssm_dynamodb_connector_id" {
  name = "/${local.app_env}/${local.schema_name}/dynamodbConnectorId"
}

resource "fivetran_connector_schema_config" "dynamodb_schema" {
  connector_id = data.aws_ssm_parameter.ssm_dynamodb_connector_id.value
  schema_change_handling = "ALLOW_COLUMNS"

  schemas = {
    "dynamodb_raw" = {
      enabled = true

      tables = {

        "a5-a-a-x" = {enabled = true}
        "a5-c-r-x" = { enabled = true }
        "a5-d-a-x"  = { enabled = true }
        "a5-d-cs-x" = { enabled = true }
        # "a5-d-ds-x"= {} # vanished error
        "a5-d-hs-x"                  = { enabled = true }
        "a5-d-nw-x"                  = { enabled = true }
        "a5-g-d-dl-x"                  = { enabled = true }
        "a5-i-od-x"      = { enabled = true }
        "a5-i-ods-x" = { enabled = true }
        "a5-l-a-x"                         = { enabled = true }
        "a5-l-l-x"                      = { enabled = true }
        "a5-n-ns-x"    = { enabled = true } # │       attempt to patch locked table a5-n-ns-x; Please report this issue to the provider developers.
        "a5-n-nv3-x"          = { enabled = true }
        "a5-n-rt-x"       = { enabled = true } # │       attempt to patch locked table a5-n-rt-x; Please report this issue to the provider developers.
        # "a5-w-d-s-ltnzt-x"= {} # vanished error
        "a5-w-d-s-lttst-x" = { enabled = true }
        "a5-w-d-s-tst-x"           = { enabled = true }
        "a5-w-d-s-ts-x"                = { enabled = true }
        "a5-w-d-s-wa-x"                 = { enabled = true }

      }

      timeouts = {
        create = "60s"
        read = "60s"
        update = "60s"
      }

    }
  }
}

I tried with and without timeouts, no difference.
Expected behavior
If the tables are locked in Fivetran, I would expect Fivetran to handle that internally.  How are they locked? How do they get unlocked?
Logs & Output
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # fivetran_connector_schema_config.dynamodb_schema will be updated in-place
  ~ resource "fivetran_connector_schema_config" "dynamodb_schema" {
      ~ id                     = "xxx" -> (known after apply)
      ~ schemas                = {
          ~ "dynamodb_raw" = {
              ~ tables  = {
                  ~ "a5-a-a-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-c-r-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-d-a-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-d-cs-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-d-hs-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-d-ns-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-g-d-dl-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-i-od-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-i-ods-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-l-a-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-l-l-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  + "a5-n-ns-x" = {
                      + enabled   = true
                      + sync_mode = (known after apply)
                    },
                  ~ "a5-n-nv3-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  + "a5-n-rt-x" = {
                      + enabled   = true
                      + sync_mode = (known after apply)
                    },
                  ~ "a5-w-d-s-lttst-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-w-d-s-tst-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-w-d-s-ts-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                  ~ "a5-w-d-s-wa-x" = {
                      + sync_mode = (known after apply)
                        # (1 unchanged attribute hidden)
                    },
                }
                # (1 unchanged attribute hidden)
            },
        }
        # (2 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Changes to Outputs:
  ~ object_test = {
      + a5-n-ns-x                  = {
          + enabled = true
        }
      + a5-n-rt-x                     = {
          + enabled = true
        }
        # (16 unchanged attributes hidden)
    }

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Saved the plan to: .terraform/a5.out

To perform exactly these actions, run the following command to apply:
    terraform apply ".terraform/a5.out"
(.venv) ~/ $ AWS_PROFILE="dbf" terraform apply .terraform/$CDK_PREFIX.out

fivetran_connector_schema_config.dynamodb_schema: Modifying... [id=xxx]
╷
│ Error: Unable to Create Connector Schema Resource.
│
│   with fivetran_connector_schema_config.dynamodb_schema,
│   on schema-dynamodb.tf line 25, in resource "fivetran_connector_schema_config" "dynamodb_schema":
│   25: resource "fivetran_connector_schema_config" "dynamodb_schema" {
│
│ Error wile applying schema config patch. error while patching schema dynamodb_raw:
│       attempt to patch locked table a5-n-rt-x; Please report this issue to the provider developers.
╵

even though it says it failed, on the next run, after commenting out it tries to remove (terraform state)
      - a5-n-ns-x                  = {
          - enabled = true
        }
      - a5-n-rt-x                     = {
          - enabled = true
        }

but it is not checked / enabled in the fivetran UI
Plugin version:
    fivetran = {
      source  = "fivetran/fivetran"
      version = "1.1.24"
    }

Additional context
brand new Terraform backend on v1.1.24
if i comment out the first failing one and run again, the second on fails
created a brand new schema and still getting this error
fivetran_connector_schema_config.dynamodb_schema: Modifying... [id=xxx]
╷
│ Error: Unable to Create Connector Schema Resource.
│
│   with fivetran_connector_schema_config.dynamodb_schema,
│   on schema-dynamodb.tf line 26, in resource "fivetran_connector_schema_config" "dynamodb_schema":
│   26: resource "fivetran_connector_schema_config" "dynamodb_schema" {
│
│ Error wile applying schema config patch. error while patching schema dynamodb_raw:
│       attempt to patch locked table a5-n-rt-x; Please report this issue to the provider developers.

why is the table locked?  how do i unlock it?

@ann8ty I need your connection id to investigate the issue.
And also I need a timeline when you were trying to apply these changes to find the logs on API side.

How are they locked? How do they get unlocked?

Most likely it's a streaming tables, but the connector doesn't configured to support streaming. Could you please share a screenshot of schema tab for this connector. The table couldn't be un-locked. You just can't manage it's state.
In UI warning should look like this:

Here in our docs you can read about how to configure streams: https://fivetran.com/docs/connectors/databases/dynamodb/setup-guide#enablestreamsforamazondynamodbtables

even though it says it failed, on the next run, after commenting out it tries to remove (terraform state)

  - a5-n-ns-x                  = {
      - enabled = true
    }
  - a5-n-rt-x                     = {
      - enabled = true
    }

but it is not checked / enabled in the fivetran UI
As a WA I could suggest to not to comment it out, but to set it disabled in config:
"a5-n-ns-x"    = { enabled = false }

In that case Terraform shouldn't try to change it's state.

I wrote automation to confirm that streams were enabled.  They were.  The
automation is attached.
ann5_datainfra_v2_redshift_schema_v2
dynamodb_raw
here is requested screenshot:
[image: schema-config-screenshot.png]
Ann
On Mon, Jun 17, 2024 at 9:14 AM Vitaly Mosin @.***>
wrote:

How are they locked? How do they get unlocked?
Most likely it's a streaming tables, but the connector doesn't configured
to support streaming. Could you please share a screenshot of schema tab for
this connector. The table couldn't be un-locked. You just can't manage it's
state.
In UI warning should look like this:
image.png (view on web)
https://github.com/fivetran/terraform-provider-fivetran/assets/73104048/d90d8389-7644-4d6f-8c75-3f758aff1429
Here in our docs you can read about how to configure streams:
https://fivetran.com/docs/connectors/databases/dynamodb/setup-guide#enablestreamsforamazondynamodbtables
—
Reply to this email directly, view it on GitHub
https://github.com/fivetran/terraform-provider-fivetran/issues/313#issuecomment-2173681986,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXLQTFJFWHB2KHPHQ3OGKGDZH34L5AVCNFSM6AAAAABIYZBN7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZTGY4DCOJYGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Could we work over support channel to provide additional info if you need it, such as IDs?

Sure, it's always an optiona to file a support ticket to Fivetran support.
Actually - the table could be deleted from source.
I'm currently adding more detailed output for this error, we will provide reason for lock in output. So it should be easier to figure out what is the reason.

I'm currently working on these issues you've reported. So the main problem is with validation. Once you've provide a setting for a table that might be later removed from source (on the source DB side) - it will lead to element vanished issue.
Once you've made a mistake in some table name -> you'll get element vanished on first refresh after creation etc.
So now I'm thinking to rework the resource input validation and introduce two modes: Strict and Soft.
On Strict mode we will return error on attempt to setup any settings for schema/table/column that isn't represented in source schema. On Soft - just write a warning into terraform diagnostics output, but apply and save in state everything you've provided in .tf.

It is very unlike there were no "mistakes" in table names, the names are read via code into a json file, then TF reads directly from the json file.  The tables were not new, either, having existed in fivetran for over a year.

The issue should be fixed by v1.2.0.
Now we introduced precise validation for schemas/tables names. So provider will fetch recent schema from source if won't be able to find some table.

TF reads directly from the json file

And where this json file comes from?

Closing the issue as the fix was released. Feel free to re-open or open a new one id the fix didn't work for you.


Update calico install in e2e test

Signed-off-by: Paul S. Schweigert<EMAIL_ADDRESS>

@jwcesign can you take a look at the failing cri-o tests?

sure

Hi, @psschwei , so it doesn't need to be fixed?

Yeah, given #217 we can ignore these


PRs not closed on master branch show up in changelog

Sorry if this is a silly question that's been answered elsewhere (something similar seems to have been discussed in #37 and #60), or if I'm overlooking any option that takes care of this (I tried --since-tag, --no-unreleased and --filter-by-milestone) but I really like the output from the changelog generator and would love to use it for my project, and while I could manually edit the output now, that's an unattractive option in the long term.
Essentially, we're working with a GitHub Gitflow model, where we have a development branch for new features and major changes, and a release branch to be able roll out bug fixes. For example, we now released v5.2.1 from the release branch (merging it into master and adding a tag), while the next release from the development branch will be 5.3.
When I run the github_changelog_generator , it correctly detects that v5.2.1 is the latest release. However, it also lists issues and PRs that only got closed on the development branch since v5.2.0 as a part of the v5.2.1 release, even though those commits have not been released (i.e. they're only contained in the development branch, not the master branch). The Github release page correctly identifies that there have been 276 commits to development since release of 5.2.1, but that info does not seem to be carried over to the changelog generator.
Even issues and PRs that were assigned to a different milestone get included in the changelog generated.
Any help greatly appreciated, happy to send some output examples if needed. Would love to be able to add another entry to the list of projects that use the changelog generator!

@asgeirbirkis Yes, I know about this behaviour. I think it's time to create separate issue for this.
It could be solved, if we find a way to check, is PR was merged to master or not. But I have no idea, how to check it with GitHub API

@skywinder Thanks for the quick reply. Afraid that I'm not an expert on the GitHub API, but would something like grabbing the sha of the last commit in the PR, and check whether it exists in the lists of commits on the branch work? The first tag that the PR's commit appears in would then be the version it belongs to.
Although as I said, not an expert on this, so not sure how feasible this plan is. Maybe somehow make further use of the milestones might be an option as well?

Also seeing PR's merged on other branches as opposed to Master, looking at this https://developer.github.com/v3/pulls/#parameters seems like base would be the correct Parameter to use as a pull branch filter. Not to be confused with the --base option in generator.

I tried this myself but not sure this is the best first time ruby project.
https://github.com/skywinder/github-changelog-generator/blob/master/lib/github_changelog_generator/fetcher.rb#L126
I believe this would work to only get the pull requests on branch master. Obviously turning it into an option would make the most sense.
response = @github.pull_requests.list @options[:user], @options[:project], state: "closed", base: "master"

So now I have managed to get it to build and can tweak these values. But the next issue seems to be app pulls all issues and then filters that to a list of pull requests. Then it is only using pull_requests.list for merged dates, once it compares it's filtered list to the result of pull.requests.lists it hits null issues as I filtered the pull list by base: "master". So the two lists are not equal.
Any reason why it retrieves issues and pr's together, I am still digging, so someone may already know.

@SteveGilvarry thanks a lot for your research! :+1:

Any reason why it retrieves issues and pr's together

Since PR's is subtype of issue - it retrieves them all together.

@skywinder yes I got to that eventually including the notes all over the github api about issues and pull requests being a lot closer in the past. Surprised they haven't implemented a filter for issues and pr's on that.
Anyway I was thinking using the Pull Request API with a Base option to pass in the branch as a way to filter the pull request list. At the moment it assumes a match for everything in the list, so as soon as it fails start getting Nil errors.  I really have zero ruby skills so if that is something you have time for go ahead an swap it, if not I will play over the weekend and see if I can teach myself enough to fix it.

@SteveGilvarry Cool! :+1:  Get in touch m8! Actually don't have a time to work on it. Hope I can back to project  1-2 weeks later,

Look like @SteveGilvarry got up and running in Ruby and wrote the #305 PR to fix this!

Great, looking forward to try this out!


Duplication of source parameter on PUT route?

Hey team,
Hoping to put together some quick notes on usage of the API. It seems as though the PUT route in https://github.com/sourcelair/ceryx/blob/master/api/ceryx/api/views.py requires a source both in the URL as well as requiring a source as an explicit parameter. Am I correct in my reading of this?
If I PUT {"target":"<IP_ADDRESS>:80"} to '/api/routes/test', I am told that a source is required.
I I PUT {"source":"test","target":"<IP_ADDRESS>:80"} to '/api/routes', the method is not allowed.
The only way I can get it to function is by submitting {"source":"test","target":"<IP_ADDRESS>:80"} to '/api/routes/any_words_here' where any_words_here is required but not used and doesn't have to match the source parameter.

Hey @JoshBrodieNZ - you are correct. I have drafted a PR that should fix this: #26

Closing after #26 was merged.


gbk panic：character set not supported

The OS‘s env:
#echo $LANG
zh_CN.gbk
And the code:
        t.keytimer = time.NewTimer(time.Millisecond * 50)
	t.charset = "UTF-8"

	t.charset = getCharset()
	if enc := GetEncoding(t.charset); enc != nil {
		t.encoder = enc.NewEncoder()
		t.decoder = enc.NewDecoder()
	} else {
		return ErrNoCharset
	}

@gdamore This is not my OS,I can't change LANG to UTF-8 or any other env. how to fix???

GBK is a legacy 16-bit encoding.  Very surprising to see it -- would have expected GB18030 -- which is the newer Unicode compatible set.
I don't think the encoding library supports GBK at this time.  However, there is a standard encoding/simplifiedchinese package that might be useful.
I don't really know anything about these encoding or character sets.  I'll look to see if there is something easy I can do.

Good news.
There is already a function called "RegisterEncoding" in tcell, and there is a GBK text encoding package.
So you can do:
import "golang.org/x/text/encoding/simplifiedchinese"

tcell.RegisterEncoding("GBK", simplifiedchinese.GBK)

You might also do so for GB18030 and HZGB2312 if you need to.

Also if you don't care about binary size, I have a pre-baked package you can just import:
import "tcell/v2/encoding"
This registers pretty much the entire set of reasonable ISO 8859, East Asian, and Cyrillic (KOI8) encodings.

Oh, you have to do "encoding.Register()" to get them registered. :-)

And if you pull from master, you'll get a change I just made which means all you have to do is import the tcell/v2/encoding package to get them all.


M_LOCK / structure / malloc

The interface of M_LOCK prevents it from being used as a member of a structure or being allocated by malloc: it shall always be a global variable.
This limitation may not be pertinent.

I am not sure it is pertinent to have such feature.
Maybe allowing a mutex inside M_LOCK will be a better designed solution.


error exchanging access code with OAuth2 provider (Google login, RealmSwift iOS SDK)

!!! MANDATORY TO FILL OUT !!!

Goals
Use Google Sign In instead of email/password for users
Expected Results
After running google sign in, user should be logged into Realm and presented with tableview
Actual Results
Login Failed: error exchanging access code with OAuth2 provider', code: 47
Steps for others to Reproduce
Setup googlesignin in your iOS app
Have fully working Realm integration that works with email/password
Switch FROM:
app.login(withCredential: AppCredentials(username: username!, password: password!)) { [weak self](user, error) in
TO:
app.login(withCredential: AppCredentials.init(googleToken: gToken!)) { [weak self](user, error) in
See error when calling login with google token instead of username/password combo for new user
Likely related to https://github.com/realm/realm-js/issues/3116
Code Sample
N/A
Version of Realm and Tooling
ProductName:	Mac OS X
ProductVersion:	10.15.6
BuildVersion:	19G73
/Applications/Xcode.app/Contents/Developer
Xcode 11.7
Build version 11E801a
/usr/local/bin/pod
1.9.3
Realm (10.0.0-beta.2)
RealmSwift (10.0.0-beta.2)
RealmSwift (= 10.0.0-beta.2)
/bin/bash
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
carthage not found
(not in use here)
/usr/bin/git
git version 2.24.3 (Apple Git-128)
Realm framework version: 10.0.0-beta.2
Realm Object Server version: 10.0.0-beta.2 ? (not sure)
Xcode version: 11.7
iOS/OSX version: testing iOS 13. on MAC 10.15.6
Dependency manager + version: N/A?

Please update to 10.0.0-beta.4. If that does not work still, please consult the examples for how to setup Google auth.

@jsflax  I was trying to upgrade to beta4 but then it won't compile because it complains about
let app = RealmApp(id: Constants.REALM_APP_ID)
Use of unresolved identifier 'RealmApp'
and
app.login(withCredential: AppCredentials.init(googleToken: gToken!))
Use of unresolved identifier 'AppCredentials'
And will not compile

@FaultyJuggler Try App instead of RealmApp

@ianpward thanks, I went through and updated about 10 lines that needed changing from beta2 to beta4, but still when I run I get
"error exchanging access code with OAuth2 provider" UserInfo={NSLocalizedDescription=error exchanging access code with OAuth2 provider, realm::app::ServiceError=AuthError}

Hi @FaultyJuggler ,
Could you please try the workaround described in realm-js/issues/3116

The API documentation has been confusing: you should use the auth code (and not token) as parameter. We have updated it in #3267 and it will be included in the next release.

@FaultyJuggler
Could you please try our release candidate? We've changed the Credentials to an enum, which is more explicit about what you need to pass in. You can create credentials with:
let credentials = Credentials.google(serverAuthCode: "serverAuthCode")

where the serverAuthCode is retrieved from the Google sdk with these instructions.
Let me know if this sorts out the error. If not, please post the full stack trace and we can keep working on this.

Closing because inactivity - If you're still having issues please comment and we can re-open if needed.

@ericjordanmossman
Finally got updated to Realm 10 official, made all the changes to switch over to using Google Sign in rather than email password, now:
Login failed: Error Domain=realm::app::ServiceError Code=47 "error exchanging access code with OAuth2 provider" UserInfo={NSLocalizedDescription=error exchanging access code with OAuth2 provider, realm::app::ServiceError=AuthError}
The sign in is working fine on google's end, and I am getting a valid serverAuthCode, but when I pass it in, no go

@ericjordanmossman for clarity when setting up google oauth info within the Realm UI on the mongodb website, should the cliendID and secret be the same as what's set in the iOS app?  Or should it be different?  Currently I generated a clientID and secret for each separately.

I had to use OpenID Connect instead. Was getting error exchanging access code with OAuth2 provider error when tried to use Credentials.google(serverAuthCode:)

@anton-plebanovich Could you explain more?

Hi @ericjordanmossman not sure what to explain I tried to follow the guide of how to use Google Auth and ended up getting error exchanging access code with OAuth2 provider in the end. I'm also using accounts linking before the first login but not sure if it's the reason. The strange thing though it that accounts are linked but login fails afterward.


MultiSelectTreeView does not use template from ItemTemplateSelector

I am trying to use a ItemTemplateSelector so that templates are chosen via coding. However, I am noticing that the actualy content from my template isn't being used, but it is working somewhat since if I remove the ItemsSource="{Binding Children}" from the template it not longer shows the children items. I am unable to do the templates in pure XAML since I have 50+ classes that extend from the Event class. I am able to use a ItemTemplateSelector with a normal TreeView just like this.
<local:ItemTemplateSelector x:Key="ItemTemplateSelector">
            <local:ItemTemplateSelector.EventTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                    <TextBlock Text="EventTemplate" />
                </HierarchicalDataTemplate>
            </local:ItemTemplateSelector.EventTemplate>
</local:ItemTemplateSelector>

<Controls:MultiSelectTreeView x:Name="tree" ItemsSource="{Binding Children}" DockPanel.Dock="Bottom" ItemTemplateSelector="{StaticResource ItemTemplateSelector}">
</Controls:MultiSelectTreeView>

public class ItemTemplateSelector : DataTemplateSelector
    {
        public DataTemplate EventTemplate { get; set; }

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            System.Diagnostics.Debug.WriteLine(item.GetType());

            if (item is Event)
                return EventTemplate;

            return null;
        }
    }

I've never used template selectors before, so could you provide me a test case application where I can investigate the issue?

https://dl.dropboxusercontent.com/u/7231478/WPFTesting.zip
I copied the included Demo and made the necessary changes to show what I was talking about. You can also comment out the  <Controls:MultiSelectTreeView.ItemContainerStyle> section and switch it to a TreeView to show that it does work with a normal TreeView. I have included some Debug Output in ItemTemplateSelector and shows you that it is being called. You can also remove the ItemsSource="{Binding Children}" in the template it is using to see it is using the template somewhat to show the children.

I can see the issue, but I'm sorry I don't know how to fix it. Maybe someone with TemplateSelector experience might know it? Could it be that TemplateSelector support requires additional coding and the WPF framework can't do it automatically? At least I can't find any code in the library that would refer to a template selector. If that's the case, I'd say that this control simply doesn't support using TemplateSelectors.

Did some digging around and noticed there was another project that happened to have the same issue. Appears it was solved by editing the themes for the custom TreeViewItem. Already submitted a pull request with the necessary changes and it appears to work.
https://treeviewex.codeplex.com/SourceControl/changeset/72693

Thank you for digging around and providing the fix. I have merged it into the repository and uploaded an updated NuGet package version.


Fix common.yaml

Should PDK update perhaps be its own pull request? Looks good otherwise!

I don't that's worth the extra effort for these two minimal commits :)


fix(signature-help): Crash on negative index

Issue: Typing Console.wri( in a C# project with the C# extension would crash.
Defect: We were getting an exception - an Invalid_argument List.nth:
[ERROR]    +0ms Oni2.Exception : Exception (Invalid_argument List.nth):
Raised at file "stdlib.ml", line 30, characters 20-45
Called from file "src/Feature/SignatureHelp/Feature_SignatureHelp.re", line 476, characters 6-52
Called from file "src/Feature/SignatureHelp/Feature_SignatureHelp.re", line 639, characters 6-251
Called from file "src/UI/EditorView.re", line 122, characters 10-432

The code hitting this is:
    let maybeSignature: option(Signature.t) =
      List.nth_opt(model.signatures, signatureIndex);
    let maybeParameter: option(ParameterInformation.t) =
      Option.bind(maybeSignature, signature =>
        List.nth_opt(signature.parameters, parameterIndex)
      );

A bit confusing - because we're using List.nth_opt, which I'd assume wouldn't throw, and would just return None if the index is invalid. However - looking at List.nth_opt - it's implemented like this:
let nth l n =
  if n < 0 then invalid_arg "List.nth" else
  let rec nth_aux l n =
    match l with
    | [] -> failwith "nth"
    | a::l -> if n = 0 then a else nth_aux l (n-1)
  in nth_aux l n

https://github.com/ocaml/ocaml/blob/8b6241c64c8e02a02daa7c4aa6c2181238023834/stdlib/list.ml#L46
If the index is less than 0 - it still throws.... I wonder if this is intentional? It seems confusing.
Fix:
In any case - I switched to use Base.List.nth which has the behavior we expect.

Opened a PR here: https://github.com/ocaml/ocaml/pull/9816


Validated defaults for userretention settings

qa-task : https://github.com/rancher/qa-tasks/issues/1487
https://github.com/rancher/rancher/issues/46555

The development code is not merged / not planned to release and i m closing this PR.


Completions that start with a "$" are not extracted correctly

The last_row, last_col logic causes $_POST to become _POST et cetera.
I have removed this logic in favor of getting intelephense to work correctly.
We should rethink the edit range of the TextEdit.
@nanoant, I would like to test these changes with https://github.com/PowerShell/PowerShellEditorServices. I fired up my windows machine, installed Powershell 6, cloned the repository, and ran the instruction in the repository. But I don't understand how to actually run the server with SublimeText. What do I put in my "clients" dict to run the server?

@rwols Hi, no need for Windows, it works also well on Linux/macOS. Actually I have left my Windows dev machine at work so I don't have it home. So if you don't mind I will try to give you recipe for running Editor Services on macOS/Linux.

Install PowerShell Sublime module, so you get source.powershell scope.

Install pwsh on Linux/macOS, either via brew or something else. I use NixOS package manager for the example below.

Download latest (I think 2.0.0-prev) PowerShellEditorServices

Extract PowerShellEditorServices/PowerShellEditorServices subfolder (NOT main folder) from PowerShellEditorServices.zip into PowerShell Modules folder, i.e.:

%UserProfile%\Documents\WindowsPowerShell\Modules on Windows
~/.local/share/powershell/Modules on Linux/macOS

Use following entry in your user LSP.sublime-settings:
"pwsh":
{
	"command":
	[
		"~/.nix-profile/bin/pwsh",
		"~/.local/share/powershell/Modules/PowerShellEditorServices/Start-EditorServices.ps1",
		"-BundledModulesPath", "~/.local/share/powershell/Modules/PowerShellEditorServices/bin",
		"-HostName", "SublimeText",
		"-HostProfileId", "SublimeText",
		"-HostVersion", "3.0",
		"-Stdio",
		"-LogPath", "$TMPDIR/PowerShellEditorServices.log",
		"-LogLevel", "Diagnostic",
		"-SessionDetailsPath", "$TMPDIR/SessionDetails.json",
		"-FeatureFlags", "PSReadLine"
	],
	"enabled": true,
	"scopes": ["source.powershell"],
	"syntaxes": ["Packages/PowerShell/Support/PowershellSyntax.tmLanguage"],
	"languageId": "PowerShell"
},

NOTES:

~/.nix-profile/bin/pwsh is my macOS PowerShell interpreter path, may be different for you. On Windows command is called powershell not pwsh.
-BundledModulesPath seems to be necessary for macOS (my installation).
-FeatureFlags seems to be necessary too on macOS, otherwise you get cryptic error, and you need to look into $TMPDIR/PowerShellEditorServices.log to know what happened.
-Stdio has to be explicitly specified, otherwise it goes through TCP I believe. I had once a problem with -Stdio on Windows, but on macOS seems to work just fine.
Finally I recommend first trying running the command directly from command line, e.g. pwsh ~/.local/share/powershell/Modules/PowerShellEditorServices/Start-EditorServices.ps1

Run Sublime with some simple Test.ps1 file, you should see some completion when trying to type Get- e.g.

Good luck & let me know if it works for you.

Nice! I actually got it working on my MacBook. Some initial impressions:

"filterText" over "label" really is the Right Way (tm) for SublimeText.
Completion for $env: is replaced in my text buffer with $$env:, oops!
Completion for something that does not end with a colon seems to be working alright: $Error, $ErrorView etc.
As an aside it is strange that $ is not a trigger character according to the server:

>>> view.settings().get("auto_complete_triggers")
[{'selector': 'text.html', 'characters': '<'}, {'selector': 'source.powershell', 'characters': '.-:\\'}]

The fact that we end up with two dollar-signs for $env might also be a bug of sublime text. Consider this simple completion provider:
import sublime_plugin

class TestEventListener(sublime_plugin.ViewEventListener):
    def on_query_completions(self, prefix, locations):
        return [
            ("$foooooooooo", "\\$foooooooooo"), #1
            ("%foooooooooo", "%foooooooooo"),   #2
            ("$foooooo:ooo", "\\$foooooo:ooo"), #3
            ("%foooooo:ooo", "%foooooo:ooo"),   #4
            ("foo$oooooooo", "foo\\$oooooooo"), #5
            ("foo%oooooooo", "foo%oooooooo"),   #6
            ("@foo$ooooooo", "@foo\\$ooooooo"), #7
            ("!foo!ooo!ooo", "!foo!ooo!ooo")    #8
        ]

(1) and (2) work correctly.
With (3) and (4), we end up with double dollar-signs, or double percent-signs. It does not matter wether it is a dollar-sign, it seems to happen with every non-word character.
(5) and (6) work correctly, perhaps because the initial character is not a non-word character.
(7) and (8) behave like (3) and (4) in that the initial non-word character @ and ! are not replaced.

In all the bad cases (3), (4), (7), (8) there are more than one non-word characters in the replacement text.

Also, the following completion item works perfectly fine:
("foo$o$oooooo", "foo\\$o\\$oooooo")

So there seems to be a bug in the following situation:

The first character of the replacement text is a non-word character.
There is another non-word character in the replacement text.

I think these two commits make intelephense and PowerShellEditorServices work nicely with as minimal view state as possible, using only the word separators of the view. I have also added completion samples for PowerShellEditorServices so that anybody can screw around with the completion handling logic and verify that things keep working as intended.

Coverage increased (+0.02%) to 26.62% when pulling cedb5b2157277be7570d9e3a9c35ce75d02a7443 on bugfix/dollar-sign-completions into 7d249e75a9a17f75ec3bf7cb4d837c8e6c25fc63 on master.

Great that you're testing the powershell server and documenting the behaviour.
It looks like we're trading one complexity for another, as I didn't fully understand the previous behaviour either I'd really like @nanoant 's comments on the new logic?

It took me a while but I think I have finally nailed down the problem. I switched to latest LSP's master and started testing PowerShellEditorServices and surprisingly the completion was not at first working as intended, when completing $Env:U the whole text was replaced to USER but I should end up with $Env:USER there 🙄

But then I was thinking what has changed since my commit ed7d7a2a90a227dfa92f8eb1d23fe30c20d58c22 and I came across @rwols commit f4b4ce93ef9ef4da4ec97171fdcc6536b2c1aa3f and new prefer_label_over_filter_text. I switched it on, so the went back to the old behavior as in time of my commit. And it worked fine, this is what I got:

But wait, the only difference between prefer_label_over_filter_text on and off is the label, but apparently the label makes a difference how to Sublime Text completes the text. My sane assumption was that Sublime Text is replacing the prefix as it is supplied to on_query_completions(self, prefix, locations) but I was WRONG, apparently it tries to replace the label! 🤒
But what if the label is even not there in the text!? Then I have no clue what is the replacement.
I would really would like to have @wbond and official Sublime Text powers involved in this LSP support and I believe that only reasonable way to handle this is to have deterministic way to replace the buffer using custom range and text when completion is selected. Otherwise we can just guess what is Sublime Text logic and we will never come to some solid solution.
Therefore I will reference also here this: https://github.com/SublimeTextIssues/Core/issues/2754
@rwols And finally I have tested this PR bugfix/dollar-sign-completions branch, and unfortunately
it does not work at all with PowerShell, neither with:

settings.prefer_label_over_filter_text on

or settings.prefer_label_over_filter_text off

So I believe we will need to find other way.

It seems I was too quick to open this draft work for review :)

when completing $Env:U the whole text was replaced to USER but I should end up with $Env:USER there

Yes, I only tested it by typing $Env:, that part works.

new prefer_label_over_filter_text. I switched it on, so the went back to the old behavior as in time of my commit. And it worked fine, this is what I got:

It looks like this also doesn't work as intended here :(
Note that in f4b4ce93ef9ef4da4ec97171fdcc6536b2c1aa3f I had also removed this line, which seems to make things work for Powershell & PHP. git blame shows that this was done to close this issue (the issue boils down to the language server having "decorated labels") However, it has the undesired effect of showing snippets verbatim. So in order to fix that I chose to use filterText (fallback to label), which now breaks PHP and Powershell.

I believe that only reasonable way to handle this is to have deterministic way to replace the buffer using custom range and text when completion is selected.

Agreed. It's impossible to maintain all language server's assumptions. Explicit replacement ranges are the true fix. We haven't even tried tackling this yet, which I think is impossible without an explicit replacement range.

So I believe we will need to find other way.

Yep. Though, are you sure using the label works correctly for Powershell? It doesn't work for PHP.
Let's not merge this right now.

Just found this from the other thread about the first character being cut off. Here is the PHP example:


fix: removed metro-minify-esbuild from expo project

as discussed in Solito Issue #32 metro-minify-esbuild causes android builds (didn't test on IOS) to result in a blank screen app
https://user-images.githubusercontent.com/37480915/160510233-defaee67-c770-41d8-a487-795797162691.mp4
removing this dependency fixed the problem for me

Odd, maybe this requires opening an issue in metro-minify-esbuild. I'll open an issue there for reference.

merged, thanks!


Segmentation fault when passing data stored in Dictionary to user function

The issue I'm describing here is somewhat similar to the one described in #3 .
As in that case, I try to pass additional parameters to my user function. However, the data is not stored in a Vector, but in a dictionary. It works fine with KINSOL:
Initialization of solver:
flag = Sundials.KINInit(kmem, cfunction(wuet_stat, Int32, (Sundials.N_Vector, Sundials.N_Vector, Dict{AbstractString,Any})), nvector(y))
wuet_stat is the user function, additional data is stored in a dictionary called pass_data
flag = Sundials.KINSetUserData(kmem, pass_data)
The header of my user function looks like this:
function wuet_stat(u_in, fu_in, dict_in)
Now, I tried to implement the same strategy in a dynamic model using IDA as solver:
Initialization of solver:
flag = Sundials.IDAInit(mem, cfunction(wuet, Int32,                                            (Sundials.realtype, Sundials.N_Vector, Sundials.N_Vector, Sundials.N_Vector, Dict{ASCIIString,Any})),                             time[1], nvector(u), nvector(up))
with IDASetUserData and my user function set up in the same way as in the case with KINSOL as solver. When I try to access the dictionary from the user function, the julia REPL terminates instantly, throwing a segmentation fault. Any idea, what needs to be done to the Sundials interface?

Our new interfaces are able to handle this kind of stuff just fine using things like closures, so I'm closing this as something doesn't need action anymore.


Promote VPAForETCD and VPAAndHPAForAPIServer feature gates to GA

How to categorize this PR?

/area auto-scaling
/kind enhancement
What this PR does / why we need it:
This PR promotes the VPAForETCD and VPAAndHPAForAPIServer feature gates to GA and locks them to true. The related code is not cleaned up now as we agreed with @ialidzhikov to do it after we deprecate the HVPA and HVPAForShootedSeed feature gates  in v1.106 and afterwards remove the feature gates, clean-up the related code and update the auto-scaling documentation in v1.107.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

The `VPAForETCD` and `VPAAndHPAForAPIServer` feature gates have been promoted to GA and locked to `true`.

/assign

Summarizing 2 Failures:
  [FAIL] Seed controller tests when seed namespace exists when internal domain secret exists when global monitoring secret exists [It] should properly maintain the last operation and deploy all seed system components
  /home/prow/go/src/github.com/gardener/gardener/test/integration/gardenlet/seed/seed/seed_test.go:581
  [FAIL] Seed controller tests when seed namespace exists when internal domain secret exists when global monitoring secret exists when seed cluster is garden cluster at the same time [It] should not manage components managed by gardener-operator
  /home/prow/go/src/github.com/gardener/gardener/test/integration/gardenlet/seed/seed/seed_test.go:609

/test pull-gardener-integration

[FAILED] Timed out after 10.000s.
  Expected success, but got an error:
      <*errors.StatusError | 0xc0029419a0>:
      servicemonitors.monitoring.coreos.com "garden-gardener-operator" not found
      {
          ErrStatus: {
              TypeMeta: {Kind: "", APIVersion: ""},
              ListMeta: {
                  SelfLink: "",
                  ResourceVersion: "",
                  Continue: "",
                  RemainingItemCount: nil,
              },
              Status: "Failure",
              Message: "servicemonitors.monitoring.coreos.com \"garden-gardener-operator\" not found",
              Reason: "NotFound",
              Details: {
                  Name: "garden-gardener-operator",
                  Group: "monitoring.coreos.com",
                  Kind: "servicemonitors",
                  UID: "",
                  Causes: nil,
                  RetryAfterSeconds: 0,
              },
              Code: 404,
          },
      }
  In [It] at: /home/prow/go/src/github.com/gardener/gardener/test/integration/operator/garden/garden/garden_test.go:[433](https://prow.gardener.cloud/view/gs/gardener-prow/pr-logs/pull/gardener_gardener/10599/pull-gardener-integration/1841378064420835328#1:build-log.txt%3A433) @ 10/02/24 07:25:37.01

Occurrence of https://github.com/gardener/gardener/issues/10576
/test pull-gardener-integration

/retest

/test pull-gardener-e2e-kind-ha-single-zone


OSD-13619: Defining obsctl-reloader credentials variables for new hypershift-platform tenant

This indirection is needed this RHOBS-481 is implemented.
Parameter HYPERSHIFT_PLATFORM_RELOADER_SECRET_NAME hold the secret name.
I opened the secret in vault and on the RHOBS instance and I confirm that the field client-id and client-secret

Hum, I modified what appear to be generated files... Changed that


fix: explicit "types" condition

When using package.json "exports" and "import" / "types" have different paths, explicit "types" condition is needed.
Ref: packagejson-exports
fix #95

is this released? I don't see it in version 1.5.2?

Would be amazing to have this released as it fixes the typescript error we get right now.


⚠ ClamAV has degraded performance

In 28205d4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 80 ms

Resolved: ClamAV performance has improved in 99d9916 after 5 minutes.


No auth window

Uncaught (in promise) TypeError: "list" argument must be an Array of Buffers
at Function.concat (index.js?9e97:399:1)
at base58Encode (keys.js?de0d:36:1)
at base58CheckEncode (keys.js?de0d:39:1)
at publicKeyToAddress (keys.js?de0d:44:1)
at Module.makeAuthRequest (messages.js?86ba:44:1)
at UserSession.makeAuthRequest (userSession.js?4954:57:1)
at _callee$ (auth.esm.js?6bbc:66:1)
at tryCatch (runtime.js?ad1f:63:1)
at Generator.invoke [as _invoke] (runtime.js?ad1f:294:1)
at Generator.eval [as next] (runtime.js?ad1f:119:1)
Using Hiro Web Wallet 3.10.0
"@stacks/connect": "^6.6.0",
"@stacks/auth": "^4.3.0",
found on
Chromium: Version 102.0.5005.115 (Official Build) snap (64-bit)
Firefox: 100.0.1 (64-bit)
OS: Ubuntu Linux 22.04

Mind providing the code snippet and context in which you're seeing this?

Getting the same error when trying to upgrade @stacks/connect. No auth code has changed, PR here https://github.com/arkadiko-dao/arkadiko/pull/508/files
We're still doing const { doOpenAuth } = useConnect(); and then just calling doOpenAuth() when clicking the connect wallet button.

Btw I isolated this to just upgrading @stacks/connect in that PR and I get the same error. I'm not sure if this is a bug or some dependency conflict

@philipdesmedt Any updates on your end as you've worked on troubleshooting, or are you still facing the same as reported above?

@markmhx still the same.. I've been working with @kyranjamie to find a solution but nothign so far.. seems like public key is an UInt8Array and should be a buffer

I believe this is fixed this in Stacks.js v4.3.2. I tested here: https://github.com/janniks/arkadiko/commit/603f73d6c4f707083bd032a56675b9282cc35cfa connect popup appears correctly.

@janniks @kyranjamie @markmhx
just upgraded to v4.3.2 for both auth and encryption packages and I can confirm the popup now appears!
thanks to all of you for spending time on this and getting it fixed! 🎉


Change the position of menu button

I want to change the menu button position n make a good look size that looks great.
Please assign me this issue.

okay :)

Can I work on this issue? I'm a participant of LGM Soc21.


App crashes with [FATAL:flutter/fml/raster_thread_merger.cc(48)] Check failed: success. Unable to merge the raster and platform threads.

Steps to Reproduce
This is a problem that occurred in production.
I can't reproduce this issue. I just found the native crash log.
This crash has happened several times

Logs
 Key log：flutter : [FATAL:flutter/fml/raster_thread_merger.cc(48)] Check failed: success. Unable to merge the raster and platform threads.

crash stack：

#6. raster(25304)

SIGABRT

1 #00 pc<PHONE_NUMBER>035898 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) [arm64-v8a::f6cc5d2d702265511937b56460b37693]
2 #01 pc<PHONE_NUMBER>007914 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
3 #02 pc<PHONE_NUMBER>02e248 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
4 #03 pc<PHONE_NUMBER>069d04 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
5 #04 pc<PHONE_NUMBER>022610 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
6 #05 pc<PHONE_NUMBER>05bc80 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
7 #06 pc<PHONE_NUMBER>05c5e8 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
8 #07 pc<PHONE_NUMBER>05c07c /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
9 #08 pc<PHONE_NUMBER>063b28 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
10 #09 pc<PHONE_NUMBER>02f09c /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
11 #10 pc<PHONE_NUMBER>031f20 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
12 #11 pc<PHONE_NUMBER>00a3d0 /system/lib64/libutils.so (android::Looper::pollInner(int)+832) [arm64-v8a::7d3aa105c5ce1c9b910da9de8b7357ae]
13 #12 pc<PHONE_NUMBER>009ff0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+56) [arm64-v8a::7d3aa105c5ce1c9b910da9de8b7357ae]
14 #13 pc<PHONE_NUMBER>00164c /system/lib64/libandroid.so (ALooper_pollOnce+96) [arm64-v8a::2e1747d0693d9035b3cc8e6ce5a722d2]
15 #14 pc<PHONE_NUMBER>032030 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
16 #15 pc<PHONE_NUMBER>02e950 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
17 #16 pc<PHONE_NUMBER>030830 /data/app/com.inke.webuy-kBPUzX49AEpHpakUmT4Jaw==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
18 #17 pc<PHONE_NUMBER>099110 /apex/com.android.runtime/lib64/bionic/libc.so (retrying_poll+100) [arm64-v8a::f6cc5d2d702265511937b56460b37693]
19 #18 pc<PHONE_NUMBER>037314 /apex/com.android.runtime/lib64/bionic/libc.so [arm64-v8a::f6cc5d2d702265511937b56460b37693]

flutter doctor -v
[✓] Flutter (Channel unknown, 2.5.3, on macOS 11.4 20F71 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.5.3 at /Users/byh000/dev/flutter
    • Upstream repository unknown
    • Framework revision 18116933e7 (5 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/byh000/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2019.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • YOK AN10 (mobile) • AWMCUT1329003244 • android-arm64  • Android 10 (API 29)
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 95.0.4638.69

! Doctor found issues in 1 category.

Hi @byh000, thanks for filing the issue.
Can you provide a list of devices affected by this crash?
Also, is that all there is to the crash log you have in the initial post? Or is there more information you can provide?
Also, did this issue start occurring when you upgrade from 2.2.3 to 2.5.3?
Thank you

Dear @danagbemava-nc
Thanks for your replay!
My app is develop on 2.2.3. This issue start from  flutter 2.2.3 .  Then I  upgrade flutter 2.2.3 to 2.5.3.
But flutter 2.5.3 still exist this issue.
Device list  Huawei P40Pro 、Huawei P30、HuaweiMate30、oppo realme Q2、XiaoMi MI8、Vivo Y50 and any more.
Android System version from 7.1.1 to 10.
And I can't get more information. because I did not reproduce this issue on my device.

Hi @byh000, thank you.
If you do find a way to reproduce, kindly update this thread and if you find any more information to share, kindly share it.
Labelling for further investigation

I have the same issue; although when using Google Maps package and universal links. My app's first page consists of a single GoogleMap widget. I also have added universal link support for a domain (e.g. example.com). Then I first open the app and move it to background (without closing it). And finally I try to open a link with example.com domain (e.g. by running the command adb shell 'am start -W -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://example.com/test"'). The app comes to the foreground but then immediately crashes.

Well I found what was causing the app to crash. In my code I had this section:
if (defaultTargetPlatform == TargetPlatform.android) {
  AndroidGoogleMapsFlutter.useAndroidViewSurface = true;
}

When I removed it, it worked just fine!

Hi @byh000, can you share your pubspec.yaml, app/build.gradle and build.gradle?
Thank you

Dear @danagbemava-nc  I cannot share the all contents of the file. What key information do you need？
And I found a similar  issue (#27662) . Do you known which flutter version solves this issue？

The plugins/packages you're using within your project. It's possible that the issue is coming from one of them

this is my pubspec.yaml

Dear @danagbemava-nc
This is a part of my pubspec.yaml  contents.
description: A new Flutter application.
publish_to: none
version: 1.0.0+1
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
provider: ^5.0.0
device_info: ^2.0.2
get: ^4.3.8
sensors: ^2.0.3
vibration: ^1.7.3
path_provider: ^2.0.2
flutter_smart_dialog: 2.1.8
connectivity: 3.0.6
flutter_swiper_null_safety:
git:
url: https://github.com/lianyagang/flutter_swiper_null_safety
ref: master
encrypt: 5.0.1
flutter_easyloading: ^3.0.3
flutter_splash_screen: ^0.3.0
cupertino_icons: ^1.0.0
jshare_flutter_plugin: 2.1.2
flutter_image_compress: 1.1.0
cached_network_image: 3.1.0
flutter_easyrefresh: ^2.2.1
svgaplayer_flutter: 2.1.2
fluttertoast: 8.0.8
visibility_detector: ^0.2.0
photo_preview:
git:
url: https://gitee.com/zengxiangxi315/photo_preview_flutter.git
ref: flutter-2.x-nullsafe
permission_handler: 8.1.6
shared_preferences: 2.0.7
inke_webview_flutter:
version: 2.1.1
app/build.gradle. dependencies
//登陆
implementation 'com.ali.auth.sdk:alibabauth_core:<IP_ADDRESS>@aar'
implementation 'com.ali.auth.sdk:alibabauth_ui:<IP_ADDRESS>@aar'
implementation 'com.ali.auth.sdk:alibabauth_ext:<IP_ADDRESS>@aar'
//安全组件
implementation 'com.taobao.android:securityguardaar3:5.4.171@aar'
implementation 'com.taobao.android:securitybodyaar3:5.4.99@aar'
implementation 'com.taobao.android:avmpaar3:5.4.36@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.4.9@aar'
//Mtop
implementation 'com.taobao.android:mtopsdk_allinone_open:<IP_ADDRESS>@jar'
//applink
implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar'
//ut
implementation 'com.taobao.android:utdid4all:1.5.2'
implementation 'com.alibaba.mtl:app-monitor-sdk:<IP_ADDRESS>_for_bc'
// 电商基础组件
implementation 'com.alibaba.sdk.android:AlibcTradeCommon:<IP_ADDRESS>@aar'
implementation 'com.alibaba.sdk.android:AlibcTradeBiz:<IP_ADDRESS>@aar'
implementation 'com.alibaba.sdk.android:nb_trade:<IP_ADDRESS>@aar'
implementation 'com.alibaba:fastjson:1.2.41@jar'
//// 阿里百川///////
///穿山甲SDK
implementation 'com.pangle.cn:ads-sdk-pro:<IP_ADDRESS>'
implementation 'com.android.support:support-v4:24.2.0'
//oneway sdk
implementation files('libs/Oneway-2.4.9-release.jar')
implementation(name: 'oneway-common-core-1.0.10', ext: 'aar')
//多牛SDK
implementation(name: 'donewsSDK5.97', ext: 'aar')
//多牛SDK资源配置文件 androidX
implementation(name: 'dn_donewsx_res', ext: 'aar')
//快手SDK资源配置文件 androidX
implementation(name: 'kssdk-ad--3.3.17', ext: 'aar')
implementation 'com.qq.e.union:union:4.422.1292'
implementation 'androidx.recyclerview:recyclerview:1.1.0-beta04'
implementation 'com.github.bumptech.glide:glide:3.7.0'
//JD
implementation project(':JDKeplerSDK3.2.0')
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.6.22'
//bugly
implementation 'com.tencent.bugly:crashreport:latest.release'
implementation 'com.tencent.bugly:nativecrashreport:latest.release'

@flutter-symbolizer-bot https://github.com/flutter/flutter/issues/94024#issue-1060122528 engine#d3ea636dc5

@flutter-symbolizer-bot  https://github.com/flutter/flutter/issues/94024#issue-1060122528 engine#d3ea636dc5 android release arm64

Thanks for your response. I will keep try reproduce issue and get a adb logcat log

Dear @danagbemava-nc
I get a new log . Can you analyze it is any help？
original  log stack
#00 pc<PHONE_NUMBER>07066c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]
2
#01 pc<PHONE_NUMBER>2d4914 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
3
#02 pc<PHONE_NUMBER>2fb248 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
4
#03 pc<PHONE_NUMBER>336d04 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
5
#04 pc<PHONE_NUMBER>2ef610 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
6
#05 pc<PHONE_NUMBER>328c80 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
7
#06 pc<PHONE_NUMBER>3295e8 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
8
#07 pc<PHONE_NUMBER>32907c /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
9
#08 pc<PHONE_NUMBER>330b28 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
10
#09 pc<PHONE_NUMBER>2fc09c /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
11
#10 pc<PHONE_NUMBER>2fef20 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
12
#11 pc<PHONE_NUMBER>017e2c /system/lib64/libutils.so (_ZN7android6Looper9pollInnerEi+856) [arm64-v8a::b586b93b2a903478a0591b572d330c87]
13
#12 pc<PHONE_NUMBER>017a34 /system/lib64/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+56) [arm64-v8a::b586b93b2a903478a0591b572d330c87]
14
#13 pc<PHONE_NUMBER>013684 /system/lib64/libandroid.so (ALooper_pollOnce+96) [arm64-v8a::caa516283c5f3f308d078e88acbdfbb1]
15
#14 pc<PHONE_NUMBER>2ff030 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
16
#15 pc<PHONE_NUMBER>2fb950 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
17
#16 pc<PHONE_NUMBER>2fd830 /data/app/com.inke.webuy-NIqPSKfH4sYCqVEEBxZsoA==/lib/arm64/libflutter.so [arm64-v8a::3088fe65485e0faceb27d44630515c0a]
18
#17 pc<PHONE_NUMBER>0cf7c0 /apex/com.android.runtime/lib64/bionic/libc.so (_ZL15__pthread_startPv+36) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]
19
#18 pc<PHONE_NUMBER>0721a8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]
after prasing by symbol flutter.so
#00 pc<PHONE_NUMBER>07066c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]
2
#01 pc<PHONE_NUMBER>2d4914 sha512_block_data_order + 2324 [arm64-v8a]
3
#02 pc<PHONE_NUMBER>2fb248 std::__1::function<void ()>::operator=(std::__1::function<void ()> const&) (../../third_party/libcxx/include/functional:1880) [arm64-v8a]
4
#03 pc<PHONE_NUMBER>336d04 FireCallback (../../flutter/fml/memory/ref_ptr.h:83) [arm64-v8a]
5
#04 pc<PHONE_NUMBER>2ef610 Expand (../../third_party/rapidjson/include/rapidjson/internal/stack.h:183) [arm64-v8a]
6
#05 pc<PHONE_NUMBER>328c80 bool rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator >::operator==<rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator >(rapidjson::GenericValue<rapidjson::UTF8, rapidjson::MemoryPoolAllocatorrapidjson::CrtAllocator > const&) const (../../third_party/rapidjson/include/rapidjson/document.h:0) [arm64-v8a]
7
#06 pc<PHONE_NUMBER>3295e8 DoMakeRasterSnapshot (../../third_party/libcxx/include/memory:2338) [arm64-v8a]
8
#07 pc<PHONE_NUMBER>32907c CreateResourceContext (../../flutter/shell/common/platform_view.cc:0) [arm64-v8a]
9
#08 pc<PHONE_NUMBER>330b28 GetLatestFrameTargetTime (../../flutter/shell/common/shell.cc:0) [arm64-v8a]
10
#09 pc<PHONE_NUMBER>2fc09c LogMessage (../../flutter/fml/logging.cc:0) [arm64-v8a]
11
#10 pc<PHONE_NUMBER>2fef20 JavaStringToString (../../third_party/libcxx/include/string:2531) [arm64-v8a]
12
#11 pc<PHONE_NUMBER>017e2c /system/lib64/libutils.so (android::Looper::pollInner(int)+856) [arm64-v8a::b586b93b2a903478a0591b572d330c87]
13
#12 pc<PHONE_NUMBER>017a34 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+56) [arm64-v8a::b586b93b2a903478a0591b572d330c87]
14
#13 pc<PHONE_NUMBER>013684 /system/lib64/libandroid.so (ALooper_pollOnce+96) [arm64-v8a::caa516283c5f3f308d078e88acbdfbb1]
15
#14 pc<PHONE_NUMBER>2ff030 JavaStringToString (../../third_party/libcxx/include/locale:3856) [arm64-v8a]
16
#15 pc<PHONE_NUMBER>2fb950 CreateDirectory (../../flutter/fml/file.cc:30) [arm64-v8a]
17
#16 pc<PHONE_NUMBER>2fd830 fml::MessageLoopTaskQueues::RegisterTask(fml::TaskQueueId, std::__1::function<void ()> const&, fml::TimePoint, fml::TaskSourceGrade) (../../third_party/libcxx/include/__split_buffer:0) [arm64-v8a]
18
#17 pc<PHONE_NUMBER>0cf7c0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]
19
#18 pc<PHONE_NUMBER>0721a8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) [arm64-v8a::b91c775ccc9b0556e91bc575a2511cd0]

Hi @byh000, which of the following best describes your flutter app?

standard
add-to-app
standard with native platform views

standard with native platform views
My app main function can describes like this.
Main page is a flutter page use IndexStack to switch 4 tabs.
4 tabs contains 2 flutter webview page and 2 normal flutter page.
At native android. I develop some dialog show above of flutter page.
Click dialog will start some native third part ad  activity to show webview or video.

Hi @danagbemava-nc
Can you give me some suggestions on how to reproduce or solve this problem through log analysis?

Well I found what was causing the app to crash. In my code I had this section:
if (defaultTargetPlatform == TargetPlatform.android) {
  AndroidGoogleMapsFlutter.useAndroidViewSurface = true;
}

When I removed it, it worked just fine!

I found my code used this  if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();

@byh000 And if you use the latest flutter version and don't need to change this  if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView(); I think will also work fine. Bacause this PR was landed : https://github.com/flutter/engine/pull/27662


Setup visited pages before resolving ready

Ensure pageflow.visited is present when pageflow.ready is
resolved. Since we also resolve pageflow.ready in the editor now,
this lead to errors when navigation widgets tried to used
pageflow.visited.

Coverage remained the same at 99.287% when pulling 378f975c9a5b51b83ea3ad759326a35535e1bfb7 on tf:setup-visited into fe92183dc7522af0c2f1ca1c8b9413b49986ef9a on codevise:master.


MH-12813: Add audio and video track selection to video editor

This PR adds a new tab “Tracks” to the video editor that allows the user to select which audio and video tracks will be published. In this new tab, the user simply clicks on the video track (represented by a
thumbnail) or the audio track (represented by its waveform) to hide it. Sanity checks are included, so its not possible to hide every video and audio track there is, for example.

The information about which tracks are hidden is stored in asset manager properties, which are then injected into the running workflow(s). Thus, this PR depends on 193 (and is rebased on it).
This theoretically works for an arbitrary number of tracks in the media package, but it currently is constrained to one and two tracks (the most common use case). The allowed flavors flavors are configurable.
To make this possible, a specialized workflow operation handler SelectTracksWorkflowOperationHandler had to be written, which is capable of removing audio tracks from multiple input tracks, as well as muxing a video track and an audio track from two different input
tracks (so it’s very similar to the PrepareAV WOH).
This work was sponsored by SWITCH.

I am looking at this in context of another possibly related issue I am working on for the ETH and I noticed the following:

This happened when selecting only one video stream, but two audio streams, obviously; the problem is that this message does not disappear when I then do "the right thing" and successfully publish the event.
Also I find it kind of confusing that this message appears only after I hit the "do the thing button", but the error message for deselecting for example all audio streams appears instantly (and in a different position).

@JulianKniephoff You're absolutely right. I fixed the issues you mentioned.

Hi @pmiddend Please note that this PR currently has merge conflicts. Could you please resolve them?

@staubesv Thanks for noticing. Fixed.

Hi @pmiddend, please note that this PR has merge conflicts again.

Hi @staubesv, Conflicts should now be fixed (again).

Thanks ;-)

Hi @staubesv The merge conflict is resolved. Travis build seems to fail due to random DNS lookup error.

Thanks @lkiesow for the excellent review. I've pushed the following changes:

I fixed the markdown docs, after banging my head for not realizing "stream" was the term I was looking for all along. I also added a section about the default behavior of none for audio-muxing.
I applied your patch containing copyTrack and tested it. Looked good so far, and I think you got all the edge cases.
I removed value from AudioMuxing and am now relying on the correspondence between the enum names and their WOH values.
I removed the Optional for audio-muxing, opting for orElse(NONE) instead.
The code fails faster now. :)

By the way, I'm very open to suggestions regarding the WOH name. I think neither SWITCH nor plapadoo were excited about it. Maybe we use select-streams instead?

@KatrinIhler Thanks for the thorough review! I've fixed all of the issues you described.

Still working on my review, but I ran into this in testing
2018-09-13 11:49:48,360 | ERROR | (WorkflowOperationWorker:180) - Workflow operation 'operation:'image', position:11, state:'FAILED'' failed
java.lang.RuntimeException: Parse failure
        at com.entwinemedia.fn.parser.Result.getRest(Result.java:50)[25:functional:1.4.2]
        at org.opencastproject.workflow.handler.composer.ImageWorkflowOperationHandler.parsePositions(ImageWorkflowOperationHandler.java:595)[63:opencast-composer-workflowoperation:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.handler.composer.ImageWorkflowOperationHandler.configure(ImageWorkflowOperationHandler.java:512)[63:opencast-composer-workflowoperation:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.handler.composer.ImageWorkflowOperationHandler.start(ImageWorkflowOperationHandler.java:165)[63:opencast-composer-workflowoperation:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowOperationWorker.start(WorkflowOperationWorker.java:233)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowOperationWorker.execute(WorkflowOperationWorker.java:155)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowServiceImpl.runWorkflowOperation(WorkflowServiceImpl.java:892)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowServiceImpl.process(WorkflowServiceImpl.java:1918)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowServiceImpl$JobRunner.call(WorkflowServiceImpl.java:2348)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at org.opencastproject.workflow.impl.WorkflowServiceImpl$JobRunner.call(WorkflowServiceImpl.java:2314)[193:opencast-workflow-service-impl:6.0.0.SNAPSHOT]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_181]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_181]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_181]
        at java.lang.Thread.run(Thread.java:748)[:1.8.0_181]

All I did was ingest a presenter video+audio file, a presentation video file, and then attempt to process to a single presentation+audio output.

@gregorydlogan Thanks for the input on the documentation. Incredible how much mistakes I've missed! I've corrected those and used your wording.

Hi @pmiddend, changes look good.  Still blocked on the processing failure.  Can reproduce on all my development machines.

@gregorydlogan Okay, I reproduced and fixed it.
I also fixed the error message you got. Turns out that during exception handling, an exception occured so the string that couldn't be parsed wasn't printed. :D


Missing Sendable Conformance in Handlers

Bug Report:
What did you do?
I've been working with Alamofire and noticed that certain handlers, specifically AdaptHandler and RetryHandler, are missing Sendable conformance in their completion closures. This is critical for Swift concurrency safety and is required for code to be @Sendable in concurrent contexts.
Here’s the current implementation in the code:
/// `RequestAdapter` closure definition.
public typealias AdaptHandler = @Sendable (_ request: URLRequest,
                                           _ session: Session,
                                           _ completion: @escaping (Result<URLRequest, any Error>) -> Void) -> Void

/// `RequestRetrier` closure definition.
public typealias RetryHandler = @Sendable (_ request: Request,
                                           _ session: Session,
                                           _ error: any Error,
                                           _ completion: @escaping (RetryResult) -> Void) -> Void

What did you expect to happen?
/// `RequestAdapter` closure definition.
public typealias AdaptHandler = @Sendable (_ request: URLRequest,
                                           _ session: Session,
                                           _ completion: @escaping @Sendable (Result<URLRequest, any Error>) -> Void) -> Void

/// `RequestRetrier` closure definition.
public typealias RetryHandler = @Sendable (_ request: Request,
                                           _ session: Session,
                                           _ error: any Error,
                                           _ completion: @escaping @Sendable (RetryResult) -> Void) -> Void

I expected @Sendable to be added to the completion closures for AdaptHandler and RetryHandler to ensure thread safety when these handlers are used in concurrent environments, like so:
What happened instead?
The current implementation is missing @Sendable conformance in the completion closures, which could lead to potential issues in concurrent Swift code that leverages the concurrency model introduced in recent versions of Swift.

Fee free to give master a try now that I've merged a fix. It should go out with 5.10.1 soon.


Echis child sm tests

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes #[issue number] or Closes #[issue number]
Engineer Checklist

[ ] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[ ] I have added any strings visible on UI components to the strings.xml file
[ ] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[ ] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[ ] I have built and run the FHIRCore app to verify my change fixes the issue and/or does not break the app
[ ] I have checked that this PR does NOT introduce breaking changes that require an update to Content and/or Configs? If it does add a sample here or a link to exactly what changes need to be made to the content.

Code Reviewer Checklist

[ ] I have verified Unit tests have been written for any new feature(s) and edge cases
[ ] I have verified any strings visible on UI components are in the strings.xml file
[ ] I have verifed the CHANGELOG.md file has any notable changes to the codebase
[ ] I have verified the solution has been implemented in a configurable and generic way for reuseable components
[ ] I have built and run the FHIRCore app to verify the change fixes the issue and/or does not break the app

Do we still need to merge this code @AbdulWahabMemon?

Do we still need to merge this code @AbdulWahabMemon?

No, we have keep this branch for failure cases in the flow,
cc: @ageryck


Turn ByteArray into AsyncStream.

Is there a utility function that would construct an AsyncStream from ByteArray or even String?

byteArrayOf(1, 2, 3, 4)
  .openAsync() // ByteArray -> AsyncStream
  .readAll() // AsyncStream -> ByteArray


Bad blocks in nand flash. Coincidence?

Hello Everybody,
I recently got an EBAZ4205 board. U-Boot reports the last 5 sectors of the nand flash as bad blocks:
zynq-uboot> nand bad 0

Device 0 bad blocks:
  07f60000
  07f80000
  07fa0000
  07fc0000
  07fe0000

I wouldn't give it too much importance if it weren't because it seems that all boards have exactly the same sectors marked as bad blocks. I do not believe in coincidences, even less in this one.
Does someone know if there is any particular reason for which all boards seem to have these bad blocks? Or are there lucky people who got an ebaz4205 with a healthy nand flash?
Thank you very much for your time and your support!

If I recall correctly the bad block information is essentially just a file that uboot maintains. So if the same NAND image is copied to all boards they would list the same bad blocks information.

I see. Thanks for the clarification! So I should be able to recover and use those bad blocks using U-Boot commands and store data of my own, right?


change the navbar to a hamburger menu for mobile sites and added some…

… responsiveness
Related Issue

Closes: #13

Description

added a hamburger menu for mobiles and tablets
changes the form to vertical when opened on mobile and tablets

How Has This Been Tested?
i tested its reponsiveness using the chrome devtools

Screenshots (if applicable)

Type of Change

[ ] Bug fix
[ .] New feature
[ ] Code style update
[ ] Breaking change
[ ] Documentation update

@JatinShimpi : What is your username on internshala?

@mehul-m-prajapati i think its 'Jatin Shimpi' email is<EMAIL_ADDRESS>


added exception for api request...

... in case of folder protection via .htaccess/.htpasswd is in use in accordance to https://docs.shopware.com/en/shopware-6-en/first-steps/installing-shopware-6?category=shopware-6-en/getting-started#htaccess-adjustments. This might be much more simple to fix by somebody who didn't read the documentation before installation. Additionally, I will add an issue claiming for better error message in blank admin that appears if one didn't uncomment these lines after folder protection.
1. Why is this change necessary?
If using folder protection after installation of the shop, the admin panel is not reachable any more and comes up with a blank page instead. As a next step I would check .htaccess to find out what happened. If I stumble upon this entry, it is easier for me to uncomment it instead of reading through the documentation.
2. What does this change do, exactly?

Added exception for api request in case of folder protection via .htaccess/.htpasswd is in use in accordance to https://docs.shopware.com/en/shopware-6-en/first-steps/installing-shopware-6?category=shopware-6-en/getting-started#htaccess-adjustments.
Should work in both, Apache v2.2 as well as Apache v2.4
As code is commented, I cannot see any interference to plugins and/or apps.

3. Describe each step to reproduce the issue or behaviour.
Install the shop and use folder protection via .htaccess/.htpasswd afterwards
4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/NEXT-4664 and a couple of other duplicates and not resolved issues
5. Checklist

[ ] I have written tests and verified that they fail without my change
[ ] I have squashed any insignificant commits
[ ] I have created a changelog file with all necessary information about my changes
[x] I have written or adjusted the documentation according to my changes
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

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

We decided to close the MR after agreement with @kermie.


Add support for Elasticsearch 7

Are there plans to add support for Elasticsearch 7.4 (or upcoming 7.x)?

Also interested in this

me too

+1

+1

+1

+1

Same here.

There seems to be a fork that has implemented an elastic7-doc-manager: https://github.com/tmpaul06/elastic7-doc-manager but I don't know if it works with the latest mongo-connector release version.
Does any-1 know if it works? or is there an other way to use mongo-connector with elastisearch 7.12


The ability to mark a task as completed from the frontend needs to be developed

Expected behavior
The last remaining big feature of the programs/activities component is the ability to mark activities (classified as "assignments") as completed and to have a visual indicator of which ones have been completed.
Actual behavior
Right now in our Dialog component, it shows all of the details of the activity except its completion status, and there is no way to mark a task as completed.
Details and resources
Minimum requirements for resolving this issue:

When you click on a task and the Dialog element is presented, if the event is of type "assignment", the webapp should show the user's completion status (maybe with a checkbox?) in the Dialog.
Clicking either the "mark completed" button or clicking a checkbox will send an API request to mark the task as completed.

If it's implemented as a button, there should be a different button that will now show to mark the task as "not completed", in case marking it completed was in error.
If it's implemented as a checkbox, unchecking the checkbox should send an API request to mark the task as not completed.

Stretch goals: (not required, but nice to have)

There should be a visual indicator in the calendar for which activities are assignments and are either complete or not complete
The button/checkbox to mark a task as complete should have a visible status to it to show the different states of the API request (like spinning or other animation), and the "completion" state should only be shown if the API request succeeds
If we're unable to mark a task as completed, then there should be a visible error message displayed to the user so that they can act on it.

Reach goals: (not in scope, but if they are included, that'd be rad!)

There should be a view that shows us a list of the activities that are assignments, their due dates, and their completion status. Think kind of like a to-do list view.

Checklist

[x] This issue is linked to the appropriate project.
[x] This issue has appropriate labels.

Just an update, I tried to add the checkbox to the dialog.

Update: I modified the CalendarEvent type to include activityType. Now the activity dialog would show the checkbox if the activityType is 'assignment'.

Update:
I tried to create an updateApiData file since useApiData can only handle get request and other parts of the app also don't allow updating the existing data. I looked at Ruthie's issue #455 and include the activityStatus, programId and activityId in the path for the PATCH request:
fetch(`${process.env.REACT_APP_API_ORIGIN}${path}/${programId}/${activityId}`, {
        method: 'PATCH',
        credentials: sendCredentials ? 'include' : 'omit',
        signal,
      })

I referred to the CreateOrUpdateCompetencyForm to add the PATCH request to the ProgramActivityDialog. We can either use a button or checkbox, and to me buttons are a little bit easier to work with, since it'd be similar to like and unlike buttons.
But I'll see if we can continue to use checkbox. I think it probably needs to use 'onChange'.

I changed the UI of the dialog based on the discussion today. But I think I'll wait #453 to be merged into main before making more commits so that the merge conflict won't be too complicated.

Instead of making another helper function, we can use MUI's text transformation to capitalize text.
        <DialogContentText id="alert-dialog-description" sx={{textTransform: 'capitalize'}}>
          <b>Activity Type:</b> {contents.activityType}
        </DialogContentText>

Added the buttons after merging from main:

Adding radio button to the calendar:

 { event.event.activityType === decodeHTML('assignment') && (
          <RadioButtonUncheckedIcon fontSize='inherit' sx={{ pt: 0.5}}/>
        )
        }

Using different color for assignments:

I like it! Great work so far as always, @wendyyng.
Any particular reason the "Mark Complete"/"Mark Incomplete" button is better in the dialog content section rather than the left-side of the dialog actions section? No worries if you all discussed that already or if you think it's better there. I'm just curious as to the choice, that's all.
If you prefer the dialog content section, maybe we can move it to a table row like the rest of the content?
Also, it appears from your last update that adding the icon into the activity in week view is pushing over the width of the days in the all-day events section, so by the time Saturday hits, the all day section is pretty misaligned with the section below it. Not sure if that's just a WIP fragment or an uncaught error.
Heads up also, you should be getting a route to make your life easier so you can retrieve the statuses of all assignments at once instead of one by one. And I cleaned up some of my repeated styled-components values; sorry for leaving that kind of messy.
Two small other notes:

again, let's make sure that we use <strong> instead of <b> to embolden text with emphasis, as seen in this comment from 3 days ago
you don't need to decodeHTML() for any values that can't be input by the user or don't have special characters. So, we'd want it on the description for sure, but we don't need to do it for an activity type, since those are hard-coded in the database and shouldn't have any special chars.

I like it! Great work so far as always, @wendyyng.
Any particular reason the "Mark Complete"/"Mark Incomplete" button is better in the dialog content section rather than the left-side of the dialog actions section? No worries if you all discussed that already or if you think it's better there. I'm just curious as to the choice, that's all.
If you prefer the dialog content section, maybe we can move it to a table row like the rest of the content?
Also, it appears from your last update that adding the icon into the activity in week view is pushing over the width of the days in the all-day events section, so by the time Saturday hits, the all day section is pretty misaligned with the section below it. Not sure if that's just a WIP fragment or an uncaught error.
 And based on the discussion today, this will be out of scope of this PR. So I won't make commits for this.
Heads up also, you should be getting a route to make your life easier so you can retrieve the statuses of all assignments at once instead of one by one. And I cleaned up some of my repeated styled-components values; sorry for leaving that kind of messy.
Two small other notes:

again, let's make sure that we use <strong> instead of <b> to embolden text with emphasis, as seen in this comment from 3 days ago
you don't need to decodeHTML() for any values that can't be input by the user or don't have special characters. So, we'd want it on the description for sure, but we don't need to do it for an activity type, since those are hard-coded in the database and shouldn't have any special chars.

Updates on the Dialog's UI:
Replacing the close button with the close icon on the top right:

Moving the Mark Complete button to the left of the Dialog Section

I like it! Great work so far as always, @wendyyng.
Any particular reason the "Mark Complete"/"Mark Incomplete" button is better in the dialog content section rather than the left-side of the dialog actions section? No worries if you all discussed that already or if you think it's better there. I'm just curious as to the choice, that's all.
If you prefer the dialog content section, maybe we can move it to a table row like the rest of the content?
Also, it appears from your last update that adding the icon into the activity in week view is pushing over the width of the days in the all-day events section, so by the time Saturday hits, the all day section is pretty misaligned with the section below it. Not sure if that's just a WIP fragment or an uncaught error.
Heads up also, you should be getting a route to make your life easier so you can retrieve the statuses of all assignments at once instead of one by one. And I cleaned up some of my repeated styled-components values; sorry for leaving that kind of messy.
Two small other notes:

again, let's make sure that we use <strong> instead of <b> to embolden text with emphasis, as seen in this comment from 3 days ago
you don't need to decodeHTML() for any values that can't be input by the user or don't have special characters. So, we'd want it on the description for sure, but we don't need to do it for an activity type, since those are hard-coded in the database and shouldn't have any special chars.

Adding the icon into the activity in week view is pushing over the width of the days in the all-day events section
You're right! And based on the discussion today, this will be out of scope of this PR. So I won't make commits for this.
Use  instead of  to embolden text with emphasis
Thanks for the reminder! For now we're using fontWeight: 'bold' instead though so no  or  is being used.
Don't need to decodeHTML() for any values that can't be input by the user or don't have special characters. So, we'd want it on the description for sure, but we don't need to do it for an activity type
It has been removed! :)

Great work, Wendy. Both options look wonderful, but I prefer the first one.

Thanks for working on those screenshots. I agree with the others, the first one is nice and clean! My vote is that one!

12/6: Working on the GET and POST for activity status
// Get Request for activity completsion status
  // programsRouter.get('/activityStatus/:programId/:activityId')
  const {
    data: activityCompletionStatus,
    error,
    isLoading,
  } = useApiData<ActivityCompletionStatus>({
    deps: [completed],
    path: `/programs/activityStatus/${contents.programId}/${contents.curriculumActivityId}`,
    sendCredentials: true,
  });

 // Post Request for updating activity completion status
  // programsRouter.post('/activityStatus/:programId/:activityId')
  // Using onClick for UI demo but onSubmit should be used in future development
  const onClick: FormEventHandler = event => {
    event.preventDefault();
    setCompleted(!completed);
    // fetch(
    //   `${process.env.REACT_APP_API_ORIGIN}/programs/activityStatus/${programId}/${activityId}`,
    //   {
    //     method: 'POST',
    //     credentials: 'include',
    //     headers: { 'Content-Type': 'application/json' },
    //   }
    // )
    //   .then(res => res.json())
    //   .then(({ data, error }) => {
    //     setCompleted(!completed);
    //     if (error) {
    //       setMarkCompletedError(error);
    //     }
    //     if (data) {
    //       setIsSuccessMessageVisible(true);
    //     }
    //   })
    //   .catch(error => {
    //     setCompleted(completed);
    //     setMarkCompletedError(error);
    //   });
  };

12/7 Continued to work on the GET & POST requests:
  const [completed, setCompleted] = useState(false);
  // const [markCompletedError, setMarkCompletedError] = useState(null);
  // const [isSuccessMessageVisible, setIsSuccessMessageVisible] = useState(false);

  // Get Request for activity completsion status
  // programsRouter.get('/activityStatus/:programId/:activityId')
  // return {activityId:1, participantActivityId: 1, completed: true}
  const {
    data: activityCompletionStatus,
    error,
    isLoading,
  } = useApiData<ActivityCompletionStatus>({
    deps: [completed],
    path: `/programs/activityStatus/${contents.programId}/${contents.curriculumActivityId}`,
    sendCredentials: true,
  });

  // Post Request for updating activity completion status
  // programsRouter.post('/activityStatus/:programId/:activityId')
  // request body shoud look like: {"completed": true}
  // Using onClick for UI demo but onSubmit should be used in future development
  const onClick: FormEventHandler = event => {
    event.preventDefault();
    setCompleted(!completed);
    // fetch(
    //   `${process.env.REACT_APP_API_ORIGIN}/programs/activityStatus/${contents.programId}/${contents.curriculumActivityId}`,
    //   {
    //     method: 'POST',
    //     credentials: 'include',
    //     headers: { 'Content-Type': 'application/json' },
    //     body: JSON.stringify({
    //     completed: !completed
    // }),
    //   },
    // )
    //   .then(res => res.json())
    //   .then(({ data, error }) => {
    //     setCompleted(!completed);
    //     if (error) {
    //       setMarkCompletedError(error);
    //     }
    //     if (data) {
    //       setIsSuccessMessageVisible(true);
    //     }
    //   })
    //   .catch(error => {
    //     setCompleted(completed);
    //     setMarkCompletedError(error);
    //   });
  };

Updates on the latest from this issue:
Phoebe and Wendy worked late into the night last night to make sure that this code was working given the changes to the backend code. We worked through some of the issues with React state management to be able to demonstrate working functionality, but the code isn't conformant to guidelines at the moment.
Next for this ticket:

I'd love to find a way to useApiData instead of the fetch() call for the getter. The problem right now is that the getter needs to be called conditionally, which useApiData doesn't currently support.
I'd love to move the PUT fetch() logic somewhere else like a helper function so that other code can use it, then add appropriate tests for that.
There's currently minimal to no error handling if the getter or setter fail for any reason, so I'd love to see some code to handle that.
Extraneous code comments need to be cleaned up and some refactoring needs to be done to get code to conform to guidelines


Use default number of nodes (3) to deploy MariaDB galera cluster

See SOC-10344
This is mostly a test PR to see how the CI will react. It's possible more is needed than just this simple change...

Surprisingly it works like a charm. And no problems when it is still using external SES...

@Itxaka So what do you suggest? I'd think creating the new profile, right?
(But speaking about end-user: won't this user setup look differently at the time of Airship 2.0 anyway?)


Customer Managed Key (CMK) for Cognitive Service (LUIS)

When you enable Customer Managed Key (CMK) for Cognitive Service (LUIS),
Do you have to allow all networks or add Azure Cognitive IP ranges on the Key Vault firewall to allow communication between the services. I have noted Cognitive Service (https://docs.microsoft.com/en-us/azure/key-vault/general/overview-vnet-service-endpoints#trusted-services) is not on the list of Trusted Services for Azure Key Vault.

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

ID: b12be278-fcde-5378-4100-6299a1b11d5b
Version Independent ID: a54c3305-d49a-aada-6ed6-5debcefaea46
Content: Language Understanding service encryption of data at rest - Azure Cognitive Services
Content Source: articles/cognitive-services/LUIS/encrypt-data-at-rest.md
Service: cognitive-services
Sub-service: language-understanding
GitHub Login: @erindormier
Microsoft Alias: egeaney

@jszisanhi Thanks for the question. We are investigating the issue and will update you shortly.

@jszisanhi We would recommend to raise a Azure support desk ticket from Help+Support blade from Azure portal for your  resource if you have a support plan for your subscription. This will help you to share the details securely and work with an engineer who can provide more insights about the issue that if it can be replicated.

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

Thanks @ram-msft for your response.  The documentation is still not clear on the configuration details for CMK. Do you need to allow All Networks on AKV  Firewall or interaction will  leverage  Azure Trusted Services for Azure Key Vault . I appreciate the need to create a  support ticket, however what's probably required is a little more detail on the configuration / how to documentation.


Some information is lost when working with keyof against type arguments

Bug Report
🔎 Search Terms
Hard topic to search for IMO, but I tried phrases like typescript generic interface lose type information and I only found similar issues but not related.
🕗 Version & Regression Information
I was having trouble using version 4.5.5 (that we're currently using), but I could also reproduce it in the latest version available in the playground (4.6.2). I checked versions back to 3.3.3 in the playground and they all reported the same issue.
⏯ Playground Link
Playground link with relevant code
💻 Code

// BEGIN FRAMEWORK STUFF

type ObjectKey<O, T> = {[K in keyof O]: O[K] extends T ? K : never}[keyof O & string];

interface MyInterface {
    myStringValue: string;
    myIntegerValue: number;
}

abstract class AbstractBase<O> {
    constructor(private readonly object: O) {}

    public getValue<T>(fieldName: ObjectKey<O, T>) {
        return this.object[fieldName];
    }
}

// END FRAMEWORK STUFF

// BEGIN IMPLEMENTATION STUFF

class MyType implements MyInterface {
    myStringValue = "";
    myIntegerValue = -1;
}

class MyInterfaceHolder1<I extends MyInterface> extends AbstractBase<MyInterface> {
    constructor(object: I) {
        super(object);
        this.getValue<number>("myIntegerValue");
    }
}
class MyInterfaceHolder2<I extends MyInterface> extends AbstractBase<I> {
    constructor(object: I) {
        super(object);
        this.getValue<number>("myIntegerValue"); // Argument of type 'string' is not assignable to parameter of type 'ObjectKey<I, number>'.(2345)
    }
}

// END IMPLEMENTATION STUFF

const holder1 = new MyInterfaceHolder1<MyType>(new MyType());
const value1 = holder1.getValue<number>("myIntegerValue");

const holder2 = new MyInterfaceHolder1<MyType>(new MyType());
const value2 = holder2.getValue<number>("myIntegerValue");

🙁 Actual behavior
I lose some type information within the super-class when working with a generic argument.
🙂 Expected behavior
I feel like it should be able to maintain type information here.

Resolving of conditional types is deferred when generic type arguments are involved. It is not using the type that your argument extends (MyInterface in your example). So what type does ObjectKeys<I, number> resolve to? The compiler doesn't know, because it doesn't know what type I is.

@MartinJohns, thanks for the quick reply! As you can see further down the code, it does work when used outside of the class, but I guess conditional types have been resolved by then.
I understand that there's a lot of underlying complexity and reasoning for all this, but is there a way around this? Is this something that might be "improved" in a future version? Or is it just not possible to achieve?
I am not originally the author of the ObjectKey type, and probably need to learn how everything works there in order to fully understand this.

As you can see further down the code, it does work when used outside of the class, but I guess conditional types have been resolved by then.

Yes, in that case you're not dealing with an unbound generic type anymore, but with a concrete one. The compiler now knows what type O (from the base class) is and can resolve the conditional type.

I understand that there's a lot of underlying complexity and reasoning for all this, but is there a way around this? Is this something that might be "improved" in a future version? Or is it just not possible to achieve?

Who knows when Anders will cast his magic and improve the language in unpredictable ways. But what you're attempting is unsound behaviour. You're assuming That the key "myIntegerValue" refers to the type number, but it doesn't have to be. The type { myStringValue: 'abc'; myIntegerValue: 123 } fulfils the generic constraint extends MyInterface, but the type of myIntegerValue is 123 and not number.
And from this brief example I can't see why you'd need a generic type anyway, when you can just use MyInterface.

There's no way for TS to establish the higher-order relationship between what goes into type ObjectKey<O, T> = {[K in keyof O]: O[K] extends T ? K : never}[keyof O & string]; and how that relates to the provided keys. We'd need some built-in operator to be able to deduce that this is safe; being "safe by construction" is not something the checker can recognize.

Got around to logging #48992