Stencil: Creating a buildable library throws an exception

Describe the bug
Cannot create a buildable and publishable stencil library.
To Reproduce

Create an nx workspace: npx create-nx-workspace@latest stencil-test
Add dependencies: npm install -D @nx/node @nx/storybook @nxext/stencil
Add an stencil lib: nx g @nxext/stencil:lib web-components --publishable --buildable --importPath=@my-lib/components --verbose

This will throw an exception:
TypeError: Cannot read properties of undefined (reading 'properties')
    at addCodeIntoArray (/Users/leh/Data/misc/node_modules/@nxext/stencil/src/stencil-core-utils/lib/plugins.js:11:37)
    at addToPlugins (/Users/leh/Data/misc/node_modules/@nxext/stencil/src/stencil-core-utils/lib/plugins.js:87:12)
    at addStylePlugin (/Users/leh/Data/misc/node_modules/@nxext/stencil/src/stencil-core-utils/lib/style-plugins.js:20:43)
    at addStylePluginToConfig (/Users/leh/Data/misc/node_modules/@nxext/stencil/src/stencil-core-utils/lib/style-plugins.js:45:82)
    at /Users/leh/Data/misc/node_modules/@nxext/stencil/src/generators/make-lib-buildable/make-lib-buildable.js:35:57
    at Generator.next (<anonymous>)
    at /Users/leh/Data/misc/node_modules/tslib/tslib.js:169:75
    at new Promise (<anonymous>)
    at Object.__awaiter (/Users/leh/Data/misc/node_modules/tslib/tslib.js:165:16)
    at makeLibBuildableGenerator (/Users/leh/Data/misc/node_modules/@nxext/stencil/src/generators/make-lib-buildable/make-lib-buildable.js:31:20)

Expected behavior
The stencil library will be added to the nx workspace
Additional context
Hi have following package versions in place:
{
  "name": "@stencil-test/source",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {},
  "private": true,
  "dependencies": {
    "tslib": "^2.3.0"
  },
  "devDependencies": {
    "@nx/jest": "17.2.8",
    "@nx/js": "17.2.8",
    "@nx/workspace": "17.2.8",
    "@stencil/core": "^4.11.0",
    "@stencil/sass": "3.0.8",
    "@swc-node/register": "~1.6.8",
    "@swc/core": "~1.3.106",
    "@types/jest": "^29.5.11",
    "@types/node": "20.11.6",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "nx": "17.2.8",
    "prettier": "^3.2.4",
    "puppeteer": "^21.9.0",
    "ts-jest": "^29.1.2",
    "ts-node": "10.9.2",
    "typescript": "^5.2.2"
  }
}

Same here. And with Crystal Project for NX around the corner, I wonder if it'd be better to sit and wait for a v18+ release (any known plans at this subject for this extension?). Unless there is a workaround to this issue ?

We're also experiencing this issue. It's not possible to make the lib buildable.
` >  NX   Cannot read properties of undefined (reading 'properties')
TypeError: Cannot read properties of undefined (reading 'properties')
at addCodeIntoArray (/../../../../../node_modules/@nxext/stencil/src/stencil-core-utils/lib/plugins.js:11:37)
`

i am also facing same issues
NX   Cannot read properties of undefined (reading 'properties')
TypeError: Cannot read properties of undefined (reading 'properties')
at addCodeIntoArray (W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\stencil-core-utils\lib\plugins.js:11:37)
at addToPlugins (W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\stencil-core-utils\lib\plugins.js:87:12)
at addStylePlugin (W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\stencil-core-utils\lib\style-plugins.js:20:43)
at addStylePluginToConfig (W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\stencil-core-utils\lib\style-plugins.js:45:82)
at W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\generators\make-lib-buildable\make-lib-buildable.js:35:57
at Generator.next ()
at W:\recotap\adninja-workspace\node_modules\tslib\tslib.js:169:75
at new Promise ()
at Object.__awaiter (W:\recotap\adninja-workspace\node_modules\tslib\tslib.js:165:16)
at makeLibBuildableGenerator (W:\recotap\adninja-workspace\node_modules@nxext\stencil\src\generators\make-lib-buildable\make-lib-buildable.js:31:20)

Same issue here. Is there any workaround?

I had forked it and given a fix
Not sure if it's been accepted.
On Sun, 25 Feb, 2024, 10:26 pm Yann Isabel, @.***>
wrote:

Same issue here. Is there any workaround?
—
Reply to this email directly, view it on GitHub
https://github.com/nxext/nx-extensions/issues/1065#issuecomment-1962998919,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHJ22OBYIYKBQRJKCIVJ7DLYVNUL5AVCNFSM6AAAAABCKO2ON2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSHE4TQOJRHE
.
You are receiving this because you commented.Message ID:
@.***>

Hi. I did a dug a little further.
The buildable command breaks at the point it wants to add the buildable configuration options to the stencil.config.ts.
Seems that the nx findNodes cannot find any nodes with ObjectLiteralExpression and therefore node[0] is undefined.
https://github.com/nxext/nx-extensions/blob/c3f7394ccde5f1005a0b2648c6b7c6f28a1980a4/packages/stencil/src/stencil-core-utils/lib/plugins.ts#L16-L17
It however does work when replacing ObjectLiteralExpression with ArrayLiteralExpression, for some strange reason. I guess this is an error in TypeScript, rather than this library.
I've opened the following PR, where I try to re-enable updating the outputTargets rather than ignoring nodes not being found.
https://github.com/nxext/nx-extensions/pull/1074

I continue to have the same issue even after V18

@Jhonnathan-Medina @mrtnvh @yannisabel @santhoshdasari786 @Samg983 @jprivard @lehmamic could you check out the recent version of it?


Add webClient retry support of dividePlugin set, and issue 70 resolved

Add webClient retry support of dividePlugin set, and issue 70 resolved

Today there is something wrong with the ci server, you can merge the latest code and push again, I have make the await time in test case longer.


Ask Windows Terminal how to disable automatic update

Windows Terminal version
No response
Windows build number
No response
Other Software
No response
Steps to reproduce
Ask Windows Terminal how to disable automatic updates, there are too many BUGs in the latest version. Can't use it at all! 1.18.x opened for the first time, and the air environment variable. Can't find a place to close
Expected Behavior
aa
Actual Behavior
aa

Can you please add the exact version number? We had a couple fixes for some environment variable issues earlier in 1.18 that we hotfixed in December.
Could you elaborate on the exact issue you're seeing/? If you're seeing something we haven't seen before, I'd rather make sure the issue is tracked so we can fix it, rather than just disable updates entirely 😉

@zadjii-msft
This video is my operation Windows Terminal version 1.17.11461.0 and version 1.18.3181.0
When version 1.18.3181.0 is opened for the first time, it is a new environment, and the “go version” command configured in the environment variable cannot be executed. After passing the settings, in the new tab, you can execute the “go version” command
Version 1.17.11461.0 has no problems. You can also execute the “go version” command when opening it for the first time.
https://github.com/microsoft/terminal/assets/28520524/57abe296-5690-463d-8df9-51e4d2616b22

Huh. That's got shades of #16226 in it, but also, seems a bit different. In your case, you shouldn't really be inheriting env vars from File Explorer. Very strange then that the first tab still uses a bad PATH, but the subsequent tabs get a working PATH.
There might be a couple things at play here:

Are you on Windows 10? If you are, does this repro if you make absolutely sure there are no other open Terminal windows or processes?
What exactly is the difference in your PATH here? (e.g. share $env:path in both a broken tab and a working one)
Does this repro if you launch wt from the Run dialog? (maybe there's something weird about the way the shell context menu entry invokes the Terminal)


Missing 480p resolution.

In any type of player (HTML5 or flash) missing 480p resolution. Only 240p, 360p and 720p. But i need exactly 480p.
Mxthon <IP_ADDRESS>00
Youtube Center build 501

Enable DASH playback. 480p and 1080p disappear if you've disabled DASH (and it's actually very useful. I used to have it disabled, but realised it was impacting my viewing experience)

Thnk you, @SuperSajuuk!


adding README comment on -accuracy and beginning of the -accuracy grid rewrite, and delete Poetry artifacts from README

Closes #77

some premature work on having the model pick which grid to choose on for revamped -accuracy mode. properly display the grid coordinates now.
I plan on modifying the idea, I first cut out a 400px x 400px area around the originally guessed location, and then have the model continually pick which grid option/quadrant to click on from there, cropping out the selected grid in the process and x2 upsampling the image after each crop every time before passing it once again to GPT.

Adding an implementation note for my future self:
A clean way to implement the picking which grid to zoom in on when deciding which pixel to click can be cleanly implemented by the loop constantly storing the top left percentages and the bottom right percentages at each iteration of the loop. That way, at the end, you can just average the two percentages and return that as the pixel clicked.
Additionally, maybe at first do 4 grid lines (dividing the area into 16 grids). but later, when more narrowed down, only do 2 grid lines (so dividing the area into fourths). Something like two 4 grid lines, and two 2 grid lines will yield a final pixel area of 400/(4^2 * 2^2) = 6.25, or a pixel mistake up to 3 pixels in any dimension. That is pretty darn accurate assuming the model correctly picks the correct grid every time.
Additionally, look into polling the model. So ask the model to generate 9 responses, and then choose the most popular grid selection. Fail-safing the chance that a wrong grid choice was picked.

Hmm, I'm curious for a bit more context for some on this commit. Hoping to keep most the none -accurate code the same when making -accurate improvements

@joshbickett hey sorry just seeing this now, what do you mean by most of the none code the same? I'm planning on basically having two different draw_labels. for normal mouse clicking it shows the percentages in black with a white background. But when choosing grid, I forego the white rectangle and just display the text in a green color (this is because at some point, it gets zoomed in a lot to like a 6px x 6px range so having a white rectangle taking up pixels doesn't seem like the best idea). Esp when the model should know the top left corner is grid 0, then goes down then right (column major order)

@klxu03 you can ignore my last comment. I am taking a closer look now. Got an error I haven't seen. Maybe a fluke, I'll look closer

@klxu03 Tried -accurate mode on a task got this error. I'm very interested to see where this PR goes. Let me know when you think it is ready for more testing!

+1 for accuracy mode

I am taking a closer look now. Got an error I haven't seen running normal operate without -accurate. Maybe a fluke, I'll look closer

@klxu03 let me know if you have any updates or thoughts on this. Thanks

@klxu03 curious if you have any updates. Looks like -accurate may still have issues. May make sense to remove for now until there are updates

For sure remove, it's likely outdated. My bad I've been offline for a while on vacation. Returning later

@klxu03 did a rewrite of the project without accuracy mode. I think that multimodal are going to solve this mouse click problem pretty soon. See CogAgent: https://arxiv.org/abs/2312.08914
I'll close this for now. If you have additional updates, let me know.


EAGLE-280 Update logstash-kafka-conf.md

added a logstash sample file for logstash2.x version

It seems that this PR source has been deleted, could you please close the ticket?


Initial value is changed and repeated inside AnimationController.repeat, which results into unexpected controller.value on first run

When calling animationController.repeat(), the controller's value gets set to the supplied min parameter plus its current value.
I don't know if this is by design, or a bug, but it's very confusing:
final animationController = AnimationController(
   vsync: this,
   duration: Duration(seconds: 1),
);
animationController.value = 0.1;
animationController.repeat(min: 0.2, max: 1.0);
print(animationController.value); // Value is 0.3

My use case is wanting to play the first part of an animation, then once the value is at a certain point, loop the middle of it. I have to set value = 0 before calling repeat.
Should this be changed or just documented?

Hi @tomgilder
Please check out this code sample, since you're running repeat, you need to check value constantly  to see more accurate/current value

complete code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
  AnimationController animationController;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    animationController = AnimationController(
      vsync: this,
      duration: Duration(seconds: 1),
    );
    animationController.value = 0.1;
    animationController.repeat(
        min: 0.2, max: 1.0, period: Duration(milliseconds: 700));
    animationController.addListener(() {
      print(animationController.value);
    });
    // print(animationController.value);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

Hi @TahaTesser, it's not about how often the value is updating - if you look at the output of your code sample, the animation value starts at 0.3. I don't understand why this happens; it's not specified in the documentation for repeat and to me is very surprising.
At least the documentation should specify this behaviour, to explain the thinking behind it.

Hi @tomgilder
Here is what's happening, I change values to better explain
the initial value is given is 0.2, repeat's min assigns a value, that is 0.6 here, now repeat this new value with the initial value 0.2 and print value is 0.8
That's what happens in your case, initial 0.1, repeat sets 0.2, repeat with .1 (initial value), and print value 0.3. Note when repeat starts the second time, the value won't reset to 0.1, it will repeat from 0.2
    animationController.value = 0.2; // Current value is 0.2
    animationController.repeat(
      min: 0.6, // This assigns a new value, that is 6
      max: 1.0,
    );
    // Some repeats it by 0.2
    print(animationController.value); // print value is 0.8

Hope this answers your doubt

I'm afraid that doesn't answer my question at all, you've said what is happening, but not why.
I understand what is happening, but I don't understand the logic behind it, and it isn't documented.
In your example, why does the value jump to 0.8? What's the maths and logic behind it?

Hi @tomgilder
Sure but I gave you that it's not random, are getting 0.8 if you read the code line by line, it makes sense. I will label this for documentation for sure
repeat is setting mew value in and it repeats from the initial value and hence we getting 0.8, at least what the behavior I can reproduce even different values, the output is predictable
https://api.flutter.dev/flutter/animation/AnimationController/repeat.html
https://api.flutter.dev/flutter/animation/AnimationController/value.html

While I still can't think of a reason for the current behaviour, those who are looking for the requested behaviour can use controller.animateWith supplying a simplified repeat simulation:
controller.animateWith(
  _RepeatingSimulation(min, max, duration),
));

class _RepeatingSimulation extends Simulation {
  _RepeatingSimulation(this.min, this.max, Duration period)
      : _periodInSeconds = period.inMicroseconds / Duration.microsecondsPerSecond {
    assert(_periodInSeconds > 0.0);
  }

  final double min;
  final double max;
  final double _periodInSeconds;

  @override
  double x(double timeInSeconds) {
    final t = (timeInSeconds / _periodInSeconds) % 1.0;
    return lerpDouble(min, max, t)!;
  }

  @override
  double dx(double timeInSeconds) => (max - min) / _periodInSeconds;

  @override
  bool isDone(double timeInSeconds) => false;
}


New solution persists during SA algorithm

This pull requests updates the SA algorithm to allow updates of invalid schedules so that the solution can be manipulated multiple times until it falls into the feasible spaced. If an invalid schedule is presented, it is treated like any other solution, it can be accepted with some probability, but the objective function score it is given is a large number.
The only time the solution is tracked as being the "best solution" is when the score is objectively better and the schedule is feasible.

This method is no longer being pursued.


Rename member variables from camelCase to mCamelCase

TBR

Marked TBR, but it feel free to skip it.


Add IAM for Service Accounts for Kubeflow Samples

https://kubeflow.org/docs/aws/iam-for-sa/

done


CAMELYON16 Patches

I am working with .tif files from the CAMELYON16 Dataset and that does not provide any rule files, can I still use this tool to generate hundreds/thousands of patches from each tif file?

@jmayank23
Thank you the question, and I'm sorry for my late reply.
"Rule file" is a file that wsiprocess uniquely uses for defining the classes to extract. You need to create a rule file to define which classes to extract like below.
{
  "metastases": {
    "includes": [],
    "excludes": []
  }
}

I recommend you to use wsiprocess from command line, because actually I used wsiprocess to extract patches from CAMELYON17 for my research, with some additional parameters which WSIPatcher cannot handle.
For example, the command below will give you patches from patient_004_node_0.tif, and these patches are 100% on the foreground area calculated with Otsu's thresholding. In this case, you don't need rule files.
wsiprocess none center_0/patient_004_node_0.tif -of 1.0

@jmayank23
I close this issue because there is no active conversation. Feel free to reopen this issue if you have any questions.


Close with error code 1006 instead of undefined when client leaves without sending a close control frame

In WS, when the client disconnects abruptly without sending a close control frame beforehand, the server will close with a 1006 status code. Right now, the status code for this is undefined.
Ideally the status code should always be something (never undefined).

This issue is more general - currently I do not pass any argument at all to the close event.


how to fix circular reference?

replice markdownui to https://github.com/gonzalezreal/swift-markdown-ui

replice markdownui to https://github.com/gonzalezreal/swift-markdown-ui

Hi bro, what's that meaning. Is that mean clone the https://github.com/gonzalezreal/swift-markdown-ui repo to local and replace it in enchaned project?

I can build the code after modifying it according to this PR.


Eat all tab keypresses no matter what.

Summary of the Pull Request
Fix #744, by making sure the TermControl always handles Tab keypresses. This will break keyboard navigation with tab, but considering that the shell almost always wants tab as a character, this makes more sense. We should probably introduce another keybinding to manually get the focus out of the control, but that can be a follow-up.

PR Checklist

[x] Closes #744
[x] CLA signed. If not, go over here and sign the CLA
[x] N/A Tests added/passed
[x] N/A Requires documentation to be updated
[x] I've discussed this with myself in the long hours waiting to fall asleep

Do we need to evaluate whether our key handler is in the right place? I'm worried about this and the Alt bell thing...

The alt+bell seems to be totally out of our control. I tried eating all the alt's manually, and that doesn't seem to change anything about that path.
Is there somewhere else you're thinking about for moving our key handling to? I don't know what other place would make sense.

Only concern I would note is possible accessibility implications.  As long as there's a follow-up to address the focus issue though it's probably fine?

I know for Narrator, there is a different way to navigate through elements than tab.


Excel can't open file because some content is unreadable

Trying to use this gem for the first time, I spent about 2 hours trying to solve the error:
Excel could not open payments.xlsx because some content is unreadable. Do you want to open and repair this workbook?
The problem was that I missed the documentation stating to use wb = xlsx_package.workbook instead of p = Axlsx::Package.new.
Can we add this to the Troubleshooting section of the README?

@yjukaku I definitely will. Thanks for providing the feedback.

I just encountered the same problem. @straydogstudio , is there a fix? I am using Excel for Mac 2011, Version 14.6.0 on a MacBook Pro running Yosemite. I have potentially lost many hours of work on one of two sheets in a .xlsx workbook. Any help is greatly appreciated. Thanks in advance.

Assuming you have not missed using the passed in xlsx_package mentioned above, have you tried using render xlsx: 'whatever', layout: false?
Sometimes, depending on what you are trying to open it with, using shared strings is also important.
It may be worthwhile making a script that you run with Rails runner to create the file using Axlsx without axlsx_rails. That will show if it is specific to axlsx or axlsx_rails.
I will get back to you tomorrow or later tonight if I can.

Thanks for the reply. The above is Greek to me so, no, I have not tried using the string mentioned above. Also, I do not know Rails runner.
Unfortunately, I am pretty married to Mac format now, as much as i wish I wasn't, and am not nearly as conversant on that platform as I was on Windows - at least the earlier versions.

@moranpro @moranpro Just to be clear, are you writing software using Ruby?

No. I had constructed a couple of interior drawings using Excel: a plan drawing on one sheet and an isometric on the other. The file will not open without being "repaired", which loses the second sheet. I have not saved the file following repair, so the original, corrupted one still exists.

@moranpro Sorry but I can't help you. It looks like you have a corrupted file. If you use Time Machine to backup your files (built into OSX) then you could easily recover a previous version. If not, you should get an external drive and use it. Well worth it.

OK. I will check. I do back up regularly, but I am not sure that there was a backup done between the time I created the second sheet and the time I attempted to reopen it. Fingers crossed.
Time Machine scares me because one never really knows whether the backups are OK. I had to change out my HD a few months ago and the Time Machine backups, which were supposed to be complete, were not even close. Fortunately, I had manually copied critical data files to another hard drive prior to replacing the internal drive.

Nope. That file did not back up. Thanks for trying. I appreciate the help.


How to create calender heatmap in multiple rows and multiple columns

How to create a calender heatmap with multiple rows and columns?

@wa0x6e

You can't. I suggest to create 3 differents instance of the calendar, one for each row. This is a limitation due to navigation

Cleaning up old issue


[BUG]: ESM Required error for planetscale database sesson.js

What version of drizzle-orm are you using?
0.21.1
Describe the Bug
https://github.com/drizzle-team/drizzle-orm/compare/0.21.1...0.22.0#diff-b55cdbef4907b7045f32cc5360d48d262cca5f94062e353089f189f4460039e0R37
Currently using this in next 13.2.3 in the server-side props upgrading to 0.22.0 causes an ESM-required error for planetscale database.

I have the same problem.
node_modules/drizzle-orm/mysql-core/session.js:4:8: ERROR: Could not resolve "mysql2/promise"
It seems that mysql-core in v0.22.0 requires the mysql2 package. If I install it as a dev dependency, it's not possible to run my code in a browser/edge environment, as mysql2 has node specific dependencies.

We are aware of this and it will be fixed in the next release shortly.

@johnforte @peppasd the fix was published to drizzle-orm@beta and will be included in the next release.

@dankochetov thank you, I can confirm that the beta release fixed the issue.


update docs

Codecov Report

Merging #2 (f2f3423) into main (7b8ec04) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            4         4
  Branches         1         1
=========================================
  Hits             4         4

Impacted Files
Coverage Δ

index.js
100.00% <ø> (ø)

Continue to review full report at Codecov.

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


Can't parse select * from test1 a left join test2 b on a.id = b.id where a.id = 1

I have update the JSqlParser to the latest code on the github.
parse
select * from test1 a left join test2 b on a.id = b.id where a.id = 1
will get error
JSQLParserException: Encountered unexpected token: "=" "="     at line 1, column 49.

I can not confirm that, please try
yourself
The statement is parsed without any error and formatted correctly.
On Fri, 2021-05-14 at 00:36 -0700, ondev wrote:

I have update the JSqlParser to the latest code on the github.
parse
select * from test1 a left join test2 b on a.id = b.id where a.id = 1
will get error
JSQLParserException: Encountered unexpected token: "=" "=" at line 1,
column 49.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

So can we close this?

Solution provided and no further question has been asked.


TypeError: Object has been destroyed

[x] Review the documentation: https://docs.sentry.io/platforms/javascript/electron/
[x] Search for existing issues: https://github.com/getsentry/sentry-electron/issues
[x] Use the latest release: https://github.com/getsentry/sentry-electron/releases
[x] Provide a link to the affected event from your Sentry account

Versions + Platform

[x] SDK version -<EMAIL_ADDRESS>[x] Electron version -<EMAIL_ADDRESS>[x] Platform - macOS & Windows

Description
Getting this error when exiting my Electron app (easy to simulate with CTRL+C):
TypeError: Object has been destroyed
    at log (/Users/chris/workspace/my-app/.webpack/main/index.js:41352:20)
    at App.<anonymous> (/Users/chris/workspace/my-app/.webpack/main/index.js:41573:13)
    at App.emit (events.js:327:22)
    at App.EventEmitter.emit (domain.js:483:12)
    at App.emitter.emit (/Users/chris/workspace/my-app/.webpack/main/index.js:4273:20)
    at App.<anonymous> (electron/js2c/browser_init.js:185:3283)
    at App.emit (events.js:315:20)
    at App.EventEmitter.emit (domain.js:483:12)
    at App.emitter.emit (/Users/chris/workspace/my-app/.webpack/main/index.js:4273:20)
    at App.<anonymous> (/Users/chris/workspace/my-app/.webpack/main/index.js:41631:84)

Sentry init is the first thing called in the main process:
Sentry.init({ dsn: '...' })

When I remove the init call, the error disappears.

That doesn't sound like great behaviour but I can't reproduce this myself and the above stack-trace is minified so I can't tell which event is causing the issue!
Can you modify any of the examples to trigger this?

Closing this issue for cleanup. Please re-open if this still applies. Thanks!


Fix double space typo in Dockerfile.liquid

:tada: This PR is included in version 1.9.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Type Count(Const) as Const(1).

Fixes #2131.

@alissapajer This is ready for merge.

@sellout tried to merge, it needs merge from master.

Thanks. Updated.


fix: ICON-Tezos bridge implementation

Codecov Report

Merging #4 (f3e8b45) into main (4acc522) will increase coverage by 0.02%.
The diff coverage is 68.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files

@@             Coverage Diff              @@
##               main       #4      +/-   ##
============================================
+ Coverage     36.43%   36.45%   +0.02%
  Complexity      811      811
============================================
  Files           125      125
  Lines         12061    12077      +16
  Branches       1091     1091
============================================
+ Hits           4394     4403       +9
- Misses         7327     7334       +7
  Partials        340      340

Files Changed
Coverage Δ

cmd/iconbridge/chain/bsc/sender.go
38.00% <0.00%> (-0.71%)
:arrow_down:

cmd/iconbridge/chain/icon/receiver.go
73.13% <ø> (-0.06%)
:arrow_down:

cmd/iconbridge/chain/icon/sender.go
0.00% <ø> (ø)

.../java/foundation/icon/btp/bts/BTPTokenService.java
82.66% <63.63%> (-0.32%)
:arrow_down:

cmd/iconbridge/chain/icon/verifier.go
97.40% <100.00%> (+0.18%)
:arrow_up:

...main/java/foundation/icon/btp/bts/BlacklistDB.java
74.46% <100.00%> (ø)


Adding Database Connectivity

DATABASE SCHEMA
ID (PRIMARY KEY) (AUTO INCREMENT) -> INTEGER
NAME1 -> STRING(300)
NAME2 ->  STRING(300)
IMAGE1 -> BINARY (BLOB)
IMAGE2 ->  BINARY (BLOB)
GIF -> BINARY (BLOB)

Why this schema?
This schema takes in account for your vision of incorporating users. Creating 1 row per session will make make adding features for users easy. Just add a username and you are good to go.
Key Changes made!
app.py

Added class IMAGES, defining database schema.
Added function image_query querying the IMAGE1 and IMAGE2 from the last entry in the database.
Created variable global image_array in function upload_file  to keep incomplete entries going though into the database and also linking two image POST requests by the user.

morph.py

Added query script for updating row with resized image and adding gif.
Removed all file path dependencies. Replace them with in-memory images using cv2.

🔴 Note: I didn't find the support for binary in imageio module. So i converted the sequence of images into a byte blob and saved it in the gif column. So imageio still depends on creating a file for serving to the client side. But we save a blob none the less in our database.
Thanks! And feel free to contact me for any queries. I'll keep digging if I find any in-memory workarounds for gifs.
PS: You can visualize sqlite database by opening db.sqlite file here

@mehta-raghav  Overall I would is say your work is absolute perfection.
I just wanted to know how is the GIF being created and is the resultant GIF's quality fine?
Could you post a sample output here.

I've fixed the issues. Please re-review.

Preview Gif

Thank you @mehta-raghav Great Work!! 😄


API-Parameter 'page' not considered for association

When trying to load a paginated product listing for a specific category over the saleschannel-api, the 'page' parameter is not respected.
/sales-channel-api/v3/category/a5c1ab2466974a8ea82fec3f275b4537?associations[products][limit]=24&associations[products][page]=2
We traced the problem down to the following query in the EntityReader.php where no offset-parameter is set, only the limit.
https://github.com/shopware/platform/blob/dad2dd6feffb6eb4a0d4a8ef1ef12ca8bd7f3e46/src/Core/Framework/DataAbstractionLayer/Dbal/EntityReader.php#L712
We think the query should be extended to this:
                $query->innerJoin(
                $root,
                '(' . $limitQuery . ')',
                'counter_table',
                str_replace(
                    array_keys($params),
                    array_values($params),
                    'counter_table.#source_column# = #table#.#source_column# AND
                     counter_table.#reference_column# = #table#.#reference_column# AND
                     counter_table.id_count > :offset AND
                     counter_table.id_count <= (:limit + :offset)'
                )
            );
            $query->setParameter('limit', $fieldCriteria->getLimit());
            $query->setParameter('offset', $fieldCriteria->getOffset());

Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know.
Thank you again for your valuable feedback.


[WIP] feat:Add support for project description

Added project description meta data.
This is suppose to solves this issue
Note: This is untested
@kdheepak how do you test this stuff :P ?

Currently untested! I just add sections and text to the doc/panvimdoc.md corresponding to the code I add. I’ll have to add a test to check that the output is what I expect.

that's not what I meant. How do you check if the workflow is broken or not? Or if it's emitting correct output on local machine ? Run the entrypoint,sh ?

Ah. I have the repository to run the auto commit when it is merged to main.
https://github.com/kdheepak/panvimdoc/blob/8a478da661907aef1561ea2b0f720f3b978fe6d3/.github/workflows/panvimdoc.yml#L9-L19
When we merge this, we'll know the output. We can change that to work on any branch if you'd like.

 Something like:
$ pandoc -f markdown+link_attributes --metadata=project:panvimdoc --lua-filter scripts/skip-blocks.lua --lua-filter scripts/include-files.lua -t scripts/panvimdoc.lua README.md -o doc/panvimdoc.txt

I'm back at my computer now. I can take it from here if you don't mind.

I'm back at my computer now. I can take it from here if you don't mind.

not at all.

When we merge this, we'll know the output.

Alright.

We can change that to work on any branch if you'd like.

won't be required I think.

If you have pandoc installed, you can run entrypoint.sh with the right arguments

ok let me install it

I think this looks good! I tested it locally and it works well :)

I tried to get the autocommit to work on PRs, but doesn't seem to work on pull_request events correctly. I'll debug that later.

https://github.com/kdheepak/panvimdoc/commit/a39293f6bf194c81e7159b00c28f0075d20a1b15


[Bug] Device trackers become unavailable for a while and cause the device_connected event to trigger

The problem
The device tracker randomly becomes unavailable for a bit then recovers. But when it recovers it triggers the device_connected event even though it had already connected once. The device in question was connected through ETH, but it has happened wit ha wireless client as well.
Seems like the integration "forgets" that it has already seen the device once.

Your device model
RT-AX56U
Firmware type
Merlin
Firmware version
<IP_ADDRESS>.388.1_0
Integration version with the issue
0.22.0
Method of the integration installation
HACS
What version and type of Home Assistant installation do you use
docker 2023.6.1
Is there anything useful in the logs?
No response
Diagnostics information
No response
Additional information
No response

Hello. Thanks for your report. For sure, it's not an intended behaviour. I'll check it out and try to fix

Hello. The event issue should be fixed in the 0.23.0b1 beta release - there won't be a device_connected event for an already known device, but only device_reconnected.
In general device tracking is still a large work in progress. The most recent updates and info can be found in #570

I will close this issue, since the bug with triggering device_connected event was already fixed. For general issues with device trackers, you can follow #570. In case you are experiencing any specific problem, please, open a new issue


Uploading plugins without memory in psvita?

I get my sd2vita adapter but I do not have a memory to use the vitashell. Is it possible to load a plugin (in specific games.sprx) to psvita without having a memory in the console?

Yeah put the plugin in ur0


How to directly get the TeXForm of every step?

This is what now I do :
For example:
Int[x Sin[x],x]//Steps

click one step, then paste it to .nb, then //TeXForm to get the TeX code. (kind of monkey job)
I've tried FullForm, get nothing, // Trace gives back a lot of things, which seems a bit hard for me to pick out what I want.
So is it possible to add a command to automatically get code like
\begin{aligned}
\int f(x)\,dx&= ......\\
&= ......\\
......
\end{aligned}

to make it easier for following steps? For example , using MaTeX to get nice formula.

After some test, this is a half-done job:
Steps[Int[Sin[x]/x^2, x], RubiPrintInformation -> False] //
      Flatten //
     Most //
    Select[Head@# =!= RubiRule &] //
   # /. RubiIntermediateResult[x_] -> x & //
  (*ToString@*TeXForm is also OK*)
  Map["=&" <> (Convert`TeX`ExpressionToTeX[HoldForm @@ #]) <>
     "\\\\" &] //
 StringRiffle

OK, I've done it.(I don't deal with the situations that Rubi failed to calculate the int)
This function returns a string.
SetAttributes[IntWithStepsOfTeXForm, {HoldFirst}];
IntWithStepsOfTeXForm[j_] :=
 With[{TeX2Str = Convert`TeX`ExpressionToTeX},
  Steps[j, RubiPrintInformation -> False] //
         Flatten //
        Most //
       Select[Head@# =!= RubiRule &] //
      # /. RubiIntermediateResult[x_] -> x & //
     (*ToString@*TeXForm is OK*)
     Map["=&" <> (TeX2Str[HoldForm @@ #]) <> "\\\\" &] //
    # /. {a___} -> {
        "\\begin{aligned}",
        TeX2Str@HoldForm@j,
        a,
        "\\end{aligned}"} & // StringRiffle
  ]

Usage:

Or
IntWithStepsOfTeXForm[Int[(x + 1)/Sqrt[x^2 + 1], x]] // Print

And then choose and copy to clipboard.
Maybe I will make a pr for this function in the future.

Yep, this is exactly what I implemented RubiPrintInformation -> False for so that people can create their own functions for displaying integration steps.

I make it better:
IntWithStepsOfTeXForm[formula_, j_]:=
With[{TeX2Str = Convert`TeX`ExpressionToTeX},
Steps[Int[formula, j], RubiPrintInformation -> False] //
Flatten //
Most //
Cases[RubiIntermediateResult[x_]:>"=&" <> (TeX2Str[HoldForm @@ x]) <>"\\\\"] //
{"\\begin{aligned}",TeX2Str@HoldForm@Int[formula, j], Sequence @@ #,"\\end{aligned}"} & //
StringRiffle]

Now we can use it just like Integrate

By the way, I modified it to be another display function which doesn't use TeXForm but TraditionalForm:
IntTraditional[expr_, var_] := Style[Grid[
	{"\[LongEqual]", TraditionalForm@#}& /@ Cases[
		Flatten@First@Steps[Int[expr, var], RubiPrintInformation -> False],
		RubiIntermediateResult[x_] :> HoldForm@@x
	]// Prepend[{"",TraditionalForm@HoldForm@Int[expr,var]}]
, Alignment -> Left], FontFamily -> "Latin Modern Roman 10"];

SetAttributes[IntTraditional, HoldAll]

SyntaxInformation[IntTraditional] = {"LocalVariables" -> {"Integrate", {2, Infinity}}};

Subst /: MakeBoxes[HoldPattern@Subst[expr_,src_,tar_], TraditionalForm] := RowBox@{UnderscriptBox[StyleBox["Subs", FontSize -> Medium], RowBox[{MakeBoxes[src, TraditionalForm], "\[Rule]", MakeBoxes[tar, TraditionalForm]}]], MakeBoxes[expr, TraditionalForm]}

By the way, I modified it to be another display function which doesn't use TeXForm but TraditionalForm:
IntTraditional[expr_, var_] := Style[Grid[
	{"\[LongEqual]", TraditionalForm@#}& /@ Cases[
		Flatten@First@Steps[Int[expr, var], RubiPrintInformation -> False],
		RubiIntermediateResult[x_] :> HoldForm@@x
	]// Prepend[{"",TraditionalForm@HoldForm@Int[expr,var]}]
, Alignment -> Left], FontFamily -> "Latin Modern Roman 10"];

SetAttributes[IntTraditional, HoldAll]

SyntaxInformation[IntTraditional] = {"LocalVariables" -> {"Integrate", {2, Infinity}}};

Subst /: MakeBoxes[HoldPattern@Subst[expr_,src_,tar_], TraditionalForm] := RowBox@{UnderscriptBox[StyleBox["Subs", FontSize -> Medium], RowBox[{MakeBoxes[src, TraditionalForm], "\[Rule]", MakeBoxes[tar, TraditionalForm]}]], MakeBoxes[expr, TraditionalForm]}

Actually your don't need to HoldAll, because the Integrate doesn't have that.
Attributes[Integrate]

{Protected, ReadProtected}

Without HoldAll, you can write things like IntTraditional[list[[1]],x]. Or you should use IntTraditional[  Evaluate@list[[1]],x]

Wow, amazing, After running your code, the effort is so nice! Thx.
Maybe it's because of this line? Subst /: MakeBoxes[HoldPattern@Subst[expr_,src_,tar_], TraditionalForm] := RowBox@{UnderscriptBox[StyleBox["Subs", FontSize -> Medium], RowBox[{MakeBoxes[src, TraditionalForm], "\[Rule]", MakeBoxes[tar, TraditionalForm]}]], MakeBoxes[expr, TraditionalForm]}

IntWithStepsOfTeXForm[expr_, var_] :=
 With[{TeX2Str = Convert`TeX`ExpressionToTeX},
  Steps[Int[expr, var], RubiPrintInformation -> False] // Flatten //
       Most // Cases[
       RubiIntermediateResult[x_] :>
        "=&" <> (TeX2Str[HoldForm @@ x]) <>
         "\\\\"] // {"\\begin{aligned}",
       TeX2Str@HoldForm@Int[expr, var], Sequence @@ #,
       "\\end{aligned}"} & //
    StringReplace[
     "\\, d" <> ToString[var] -> "\\, \\mathrm{d}" <> ToString[var]] //
   StringRiffle]

Wow, amazing, After running your code, the effort is so nice! Thx.
Maybe it's because of this line? Subst /: MakeBoxes[HoldPattern@Subst[expr_,src_,tar_], TraditionalForm] := RowBox@{UnderscriptBox[StyleBox["Subs", FontSize -> Medium], RowBox[{MakeBoxes[src, TraditionalForm], "\[Rule]", MakeBoxes[tar, TraditionalForm]}]], MakeBoxes[expr, TraditionalForm]}

IntWithStepsOfTeXForm[expr_, var_] :=
 With[{TeX2Str = Convert`TeX`ExpressionToTeX},
  Steps[Int[expr, var], RubiPrintInformation -> False] // Flatten //
       Most // Cases[
       RubiIntermediateResult[x_] :>
        "=&" <> (TeX2Str[HoldForm @@ x]) <>
         "\\\\"] // {"\\begin{aligned}",
       TeX2Str@HoldForm@Int[expr, var], Sequence @@ #,
       "\\end{aligned}"} & //
 StringReplace[{"\\, d" <> ToString[var] ->  "\\, \\mathrm{d}" <> ToString[var],  "\\int" -> "\\displaystyle \\int"}]//
   StringRiffle]

Yes, Convert`TeX`ExpressionToTeX MakeBoxes with TraditionalForm at first, so this definition for display affects the TeX output.

I made a PR (pull-request#44) for this thread. Modifications were made to the suggestions above, and I do hope this is not offensive to the original contributors.


Redefining state definition API

Redefining StateMachine's state definition builder API.
StateMachine definition API is being reworked and will change in the next release.
state's transition:
State transition remains unchanged. They are registered by calling stateDefinitionBuilder's on function.
They are in the form:
FutureOr<State?> Function(Event, DefinedState)

Transitions are evaluated sequentially. They are always awaited.
If transition returns a non-null state, the state machine stops evaluating transitions and changes its inner state. If transition return null, transition is considered refused and the next transition is evaluated.
state's side effects:
Side effects are callback functions that you can register for each state. They are a good place for calling repository functions.
Side effects are in the form:
void function(State currentState)

They can be async but they will not be awaited.
If you need to update/change state machine state based inside side effect, you should add an event to the StateMachine with add function.
You have access to 3 side effects slot:
onEnter: called when entering state if currentState.runtimeType != nextState.runtimeType
onChange: called when state data updated, if currentState.runtimeType == nextState.runtimeType
onExit: called when exiting state, if currentState.runtimeType == nextState.runtimeType
Example
class Example extends StateMachine<Event, State> {
  Example() : super(Counter(0)) {
    define<Counter>((b) => b
      ..onEnter((Counter state) { /*
      called on entering. In this case when the StateMachine will be constructed
      */ }),
      ..on<ButtonPressed>((ButtonPressed event, Initial state) =>
          state.value < 10 ? Counter(state.value + 1) : Done()
      ),
      ..onChanged((Counter state) => print(state.value)),
      ..onExit((Initial state) { /* state.value equal 10 */ }),
    );
    define<Done>((b) => b
      ..onEnter((Done state) { /* called on entering */ }),
      ..onChange((Done state) { /* Never called in this case ! */ }),
    );
}

What do you think about the new api? Do you have any suggestions? Give your feedback in the comments below :)

I would expect on(EventTransition) to be a Future, I might do single/multiple API call, so onEnter does not solve my problem here, do you have any recommendation for handling Futures @Pierre2tm

Nice to see you've tried state_machine_bloc!
With the actual design, you should create an event corresponding to the result of your API call. Events should be thrown inside a side effect function.
Example:
import 'package:state_machine_bloc/state_machine_bloc.dart';

part 'user_repository.dart';
part 'login_event.dart';
part 'login_state.dart';

class LoginStateMachine extends StateMachine<LoginEvent, LoginState> {
  LoginStateMachine({
    required this.userRepository,
  }) : super(WaitingFormSubmission()) {
    define<WaitingFormSubmission>(
        ($) => $..on<LoginFormSubmitted>(_toTryLoggingIn));

    define<TryLoggingIn>(($) => $
      ..onEnter(_login)
      ..on<LoginSucceeded>(_toSuccess)
      ..on<LoginFailed>(_toError));

    define<LoginSuccess>();
    define<LoginError>();
  }

  final UserRepository user repository;

  TryLoggingIn _toTryLoggingIn(LoginFormSubmitted event, state) =>
      TryLoggingIn(email: event.email, password: event.password);

  LoginSuccess _toSuccess(e, s) => LoginSuccess();

  LoginError _toError(LoginFailed event, state) => LoginError(event.reason);

  /// Use state's data to try login-in using the API
  Future<void> _login(TryLoggingIn state) async {
    try {
      await userRepository.login(
        email: state.email,
        password: state.password,
      );
      add(LoginSucceeded());
    } catch (e) {
      add(LoginFailed(e.toString()));
    }
  }
}

Sync transition has the benefits of greatly simplifying the underlying implementation and avoiding events concurrency and weird situations because of await in transitions.
I also think this limitation forces us to have a clean state machine code with great separation of concerns.
Since this issue is already closed and implemented in the current published version, if you want to dig further into this subject please open a new issue.


Using strings as game width/height throws error ( 2.4.5 RC1 )

Not entirely sure if this feature was removed for 2.4.5 , if thats the case docs should be updated to reflect this! : )

Error:
Argument 3 of CanvasRenderingContext2D.getImageData is not a finite floating-point value.
Stack:
c.BitmapData (phaser.js:47748)
c.GameObjectCreator.bitmapData (phaser.js:46800)
c.Utils.Debug.boot (phaser.js:77205)
c.Game.boot (phaser.js:34435)
c.Device._readyCheck (phaser.js:58179)

Fixed in dev.


Add server

LGTM

General Q: Do we have/need rule clean-up logic to remove TC rules on POD removal?

General Q: Do we have/need clean-up logic to remove TC rules on POD removal?

Its tricky, since you need to be careful the VF is not re-allocated while deleting filters. (so you cannot do it during delete callback in server although operation is fairly short)
currently TC rules are aligned for all pods scheduled on node during sync loop.
if a pod interface is not associated with a multi-network-policy - we will remove TC filters from Rep.
to delete filters for interfaces that were allocated in the past and are not allocated at sync time we could maintain another map of deleted pods then process those first.


[glui] Add new port

https://github.com/libglui/glui

@myd7349 thanks for this PR.
What does this PR fix? If there is no issue open for the PR, please open an issue so others may replicate this problem.

@NancyLi1013 This is a new port.

/azp run

/azp run

/azp run


Fix/e2e ci

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@0f3c4ae). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   46.59%
=======================================
  Files           ?       40
  Lines           ?     2232
  Branches        ?        0
=======================================
  Hits            ?     1040
  Misses          ?     1105
  Partials        ?       87


Add Faker to Fixtures

I added Faker to avoid putting the data manually in Fixtures

@nasrbechir I thank you this contribution effort, but I'm afraid we need to close this without merging for these reasons:

This library is archived/abandoned ... so we'd need to use one of its forks
I've downloaded the latest version as a ZIP file and it takes 3.5 MB. It's way too much for a library that we'll barely use.
People like @weaverryan and others are advocating for a different way of creating fixtures. Instead of this, they recommend https://github.com/zenstruck/foundry We're not using it in this project yet because it's not a standard practice in Symfony too, but we might to.

So, that's why we're keeping the current fixtures, but I hope you understand it. Thanks!


Childrens in Stacks should be filtered to remove components returning null value.

Description
Childrens in Stacks should be filtered to remove components returning null value.
CodeSandbox/Snack link
https://snack.expo.dev/@thibz/stack-null-components
Steps to reproduce

Use any stack
Render a null component
See spacing applied

NativeBase Version
3.3.4
Platform

[X] Android
[X] CRA
[X] Expo
[X] iOS
[X] Next

Other Platform
No response
Additional Information
No response

@tlenclos This issue has been fixed. We're preparing a new release 3.4.0. Thanks for reporting!

Closing this issue as this has been fixed in version 3.4.0.

Reopening this issue as it is not working in the latest version 3.4.6.


Adding Animations Using Framer Motion

By adding animation in Headings , paragraphs , cards this will make your website more interactive . If you like this feature pls assign it to me under Hactoberfest 2024.
Thanking You!!

Thanks for the suggestion! Adding animations would definitely make the website more interactive. I’ve assigned the issue to you under Hacktoberfest 2024. Looking forward to seeing the enhancements—happy contributing!


Support for esmodules for withNextIntl

Is your feature request related to a problem? Please describe.
I need support for esmodules for using create t3app, things like env.mjs in the create t3 app help typesaftey of envs that I have across different environments.
Describe the solution you'd like
Support for esmodules
Describe alternatives you've considered
Not supporting, which is what is currently happening.

Support for esmodules for withNextIntl

Do you mean providing your Next.js config in next.config.mjs? This is supported, here's an example: https://github.com/amannn/next-intl/blob/main/examples/example-app-router-playground/next.config.mjs

That works! Might be handy to put it into docs, but for this issue, I am closing as resolved.


dispatch does not change the state

I am writing a Loading component which should render spinner if some data is loading and when is done it should render the children. It gets the data at componentWillMount:
class LoadingComponent extends React.Component {
componentWillMount() {
this.props.userActions.onUserAuthChange();
this.props.currencyActions.getCurrencies();
}
Here are the two action functons:
export const onUserAuthChange = () => dispatch => {
dispatch(loadingUser(true));
return firbase
.auth()
.onAuthStateChanged(user => {
dispatch(setUser(user));
dispatch(loadingUser(false));
});
};
export const getCurrencies = () => async dispatch => {
try {
dispatch(loadingCurrencies(true));
const currencies = await get();
dispatch(loadCurrencies(currencies.rates));
dispatch(loadingCurrencies(false));
} catch (e) {
`}`

};
This is the render method of LoadingComponen, where this.props.loadingUser and this.props.loadingCurrencies are always false.
render() {
if (this.props.loadingUser || this.props.loadingCurrencies) {
return (
<Spinner/>
)
}
return (
this.props.render(this.props)
)
}
And this is the App component where I am using LoadingComponent:
render() {
        return (
                <LoadingComponent render={
                  return (
                        <div className='App'>
                            <Route path='/:lang' render={props =>
                               languages.hasOwnProperty(props.match.params.lang) ?
                                   <Navbar {...props}/> :
                                    <Redirect to={/${defaultLanguage}}/>}
                            />
                           <Layout user={props.user}/>
                        </div>
                    )
               }}/>
        )
    }
I would like to underline that Redux dev tools is not active in the LoadingComponent, it starts to be active in his children.
The redux version I am using is: 3.7.2
Thanks

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux where there are a lot more people ready to help you out - you'll probably get a better answer faster. Thanks!


No Data from Scale

Select Add-On (place a lowercase x for the relevant add-on)

[ ] Xiaomi Mi Scale

Describe the bug
Hi,
Everything seems ok but I can not receive data from scale.
To Reproduce
Steps to reproduce the behaviour, including error message if any.
Expected behaviour
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Scale (please complete the following information):

Name
Model # Xiaomi Mi Body Composition Scale 2

Device running Home Assistant (please complete the following information):

Raspberry Pi 4 4 GB
Two bluetooth devices, built on Rasperry and one external  USB Dongle Bluetooth device.

Additional context
Add any other context about the problem here.
Xiaomi Mi Scale
2022-10-11 07:37:33 - Loading Config From Add-On Options...
2022-10-11 07:37:33 - (INFO) -------------------------------------
2022-10-11 07:37:33 - (INFO) Starting Xiaomi mi Scale v0.3.6...
2022-10-11 07:37:33 - (INFO) Loading Config From Options.json...
2022-10-11 07:37:33 - (INFO) Logging Level Set to DEBUG...
2022-10-11 07:37:33 - (DEBUG) MISCALE_MAC read from config: 50:FB:19:38:11:CA
2022-10-11 07:37:33 - (DEBUG) MQTT_USERNAME read from config: mqtt
2022-10-11 07:37:33 - (DEBUG) MQTT_PASSWORD read from config: ***
2022-10-11 07:37:33 - (DEBUG) MQTT_HOST read from config: core-mosquitto
2022-10-11 07:37:33 - (DEBUG) MQTT_RETAIN read from config: True
2022-10-11 07:37:33 - (DEBUG) MQTT_PORT read from config: 1883
2022-10-11 07:37:33 - (DEBUG) MQTT_TLS_CACERTS read from config: Path to CA Cert File
2022-10-11 07:37:33 - (DEBUG) MQTT_TLS_INSECURE read from config: False
2022-10-11 07:37:33 - (DEBUG) MQTT_PREFIX read from config: miscale
2022-10-11 07:37:33 - (DEBUG) MQTT_DISCOVERY read from config: True
2022-10-11 07:37:33 - (DEBUG) MQTT_DISCOVERY_PREFIX read from config: homeassistant
2022-10-11 07:37:33 - (DEBUG) HCI_DEV read from config: hci0
2022-10-11 07:37:33 - (DEBUG) BLUEPY_PASSIVE_SCAN read from config: False
2022-10-11 07:37:33 - (INFO) Config Loaded...
2022-10-11 07:37:33 - (INFO) MQTT Discovery Setup Completed...
2022-10-11 07:37:33 - (INFO) -------------------------------------
2022-10-11 07:37:33 - (INFO) Initialization completed, step on scale to wake it up and get a weight value sent... Make sure the scale is within reach...
2022-10-11 07:37:33 - (DEBUG) Using selector: EpollSelector

Please double check that you have the correct Mac address in your config. Also bring the scale close to your dongle / raspberry pi.
Please try with both hci0 (should be built in Bluetooth) and hci1 (should be bt dongle) and give me the logs

Please double check that you have the correct Mac address in your config. Also bring the scale close to your dongle / raspberry pi.
Please try with both hci0 (should be built in Bluetooth) and hci1 (should be bt dongle) and give me the logs

Hi,
Tried hci0 and hci1 many times, nothing changed. Mac adress is also correct, doublechecked. Also tried "BLUEPY_PASSIVE_SCAN"  true or false.
Scale is very close, only 1 meter away from Raspberry Pi. My scale is also working with "Bluetooth Low Energy Monitor / Passive BLE monitor" integration. There is no issue there, I can track my weight instantly.
My mac address :

My Configuration:
HCI_DEV: hci0
BLUEPY_PASSIVE_SCAN: false
MISCALE_MAC: 50:FB:19:38:11:CA
MQTT_PREFIX: miscale
MQTT_HOST: core-mosquitto
MQTT_USERNAME: mqtt
MQTT_PASSWORD: xxx
MQTT_PORT: 1883
MQTT_RETAIN: true
MQTT_DISCOVERY: true
MQTT_DISCOVERY_PREFIX: homeassistant
MQTT_TLS_CACERTS: Path to CA Cert File
MQTT_TLS_INSECURE: false
DEBUG_LEVEL: DEBUG
USERS:

NAME: XX
SEX: male
GT: 60
LT: 64
HEIGHT: 168
DOB: "XXX"
NAME: XX
SEX: female
GT: 55
LT: 60
HEIGHT: 160
DOB: "XXX"
NAME: XX
SEX: male
GT: 14
LT: 30
HEIGHT: 101
DOB: "XXX"

Configuration YAML setting :
mqtt:
sensor:
- name: "My Weight"
state_topic: "miscale/Mesut/weight"
value_template: "{{ value_json['weight'] }}"
unit_of_measurement: "kg"
json_attributes_topic: "miscale/Mesut/weight"
icon: mdi:scale-bathroom
# Below lines only needed if long term statistics are required
state_class: "measurement"
It was working fine before 2022.10 release I think.

I solved this situation finally, I think it was because a hardware lag.
 And voila, I saw my scale found in the logs.
I restarted my Home Assistant many times, updated system and addon many times, nothing changed for a few day. I can't believe I found a solution like this.
And here is my final log :
(Issue can be closed now, it is good to be back again :)
.............
.............
2022-10-11 20:35:31 - (DEBUG) Using selector: EpollSelector
2022-10-11 20:35:46 - (DEBUG) miscale found, with advertising_data: AdvertisementData(local_name='MIBFS', manufacturer_data={343: b'P\xfb\x198\x11\xca'}, service_data={'0000181b-0000-1000-8000-00805f9b34fb': b'\x02\x84\xb2\x07\x01\x03\n\x15\x14\x00\x00x\x05'}, service_uuids=['0000181b-0000-1000-8000-00805f9b34fb'])
2022-10-11 20:35:46 - (DEBUG) miscale v2 found (service data: 0000181b-0000-1000-8000-00805f9b34fb)
2022-10-11 20:40:05 - (DEBUG) miscale found, with advertising_data: AdvertisementData(local_name='MIBFS', manufacturer_data={343: b'P\xfb\x198\x11\xca'}, service_data={'0000181b-0000-1000-8000-00805f9b34fb': b'\x02\xa6\xb2\x07\x01\x03\n)6\xcd\x01~1'}, service_uuids=['0000181b-0000-1000-8000-00805f9b34fb'])
2022-10-11 20:40:05 - (DEBUG) miscale v2 found (service data: 0000181b-0000-1000-8000-00805f9b34fb)
2022-10-11 20:40:05 - (INFO) Publishing data to topic miscale/Mesut/weight:
...........
............

Glad to know it's working. Feel free to close this issue

There is something wrong with integration or maybe an issue hardware related,not sure.
If I restart HA, integration mi scale is not working. Also there is no sign in the log. If I turn off and then turn on raspberry Pi power directly, mi scale appears in the log and it works. If I restart from HA, it disappears.Strange

No idea how to tackle this one. If restarting the Pi makes it work, maybe you have an issue with the bluetooth radio.
Can you try this and see if it works:

switch HA off
restart your bluetooth radio
restart HA
This might make it work. if so I'll see if I can add something to handle when the add-on gets killed, could be that resources are not correctly released by HA...

in my case, the weight is read only once (after power off/on cycle), restarting only ha does not improve the situation.
I tried to remove bluetooth integration from ha, also no improvement.

in my case, the weight is read only once (after power off/on cycle), restarting only ha does not improve the situation.
I tried to remove bluetooth integration from ha, also no improvement.

Can you set your logs to debug and provide the logs please?

I do not have access to the logs at the moment
but the initialization log looks like in the first post, logs when reading as in post 4, no more information appears after that.
There is nothing disturbing about the logs.
Yesterday I restarted the bluetooth service on the host machine (without power off/on) but I forgot to check the scale readings
and after a few hours I remembered to check the weight -> readings popped up!
but it's not working again this morning.
I have yet to confirm it,
it seems that no matter how long it takes from restarting the host or the bluetooth service itself, the reading will be possible only during the first weighing, then everything "freezes".

@mesut3000 @reaper7 I need some logs in debug mode pls

@mesut3000 @reaper7 I need some logs in debug mode pls

@lolouk44 - probably my problem is not caused by your add-on.
In the meantime I replaced the HA built-in eq3-bt thermostat component with custom which correctly recognizes the thermostats and just works. At the same time, problems with reading the weight have disappeared.
...so probably the original thermostat component was causing general bluetooth problems.

@mesut3000 do you have any other Bluetooth integrations on?

@mesut3000 do you have any other Bluetooth integrations on?

Hi, sorry for late response. Yes I have Bluetooth Low Energy Monitor, Passive BLE integration. 5 devices, xiaomi humidity and temperature sensors. Also my scale is added here and it is working without an issue. I also tried hci0 and hci1, nothing changed.

My debug log:
2022-10-25 12:10:18 - Loading Config From Add-On Options...
2022-10-25 12:10:18 - (INFO) -------------------------------------
2022-10-25 12:10:18 - (INFO) Starting Xiaomi mi Scale v0.3.6...
2022-10-25 12:10:18 - (INFO) Loading Config From Options.json...
2022-10-25 12:10:18 - (INFO) Logging Level Set to DEBUG...
2022-10-25 12:10:18 - (DEBUG) MISCALE_MAC read from config: 50:FB:19:38:11:CA
2022-10-25 12:10:18 - (DEBUG) MQTT_USERNAME read from config: mqtt
2022-10-25 12:10:18 - (DEBUG) MQTT_PASSWORD read from config: ***
2022-10-25 12:10:18 - (DEBUG) MQTT_HOST read from config: core-mosquitto
2022-10-25 12:10:18 - (DEBUG) MQTT_RETAIN read from config: True
2022-10-25 12:10:18 - (DEBUG) MQTT_PORT read from config: 1883
2022-10-25 12:10:18 - (DEBUG) MQTT_TLS_CACERTS read from config: Path to CA Cert File
2022-10-25 12:10:18 - (DEBUG) MQTT_TLS_INSECURE read from config: False
2022-10-25 12:10:18 - (DEBUG) MQTT_PREFIX read from config: miscale
2022-10-25 12:10:18 - (DEBUG) MQTT_DISCOVERY read from config: True
2022-10-25 12:10:18 - (DEBUG) MQTT_DISCOVERY_PREFIX read from config: homeassistant
2022-10-25 12:10:18 - (DEBUG) HCI_DEV read from config: hci1
2022-10-25 12:10:18 - (DEBUG) BLUEPY_PASSIVE_SCAN read from config: False
2022-10-25 12:10:18 - (INFO) Config Loaded...
2022-10-25 12:10:18 - (INFO) MQTT Discovery Setup Completed...
2022-10-25 12:10:18 - (INFO) -------------------------------------
2022-10-25 12:10:18 - (INFO) Initialization completed, step on scale to wake it up and get a weight value sent... Make sure the scale is within reach...
2022-10-25 12:10:18 - (DEBUG) Using selector: EpollSelector

Also my scale is added here and it is working without an issue

so it's working and this issue can be closed?

No, it is working under Bluetooth Low Energy Monitor integration, but not working with addon, so i can not track my logs.
Difference between logs :
If I shut down my power of Raspberry Pi and start :
2022-10-11 20:35:31 - (DEBUG) Using selector: EpollSelector
2022-10-11 20:35:46 - (DEBUG) miscale found, with advertising_data: AdvertisementData(local_name='MIBFS', manufacturer_data={343: b'P\xfb\x198\x11\xca'}, service_data={'0000181b-0000-1000-8000-00805f9b34fb': b'\x02\x84\xb2\x07\x01\x03\n\x15\x14\x00\x00x\x05'}, service_uuids=['0000181b-0000-1000-8000-00805f9b34fb'])
2022-10-11 20:35:46 - (DEBUG) miscale v2 found (service data: 0000181b-0000-1000-8000-00805f9b34fb)
2022-10-11 20:40:05 - (DEBUG) miscale found, with advertising_data: AdvertisementData(local_name='MIBFS', manufacturer_data={343: b'P\xfb\x198\x11\xca'}, service_data={'0000181b-0000-1000-8000-00805f9b34fb': b'\x02\xa6\xb2\x07\x01\x03\n)6\xcd\x01~1'}, service_uuids=['0000181b-0000-1000-8000-00805f9b34fb'])
2022-10-11 20:40:05 - (DEBUG) miscale v2 found (service data: 0000181b-0000-1000-8000-00805f9b34fb)
2022-10-11 20:40:05 - (INFO) Publishing data to topic miscale/Mesut/weight:
...........
miScale is found.
But if I restart Home Assistant from software :
2022-10-25 12:10:18 - (INFO) MQTT Discovery Setup Completed...
2022-10-25 12:10:18 - (INFO) -------------------------------------
2022-10-25 12:10:18 - (INFO) Initialization completed, step on scale to wake it up and get a weight value sent... Make sure the scale is within reach...
2022-10-25 12:10:18 - (DEBUG) Using selector: EpollSelector
...
No sign of miScale

My core log :

It souunds like there may be some incompatibility with other bluetooth integrations as experienced by reaper7.
What if you turn off all your other bluetooth integrations, are you then able to restart HA and see data from the scale?

Also disabled integrations; nothing changed :

There's something funky with your setup. I have no idea why it's not working for you.
I'm sorry it's not something I can help with as I'm not getting anything to help me investigate and clealy it works after a Pi restart.
I'm going to close this issue now. However if you find more information to help me fix it, feel free to reopen and share the info.


WebRTC BEP/Connecting the WebRTC Torrent/Standard Torrent Networks/Working with torrents already widely used

I should start by saying that I think this is an AWESOME project. That's the reason I am following it and sending you these probably annoying messages. I am currently juggling a few jobs but when I find some time I plan on working on this.
When I was working at BitTorrent and was focusing on coming up with some cool new features I would day dream about the ability to just go to some torrent site, click on the torrent link, and have the site's own JS based client download the torrent without any need of a plugin or any additional work. This would make really lower the barrier for the general population to use torrents. For example, my friends/parents have trouble with the whole two step approach that torrents currently require. Meaning you have to download the torrent file/click the magnet link then use your torrent client to actually download the data. Having a 100% JS Torrent client would allow torrent sites to provide the torrent client ON SITE, removing the need for any extra steps or software.
The real issue as you have pointed out is connecting the two networks.
Who ever made the graphs and wrote the README for this project did an amazing job explaining the need to connect the two "networks" (the WebRTC and conventional torrent network). It is too bad that sites like joker.org get taken down so fast.. (It was posted a week ago https://news.ycombinator.com/item?id=8520954 and is already "looking for a new home") . I would love to bring up a bunch of proxy servers that proxy the WebRTC connections to regular torrent clients but as you said or I think possibly implied the future of a project like this would be based on a large majority of torrent clients implementing WebRTC connections.
Until then maybe an opensource WebRTC Proxy service, made to be easily deployable could be written as a temporary bandaid to the isssue. A temporary/proxy solution like this might actually even help increase the use of WebRTC Torrent clients, encouraging widely used Torrent clients to implement the new protocol/BEP.
However I think, from reading some of your posts that we both believe that a distributed solution is required (people bring up new torrent proxy servers/web apps all the time and they are taken down in days).
@feross I see you wrote http://librelist.com/browser//webp2p/2013/12/8/webtorrent/ which is a great document about the problem. In this document you say a good solution would be a Torrent client that supported both WebRTC and conventional torrenting as a Chrome/Firefox plugin/extension. To help with with I could def. get my buddy Kyle to add WebRTC support to his https://chrome.google.com/webstore/detail/jstorrent/anhdpjpojoipgpmfanmedjghaligalgb?hl=en  or add it myself but last I talked to him he has some free time and he LOVES to get feedback and suggestions for new features. If a few people asked for this he would do it (and do it well, super smart, great dev).
I also see you have https://www.bountysource.com/issues/1757063-how-does-webtorrent-work
If I disagree with anything I guess it would be the focus on creating a NEW torrent client, in order to really bring these two networks together I would argue that it would be best to utilize the already wide spread use of popular torrent clients by adding WebRTC support to them. If we/someone could get a pull request accepted into one the bigger torrent clients, enabling WebRTC support the network separation issue would be basically solved IMO (I am sure this would be a huge undertaking and not as simple as I currently imagine but seems like a good solution to me at the time).
So I am assuming Deluge, Transmission, and Azureus/Vuze to be the most widely used Open Source BitTorrent clients in use (could not find any actual number). I will do some research and look into which client would:
A. Be most likely to accept a pull request for a BEP like this.
B. Be most likely to have it be built into the "core" not as some plugin that the user would have to enable (which would most likely mean it would never be used)
C. Be the easiest to work with (programmatically. For ex, Transmission is in C and Azureus is in Java I believe. I would personally be able to write a solution in Java much better.)
So in summary, I personally believe (not that my own opinions really mean much, I am just trying to find a way to help and possibly start a conversation about the best way to get wide spread WebRTC adoption) that your plan for a WebRTC/Standard Torrent client Chrome extension is great but a better approach would be to target torrent clients already in wide spread use. I mean if your going to continue with the Chome Extension plan why not just work with Kyle, send him a pull request, adding WebRTC to his 100% JS Chrome Extension Torrent client which ALREADY has tens of thousands of users. And even thinking bigger, why not target the big Opensource clients you mention in the README? It sounds like your hoping they will add the plugin themselves but it might be better to work with them on adding a WebRTC solution then creating your own "wheel" right? Just my opinion.
I have always wanted to get involved with a good OpenSource project and have always like the idea of connecting WebRTC with the torrent network so would love to be involved and I personally will be looking into a way to add WebRTC to Deluge, Transmission, or Azureus/Vuze. Let me know what you think those ideas, specifically targeting widely used torrent clients instead of creating a new extension.
Thank you!
Brad

I think it is much better to have a standalone separate solution to this first. Implementing the new extension wide-spread would be long away IMO. I think a browser plugin will be a better and necessary solution for the short-term.
Is there any ongoing browser plugin projects to be a shim layer between webtorrent swarm and bittorrent swarm?

@bbarrows Sorry for the slow response, I just saw this. Are you still interested in helping WebTorrent?
Getting your friend Kyle to add WebRTC support to JSTorrent would be amazing! I am happy to help out on a PR and finally write up the BEP if there's actually someone else interested in implementing. How can we make this happen? Can you introduce us?

@bbarrows I opened an issue on JSTorrent here: https://github.com/feross/webtorrent/issues/175

Now tracking this in https://github.com/feross/webtorrent/issues/241


Investigate scipy 1.11.2 error

If we use the latest release of scipy, 1.11.2 (in the CI it's now fixed at 1.10.0), tests fail:
============================================================================================================ short test summary info =============================================================================================================
FAILED tests/test_trainer.py::TestTrainer::test_dataset_equivalence_pretrained - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_fout - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_ginet - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_ginet_class - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_ginet_sigmoid - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_incompatible_pretrained_no_Net - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_incompatible_pretrained_no_test - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_naive - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_no_valid_full_train - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_no_valid_provided - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional
FAILED tests/test_trainer.py::TestTrainer::test_sgat - numpy.linalg.LinAlgError: 0-dimensional array given. Array must be at least two-dimensional

It seems related to a numpy operation called in deeprank2.utils.community_pooling.community_detection. In particular, result = mc.run_mcl(matrix) throws the error, which seems to be caused by the fact that matrix is a 0-dimensional array. That is not true, I checked it and matrix.ndim gives 2 as a result. I already tried to downgrade numpy (and networkx) to the versions we have in the actions, but it didn't solve the issue.
The issue comes from the new scipy release (1.11.2); if I uninstall scipy and reinstall the version which is installed in the actions (1.10.0) everything works. But it's important to understand whether it's a bug in our package that the older scipy wasn't detecting (should be since it's only a minor release update).
Could you help me here? @cbaakman

Looks like a type problem. The matrix is of type: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_array.html
I see the error can be overcome by calling matrix.toarray(), before giving it to the markov clustering algorithm.

Looks like a type problem. The matrix is of type: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_array.html
I see the error can be overcome by calling matrix.toarray(), before giving it to the markov clustering algorithm.
Shall I make this change?

Great you found it already! Yes sure go for it and assign me for reviewing it :)


[BugFix] Fix log print typo, compaction information.

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

tiny typo fix, can merge directly.
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] I have checked the version labels which the pr will be auto backported to target branch

run starrocks_be_unittest

run starrocks_be_unittest

run starrocks_admit_test

@Mergifyio backport branch-2.5


mysql support

Describe the solution you'd like
A configuration implementation that uses mysql
Describe alternatives you've considered
Db2 and postgress
Additional context
I already run most of my web apps and other services on mysql (actually mariadb). Steps to use mysql, or a pre-canned setup for it would be nice  (preferably not running on docker)

We won't be tackling this one anytime soon but we have documented the rough steps to adding a new RDBMS type at https://ibm.github.io/FHIR/guides/BringYourOwnPersistence#adding-support-for-another-relational-database


Keeping translation strings in sync with en.js

Re #831: I thought other files would be impacted (they are), and other such mishaps would happen in the future, inevitably, so I wrote a shell script to detect which strings are missing in app/scripts/translations/XX.js. It prints related key/value pairs for easy copy/pasting.
I chose not to print strings which are no more in use: I like it when my scripts do one simple thing at a time. I guess you could duplicate it and change '<' to '>' twice after the diff command, and egrep $TARGET.js instead of en.js to print them.
Obviously, do whatever you want with this attachment...
new_labels.sh.zip

How come I didn't think of it? I can sync these files myself. Ok with that?

That's all, folks!
new_labels.sh.zip

Closing. Will perhaps check from time to time.


RedisCommandTimeoutException intermittently

Hello,I am using the latest version of the lettuce-core on an ElastiCache setup using a single redis Instance and notice that during heavy loads,I am getting the error log as attached.
I am using a single synchronous client for performing all my operations.I have configured the redis timeout to be of 2 secs but since the operation is a simple get(),I cannot understand why the time limit should be breached.Any steps on how to proceed with this or help you understand the issue better maybe?
Please find logs here https://gist.github.com/bvaidya121393/4965226134151fe0fa4d0482c373a431

Using Lettuce Version 5.0.3

Thanks for reporting this issue. Have you measured how long the actual command takes and whether the command timeout is legitimate? Did you observe disconnects?

I have queried the redis slowquery log.There are only about 10 entries which have a high querying time.None of which are during the 56 seconds of timespan during which we recieved these errors.No disconnects either during the said interval according to the number of established connections remaining constant for that time period.We have a thread pool of 100 though in the application.In a worst case 100 through can invoke commands on the single synchronous client that I have established

Lettuce is thread-safe and is expected to handle low and high loads of commands. Are you able reproduce the issue or does that happen sporadically?
We'd need to capture the state of the client/connection to see what's going on and what causes commands to not complete.

It happens sporadically.
A correction to my earlier comment.There was a drop in the number of connections during the period I was getting the timeout exceptions and restored to earlier value after the execptions stopped appearing.
Is it because the client was not connected that the requests were getting timed out?

We'd need to capture the state of the client/connection to see what's going on and what causes commands to not complete
Any suggestions as to how I can achieve this?Could you suggest a few pointers?

Is it because the client was not connected that the requests were getting timed out?

Yes, this is possible. Lettuce works transparently by default regarding disconnects. It auto-reconnects and commands issued at that time are buffered and replayed on reconnect.
You can tweak options through ClientOptions, specifically disconnectedBehavior (see https://lettuce.io/core/release/reference/#client-options).

We'd need to capture the state of the client/connection to see what's going on and what causes commands to not complete

Applies to the actual investigation. Having a reproducer makes things easier as we can run the reproducer and inspect the state on failure. Connecting a debugger to a high load prod system isn't really feasible.
What we would do during the analysis is checking queued/buffered commands while the timeout happens.

It auto-reconnects and commands issued at that time are buffered and replayed on reconnect.
Just wanted to confirm the behaviour again.If they are buffered and replayed,why should these face a timeout vis-a-vis a request that had,say, been requested during a period when the client was connected and wasn't disconnected during a period of request?
If all buffered requests are replayed on a new Redis connection,they should'nt face a RedisCommandTimeoutException,should they?

Ive had a similar issue cause my production system to become unresponsive multiple times over the past few months. I am running the most recent version of spring boot, with embedded tomcat server 8, java 1.8, and spring-data-redis. If I simply restart my embedded tomcat server, it resolves the issue. But this is not acceptable in a production environment; the most recent time this happened under virtually no load. I can usually get about a week of runtime before I get a crash with a generic error:
org.apache.jasper.JasperException: org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out

@tpthaler Please report such issues way earlier. Can you pull a heap dump in that state and share it with me? Feel free to mail me a dropbox link to not share it publicly.

Hello,
Lettuce - 5.0.3.RELEASE
We are also facing this problem since couple of days in production and also in test environment. We are using Redis cache in AWS with Replication (1 primary node and 1 replica)
Is there any solution or workaround for this?

@akhilkalra without knowing the cause it's not possible to know what you can change/do instead. Happy to receive any heap dumps/logs/whatever helps to diagnose the issue.

Hello,
we ran into similar problem with 5.0.4.RELEASE. The behavior we are seeing is as follows:

We create connection as shown in the listing below
One or more threads do brpop on same key and process the result
After a while elements are popped from the list but not being processed

This is super easy to reproduce when withTimeout() is set very low like 5s.
I believe better way of doing this would be to  use timeout in connection.sync().brpop(1, tag); but I don't understand why this is failing in such an unexpected way.
// connection set-up
RedisURI uri = RedisURI
                .builder()
                .withHost(host)
                .withPort(port)
                .withClientName(clientName)
                .withTimeout(Duration.ofSeconds(5))
                .build();

client = RedisClient.create(uri);

connection = client.connect();

// worker thread
while (!stopped) {
    try {
        KeyValue<String, String> result = connection.sync().brpop(0, tag);

       // process result, this is never reached after a while; omitted for brevity
        log.info("{}: received {}", Thread.currentThread().getName(), result.getValue());
    } catch (Exception e) {
        log.error(Thread.currentThread().getName(), e);
    }
}

This is what we see in the logs
DEBUG [2018-05-18 17:53:30,705] io.lettuce.core.protocol.CommandHandler: [channel=0x268f5b69, /<IP_ADDRESS>:64375 -> localhost/<IP_ADDRESS>:6379, chid=0x1] Received: 1179 bytes, 154 commands in the stack
DEBUG [2018-05-18 17:53:30,705] io.lettuce.core.protocol.CommandHandler: [channel=0x268f5b69, /<IP_ADDRESS>:64375 -> localhost/<IP_ADDRESS>:6379, chid=0x1] Stack contains: 154 commands
DEBUG [2018-05-18 17:53:30,705] io.lettuce.core.protocol.RedisStateMachine: Decode AsyncCommand [type=BRPOP, output=KeyValueOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
DEBUG [2018-05-18 17:53:30,705] io.lettuce.core.protocol.RedisStateMachine: Decoded AsyncCommand [type=BRPOP, output=KeyValueOutput [output=KeyValue[retracted, {"retracted"}], error='null'], commandType=io.lettuce.core.protocol.Command], empty stack: true
DEBUG [2018-05-18 17:53:30,706] io.lettuce.core.protocol.CommandHandler: [channel=0x268f5b69, /<IP_ADDRESS>:64375 -> localhost/<IP_ADDRESS>:6379, chid=0x1] Stack contains: 153 commands
DEBUG [2018-05-18 17:53:30,706] io.lettuce.core.protocol.RedisStateMachine: Decode AsyncCommand [type=BRPOP, output=KeyValueOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
DEBUG [2018-05-18 17:53:30,706] io.lettuce.core.protocol.RedisStateMachine: Decoded AsyncCommand [type=BRPOP, output=KeyValueOutput [output=KeyValue[retracted, {"retracted"}], error='null'], commandType=io.lettuce.core.protocol.Command], empty stack: true
ERROR [2018-05-18 17:53:32,134] com.zmp.core.Forwarder: zmptest01-worker-thread-0
! io.lettuce.core.RedisCommandTimeoutException: Command timed out
! at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114)
! at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:62)
! at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
! at com.sun.proxy.$Proxy32.brpop(Unknown Source)
! at com.zmp.core.Forwarder$Worker.run(Forwarder.java:85)

I'll try to capture my server logs next time it crashes, so far it's been crashing in my production server about once a week.

@ihuk Timeouts on the synchronous API and the timeout passed to BRPOP are not related at all. If tag is more than 5 SECONDS, then it's quite normal that you see RedisCommandTimeoutException as Redis responds at a later time if the list is empty.

@mp911de I understand that.
However it seems like the code above can get into a state where Redis responds[1] but RedisCommandTimeoutException is raised and result is never delivered to the caller[2]. That's what I don't understand.
[1] DEBUG [2018-05-18 17:53:30,706] io.lettuce.core.protocol.RedisStateMachine: Decoded AsyncCommand [type=BRPOP, output=KeyValueOutput [output=KeyValue[retracted, {"retracted"}], error='null'], commandType=io.lettuce.core.protocol.Command], empty stack: true
[2] ERROR [2018-05-18 17:53:32,134] com.zmp.core.Forwarder: zmptest01-worker-thread-0 ! io.lettuce.core.RedisCommandTimeoutException: Command timed out ! at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114) ! at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:62) ! at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80) ! at com.sun.proxy.$Proxy32.brpop(Unknown Source) ! at com.zmp.core.Forwarder$Worker.run(Forwarder.java:85)

What happens above is that you have over 150 commands in the queue. The head command hasn't received a response, while the bottom commands time out from a synchronization perspective.
Or said differently: Commands remain in the command queue after timing out. Commands do not get removed after being canceled or when they time out and commands issued earlier must complete in order to process commands that were sent later.
This is because commands are already sent to the Redis server and await response processing. This can only happen when Redis starts to respond to the command which is at the head position. What you're seeing is a response to a command that ran into a timeout earlier (probably the command at the queue head) while the tail command was the one you were seeing to time out.

Let me see if I got that right: If I do connection.sync().brpop(0, tag); and it times out after a while that will actually leave a BRPOP command somewhere in lettuce command queue. When Redis eventually responds it will be consumed by the leftover BRPOP command in the command queue but since original caller is now long gone due to timeout it will just drop whatever it received?

Exactly.

Understood. Thanks.

@ihuk can you explain how @mp911de 's explanation helped you? Did you end up changing your code somehow? I'm getting intermittent timeout errors. It appears to be random and at random calls.
It appears to be more frequent in the listener of a pubsub. In the listener it makes sync commands to write to redis, and the pubsub and the commands are sharing a connection. So I guess I could see how that might cause a deadlock situation since the sync command is waiting for the listener to finish but the listener is executing? However, I'm getting the timeout exception in other places not in the listener. I cannot reproduce this locally using a listener and sync() calls in the listener.
I'm using 5.0.4.RELEASE.

@kkuo short answer: I ended up using Jedis.
In my mind design @mp911de described is fundamentally flawed because it super easy to get into race condition scenarios. For example,  if 10 lettuce calls , like for example connection.sync().brpop(0, tag), time-out you are guaranteed to lose results from next 10 Redis, BRPOP in this case, commands.
I am sure there are ways to work around this and you can try to adjust timeouts so you don't get into problems described above but to me that's like trying to fix race conditions by adding sleep() statements to your code.

Lettuce can't fix client code if the command timeout is less than individual timeouts on Redis commands that take a timeout argument.
In any case, this ticket has evolved into a discussion thread and GitHub issues isn't a general discussion forum. Closing this one as we cannot do anything more here.

Hi @mp911de ,
We are also facing the same issue in PROD . Its been keeping my team into firefighting mode .
What are the recommended client settings that can prevent this issue ?

@SNY019, same here for my team. Did you manage to resolve the issue?

@SNY019, same here for my team. Did you manage to resolve the issue?

@jhengy, we are also facing the same issue about last two weeks, did you guys resolved the issue

We are also facing this issue for the past month. @sureshpattabi @jhengy how did you guys resolve the issue?

@sureshpattabi @arora-ria. For my case, whenever RedisCommandTimeoutException occurs, it only lasts for less than a minute or so and afterwhcih it seems to recover immediately. From redis client metrics, when it occurs, the delay is about 7 seconds. So once we increase the command timeout to 8s, the app no longer throws the exception so far. We believe that it is only masking the underlying problem(probably something to do with how client side manages tcp connections) though.

@sureshpattabi @arora-ria Can I ask if your team managed to resolve the issue? Thanks.

@jhengy we have been unable to resolve this as of now.

We have been facing this issue for Lettuce client running in Windows workers. But Lettuce client running on Linux workers are working fine from past 1 year. refer: https://github.com/lettuce-io/lettuce-core/issues/2297


Weapon Chams

Weapon chams only work on local player please fix.

Do you mean that they only work when in your hand?

@Vadenez  A quick google research about CS:GO game hacking will give you the answer.

Do you mean that they only work when in your hand?

doesn't apply when spectating other players. this doesn't work on the hands and sleves either iirc.

Remove the is localplayer alive check

if (!localPlayer || !localPlayer->isAlive() || localPlayer->isScoped())
return;
Remove these in renderweapon,sleeve,weapon

@m0nsterJ, I know, I just wanted clarification from Rrhyast, that its what he was talking bout..


do the loadavg graph downsampled to show a broader timescale on the server view

this is for later to decide


Extra byte output in Example Implementation

The code provided in the Example implementation output for found matches contains an extra last byte of the provided input bitstream (excluding the CRC).
For example, consider the bitstream generated below.

Its hex equivalent is shown below. The non-CRC portions are highlighted. Notice that the LSB on the right is 0x90.

However, the 0x90 is repeated in the example implementation in the output when --verbose true

Its a pretty inconsequential bug so I wasnt compelled to fix it. I might open a PR for this after my working hours

Consider the example below generated by the test case generator.

Under current master code would print an extra 0x19 in the example implementation.

After applying #6 , the correct byte sequence is printed.


Use dockerized Accumulo in tests

We can replace all of the code in AccumuloQueryRunner that starts Accumulo in the same JVM with a Docker instance using DockerContainer. See TestingSqlServer or DockerizedMySqlServer for an example.

Isn't a better developer experience having everything in single JVM?

I think the developer experience is the same, assuming you have Docker installed. The only usefulness of having it in the same JVM is if you want to debug or otherwise interact with the code. But we treat it as a black box external service, so I don't think there is any value there.
The advantages of this are

Possibly more realistic test environment
Allows testing against multiple versions
Removes some dependencies and simplifies the code

To me, this approach seems a lot cleaner.

We should dockerize Cassandra and test with multiple versions too, especially now that we have version discovery (https://github.com/prestosql/presto/pull/596)

@adamjshook is there a recommendable dockerized Accumulo we could use here?

@findepi I made one at https://github.com/prestosql/docker-images/pull/74 and we have an open PR to use it https://github.com/prestosql/presto/pull/5598 (currently using a different image but will update once docker-images is published).  That should take care of this issue.

Closed by #5598


How to create a new download?

I don't see an option in the repos API to create new downloads. Is this implemented?
http://developer.github.com/v3/repos/downloads/
Thanks,
Ralph

https://mikedeboer.github.io/node-github/#api-repos-createRelease
(cleaning up tickets)