Sidepane missing scrollbar

Hi again,
(I hope I am not becoming unpopular here by opening issues - if you want feedback in any other way or not at all, please just say so :-))
The right scroll pane is not scrollable, resulting in chapters lower down not being selectable on small screens.
https://gnss-sdr.org/docs/sp-blocks/signal-source/#implementation-osmosdr_signal_source
System: Ubuntu 20.04, Firefox 85.0, Monitor Resolution: 1366x768

(also some field names in the side pane are not broken to new lines and stick out..)
Cheers!

Hi @lenhart
That's a tricky issue. If the Table Of Contents on the right is set to be sticky but it is too long, it gets cut on small screens. You need to scroll down to the bottom of the page for accessing the last sections, which makes little sense. This is the case you are showing in your screenshot.
On the contrary, if the ToC is not sticky but set to scroll along with the text, then you lose it as soon as you start scrolling down and it becomes useless for intra-page navigation. In long pages, I find it useful to know if you need to scroll up or down to reach a given section.
Unfortunately, adding a scrollbar to the ToC without breaking things appears to be challenging. I'm not very skilled in any of the programming languages involved, but it seems that it could be done with some CSS. I need to look more into it.
Maybe the non-sticky ToC would be a better choice, since I guess the usual behavior is to go straight to the documentation of the implementation you are interested in, instead of wandering up and down the page. The ToC is, by large, the "less responsive" feature of the website, and I find it difficult to make it behave well on screens of all sizes.
Any suggestion?
BTW, all your feedback is very welcome!

Hi @carlesfernandez,
I fully agree, that is usually nothing you want to spend your time on, especially if it is not a trivial fix.
I also agree upon the relative movement. It is nice to have the ToC in view while reading, thinkable mixed-styles are usually annoying too (relative movement until reaching end of ToC, then sticky again, vice versa when scrolling up).
So, no unfortunately no good suggestions and I would say this is a low priority issue. Don't know if it is realistic to wait for it to be solved in upstream mmistakes. I dropped a comment there if the commenter who said it is trivial could share a code snippet.. Maybe something comes out of it :-)
(not too experienced in any of the web languages either)

CC @lenhart
On my website it really is just 5 lines or so of CSS to get a working prototype, but it's not thoroughly tested and from time to time I have added patches to make it look elegant on different devices, screens, browsers etc.
The top few lines in my toc.scss is what you need to get started (and it works per se).
https://github.com/iBug/iBug-source/blob/ca14b16997b9be975dd1719b9871f466421034f2/_sass/toc.scss#L1-L5
I'd be glad to share the above code* under CC BY 4.0 license (the whole repo is CC BY-SA 4.0 unless otherwise noted) if I get my credit in Git commit message (e.g. Co-authored-by: iBug<EMAIL_ADDRESS>see GitHub Docs) 😃
* the whole file toc.scss at the specific revision ca14b16

Dear @iBug
thank you so much for spending time on this, and for your kind contribution. Your solution works well and looks nice in all browsers I've tried (Chrome, Safari, Opera, Firefox). Please let me know if your work is properly credited in commit 91e2cf25aeb46fd08ec18e3ffaa1bf22457c4b3f
BTW, iBug-source is a very interesting web!
Dear @lenhart
could you please revisit the page and check if this issue is solved for you? Apart from the scrollbar, long implementation names should now break and not overflow.
https://gnss-sdr.org/docs/sp-blocks/signal-source/
Thank you guys for your help!

@carlesfernandez Yes the crediting is OK. Glad to know that you like my code and website 😃
BTW, I only test web stuff in Chrome and Firefox which I suppose cover the majority of (my) target users. Good job for also checking Opera and Safari.
Plus I don't think Firefox supports -webkit- prefix stuff (should be -moz-) so I'm a bit confused with this:
https://github.com/gnss-sdr/geniuss-place/blob/91e2cf25aeb46fd08ec18e3ffaa1bf22457c4b3f/_sass/minimal-mistakes/_sidebar.scss#L374

Ups! My mistake. Fixed in order to avoid confusion.

I left another comment here. Would you mind taking a look?

Hey guys!
Looks all good and works! The only thing that I noticed, is that I can only scroll the entire content of the sidepane when it is fully in view (scrolled down enough so that the gnss-sdr header pane is no longer in view). Otherwise it stops like that:

But I think that is completely tolerable! Thank you both of you for the good work :-)

Hi @iBug,
thanks for your comment, it has been fixed.
I'm closing this issue since it seems fixed. Still with some tolerable annoyance, though.


fix(challenge): map.add() test case in create map DS challenge

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #16981
Description

Minor fix in assert statement for validating behavior of map data structure

@mstellaluna From what I can see in the challenge description, it just requires the map data structure to be defined. The test cases are defined to evaluate the properties and behaviour of the map and nothing else. The final part must have been written by OP just to validate his map structure outside of the challenge requirements.

@flipsyde606 I will be approving this PR. Thank you for your contribution. Happy Coding.


fix: add "devServer.server.type" to "useHttps" judgement

What kind of change does this PR introduce? (check at least one)

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

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

[ ] Yes
[x] No

Other information:
In the recent merged Pull Request #7202 which authored by me, the fixed judgement expression is not perfect, it should also consider the devServer.server.type because it can be an object.
This patch add another judgement expression to cover this case, if user set devServer.server.type to https or spdy, the protocol will be https.

With this fix https for the application seems to work fine, however it fails to connect to HMR server:
module.exports = defineConfig({
  devServer: {
    server: {
      type: 'https',
      options: {
        key: fs.readFileSync('...'),
        cert: fs.readFileSync('...'),
      },
    },
  },

iirc the following config worked in vue cli 4/webpack 4
  devServer: {
    https: {
      key: fs.readFileSync('...'),
      cert: fs.readFileSync('...'),
    },
  },

Your case is similar to #7160, if NODE_ENV is not production, @vue/cli-service always prefer the lan IP as webSocketURL. I think that might not work properly in some scenes. You can try to set devServer.client.webSocketURL with auto://localhost:[YOUR_SERVER_PORT]/ws  and set devServer.allowedHosts to all if you're running the dev server at local.

Thanks @backrunner
Following config works fine for me
  devServer: {
    server: {
      type: 'https',
      options: {
        key: fs.readFileSync('...'),
        cert: fs.readFileSync('...'),
      },
    },
    client: {
      webSocketURL: 'auto://localhost:8081/ws',
    },
    allowedHosts: 'all',
  },

 devServer: {
    server: {
      type: "https",
      // options: {
      //   key: fs.readFileSync("/Users/li/server.key"),
      //   cert: fs.readFileSync("/Users/li/server.crt")
      // }
    },
    client: {
      webSocketURL: "https://localhost:4003/"
    },
    allowedHosts: ["all"],
    overlay: {
      warnings: false,
      errors: false
    },
    headers: {
      "Access-Control-Allow-Origin": "*"
    },
    // host: "<IP_ADDRESS>",
    port: 4003, // 端口号
    // https: true,
    // open: false, //配置自动启动浏览器
    hot: true, // 热更新
    hotOnly: true,
    disableHostCheck: true,
    proxy: {
      "/api": {
        target: "https://yanshou4.xxx.com/", // 测试环境
        changeOrigin: true,
        pathRewrite: {
          "^/": "/"
        }
      }
    }
  }

增加了上述配置后，报错了


Flow only keeps final step data with form name / blockPrefix set to null or an empty string

I'm still using 2.1.8. I had to refactor a lot of forms, some of them were flows.
I had to override the getName aka as getBlockPrefix with Symfony > 2.8 and made them return null or ''. This way the generated array notation would disappear:
name="engine" <!-- instead of `[createVehicle][engine]`

Everything seemed to work fine until I submitted the final step. All data was gone from the data_class except the final one I entered.
I re-added a name / prefix so far.
Any idea if this will still be a problem with #105 after #215?
Maybe I will be able to check it out next year anyway. Just asking the master for now!? ;)

Why do you return null or '' at all? Is this even allowed/supported by Symfony?

Actually it seems like a legit way:

http://stackoverflow.com/questions/8416783/symfony2-form-component-creating-fields-without-the-forms-name-in-the-name-att
http://stackoverflow.com/questions/13384056/symfony2-1-using-form-with-method-get/13474522#13474522

A common use case are GET forms for filtering to prevent the query string getting to long.
Though SETTING the blockPrefix works fine I wanted to let you know that there is an issue with the  other configuration.

Although it's not forbidden to use an empty name for a form, it's a bad idea and obivously won't work for flows. I don't see a need to fix/workaround that.


NGINX agent cannot find the default network interface on Linux hosts.

Description:
The NGINX agent is incorrectly reporting the loopback interface as the default destination for network traffic.
When the agent reads /proc/net/route it always skips over the first line of route data.  This causes it to miss the default route in many cases and it will report the default interface as loopback.
Reproduce:
Run the agent on any Linux host with debug logging level.  You will see the error message:
time="2023-05-18T05:25:01Z" level=debug msg="Error getting default network interface, interface with default destination not found"
Expected Result:
There is no error in the agent log about not being able to find the default destination and the agent reports the correct default interface.
Actual Result:
There is an error message about not finding the default destination and the agent reports 'lo' as the default interface.

Looking at network.go, it appears that we skip the first two lines of /proc/net/route, when we should just be skipping a single line. See below.
func parseToLinuxRouteStruct(output []byte) (routeStruct, error) {
	const (
		destinationField = 1 // field containing hex destination address
	)
	lineNumber := 0
	scanner := bufio.NewScanner(bytes.NewReader(output))

	// Skip header line
	if !scanner.Scan() {
		return routeStruct{}, errors.New("Invalid linux route file")
	}

	for scanner.Scan() {
		lineNumber++
		if lineNumber == 1 {
			// Skip header line.
			continue
		}
		row := scanner.Text()
...


ImportError: cannot import name 'col' from 'tradingview_screener' (/home/$USERNAME/.local/lib/python3.10/site-packages/tradingview_screener/init.py)

Hi,
I'm trying examples and second one fails:
from tradingview_screener import Query, col
with an error
ImportError: cannot import name 'col' from 'tradingview_screener' (/home/$USERNAME/.local/lib/python3.10/site-packages/tradingview_screener/__init__.py)
Fails both on Linux Python 3.10 and Windows Python 3.11
What could be wrong?
Thanks
BR

Hello.
Are these examples from the website? can you share a URL please

Hello. Are these examples from the website? can you share a URL please

Hi, thanks.
This is example I found on TradingView-Screener's readme.md:
https://github.com/shner-elmo/TradingView-Screener >> "A more advanced query:"
from tradingview_screener import Query, col

(Query()
 .select('name', 'close', 'volume', 'relative_volume_10d_calc')
 .where(
     col('market_cap_basic').between(1_000_000, 50_000_000),
     col('relative_volume_10d_calc') > 1.2,
     col('MACD.macd') >= col('MACD.signal')
 )
 .order_by('volume', ascending=False)
 .offset(5)
 .limit(25)
 .get_scanner_data())

BR

Ok thanks for letting me know.
That example works only with the code from master not that latest PyPi version.
You would need to replace 'col' with 'Column' to make it work.

Thanks, works now!
from tradingview_screener import Query, Column

(Query()
 .select('name', 'close', 'volume', 'relative_volume_10d_calc')
 .where(
     Column('market_cap_basic').between(1_000_000, 50_000_000),
     Column('relative_volume_10d_calc') > 1.2,
     Column('MACD.macd') >= Column('MACD.signal')
 )
 .order_by('volume', ascending=False)
 .offset(5)
 .limit(25)
 .get_scanner_data())

Nice to hear, amazing!


fix: remove sha- tags for images to reduce ECR capacity requirements

Reason for Change

#5885
If the reason for this PR's code changes are not clear in the issue, state value/impact

Changes

remove the sha-<hash> tag from pushed images for rdev updates and PR commit pushes; the tag remains for images built for a deployment so that subsequent deployments do not evict the previous deployment images from the ECR repo. Removing the tag for rdev updates and PR commits ensures that prior image versions will be evicted (with subsequent update to untagged image lifecycle policy for all repos). This fixes problems we had today resulting from too many new images (with unique combinations of image tags) being pushed to ECR, whose capacity is 100 at the present moment, when deployed services needed to pull anew and could not find the appropriate image.

Testing steps

Either list QA steps or reasoning you feel QA is unnecessary
Describe how you made sure to know that your changes worked. Should allow someone else to go verify your code without in depth knowledge.
"Unit tested only", "tested in rdev by a, b, c, verifying feature worked by... ", "manually ran pipeline locally with these results: ..."

Notes for Reviewer

What step will you take to test this?

What step will you take to test this?

It's pretty adhoc. Not easy to test prior to merging. I'll be closely monitoring our prod deploy tomorrow, checking ECR tags on pushed images throughout the day today, etc. Best to mere it early so we get some testing there ahead of tomorrow's deploy.

Creating a new PR. I think there is some buggy behavior since I just incorporated Timmy's workflow changes; the GHA flow is hanging.


Upgrading gradle to 5.4.1 for 1.1.x

Upgrading the gradle version from 3.2.1 to 5.4.1 for 1.1.x kafka users.

kept the updates / changes for gradlew and gradlew.bat.
Updated the wrapper task on build.gradle to meet the 4.8+ requirements.

Already tested ... also it's running in our production environment :)

@smccauliff okay to proceed with this PR and merge?

Looks like upgrade to Gradle 5.2.1 was done in PR #153


Incorrect codegen error - DataStore does not support 1 to 1 connection with both sides of connection as optional field

Describe the bug
Codegen produces the following error even though both sides of the connection are actually non-optional:
"DataStore does not support 1 to 1 connection with both sides of connection as optional field"
To Reproduce

Create the schema below
Add api, push, then run amplify codegen models
See error

Expected behavior
Generates the code
Environment:

Amplify Framework Version: 4.21.0
Dependency Manager: Cocoapods
Swift Version : 5.0

Device Information:

Device: Simulator
iOS Version: iOS 13.5

Additional context
Schema:
type PhoneCall @model {
  id: ID!
  caller: Person! @connection(name: "PhoneCallCaller")
  callee: Person! @connection(name: "PhoneCallCallee")
  transcript: Transcript! @connection(name: "PhoneCallTranscript")
}

type Person @model {
  id: ID!
  name: String!
  callerOf: [PhoneCall!] @connection(name: "PhoneCallCaller")
  calleeOf: [PhoneCall!] @connection(name: "PhoneCallCallee")
}

type Transcript @model {
  id: ID!
  text: String!
  language: String
  phoneCall: PhoneCall! @connection(name: "PhoneCallTranscript")
}

I'm having the same issue on amplify-android library.
Maybe this is related to amplify-cli...

+1

Thanks guys. I've been told it's being looked into, has to do with which side of the relationship should be the "owner". I've made a feature request that possibly addresses this and other issues RFC - Simplified @connection directive

I just ran into this, and can confirm paradoxically removing the ! from the connected model (TestModel in the example above) aovids the error as well for me.
The downside is now the generated TypeScript binding has the field as a nullable field when I want it non-nullable, especially as the key (test1Id in the example above) is defined as non-nullable, so it doesn't make sense that the connected field is nullable.
I wonder if there's any update to this bug?

Isn't the bug here?: https://github.com/aws-amplify/amplify-cli/blob/master/packages/amplify-codegen-appsync-model-plugin/src/utils/process-connections.ts#L201
There are only 3 branches in the if statement checking if both sides of the connection are null or not:

if (!field.isNullable && otherSideField.isNullable)
else if (field.isNullable && !otherSideField.isNullable)
else

But there are 4 separate possibilities, and 2 of them are being swallowed up by the last else clause. It looks like there should be a separate clause checking that both are not null and not throwing an error in that case.
I confirmed by monkey patch that if there was this 4th branch added, then it would fall into it and not error out for the schema @wooklym provided above.
@drochetti is the above known, and any idea if this will be fixed any time soon if so?

This is still a relevant issue and needs to be triaged and prioritized.

I'm using a translation tool, so it may be confusing
I added a child element connection to the parent element and verified that it works
In @wooklym, amplify codegen models does not output an error, but DataStore.query cannot get it as Connection.
type TestModel @model {
  id: ID!
  name: String
  children: [TestModel2] @connection(fields: ["id"])
}

type TestModel2 @model {
  id: ID!
  test1Id: ID!
  test1: TestModel! @connection(fields: ["test1Id"])
}

@danrivett did any downstream issues come up from your monkey patch?

@kldeb we removed the connection for now instead of money-patching; we monkey-patched just to prove out the theory that the if-block is missing a clause and it would fall into that missing clause if added instead of erroring.
@drochetti I guess everyone is busy, but been 6 months since this ticket was opened and the issue looks relatively simple to triage if someone is available to.

If this is an easy fix maybe i'll try my luck with a PR

@danrivett how did you apply the monkey patch?

For the record this isn't just a iOS issue.

@kldeb we removed the connection for now instead of money-patching; we monkey-patched just to prove out the theory that the if-block is missing a clause and it would fall into that missing clause if added instead of erroring.
@drochetti I guess everyone is busy, but been 6 months since this ticket was opened and the issue looks relatively simple to triage if someone is available to.

I mentioned it earlier in https://github.com/aws-amplify/amplify-ios/issues/505#issuecomment-639804984 - I was told it's being looked into and has to do with determining which side of the relationship should be the "owner". If the missing else clause is added I think you still have the problem of determining the "owner" and thus have a problem setting deletion rules. I've made a feature request that might solve this and other problems: RFC - Simplified @connection directive

Any updates?

Thanks for taking the time to comment. We’re working on ways to make DataStore relationships simpler. We’ll update this issue as soon as we have more information.

What's the rationale for not generating models when both sides of a connection are optional?

Any update on this yet?

Any update on this?

With the launch of TransformerV2 directives (hasOne/belongsTo/hasMany/etc), I started off by translating the schema over to
type PhoneCall @model {
  id: ID!
  callerId: ID! @index(name: "byCaller")
  calleeId: ID! @index(name: "byCallee")
  caller: Person! @belongsTo(fields: ["callerId"])
  callee: Person! @belongsTo(fields: ["calleeId"])
  transcript: Transcript @hasOne
}

type Person @model {
  id: ID!
  name: String!
  callerOf: [PhoneCall!] @hasMany(indexName: "byCaller")
  calleeOf: [PhoneCall!] @hasMany(indexName: "byCallee")
}

type Transcript @model {
  id: ID!
  text: String!
  language: String
  phoneCall: PhoneCall @belongsTo
}

I kept both 1:1 Transcript to PhoneCall as optional, but now that I reviewed the conversation here, I believe one side can made required. Let's take, for example, the calling code when using DataStore (Swift). We have to create individual instances of PhoneCall and Transcript, so at least one of the sides have to be optional to allow the FK to be set later:
// Create both instances
var phoneCall = PhoneCall(caller: savedCaller, callee: savedCallee)
let transcript = Transcript(text: "text", phoneCall: phoneCall)

// Set the PhoneCall's FK to the Transcript, ie.
phoneCall.setTranscript(transcript)
phoneCall.phoneCallTranscriptId = transcript.id

// Save both models
try await DataStore.save(phoneCall)
try await DataStore.save(transcript)

In this calling pattern, I think the Transcript's connected model to PhoneCall can be made required. This use case is enabled by the latest codegen and library changes we are currently working on in https://github.com/aws-amplify/amplify-swift/pull/2583

The Lazy Loading feature was released in version 2.4.0.  This should address this issue.  Please open a new issue if this release does not resolve the problem.

I can't go to V2 because of
https://github.com/aws-amplify/amplify-category-api/issues/110
My schema worked perfectly, but not I am getting this error and it is stopping releases.

Hey @spc16670, this issue was closed since we released the changes in 2.4.0 of the library. It was related to representing 1:1 relationships in the swift codegenerated model types. At a glance, I don't see the correlation between the two issues, the linked issue sounds like it's about auth rules with groupsField and groupClaim not working. If i'm wrong here, please open a new issue in the library repo with more details, and reference the related issue you're referrng https://github.com/aws-amplify/amplify-swift/issues/new?assignees=&labels=&projects=&template=bug_report.yaml


How to access intermediate tensors that are used during the application (tf.app) lifecycle

Basically, I am running the evaluation script, provided by Tf's Object Detection API, using:
python3 object_detection/legacy/eval.py \
    --pipeline_config_path=../../faster_rcnn_resnet101_voc12.pbtxt\
    --checkpoint_dir=../../trainedmodel_voc07 \
    --eval_dir=../../eval_results \
    --run_once=True \
    --alsologtostderr

Now, this script outputs the bounding boxes on image along with prediction scores. But what I need is, the metrics calculated.
When I looked into the eval.py, I found that, it returns nothing. It run the evaluation, calculates the metrics but doesn't return it. So, I just changed the code to return the metrics and print it on console.
metrics = evaluator.evaluate(
        create_input_dict_fn,
        model_fn,
        eval_config,
        categories,
        FLAGS.checkpoint_dir,
        FLAGS.eval_dir,
        graph_hook_fn=graph_rewriter_fn,
    )
print(metrics)

But, as we know, this won't print the values inside the metric.  I have also tried using metrics.eval() by creating a session but this just hangs up the PC and does nothing.
Also, tf.print() won't work as it runs in graph mode.
Then I found that TF stores summaries of metrics and we can visualize it using tensorboard. That's okay.. but what I wanted to extract values from other tensors?
So, basically, how can I access the intermediate tensors in the script?

@ParikhKadam,
Looks like this issue is related to tensorflow/models repo. This is a duplicate of an earlier issue you have mentioned #8209.
Can we track that issue and close this one. It will help us to follow easily. Please let us know. Thanks!

@amahendrakar  Maybe you should close that issue then. Because, I think this as a flaw in tf.app rather than of models repo. tf.app doesn't provide a way to access tensors directly (maybe).

@ParikhKadam Closing this issue here as it a duplicate of #8209. Lets track it in the models repo.


JBDS-3682 Online installer reports missing package.js file

None pretty solution v.2 to fix the tests and app at the same time.

Can one of the admins verify this patch?


panic: sync: negative WaitGroup counter during strimzi roll of brokers

I noticed the canary die like this during a Strimzi orchestrated roll of the kafka brokers.  Kubernetes restarted the canay, so there was no end user impact.
2021/04/13 16:55:11 Consumer group handler consumeclaim
panic: sync: negative WaitGroup counter

goroutine 581 [running]:
sync.(*WaitGroup).Add(0xc0001a01b0, 0xffffffffffffffff)
	/usr/lib/golang/src/sync/waitgroup.go:74 +0x147
sync.(*WaitGroup).Done(...)
	/usr/lib/golang/src/sync/waitgroup.go:99
github.com/strimzi/strimzi-canary/internal/services.(*consumerGroupHandler).ConsumeClaim(0xc00000e0b0, 0xb3eb40, 0xc00042ec00, 0xb39dc0, 0xc0001710b0, 0x10, 0x0)
	/home/ppatiern/github/strimzi-canary/internal/services/consumer.go:194 +0x7f
github.com/Shopify/sarama.(*consumerGroupSession).consume(0xc00042ec00, 0xc000220920, 0x10, 0x0)
	/home/ppatiern/go/pkg/mod/github.com/!shopify/sarama@v1.27.2/consumer_group.go:690 +0x28f
github.com/Shopify/sarama.newConsumerGroupSession.func2(0xc00042ec00, 0xc000220920, 0x10, 0xc000000000)
	/home/ppatiern/go/pkg/mod/github.com/!shopify/sarama@v1.27.2/consumer_group.go:615 +0x87
created by github.com/Shopify/sarama.newConsumerGroupSession
	/home/ppatiern/go/pkg/mod/github.com/!shopify/sarama@v1.27.2/consumer_group.go:607 +0x53b

Thanks to https://github.com/strimzi/strimzi-canary/pull/45 this error cannot happen anymore.


Remove unnecessary import

Hi! Do we still need Platform here? It seems unnecessary to me since we already have isAndroid from './shared' for that.

Ah I see, you are a man of clean code, as well

Indeed. I bath my code every once in a while. =)

Because, you know, dirty code usually runs a little bit slower than the clean one.


feat(extraction): allow details to be added to a kindex required input

Can you not switch to using kzip create for this?


Deprecated include of L.Mixin.Events

https://github.com/Leaflet/Leaflet/pull/5365
The use of including L.Mixin.Events and you are to use L.Evented instead.  Leaflet warns on the javascript console with the deprecation message saying L.Mixin.Events including will be removed in future releases
leaflet: 1.3.1
leaflet-minimap: 3.6.1

Yes, this needs to be fixed before future Leaflet releases. Sorry about the late answer!


fix: Enable async_in_trait_feature

Could this possibly be a typo introduced in this commit? It break compilation since the async feature was not enabled correctly.

Hi @VersBinarii
I think this is just a matter of you compiling with an older toolchain?
async_fn_in_trait was stabilized since nightly-2023-11-01, which is also the version locked in rust-toolchain


Control order of Multiple Buildpacks

Right now, it looks like the packeto buildpacks run in alphabetical order. It would be useful to allow changing that order.

I'm pretty sure this was not the case and just a coincidence


bug: puppet run will reset the password to clear text

The following puppet runs will change the password to its clear text value.
Info: Applying configuration version '1431027075'
Notice: /Stage[main]/Xlrelease::Config/Ini_setting[xlrelease.admin.password]/value: value changed '{b64}CAIxCbqlmdK93f2p1dtBQw==' to 'xebia1'
Info: Class[Xlrelease::Config]: Scheduling refresh of Class[Xlrelease::Service]

This issue was moved to xebialabs/puppet-xlrelease#4


IntegerField has an incomplete API

Description
There is no way to communicate invalid input to the user or the Java backend.
Steps to Reproduce
Given the following code
        IntegerField test = new IntegerField();
        test.addValueChangeListener(event -> {
            Integer value = event.getValue();
            if (value == null)
                Notification.show("Why is it null?");
            else
                Notification.show(value.toString());
        });

Enter 1234 and leave the field (blur)
You see a notification of "1234"
Enter<PHONE_NUMBER>12 and leave the field (blur)
You see a notification of "Why is it null", while the visible UI value is still<PHONE_NUMBER>12

Steps not to reproduce

Enter<PHONE_NUMBER>12 and leave the field (blur)
You see no notification, while the visible UI value is still<PHONE_NUMBER>12
test.getValue() would return null in this case

Expected Results
There should be a way to communicate this error to the user or backend. How? The API is missing functionality for that.
Actual Results
The user is confused while staring at a number, which isn't the number the backend will work with from there. Neither is the field invalid nor is this state communicated to the user.
Browsers Affected
Any. It is not the fault of the browser.
Version
probably all versions.
Background
In the IntegerField.java there is a PARSER which swallows NumberFormatExceptions. It converts any invalid input silently to null.<PHONE_NUMBER>12 is not parse-able so this is somehow expected (from a programmer's perspective). But the programmer cannot react to that input in any way.
The same problem arises with any component implementing HasValue. The API is not written to handle invalid input. T getValue() does not allow to throw an exception. But there is always a possibility that converting the user's input into a semantic value does not work out.
This is heavily related to https://github.com/vaadin/vaadin-date-picker/issues/748.
But this is also true for any CustomField.generateModelValue(). The user can enter strange things that are not convertible to a valid value. There may be a workaround for custom field by implementing the "null object pattern" but you then have to return a different null object for every call. Otherwise the ValueChange is not triggered as the null-object still is equal to the former null-object.
Conclusion
The API must be extended to support exception handling. getValue() and generateModelValue() should allow to throw some ValueException which could then be handled by the framework. The exception could also arise directly from the client side and passed through to the Java backend.
Invalid user input shall not be discarded. It must be handled in a proper way. Either by the WebComponent, the Flow component or the programmer using the framework.
The current "solution" is like try {} catch (Exception e) { e.printStacktrace() }

Related: https://github.com/vaadin/vaadin-date-picker/issues/748 (considered blocked by https://github.com/vaadin/flow/issues/8242)


changing font Arial to Arial Unicode MS for east asian languages

I've created a pull request as you said in the forum.
https://github.com/majorsilence/My-FyiReporting/issues/152
The solution may not be the most clean to solve this, but it works for me right now.

I have to fix it - this pull request doesn't support Katakana and Hiragana scripts. (opening another pull request later)


Pause for High Score input

When playing a game and button smashing, when the game ends, it's super easy to accidentally exit out of the High Score input window.  Need some sort of Pause or User Interaction to continue entering High Score initials.

What would the preferred approach be here? Should we just ignore input for the first two seconds after the UX loads?

Fixed


Jetlime classes not resolved since 1.0.6

I started to upgrade to 2.0.0 (had been using 1.0.3) and couldn't resolve new classes....went back and seems to have started with 1.0.6 (with existing classes used there e.g. JetLimeItemsModel).  Is there any new requirements in that version?

There seems to be an issue with the AAR packaging in 2.0.0.
It has been fixed in 2.0.1. Thanks for pointing this out.


How does dependabot auto-resolve conflicts?

I see that when multiple PRs are open and I complete one by one - there are times when there is a conflict in package.json. I'm curious to know how these conflicts automatically? Does dependabot re-run the updates in background with the latest master? Does it rebase?

@GiriB dependabot re-runs the update with the latest master and force pushes over the existing PR

@feelepxyz  Thanks!

May I ask what the best practise in such cases looks like. When will dependabot rebuild the pull request having merge conflicts? It looks like it just happens after the usual interval which is a bit unfortunate. How should the workflow look like?

May I ask what the best practise in such cases looks like. When will dependabot rebuild the pull request having merge conflicts? It looks like it just happens after the usual interval which is a bit unfortunate. How should the workflow look like?

Unless you disable automatic rebases we try to do it every time your manifests change on your default branch, this will then kick of the rebase job but these can take some time as the update needs to be re-done from scratch. Not sure I follow what you mean by How should the workflow look like??

My workflow question was directed towards the sequence of events depending on the configuration. I am not sure how long one is supposed to wait for the conflict resolution. So right now I just close PRs as soon as they have conflicts and wait for new PRs to get proposed again from scratch by Dependabot.

My workflow question was directed towards the sequence of events depending on the configuration. I am not sure how long one is supposed to wait for the conflict resolution. So right now I just close PRs as soon as they have conflicts and wait for new PRs to get proposed again from scratch by Dependabot.

Hm that sounds like a bug! It should be within minutes if you enable Automatically rebase Dependabot PRs when they have conflicts in your dependabot dashboard account settings page.

You can also trigger a rebase by commenting on the PR with @dependabot rebase. Once a rebase is kicked off there should be a message added to the PR body notifying you of this. Otherwise, could you send over the URL to the latest logs and I can take a look? You'll find the logs if you go the dependabot dashboard and click on last checked..

Thank you for your support. I will try to get back to this here once I encounter the situation again. I cannot find the exact PR where I perceived the described behaviour as it was a couple of days ago and I did not write it down in the first place.

I think I perceived the situation again and left it alone to see what actually happens. When I came back the other day I saw a new commit which was made by dependabot round about a minute later. So I guess there is no real problem. From my side there would only have been the expectation that this is way more snappy and quick or that this is at least explained somewhere where I could read how the behaviour was implemented. Anyway thanks a lot for checking in here.

@xh3b4sd that's fair, it's slow because we actually re-run the entire update against the head version of your manifests, so depends on the size of your project and the workload we're currently under where things can get stuck in queues if we're backed up. Will see if we can add this to our docs. We're moving it all to help.github.com at the moment.


linux: uncurse arguments

Description of changes
Currently things like buildLinux { inherit src version; } fail because of callPackage auto-inserting kernelPatches, which is both a buildLinux argument and a pkgs toplevel attribute, with completely different semantics.
Avoid that entirely by splitting the call into two - one for arguments we want from callPackage, and one for everything else.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This breaks overriding structuredExtraConfig etc. of kernel derivation.

I have a fix, give me a bit of time.

Fix is here: https://github.com/NixOS/nixpkgs/pull/296874


letsencrypt Domain name won't resolve

Describe the bug
The name acme-v02.api.letsencrypt.org won't resolve. It seems like the servers unbound is using are just never available. I had been watching this fail for a while assuming it was just some server not reachable, but it doesn't seem to ever clear and I need it to renew a web certificate. I temporarily defined the domain to the ip I got from <IP_ADDRESS> in my pihole so I could do the cert update and it worked. So I'm good for the time being, but I'd like to know how to diagnose this further. I'm overwhelmed with logging. I can gather more logging if you tell me what to enable.
To reproduce
From a client run "dig acme-v02.api.letsencrypt.org" with request going to unbound.
After some time I get back:
; <<>> DiG 9.10.6 <<>> acme-v02.api.letsencrypt.org
;; global options: +cmd
;; connection timed out; no servers could be reached
Log attached with verbosity 2 and SERVFAIL logging enabled.
fail.log
Expected behavior
Response with IP <IP_ADDRESS> should return
System:

Unbound version: 1.14.0 (docker latest tag from a few weeks ago)
image is sha256:009d59258ba3096b5222667c86fb77563c08a2f3beaa7dd86ee134021114a766

OS: debian

unbound -V output:
Version 1.14.0

Configure line: --with-deprecate-rsa-1024 --disable-dependency-tracking --prefix=/opt/unbound --with-pthreads --with-username=_unbound --with-ssl=/opt/openssl --with-libevent --with-libnghttp2 --enable-tfo-server --enable-tfo-client --enable-event-api
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 3.0.1 14 Dec 2021
Linked modules: dns64 respip validator iterator
TCP Fastopen feature available
BSD licensed, see LICENSE in source package for details.
Report bugs to<EMAIL_ADDRESS>or https://github.com/NLnetLabs/unbound/issues

Gah, I think I truncated the log at the wrong SERVFAIL. The error is the same as the one shown though for s3.amazonaws.com: "could not fetch nameservers for 0x20 fallback". Seems to be an example of the same thing.

I disabled use-caps-for-id and reran. I still get no servers found for this letsencrypt address. I do have both ipv4 and ipv6 fully enabled. Maybe that is causing this? Log with verb 4 attached.
failedsearch.log

I re-enabled use-caps-for-id and set do-ip6 to no and now when I dig this lets encrypt address or ping it, I get a result! However it's always the ipv6 address. Dig never returns the ipv4 address for that domain name. In fact ping4 to this address gives "ping4: acme-v02.api.letsencrypt.org: Address family for hostname not supported". I'm a little confused what do-ip6 really does.

After thinking about my configuration I realized that do-ipv6:no is fine for me. I have pihole in front of unbound and that supports both ipv4 and ipv6 with unbound in the backend over only ipv4. I think there is just some quirk using unbound with both ip4 and ip6 enabled. Could be a bug or could be something I don't understand. But is ok with me to drop this if you want.

I had a similar problem, I disable do-ipv6 and prefer-ip6, but I still see IPv6 queries being issued to my forwarding server.
set local-zone: ip6.arpa. refuse may be fixed this.
From the man page of unbound.conf:
do-ip6: (yes or no)
Enable or disable whether ip6 queries are answered or issued. Default is yes. If disabled, queries are not answered on IPv6, and queries are not sent on IPv6 to the internet nameservers. With this option you can disable the ipv6 transport for sending DNS traffic, it does not impact the contents of the DNS traffic, which may have ip4 and ip6 addresses in it.

Hi,
This is what happens:
debug: sanitize: removing public name with private address <ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com.> <IP_ADDRESS>#53

Unbound removes that IPv4 address because it thinks it belongs to private space.
Do you have private-address:  in your config and maybe also a typo in the IPv4 there?

Doh! Thank you. I found a <IP_ADDRESS>/8 entrty, but I have no idea how it got there. Originally I did not have an unbound.conf so I copied the default one out of the container, I guess I must have done that but I'm surprised because I also had the specific entries for the docker subnets I've got. It makes no sense that I added this class A. Anyhow that explains it so closing.


Nonlinear performance scaling when writing to multiple drives

Over the past several years I have developed software for my employer for the purposes of high-performance tar and LTFS tape reading and writing for LTO tape drives. This software runs primarily under MacOS but we also support some Linux installations as well. This software is used in large-scale media production, and it's not uncommon for us to write 10-20 terabytes of source content per day on LTO 6/7/8 tapes for periods of a month or more.  We have observed a non-linear performance scaling behavior when writing to many tape drives at the same time and would like to understand and eliminate this phenomenon to maximize our tape write performance. We speculate that there may be some underlying architectural feature of the LTFS driver which is causing the performance degradation, because all of the other pieces of our system should be able to support the total aggregate bandwidth.
I have attached a spreadsheet which shows some performance numbers from a recent test series. These were taken on a system with 4 LTO6 drives. We typically write to mirrored (duplicate) tape sets. Our software works by having a Reader thread which reads data from a filesystem and places buffers of this input data into separate queues, one per tape drive. There is also one Writer thread per tape drive, which dequeues these buffers and writes the data to the LTFS filesystem via POSIX C open/write functions. OS filesystem caching is disabled (on both the read and write sides) to avoid polluting the RAM with unnecessary disk cache data.
It is understandable that the performance will go down when comparing the 1-drive case to the 2-drive (mirrored set) case. Each individual drive will naturally have a varying write speed, due to the physical characteristics of the drive and defects in the tape medium. When writing a mirrored set, we are coupling the drives together because we only read the data once (and the Writer queue size is finite), causing the the overall streaming speed to be limited to the minimum of the speeds of the 2 drives (within a certain window). It's like you have a 2-car train; one car cannot go faster than the other. To decouple the drive performance as much as possible and prevent "rubber-banding", our Writer queue size is very large (1GB per drive). The attached spreadsheet shows that we are achieving 150 MB/s average with a single drive, but only 133 MB/s with 2 drives in a mirrored configuration. This is expected.
The unexpected result is the further performance decrease when we write to 4 drives. In this case, we are writing 2 mirrored sets, and each mirrored set is a totally independent operation with its own threads. Our Mac Pro machines are 12-core 2.8 GHz with 64GB of RAM, and the filesystems from which we're reading the data are capable of 600 - 1500 MB/s of read bandwidth, so the input side should not be a problem. You can see from the results that one mirrored set (Group 02) is writing at a nearly nominal rate (115-155 MB/s) but the other is much more degraded (85 - 111 MB/s). After Group 02 finishes, the slow Group 01 goes much faster (the last 2 packages are 151-159 MB/s).
Can you think of any shared resources in the LTFS or FUSE drivers could explain this performance issue?
Single_Double_Quad_Tape_Test.xlsx

No, I don't have any information at this time. Basically, we don't have much care about multiple LTFS instances on a machine and it's performance.
But the fact you described is little bit interesting to me. So I will investigate a little in my spare time.
I would like to know the environment first. Can you check my assumption below?

Machine: Mac Pro (Mid 2010?) 2-core 2.8 GHz
Memory: 64GB
OS: MacOS ??
HBA: 2 SAS HBAs (2 port ATTO HBA x 2) to PCIe ?
LTO drives: LTO6 (SAS) x 4

Thanks for offering to look into this. My manager said that he met you at NAB a few years ago and thought that you would be willing to help. Here is the specs for the machine on which these tests were run:

Machine: Mac Pro, 6.1 Late 2013, 12-core, 2.7 GHz, Dual D700
Memory: 64GB
OS: 10.12.6
HBA: Magma Thunderbolt 2 PCIe expander with a single Atto H680 2 port + SAS fan out (1-to-4 port) cable
LTO drives: HP LTO6 (SAS) x 4 with LTFS version HP 3.2.0

We have observed this performance degradation on older versions of OSX as well, going back to at least mavericks 10.9. We've seen it with different versions of LTFS and FUSE.  We could also run these tests under Linux if that would be useful for you; our application is cross-platform. I can also give you numbers for the read performance degradation; I believe it is even bigger than for the writing case.

Thanks, I will investigate current LTFS (on this GitHub) can handle 4 streams or not on my spare time.
Before reporting the results. I would say a few things.

I had never visited the NAB show at all. So the man your manager met is another person in IBM Japan. (I think I may know him of cause)
The current LTFS on this repository does not support HP drives at all and I don't think HP's LTFS is not built on this repository. So I don't know my results can be effective to the HP's LTFS.
In my understanding, you are connecting 4 drives to 1 SAS port with the 1-to-4 port cable. Is it correct? If so, you are using 6gbps (600MB/s without SCSI overhead) on 4 drives. And I think performance degradation is natural because SCSI overhead is estimated as 10% - 20%, so limit of actual transfer rate is 540MB/s - 480MB/s per 1 SAS port.

Yes, we have had some difficulties due to the fact that the HP and IBM drivers don't support the drives from the other manufacturer, and cannot both be installed at the same time. A few years ago I took a tagged source code version of the IBM driver (before it was put on github) and modified the drive table to add the HP drives to the supported list. I had an IBM 24-slot 2-drive LTO5 changer and 2 HP standalone decks connected to my Mac Pro. It worked fine with this modified IBM LTFS driver.
I was under the impression that the HP and IBM LTFS software packages had a common source ancestor and were mostly the same. If not, I could always get the latest source code here and add the HP drives into supported table again, then re-run the tests. Most of our drives are HP; I think the only IBM drives we have are that LTO5 changer and some new LTO8 drives.
The H680 card has 8 separate SAS ports, each supporting 6Gb/s (https://www.atto.com/products/adapters/sas-sata/6gb-pcie-30/ESAS-H680-000). The physical configuration is two external connectors, each wired up with 4 SAS ports. We use SFF-8088 fanout cables, and each drive gets its own 6Gb SAS port. So this should not be a bottleneck. We could also test to validate that we get the expected throughput scaling when writing to Tar tapes with this hardware configuration, because we also support the old style of tape backup.

I made a sniff test with attached test script but LTFS can write 80GB in 35 sec in 4 processes (20GB write with a dd x 4 dds). I don't think LTFS is the bottleneck at all.

LTFS version: Head of v2.4.0 branch (9b9a319131cad8971ef2c296b1d3daab7b215ce2)
Mac: iMac Retina 5K, 27', 2017
Memory: 32GB
Processor: Intel Core i5 3.8GHz x 1
OS: macOS High Sierra (10.13.6)
FUSE for macOS: 3.8.0

Take a look the attached script and please let me know if you have a question.
perf-4-writes.tar.gz

Thanks for looking into this. Your test results indicate that the LTFS filesystem itself can support a high bandwidth with 4 streams writing at once. But you're using the file backend instead of real tape drives, so this does not test the iokit SCSI backend.
I'll set up another test here to drill down further, and we will compare LTFS versus TAR, reading only, with 1, 2, and 4 simultaneous operations.

I think the possibility is low that the iokit backend is a bottleneck. Because LTFS passes the pointer of data buffer to the iokit backend (not only the iokit backend but also other backends..) and the iokit backend just pass it to the IOKit almost directly like below.
https://github.com/LinearTapeFileSystem/ltfs/blob/0027fd8d5a65aea2cc14b5feb1513b8a76915abb/src/tape_drivers/osx/iokit-ibmtape/iokit_ibmtape.c#L1286-L1382
https://github.com/LinearTapeFileSystem/ltfs/blob/0027fd8d5a65aea2cc14b5feb1513b8a76915abb/src/tape_drivers/osx/iokit-ibmtape/iokit_scsi.c#L153-L272
One possibility is IOKit is a bottleneck but I cannot make any help if IOKIt is really a bottleneck.
Anyway, now I'm finding 4 LTO drives (of cause IBM drives) in out lab. I will make deeper analysis when they are available.

I tried to make W/R data with 4 streams on 4 physical drives with ATTO H644 + SAS fan out (1-to-4 port) cable.
I modified the script to use real drives like below. The written data is fetched from /dev/zero and the data is dumped to /dev/null, it means I didn't use any physical device except tape drives.
#!/bin/bash

MKLTFS='/usr/local/bin/mkltfs -f '
LTFS='/usr/local/bin/ltfs -o sync_type=unmount '
STREAMS=3

for i in `seq 0 ${STREAMS}`; do
    echo "Formatting ${i}"
    ${MKLTFS} -d ${i}
    echo "Mounting ${i}"
    ${LTFS} -o devname=${i} ./sde${i} &
    sleep 2
done

wait

echo "The test will be started after 2 secs"
sleep 2

sync && purge

SECONDS=0
for i in `seq 0 ${STREAMS}`; do
    echo "Starting write stream${i}"
    dd if=/dev/zero of=./sde${i}/data bs=256k count=80000 &
done

echo "Waiting completion"
wait

echo "The test is finished. Duration (W) = ${SECONDS}"

for i in `seq 0 ${STREAMS}`; do
    echo "Dummy read for next test stream${i}"
    dd of=/dev/null if=./sde${i}/data bs=256k count=1 &
done
wait

SECONDS=0
for i in `seq 0 ${STREAMS}`; do
    echo "Starting read stream${i}"
    dd of=/dev/null if=./sde${i}/data bs=256k count=80000 &
done

echo "Waiting completion"
wait

echo "The test is finished. Duration (R) = ${SECONDS}"

for i in `seq 0 ${STREAMS}`; do
    echo "Unmounting ${i} with sudo"
    sudo umount ./sde${i} &
    sleep 2
done

wait

From a result, I can't find a performance degradation on this environment. LTFS and HBA can transfer the data about 270MiB/s (W), 210MiB/s (R) on 4 streams like below.
Read side degradation (70MiB/s (W) vs 210MiB/s (R)) is expected result. Because LTFS has a buffer, default 50MB,  only  for write and write requests are processed by a dedicated thread. On the other hand, there is only 512KB buffer for read. So LTFS need to issue a READ command when requested block is over the boundary of current block. We need to have some kind of read a head architecture to solve this problem. (But it may be a big architecture change)
Write side perf
20971520000 bytes transferred in 73.967070 secs (283525088 bytes/sec)
20971520000 bytes transferred in 74.073209 secs (283118827 bytes/sec)
20971520000 bytes transferred in 74.221951 secs (282551452 bytes/sec)
20971520000 bytes transferred in 76.595445 secs (273795916 bytes/sec)

Read size perf
20971520000 bytes transferred in 94.368952 secs (222229023 bytes/sec)
20971520000 bytes transferred in 94.376731 secs (222210706 bytes/sec)
20971520000 bytes transferred in 94.855077 secs (221090116 bytes/sec)
20971520000 bytes transferred in 95.146789 secs (220412273 bytes/sec)

Please reopen this you find another fact about this.

Thank you very much for all of the investigation you did for this issue. I will run these tests on our hardware and report the results here. I'm sorry for the delay, but all of our tape decks have been out in the field being used on shows for the past few weeks. As soon as we get 4 of them back in the lab I'll test.


Ability to add custom alarm modes such as "nap" mode or "guest" mode

Hoping to add a few custom alarm modes such as a "nap" mode or "guest" mode (just like the vacation mode).
Even being to add multiple custom_bypass modes and rename them would be great!

Alarmo only provides the modes which are supported by HA.
See here.
Obviously the custom mode can be used as you desire. In the alarmo-card you could rename it so it appears as a guest mode or similar. I'm afraid that's all I can do.


Issue with resources folder

Fusion crashed on line 442 for me:
'./resources/') # relative resource file path is specified
Removing the resources parameter altogether fixed it on my part.
Thought I'd share.
Very cool script btw!

Fixed at https://github.com/amandaghassaei/Fusion360-Design-History-Animation/commit/51b4a546830f80abb3e07df12177225093be4154
Thanks for letting me know - I had an empty folder in there that wasn't being committed!


build: update build script for Windows

What is the current behavior? (You can also link to an open issue here)
Because they rely on linux/unix command line tools, the build scripts previously didn't work for windows.
What is the new behavior (if this is a feature change)?
Now, the functionality is reimplemented using Node.js functions that work in any environment.
Please check if the PR fulfills these requirements

[x] The commit messages follow our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[x] Running npm run build produced a successful build. (Unit testing can be done by running npm test;)
[x] My code has been linted. (npm run lint to do this. npm run build will fail if there are files not linted.)

Please provide a screenshot of this feature before and after your code changes, if applicable.
Other information:

Thank you @MaxKless!


Impossible to take a picture with a good resolution using the font facing camera.

When setting a resolution in the preview, such as 1280x960 on a Nexus 5, the output resolution is 320x240.
The camera is set up this way:
        mCameraSource = new CameraSource.Builder(context, detector)
                .setRequestedPreviewSize(1280, 960)
                .setFacing(CameraSource.CAMERA_FACING_FRONT)
                .setRequestedFps(30.0f)
                .build();

And the picture is taken this way:
                mCameraSource.takePicture(null, new CameraSource.PictureCallback() {
                    @Override
                    public void onPictureTaken(byte[] bytes) {
                        Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                        Log.d("BITMAP", bmp.getWidth() + "x" + bmp.getHeight());
                    }
                });

You can find the modified sample code to help reproduce the issue here

The tricky thing about choosing the camera resolution is that the aspect ratio of the preview needs to be about the same as the aspect ratio of the picture, otherwise you'll end up with a distorted preview image.  My guess is that the only supported preview/picture sizes that are close enough in aspect ratio for the Nexus 5 front facing camera hardware is 320x240 (preview) and 320x240 (picture).
It's possible that the code is too conservative about how different the preview vs. picture aspect ratios can be. I'd suggest printing out the sizes from the code below and seeing if there is a preview / picture size pair of about the same aspect ratio that you think it should be using, but is not. Let me know if this is the case.
You can see what the supported preview sizes and picture sizes are for the Nexus 5 like this:
List<android.hardware.Camera.Size> supportedPreviewSizes =
        parameters.getSupportedPreviewSizes();
List<android.hardware.Camera.Size> supportedPictureSizes =
        parameters.getSupportedPictureSizes();

Supported preview sizes :

Sorry, that seems to be a bug in CameraSource.  We will take a look.

Thanks !

I'm also running into this problem. CameraSource.takePicure results in an image with size 1280 x 720 on my Nexus 6 but my Nexus 9 returns an image with size 320 x 1xx (I don't have the exact resolution at hand but its waaay to small)
Thanks!

My Nexus 6 also takes images with a resolution of 240 x 320 (portrait) from the front facing camera.

I managed to hack together a quick fix/hack.
If you access the Camera object via reflection you can simply do getParameters(), modify them and set them again. I hope this helps you until a fixed version comes out

@Syzygy2048  - the CameraSource source code has been included with the barcode reader sample, so you can use it directly vs. using reflection.

@saiimons The open source version of CameraSource (see above) includes a fix for selecting the resolution.  By default, this will select the highest resolution for taking the picture (that also matches the preview aspect ratio).
Note that the current Google Play Services version of CameraSource does not yet have this fix, but that will be corrected in a future release.

Update:
The CameraSource in Google Play Services 8.4 nows select the highest resolution for taking a picture.

Can You Provide us link!!
And how to update it into existing code

No changes to your code are required.  Taking a picture with CameraSource in Google Play Services 8.4 will automatically use the highest resolution that the camera supports (which is same aspect ratio of the preview image).

I have the same problem on Moro G3 and Sony Xperia C4.
What is the way to fix it?

I've set setRequestedPreviewSize(640, 480) to cameraSource and I've checked the supportedPreviewSizes and supportedPictureSizes of both the front and back cameras: the 640x480 are supported. But I always receive pictures of size 2576x1932...
The problem is that I need low resolution to pass to the Face Detector as it is very slow with that high resolutions.

Well, I analyzed in depth the code and, as you say it selects the picture size of high resolution available, the preview size is 640x480.
Then, if I want a picture size of 640x480, what can I do? Scaling down the picture maybe, in CameraSource.PictureCallback?


[Web][Canvaskit]: Scrolling throws  !browserSupportsFinalizationRegistry is not true exception.

Steps to Reproduce

Execute flutter run on the code sample (or on darted)
Scroll through the app up and down all the way or partially fast or slow a few times
After multiple scrolls, the error below is thrown

Expected results:
Animation continues on scroll, regardless of speed, time, or amount of scrolls up/down
Actual results:
After a few scrolls, the animation freezes and the error attached is shown

Code sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {

  final Map<String, AnimationController> _animationControllers = {};
  final ScrollController _scroll = ScrollController();

  @override
  void initState() {
    super.initState();
    _animationControllers["animIn"] = AnimationController(vsync: this)..value=0.5;
    _animationControllers["animOut"] = AnimationController(vsync: this);
    setAnimationValueListener("animIn", 0.0, 1.0, true);
    setAnimationValueListener("animOut", 1.0, 2.0, false);
  }

  void setAnimationValueListener(String mapKey, double startingFrame, double endingFrame, bool forward) {
    void listener() {
      double frameStep = _scroll.position.maxScrollExtent / 2;
      double entryStart = startingFrame * frameStep;
      double entryEnd = endingFrame * frameStep;
      double position = ((_scroll.offset-entryStart)/(entryEnd-entryStart));
      double posVal = position.clamp(0, 1);
      if (!forward) posVal = 1 - posVal;
      _animationControllers[mapKey]?.value = posVal;
      if (endingFrame == startingFrame) _animationControllers[mapKey]!.value = 1;
    }
    _scroll.addListener(listener);
    WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
      listener();
    });
  }

  @override
  Widget build(BuildContext context) {
    // animationController.value = 1;
    return Scaffold(
      body: Stack(
        children: [
          createAnimation(),

          ListView(
            controller: _scroll,
            children: [
              Padding(padding: EdgeInsets.only(top: MediaQuery.of(context).size.height * 2)),
            ],
          ),
        ],
      ),
    );
  }

  Widget createAnimation() {
    Widget box = Container(
      width: 100,
      height: 100,
      color: Colors.blue,
    );
    return createAnimatedFade(
      child: createAnimatedFade(
          child: box,
          mapKey: "animIn",
      ),
      mapKey: "animOut",
    );
  }

  Widget createAnimatedFade({required Widget child, required String mapKey}) {
    return AnimatedBuilder(
        animation: _animationControllers[mapKey]!,
        builder: (context, _) => IgnorePointer(
          ignoring: _animationControllers[mapKey]!.value < 0.5,
          child: Opacity(
            opacity: _animationControllers[mapKey]!.value,
            child: child,
          ),
        )
    );
  }
}

Logs
Here's the error stacktrace once that Animation starts:
======== Exception caught by scheduler library =====================================================
The following assertion was thrown during a scheduler callback:
Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
!browserSupportsFinalizationRegistry
is not true

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 251:49  throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
lib/_engine/engine/canvaskit/skia_object_cache.dart 248:13                    [_doResurrect]
lib/_engine/engine/canvaskit/skia_object_cache.dart 245:40                    get skiaObject
lib/_engine/engine/canvaskit/canvas.dart 210:33                               drawPicture
lib/_engine/engine/canvaskit/layer.dart 467:17                                paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 337:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 537:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 154:5                                 paint
lib/_engine/engine/canvaskit/layer_tree.dart 56:17                            paint
lib/_engine/engine/canvaskit/layer_tree.dart 99:16                            <fn>
lib/_engine/engine/profiler.dart 37:18                                        timeAction
lib/_engine/engine/canvaskit/layer_tree.dart 98:5                             raster
lib/_engine/engine/canvaskit/rasterizer.dart 33:22                            draw
lib/_engine/engine/platform_dispatcher.dart 579:7                             render
lib/ui/src/ui/window.dart 93:50                                               render
packages/flutter/src/rendering/view.dart 229:15                               compositeFrame
packages/flutter/src/rendering/binding.dart 501:18                            drawFrame
packages/flutter/src/widgets/binding.dart 883:13                              drawFrame
packages/flutter/src/rendering/binding.dart 363:5                             [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1145:15                           [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1082:9                            handleDrawFrame
packages/flutter/src/scheduler/binding.dart 996:5                             [_handleDrawFrame]
lib/_engine/engine/platform_dispatcher.dart 1005:13                           invoke
lib/_engine/engine/platform_dispatcher.dart 159:5                             invokeOnDrawFrame
lib/_engine/engine.dart 455:45                                                <fn>
====================================================================================================

Output of flutter analyze:
Analyzing animation_bug_sample...
No issues found! (ran in 1.9s)

Output of Flutter doctor -v:
[✓] Flutter (Channel stable, 2.8.0, on macOS 12.0.1 21A559 darwin-x64, locale en-US)
    • Flutter version 2.8.0 at /Users/tejasmehta/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (5 hours ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tejasmehta/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 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tejasmehta/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7678000/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.10+0-b96-7281165)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
    • IntelliJ at /Users/tejasmehta/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
    • IntelliJ at /Users/tejasmehta/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.5080.55/IntelliJ IDEA.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 (3 available)
    • Pixel 6 Pro (mobile) • 19131FDEE001Z6 • android-arm64  • Android 12 (API 31)
    • macOS (desktop)      • macos          • darwin-x64     • macOS 12.0.1 21A559 darwin-x64
    • Chrome (web)         • chrome         • web-javascript • Google Chrome 96.0.4664.93

! Doctor found issues in 1 category.

This issue has the same error as #92830, at least in terms of the !browserSupportsFinalizationRegistry is not true

Thanks for the report. I verified this on latest stable (2.8.0) and on master and see the same behavior / crash logged in the console after scrolling up and down couple of times, using canvaskit rendering. With html rendering, there's no such log thrown.

console error log
══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during a scheduler callback:
Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
!browserSupportsFinalizationRegistry
is not true

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 251:49  throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
lib/_engine/engine/canvaskit/skia_object_cache.dart 248:13                    [_doResurrect]
lib/_engine/engine/canvaskit/skia_object_cache.dart 245:40                    get skiaObject
lib/_engine/engine/canvaskit/canvas.dart 210:33                               drawPicture
lib/_engine/engine/canvaskit/layer.dart 467:17                                paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 337:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 537:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 154:5                                 paint
lib/_engine/engine/canvaskit/layer_tree.dart 56:17                            paint
lib/_engine/engine/canvaskit/layer_tree.dart 99:16                            <fn>
lib/_engine/engine/profiler.dart 37:18                                        timeAction
lib/_engine/engine/canvaskit/layer_tree.dart 98:5                             raster
lib/_engine/engine/canvaskit/rasterizer.dart 33:22                            draw
lib/_engine/engine/platform_dispatcher.dart 579:7                             render
lib/ui/src/ui/window.dart 93:50                                               render
packages/flutter/src/rendering/view.dart 229:15                               compositeFrame
packages/flutter/src/rendering/binding.dart 501:18                            drawFrame
packages/flutter/src/widgets/binding.dart 883:13                              drawFrame
packages/flutter/src/rendering/binding.dart 363:5                             [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1145:15                           [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1082:9                            handleDrawFrame
packages/flutter/src/scheduler/binding.dart 996:5                             [_handleDrawFrame]
lib/_engine/engine/platform_dispatcher.dart 1005:13                           invoke
lib/_engine/engine/platform_dispatcher.dart 159:5                             invokeOnDrawFrame
lib/_engine/engine.dart 455:45                                                <fn>
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12
Another exception was thrown: Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/skia_object_cache.dart:248:12

 latest stable, master flutter doctor -v
[✓] Flutter (Channel stable, 2.8.0, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.8.0 at /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (10 hours ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/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
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 93.0.4577.82

• No issues found!

[✓] Flutter (Channel master, 2.6.0-12.0.pre.976, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.6.0-12.0.pre.976 at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ca7b823d93 (47 minutes ago), 2021-12-09 02:54:08 -0500
    • Engine revision 716d1b0998
    • Dart version 2.16.0 (build 2.16.0-85.0.dev)
    • DevTools version 2.9.1

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/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
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 93.0.4577.82

• No issues found!

https://user-images.githubusercontent.com/67046386/145364030-1dcdaa57-a69e-427d-84e9-ca5d90f914c5.mov
Also, verified the same behavior on stable (2.5.3) using canvaskit, but the error isn't thrown in that version, hence labeling it as regression identified and regression as applicable.

/cc @yjbanov

@darshankawar Hi. Our CanvasKit web app is not debuggable atm because of this error. Buttons can not be pressed.

I had to revert to flutter 2.5.3 because of this. No problem before last stable 2.8

It just happened to me when I tapped InkWell in my flutter web app. The ripple animation just stopped mid way and the web become unresponsive or crashed. It's not always happening, but it happened.
I'm on Flutter 2.8.

I got that error when I navigate between 2 widgets: "one with floatingActionButton" and the "other with FloatingActionButton.extended", I solved that problem by doing "heroTag: null" in one of them.
I'm on Flutter 2.8 (stable channel).

@cazaam4 it's solved because by putting the hero tag to null you disable the animation. No animation, no bug.
On my side I use animatedSwitcher to animate imageButton between 2 states, it totally breaks the page, it happens 100% of the time to me

I got that error when I navigate between 2 widgets: "one with floatingActionButton" and the "other with FloatingActionButton.extended", I solved that problem by doing "heroTag: null" in one of them. I'm on Flutter 2.8 (stable channel).

thank you @cazaam4, i lost days on it.

Same here, this is preventing me from upgrading to 2.8.0.
Is this really only P3?
It didn't take much to trigger, my app crashed as soon as it attempted to render CupertinoDatePicker.

This is definitely a P0-P2 issue @yjbanov. Our web app is not usable at all. Radio buttons get triggered out of nowhere.

It's still broken in 2.8.1 (I couldn't find release notes so I checked manually). Could this please get high priority? It's my understanding that this is basically making flutter web unusable for non-trivial use cases.

Same problem here. Using "OpenContainer" and doing a Navigator.pop breaks the UI. Only on Web.

I got this error when changing view based on some state.

Web is totally broken now

I get this when using CachedNetworkImages, useless.

I also have this problem with PageTransitionSwitcher, SharedAxisTransition on web it crashes and the second widget doesn't show up on my flutter run.
I'll try to downgrade to 2.5.3

How can a problem that affects EVERY standard web build be classified as P3 is beyond human comprehension...

All my apps are broken after flutter upgrade!
On Wed, Dec 22, 2021 at 12:26 PM Alessandro Riperi @.***>
wrote:

How can a problem that affects EVERY standard web build be classified as
P3 is beyond human comprehension...
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/94906#issuecomment-999658540,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMIZ4VJVZ5HM4JTFVURQ43DUSHU3NANCNFSM5JVMET4A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Have same error, but it crashes not every time.
Usually it crashes while CircularProgressIndicator animated, on some screens but not on every one.

Same error ... p3?

Same error here, unable to move forward without resolution on this one :/

Same issue here, My web app is broken in 2.8.1 stable version

One month has passed... it seems nobody cares, not even an answer...

isn't scrolling one of the main weaknesses of flutter web where the flutter team promised to significatnly improve? maybe be down to the holiday season that this has not been picked up by someone from the flutter team...

How can a problem that affects EVERY standard web build be classified as P3 is beyond human comprehension...

Per Flutter's issue prioritization policy, this issue has the highest possible priority, without it breaking the Flutter's build tree or affecting a top-tier customer.

One month has passed... it seems nobody cares, not even an answer...

We do care, this bug is not closed and is prioritized. Please note that the majority of the team is currently on vacations. I'm sure the relevant team members will post an update here, when they have one. Let's let the people have a rest they deserved.

We're not top tier customers, but we're all blocked...

So... are you really saying that there are no top-tier customers using flutter web and maximum priority flutter web can get is P3, with expected time to resolution apparently measured in months?

We are having issues because of this. Our web build is stuck on 2.5.3 while we are using 2.8.1 for mobile (because of the improvements).
This causes dependency issues, mainly the async package.
Please fix this asap.

I think I have this bisected to https://github.com/flutter/flutter/pull/90017, although with the above reproduction I may have missed triggering the crash on a step. The repro does animate opacity though, so it could be right.
cc/ @dnfield

I added better logging to the web engine and it confirmed that the framework is attempting to draw a picture that's been disposed of. Here's the new error message:
Unable to draw the specified picture because it has been disposed. When the picture was
disposed the stack trace was:\ndart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 910:28  get
current\nlib/_engine/engine/canvaskit/picture.dart 52:45
<fn>\nlib/_engine/engine/canvaskit/picture.dart 53:14
dispose\npackages/flutter/src/rendering/layer.dart 665:15                    set
picture\npackages/flutter/src/rendering/layer.dart 706:5
dispose\npackages/flutter/src/rendering/layer.dart 170:7
[_unref]\npackages/flutter/src/rendering/layer.dart 625:13                    set
layer\npackages/flutter/src/rendering/layer.dart 1083:12
removeAllChildren\npackages/flutter/src/rendering/layer.dart 968:5
dispose\npackages/flutter/src/rendering/layer.dart 170:7
[_unref]\npackages/flutter/src/rendering/layer.dart 625:13                    set
layer\npackages/flutter/src/rendering/object.dart 2112:18                  set
layer\npackages/flutter/src/rendering/proxy_box.dart 897:9
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 387:12
pushLayer\npackages/flutter/src/rendering/object.dart 608:5
pushOpacity\npackages/flutter/src/rendering/proxy_box.dart 901:22
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/box.dart 2847:14
defaultPaint\npackages/flutter/src/rendering/stack.dart 629:5
paintStack\npackages/flutter/src/rendering/stack.dart 645:7
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/box.dart 2847:14
defaultPaint\npackages/flutter/src/rendering/custom_layout.dart 408:5
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/material/material.dart 555:11
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 387:12
pushLayer\npackages/flutter/src/rendering/proxy_box.dart 1929:14
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 187:12
paintChild\npackages/flutter/src/rendering/proxy_box.dart 140:14
paint\npackages/flutter/src/rendering/object.dart 2449:7
[_paintWithContext]\npackages/flutter/src/rendering/object.dart 141:10
_repaintCompositedChild\npackages/flutter/src/rendering/object.dart 100:5
repaintCompositedChild\npackages/flutter/src/rendering/object.dart 995:29
flushPaint\npackages/flutter/src/rendering/binding.dart 499:19
drawFrame\npackages/flutter/src/widgets/binding.dart 883:13
drawFrame\npackages/flutter/src/rendering/binding.dart 363:5
[_handlePersistentFrameCallback]\npackages/flutter/src/scheduler/binding.dart 1144:15
[_invokeFrameCallback]\npackages/flutter/src/scheduler/binding.dart 1081:9
handleDrawFrame\npackages/flutter/src/scheduler/binding.dart 995:5
[_handleDrawFrame]\nlib/_engine/engine/platform_dispatcher.dart 1011:13
invoke\nlib/_engine/engine/platform_dispatcher.dart 159:5
invokeOnDrawFrame\nlib/_engine/engine/initialization.dart 128:45                       <fn>\n"

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 251:49  throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
lib/_engine/engine/canvaskit/canvas.dart 211:15                               drawPicture
lib/_engine/engine/canvaskit/layer.dart 467:17                                paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 337:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 537:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 368:5                                 paint
lib/_engine/engine/canvaskit/layer.dart 141:14                                paintChildren
lib/_engine/engine/canvaskit/layer.dart 154:5                                 paint
lib/_engine/engine/canvaskit/layer_tree.dart 56:17                            paint
lib/_engine/engine/canvaskit/layer_tree.dart 99:16                            <fn>
lib/_engine/engine/profiler.dart 34:18                                        timeAction
lib/_engine/engine/canvaskit/layer_tree.dart 98:5                             raster
lib/_engine/engine/canvaskit/rasterizer.dart 33:22                            draw
lib/_engine/engine/platform_dispatcher.dart 585:7                             render
lib/ui/src/ui/window.dart 94:50                                               render
packages/flutter/src/rendering/view.dart 231:15                               compositeFrame
packages/flutter/src/rendering/binding.dart 501:18                            drawFrame
packages/flutter/src/widgets/binding.dart 883:13                              drawFrame
packages/flutter/src/rendering/binding.dart 363:5
[_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1144:15
[_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1081:9                            handleDrawFrame
packages/flutter/src/scheduler/binding.dart 995:5
[_handleDrawFrame]
lib/_engine/engine/platform_dispatcher.dart 1011:13                           invoke
lib/_engine/engine/platform_dispatcher.dart 159:5                             invokeOnDrawFrame
lib/_engine/engine/initialization.dart 128:45                                 <fn>

I'm going to bounce this issue back to the framework team and send a web engine PR that improves logging.
In the meantime, if this is urgent, reverting #90017 sounds reasonable.

Reverting #90017 will be painful as it will cause a shift in a lot of goldens again.

It looks like the web is doing a better job asserting about object disposal than the VM here. The VM seems to tolerate using a disposed picture object when it shouldn't.

I think reverting it may be the best course of action right now, this is not the only reported issue that has been caused by #90017
https://github.com/flutter/flutter/issues/95270 and https://github.com/flutter/flutter/issues/96087 are also caused by the same change. I am going to prepare a revert now.

Ack, it cannot be done automatically. It may take a bit to prepare.

Revert is in https://github.com/flutter/flutter/pull/96246, nominating for cherrypick.

The revert was closed since it cannot be cherrypicked into the latest stable release 2.8.
@dnfield to follow-up

I replaced it with GestureDetector and it is still not working for me. Gives the same error on web. I wonder why on other places it is working.

This code was throwing this exception when I change expanded to false. (I am aware that AnimatedSwitcher needs wigets with different types or keys in order to animate but the switching should still work without animation and it did on desktop but not on web)
AnimatedSwitcher(
  duration: Duration(milliseconds: 200),
  reverseDuration: Duration(milliseconds: 100),
  child: expanded
      ? SizedBox(
          width: double.infinity,
          height: height,
          child: Column(
            children: [
              Divider(),
              Flexible(child: widget.child),
            ],
          ),
        )
      : SizedBox.shrink(),
);

I added key to the first widget and the crash was gone!! Everything works just fine now!!!
AnimatedSwitcher(
  duration: Duration(milliseconds: 200),
  reverseDuration: Duration(milliseconds: 100),
  child: expanded
      ? SizedBox(
          key: ValueKey('expanded body'),
          width: double.infinity,
          height: height,
          child: Column(
            children: [
              Divider(),
              Flexible(child: widget.child),
            ],
          ),
        )
      : SizedBox.shrink(),
);

Fix is in https://github.com/flutter/flutter/pull/96295

Thanks for the fix! Is there going to be a cherrypick into stable soon?

Thank you so much for fixing! This issue pretty much broke all existing Flutter Web projects so it's great to see a fix :hugs:

This issue, and/or the PR (?) will get updated with a cp: 2.10 completed label. It should be relatively easy to cherry pick yourself as well, e.g. git fetch upstream && git cherry-pick fa8e3e6877e8097a9e6012c56011879295ee40b8 or just making the changes from that commit in your local workspace.

What about stable, i.e. 2.8 as of right now? Are you saying that is 2.8 going to just skip web support entirely?

This bug solved when I changed the channel from stable to master!
Thanks @dnfield for solving!

@noinskit - I'm following up on that. My intention is to have this cherry picked into the current stable.

@dnfield awesome, thanks! I'm looking forward to that.

Ok, here's the story:

This patch will be cherry picked into 2.10, which is slated to be the next beta release very soon.
A stable release based on the 2.10 beta is also near on the horizon
Given the proximity of these dates, the release team is not going to work on cherry picks for 2.8
If you want this and you're currently on 2.8 you have two options:

Switch to the 2.10 beta when it's released, which will be soon :)
Use git fetch upstream && git cherry-pick fa8e3e6877e8097a9e6012c56011879295ee40b8 in your local workspace.

What's the date for 2.10 in stable?

I don't have that information, but I'm told it's relatively soon (as in the order of weeks).

I know that there are workarounds, but they all have significant disadvantages:

I have a multi-platform app, so staying on 2.6 means that I don't get e.g. fixes for iOS crashes from 2.8,
using different flutter versions between platforms of the same app creates problems with shared dependencies,
switching to master (or, soon, 2.10 beta) has obvious disadvantages,
hand-rolled 2.8 with a cherry-pick seems like the best option right now, but clearly there's risk if it's officially too risky for stable.

Is the web platform still considered ready for production? The docs claim that, but it's been broken for over a month and now it's going to be broken for an unspecified number of weeks more.

I was run flutter channel beta and flutter switched to 2.9.0-0.1.pre • channel beta instead of 2.10.0.
Thus I will do cherry-pick instead 🥇