No serial access in Linux

I have tried a few different version and on two machines. I have installed all the requirements but I do not get any communications with /dev/ttyUSB0.
This is not a mono issue as I tried another mono terminal program and it works.
Any tests that you know of I can run to figure out whats going wrong?

Any news on this?  I'm not able to use baud rates other than 115200 with version 1.6.1 on Linux Mint 17.3.

The non ansi baud rate issues in MONO have been known for YEARS. The only solution is to apply the patch and re-compile as I did. It's looking like MONO is going to be dropped but there is nothing to replace it so this could be an issue for future Repatiers.

I worked around it by recompiling the Marlin firmware to use 115,200 baud rate.

If you are using a 16-20mhz arduino there will be dropped packets at 115200. Nothing the system cant handle but annoying as a compromise.
There is a chart somewhere to compare cpu speed, bauds and bit errors.

Yeah, I was afraid of that, but the prints seemed ok.  In hindsight, though, I don't know if there's any kind of checksums or resend-requests in the protocol, so I might be setting myself up for bigger problems.

The host has a extra c++ software that you can compile to set non ansi baudrate. In fact configureFirst should do this for you. Then host calls that program after opening the posrt. Not very elegant workaround but for me it always worked.
Other solution is to install repetier-server and print using the server. Host can connect to server using the server connector, so you can use it as you normally do.

The binary protocol has a checksum and is far superior but you need to use
Repetier Firmware and not Marlin I believe. Other than that I had slight
stuttering on curves at high resolution at 115200 due to communication
bottlenecks.
If 115200 works for you that is by far the easiest solution.
On Mon, Apr 11, 2016, 11:40 AM repetier<EMAIL_ADDRESS>wrote:

The host has a extra c++ software that you can compile to set non ansi
baudrate. In fact configureFirst should do this for you. Then host calls
that program after opening the posrt. Not very elegant workaround but for
me it always worked.
Other solution is to install repetier-server and print using the server.
Host can connect to server using the server connector, so you can use it as
you normally do.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/repetier/Repetier-Host/issues/156#issuecomment-208467871

I'm a little embarrassed.  If I had just read the installation instructions and run configureFirst.sh, everything would have been fine.

You can compile the latest MONO library from source (mono-<IP_ADDRESS>.tar.bz2) and it will work fine.


LargeLoadableTypes: Support applies of objc applies

radar rdar://problem/39036867
Fixes a bug where we have an apply of an AppleSite that returns a large type.
Normally, we should change the ‘apply’ to one that returns @out of the large type.
This, however, does not hold true if the ApplySite got the old calling conventions - detect and avoid changing that case.

@swift-ci Please test


[FLINK-5529] [FLINK-4752] [docs] Improve / extends windowing documentation

This PR is for both the issues in the title.
It refactors/improves/extends the documentation of the windowing logic in Flink 1.2.
R @aljoscha

@aljoscha thanks for the review. I integrated the comments.
I also include @fhueske as he also contributed to this.

Thanks @fhueske ! I integrated your comments.

This looks very good now! @kl0u and @fhueske, could you please figure out how to squash the commits into one or two commits? Once that's done I'll update the Figures from the Source Material and merge.


Add GitHub Action for performing a release to PyPI

This pull request contains a GitHub Action for uploading a release to PyPI. There was originally another GitHub Action in this PR, but it was for doing stuff like building PlasmaPy's changelog, and thus shouldn't be needed here.
Beforehand, it's necessary to link this repo with PyPI (probably with a private key).
The action is triggered when a release is made on GitHub, at which point it will upload the release to PyPI.  You can choose to create a tag when doing the release and use it as the title of the release.

Thank you so much Nick - I will come talk to you if I run into issues or need help linking the API token.


Export function/class to implement dialog

I don't know if this is already implemented but it would be great to have the functions/classes exposed to implement this type of dialogs when developing vscode extensions

I think you  are looking for this https://code.visualstudio.com/api/references/vscode-api#MessageOptions


Obsolete Y24-429 PR Check feasibility of cDNA Prep submission

Closes #
Changes proposed in this pull request

Instructions for Reviewers
[All PRs] - Confirm PR template filled
[Feature Branches] - Review code
[Production Merges to main]
    - Check story numbers included
    - Check for debug code
    - Check version

closing this in favour of https://github.com/sanger/sequencescape/pull/4563


Storage in the Hackspace

Mainly added some words to indicate a member should be making a minimum monthly commitment to the space in order to have a box.

As I understand it Sid, mimimum payment to the Space is a hot debate which both members and trustees have strong feelings on. By creating a minimum payment, there would effectively be two tiers of members: one entitled to storage and the other not. As I understand it the issue is dealt with informally currently - the trustees "have a word" with anyone they think is unfairly taking advantage of the space's resources whilst paying very little.
I don't understand the current wording. Am I right in thinking that it calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something that the trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there to be a debate here on minimum payment or is that topic off the table?

Nothing is off the table, but I personally would be against a minimum
On 24 Dec 2015 12:32 p.m., "rlp10"<EMAIL_ADDRESS>wrote:

As I understand it Sid, mimimum payment to the Space is a hot debate which
both members and trustees have strong feelings on. By creating a minimum
payment, there would effectively be two tiers of members: one entitled to
storage and the other not. As I understand it the issue is dealt with
informally currently - the trustees "have a word" with anyone they think is
unfairly taking advantage of the space's resources whilst paying very
little.
I don't understand the current wording. Am I right in thinking that it
calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something that the
trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there to be a
debate here on minimum payment or is that topic off the table?
—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167104687.

Owens's rewrites #11 & #6 for a minimum membership fee for storage are something we (the trustees) had worked to remove from the rules,
A minimum for storage was in the original rules but has not been enforced for ages,
Minimum indicates tired membership which is defiantly something we do not want
Give the core parts of membership requirements no minimum should be need to be defined and members should take there storage needs into account when deciding there payment amount.
Personally I'm against a minimum for storage.
'RepRap' Matt

On 24 Dec 2015, at 12:53, James Hayward<EMAIL_ADDRESS>wrote:
Nothing is off the table, but I personally would be against a minimum
On 24 Dec 2015 12:32 p.m., "rlp10"<EMAIL_ADDRESS>wrote:

As I understand it Sid, mimimum payment to the Space is a hot debate which
both members and trustees have strong feelings on. By creating a minimum
payment, there would effectively be two tiers of members: one entitled to
storage and the other not. As I understand it the issue is dealt with
informally currently - the trustees "have a word" with anyone they think is
unfairly taking advantage of the space's resources whilst paying very
little.
I don't understand the current wording. Am I right in thinking that it
calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something that the
trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there to be a
debate here on minimum payment or is that topic off the table?
—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167104687.

—
Reply to this email directly or view it on GitHub.

I tried to word it in a way to say that people should be expected to
contribute a minimum to the space, such as their time and effort on a team,
or teams, OR a suitable payment in lieu of that.
I don't think it's fair for some people to put in significantly less to the
space and have access things that are at a premium in the space (such as
storage).
Also the YouTube tour says it's a minimum £10 per month have a box, so that
probably needs updating, as that was the impression I was under.
I know having a minimum payment isn't something the space wants to do (and
would make differences with tax) but i think it's fair and reasonable to
point out people are expected to contribute something (time, effort, things
or money) in order to access certain things.
Such as the laser and having to pay for your running time on it separately
to your monthly payment (which I'm all favour and am not complaining
about). Obviously it's easier to see the extra cost associated with the
running the laser, but it's still a form of tiered access.
On 24 Dec 2015 13:02, "dps.lwk"<EMAIL_ADDRESS>wrote:

Owens's rewrites #11 & #6 for a minimum membership fee for storage are
something we (the trustees) had worked to remove from the rules,
A minimum for storage was in the original rules but has not been enforced
for ages,
Minimum indicates tired membership which is defiantly something we do not
want
Give the core parts of membership requirements no minimum should be need
to be defined and members should take there storage needs into account when
deciding there payment amount.
Personally I'm against a minimum for storage.
'RepRap' Matt

On 24 Dec 2015, at 12:53, James Hayward<EMAIL_ADDRESS>wrote:
Nothing is off the table, but I personally would be against a minimum
On 24 Dec 2015 12:32 p.m., "rlp10"<EMAIL_ADDRESS>wrote:

As I understand it Sid, mimimum payment to the Space is a hot debate
which
both members and trustees have strong feelings on. By creating a
minimum
payment, there would effectively be two tiers of members: one entitled
to
storage and the other not. As I understand it the issue is dealt with
informally currently - the trustees "have a word" with anyone they
think is
unfairly taking advantage of the space's resources whilst paying very
little.
I don't understand the current wording. Am I right in thinking that it
calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something that the
trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there to
be a
debate here on minimum payment or is that topic off the table?
—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167104687.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167107106.

The hackspace has never accepted anything in lieu of money for membership.
First it's impossible to quantify anything other than money.
Second it's completely unfair to members that do already contribute huge amounts of time and effort but don't do it in lieu of there regular membership payment.
Without membership payments we would not exist.
'RepRap' Matt

On 24 Dec 2015, at 14:46, Owen B<EMAIL_ADDRESS>wrote:
I tried to word it in a way to say that people should be expected to
contribute a minimum to the space, such as their time and effort on a team,
or teams, OR a suitable payment in lieu of that.
I don't think it's fair for some people to put in significantly less to the
space and have access things that are at a premium in the space (such as
storage).
Also the YouTube tour says it's a minimum £10 per month have a box, so that
probably needs updating, as that was the impression I was under.
I know having a minimum payment isn't something the space wants to do (and
would make differences with tax) but i think it's fair and reasonable to
point out people are expected to contribute something (time, effort, things
or money) in order to access certain things.
Such as the laser and having to pay for your running time on it separately
to your monthly payment (which I'm all favour and am not complaining
about). Obviously it's easier to see the extra cost associated with the
running the laser, but it's still a form of tiered access.
On 24 Dec 2015 13:02, "dps.lwk"<EMAIL_ADDRESS>wrote:

Owens's rewrites #11 & #6 for a minimum membership fee for storage are
something we (the trustees) had worked to remove from the rules,
A minimum for storage was in the original rules but has not been enforced
for ages,
Minimum indicates tired membership which is defiantly something we do not
want
Give the core parts of membership requirements no minimum should be need
to be defined and members should take there storage needs into account when
deciding there payment amount.
Personally I'm against a minimum for storage.
'RepRap' Matt

On 24 Dec 2015, at 12:53, James Hayward<EMAIL_ADDRESS>wrote:
Nothing is off the table, but I personally would be against a minimum
On 24 Dec 2015 12:32 p.m., "rlp10"<EMAIL_ADDRESS>wrote:

As I understand it Sid, mimimum payment to the Space is a hot debate
which
both members and trustees have strong feelings on. By creating a
minimum
payment, there would effectively be two tiers of members: one entitled
to
storage and the other not. As I understand it the issue is dealt with
informally currently - the trustees "have a word" with anyone they
think is
unfairly taking advantage of the space's resources whilst paying very
little.
I don't understand the current wording. Am I right in thinking that it
calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something that the
trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there to
be a
debate here on minimum payment or is that topic off the table?
—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167104687.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167107106.

—
Reply to this email directly or view it on GitHub.

Ok.  I don't think I've communicated what I was thinking clearly, as I
didn't mean to suggest that people could choose to pay nothing all.
I'll have a think and try again.
On 24 Dec 2015 17:59, "dps.lwk"<EMAIL_ADDRESS>wrote:

The hackspace has never accepted anything in lieu of money for membership.
First it's impossible to quantify anything other than money.
Second it's completely unfair to members that do already contribute huge
amounts of time and effort but don't do it in lieu of there regular
membership payment.
Without membership payments we would not exist.
'RepRap' Matt

On 24 Dec 2015, at 14:46, Owen B<EMAIL_ADDRESS>wrote:
I tried to word it in a way to say that people should be expected to
contribute a minimum to the space, such as their time and effort on a
team,
or teams, OR a suitable payment in lieu of that.
I don't think it's fair for some people to put in significantly less to
the
space and have access things that are at a premium in the space (such as
storage).
Also the YouTube tour says it's a minimum £10 per month have a box, so
that
probably needs updating, as that was the impression I was under.
I know having a minimum payment isn't something the space wants to do
(and
would make differences with tax) but i think it's fair and reasonable to
point out people are expected to contribute something (time, effort,
things
or money) in order to access certain things.
Such as the laser and having to pay for your running time on it
separately
to your monthly payment (which I'm all favour and am not complaining
about). Obviously it's easier to see the extra cost associated with the
running the laser, but it's still a form of tiered access.
On 24 Dec 2015 13:02, "dps.lwk"<EMAIL_ADDRESS>wrote:

Owens's rewrites #11 & #6 for a minimum membership fee for storage are
something we (the trustees) had worked to remove from the rules,
A minimum for storage was in the original rules but has not been
enforced
for ages,
Minimum indicates tired membership which is defiantly something we do
not
want
Give the core parts of membership requirements no minimum should be
need
to be defined and members should take there storage needs into account
when
deciding there payment amount.
Personally I'm against a minimum for storage.
'RepRap' Matt

On 24 Dec 2015, at 12:53, James Hayward<EMAIL_ADDRESS>wrote:
Nothing is off the table, but I personally would be against a minimum
On 24 Dec 2015 12:32 p.m., "rlp10"<EMAIL_ADDRESS>wrote:

As I understand it Sid, mimimum payment to the Space is a hot
debate
which
both members and trustees have strong feelings on. By creating a
minimum
payment, there would effectively be two tiers of members: one
entitled
to
storage and the other not. As I understand it the issue is dealt
with
informally currently - the trustees "have a word" with anyone they
think is
unfairly taking advantage of the space's resources whilst paying
very
little.
I don't understand the current wording. Am I right in thinking
that it
calls for a minimum, but doesn't say what the minimum is?
I don't know whether the issue of minimum payment is something
that the
trustees intend us to tackle as part of the consultation.
Trustees - can you give us some feedback? Are you happy for there
to
be a
debate here on minimum payment or is that topic off the table?
—
Reply to this email directly or view it on GitHub
<
https://github.com/NottingHack/rules/pull/11#issuecomment-167104687>.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167107106.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/NottingHack/rules/pull/11#issuecomment-167142398.

We have a charge for the Laser Per Hour separate to the membership fee. This makes sense because the laser is a finite resource and has an incremental per use cost.
Why should we not have a charge for additional personal storage separate to the membership fee. Storage space like the laser is a finite resource with a real cost although perhaps not quite so direct/incremental as the laser cost.
Say £X / Month per 35L Box rental.
I'm actually not sure I'm really in favour of this, but its maybe a possibility.

you make a good point, and to be honest my only response would be along the lines of "we have always..."
Having a storage box is a privilege, and we wouldn't want people paying penny a month to have a box I suppose.  Working it as a payment for a box sounds a lot better than having a minimum as well.  I would want that bar to be suitably low though - no more than £5 a month for a box space.
If we are going to have that, it should able be a sliding scale - if you want two boxes, the second is more expensive.  A third should be fairly prohibitively expensive.
The problem is that Large Project Storage (LPS) is free. If boxes are going to cost, LPS will need additional rules around what should and shouldn't be on there.

From occasional casual reading of the london hackspace list they seem to have a "bid for storage" sort of system where if a member wants to have some large project storage they ask the membership for permission to store X for Y days and it's approved or not.
Not sure exactly if it works just like that but it sounds like the basis for a reasonable solution to Large Project storage with a bit of thinking about the details.

Hopefully my latest commit explains what I was thinking a bit more clearly.


IrodsDataRequest user field updated on object update

This should obviously not be changed, especially if a superuser is responsible of updating another user's request (see #1863).

Fixed.


Add frontend commit check to CI instead of curling commit.txt

Description
Currently we have a CI check to get the deployed commit by using curl to download a static text file, commit.txt. This doesn't require loading the frontend app at all. If instead we checked the frontend route /app/health/commit, we would catch any bugs that cause the frontend to crash completely
Proposed solution
In CI use headless browser to check the commit via /app/health/commit instead of using curl to check /app/static/commit.txt
Additional context
This request came of the postmortem for the Apollo Client Upgrade Outage, which could have been avoided by this feature.

Thoughts:
In theory, the brower's debug console will have a console.error() message generated by the javascript that a monitoring service could detect. But this probably means an instance of a browser is needed (cypress, puppeteer).
There is the possibility that a ApplicationInsights script could detect and notify some errors. (For error conditions like CSP where the page is blocked from running, this wouldn't work.)


Add RequestId in the returned URL iif it is defined

The requestID should be propagated when it's defined.

thanks it's a good workaround but see issue #6
I think callback url must have already the ID in it (but not have due to encoding)
However I will check the x callback url kit spec

Close this pool request since the fix is not related to the initial problem and must be seen as a work around instead of a bug fix.


Suggestion to add Environment Variables

From $_SERVER or $_ENV.
Suggested as part of a 12 factor app.
Also this is useful for passing in secret keys at runtime.

I will take this up and work add the feature in

Any progress on this?  Super useful feature.

There exists a solution to this actually.
You could use  php configuration file and do $config = $_ENV or something similar.

Hi @CMCDragonkai .. well its been a few years, but this was added in v3: https://github.com/caseyamcl/configula/releases/tag/v3.0.0


[93] fix: pdf generation service

Draft PR
till now :
https://github.com/SamagraX-Stencil/stencil/assets/61339210/a5cd9b8b-2825-4414-b5de-e6d9eccf0fa6

The pdf service is generating pdf on basis of given template.html and data.csv
It is working similar to fileupload service
The issue is if the data is huge then it can reach the limit
{
    "statuscode": 201,
    "data": [
        {
            "data": {
                "message": {
                    "statusCode": 500,
                    "message": "Certificate generation failed",
                    "errors": "Timed out after waiting 30000ms"
                },
                "statusCode": 201
            },
            "errors": []
        }
    ]
}

Should we ask an optional timeout from the user as a query?
https://github.com/user-attachments/assets/a37dfc1d-5999-4193-94a4-64670e69e789

#93

@Savio629

What solution do you propose for solving the large data issue?
Where are we on the support for different templating engines? Even if not baked right into it have we structured the code in such a way that expansion to more template formats is very configurable?
Where are we on the queuing part of things?
Have you worked on an internal PDF churner service which is to be used incase the user does not want to use Gotenburg as discussed with Chakshu during the last weekly review call?
How have we solved for errors in PDF generation like headers and footers getting cut? This problem was discussed during the standups itself when this service was being discussed.

In the response pasted in your comment it says 500 in data and 201 in statusCode why is that?

Tried to implement  https://svelte.dev/docs/svelte-compiler https://github.com/withastro/compiler but didn't received expected output
Will try out this package out https://www.npmjs.com/package/svelte-to-html

What solution do you propose for solving the large data issue?

Still researching and planning about that. Was thinking about using queues.

Where are we on the support for different templating engines? Even if not baked right into it have we structured the code in such a way that expansion to more template formats is very configurable?

Rightnow we support handlebars, trying to integrate more templating engines. Also have structured the code in such way that expansion to more template is configurable

Where are we on the queuing part of things?

Still researching and planning about it. Can you explain a bit more on how should we proceed for queuing files?

Have you worked on an internal PDF churner service which is to be used incase the user does not want to use Gotenburg as discussed with Chakshu during the last weekly review call?

We are not using Gotenburg at the moment as gotenburg requires the html to be named as index.html which won't be feasible for us. https://gotenberg.dev/docs/6.x/html
// @shivankurchavan

How have we solved for errors in PDF generation like headers and footers getting cut? This problem was discussed during the standups itself when this service was being discussed.

There are no errors in headers and footers at the moment.

The photos are not getting rendered in the screenshot itself the screenshot field is broken -- shows that something is not correct and needs fixing.

Fixed the issue in the latest commit

In the response pasted in your comment it says 500 in data and 201 in statusCode why is that?

We were sending the response with 500 instead forgot to throw an error there. Will look into it


Better check for environment (Node or browser)

Please review this PR:
https://github.com/CodeSeven/toastr/pull/408
just one line of changed code :)

Merged. Thanks!


Can't add an article

When trying to add an article. It doesn't respond and is like it is frozen.

Also if you call the api https://seer-staging.heroku.com/api/articles
It responds with

when checking the api i get all articles currently there and when adding articles they are added normally from my end

The staging app client had an incorrect api URL


lint: force typescript files to use override keyword

Enabled noImplicitOverride flag to force an override keyword when overriding a method or property,
this feature needs TypeScript version 4.3, so I upgrade it incidentally, also the @typescript-eslint plugin.

Thanks, this is a really great thing to have turned on.


[Bug]:ReActAgent call excute_python_code function with dashscope_chat model, Fail to parsing response.

Describe the bug
When trying the official ReAct Agent example, using the dashscope_chat model with the qwen-max model and submitting a Python code model, it shows "fail parsing response".
To Reproduce
You code
YOUR_MODEL_CONFIGURATION = {
"model_type": "dashscope_chat",
"config_name": YOUR_MODEL_CONFIGURATION_NAME,
"model_name": "qwen-max",
"api_key": "XXX",
# ...
}
How to execute
python conversation_with_react_agent.py
user input: Please help to execute Python code: print(1+2)
See error
WARNING  | agentscope.models.model:checking_wrapper:182 - Fail to parsing response: {
"text": "   json\n{\n    \"thought\": \"I am about to execute the provided Python code snippet.\",\n    \"speak\": \"The result of executing your Python code is coming up.\",\n    \"function\": [\n        {\n            \"name\": \"execute_python_code\",\n            \"arguments\": {\n                \"code\": \"print(1+2)\"\n            }\n        }\n    ]\n}\n   ",
"embedding": null,
"image_urls": null,
"raw": {
"status_code": 200,
"request_id": "c711e787-aa4a-96a3-967e-3818e838969e",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "json\n{\n    \"thought\": \"I am about to execute the provided Python code snippet.\",\n    \"speak\": \"The result of executing your Python code is coming up.\",\n    \"function\": [\n        {\n            \"name\": \"execute_python_code\",\n            \"arguments\": {\n                \"code\": \"print(1+2)\"\n            }\n        }\n    ]\n}\n"
}
}
]
},
"usage": {
"input_tokens": 500,
"output_tokens": 77,
"total_tokens": 577
}
}
}.
Exception: Expecting value: line 1 column 1 (char 0),   Attempt 1 / 3

Environment (please complete the following information):

AgentScope Version: 0.0.2
Python Version: 3.9
OS: CentOS 7

Additional context
Add any other context about the problem here.
The model output content.text is:
"" json\n{\n  \"thought\": \"I am executing the given Python code.\",\n  \"speak\": \"The result of the Python code execution is 3.\",\n  \"function\": [\n    {\n      \"name\": \"execute_python_code\",\n      \"arguments\": {\n        \"code\": \"print(1+2)\"\n      }\n    }\n  ]\n}\n ""
“```“ not "  `"

the parse_func() function expects the part without the json\n** start and **\n end. Trying to modify parse_func() to add a conditional check for response.text can fix it.

It seems like qwen responds with a "```json" prefix and a suffix. Thanks for your report! We will try to adapt to qwen-max soon in #131 .
As a hot fix, you can try to remove the prefix and suffix before executing json.loads()


Security Vulnerability in Lodash-es all versions

Environment

Browser: Not applicable
Version of smooth-scrollbar: All

Issue Summary
All versions of package lodash are susceptible to vulnerabilities which when successfully exploited could lead to disclosure of sensitive information, addition or modification of data, or Denial of Service (DoS). Recently, I updated the package to Lodash-es version 4.17.21, but that version also contains the same gap, as all lodash-es versions available.
Current Behavior
References:
https://github.com/lodash/lodash/blob/ddfd9b11a0126db2302cb70ec9973b66baec0975/lodash.js%23L14851
https://security.netapp.com/advisory/ntap-20210312-0006/
Expected Behavior
The fix suggested by Whitesource and NetApp is to change the used library to Lodash 4.17.21 (non es version)
Steps to Reproduce
Please find exploit information here: https://nvd.nist.gov/vuln/detail/CVE-2021-23337

@j-turner28 sure, any PR will be welcome!
I just double-checked the CVE-2021-23337 and it seems only those who use the template() function is affected. I believe we are safe as we only use a few functions like debounce() and clamp(). But again, removing lodash-es will be extremely helpful because we aim to make future versions dependency-free!


perl.perl-cross-src: 2021-03-21 -> 1.3.6

Motivation for this change
This gets us onto a stable release, and also includes the support I added upstream for cross-compilation to NetBSD.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Added a release notes entry if the change is major or breaking
[x] Fits CONTRIBUTING.md.

@OfBorg build pkgsCross.aarch64-multiplatform.perl pkgsCross.x86_64-netbsd.perl

(I don't think it'll actually build for NetBSD in Nixpkgs yet, because we need https://github.com/Perl/perl5/commit/a313fe6ae7e17fd489233cbbb1dbda1d6bf25858, but it should get past configuring)

What can I do to test crossbuild on NetBSD?

pkgsCross.x86_64-netbsd.perldevel
:)


[NuGet.org Bug]: Build on Linux breaks due to untrusted signer.

Impact
I'm unable to use NuGet.org in GitHub Actions
Describe the bug
A CI pipeline running on Linux was breaking, and I encountered the following error: error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. This looked very suspect as it was an official Microsoft package, and the certificate looked like it belonged to Microsoft. This was also seen locally until the "build button" was used in an IDE.
Repro Steps
I was able to recreate this behavior and bug in a repo which runs it in a container (Work repo is private).

Clone the following repo https://github.com/alanssitis/reproduce-dotnet-bug.
In the project root, run docker build ..,

Expected Behavior
The build should fail with a untrusted signer error.
Interestingly enough, I could "fix" this locally by building the project using an IDE (Rider), which I'd assume did something under the hood with the dotnet CLI to resolve this. I was not able to replicate the behavior carried out by the IDE, and therefore, I still cannot use NuGet.org in my CI, which is blocking my work.
I have only verified this behavior on PopOS! 22.04, Ubuntu 22.04, and Debian Bookworm.
Screenshots
No response
Additional Context and logs
Building the container locally netted the following logs:
$ docker build . -t test
[+] Building 4.0s (8/8) FINISHED                                                                                docker:default
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 148B                                                                                0.0s
 => [internal] load metadata for mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim                                                                                0.1s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 57B                                                                                0.0s
 => [1/4] FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim@sha256:7861b15f318949cf9214d9ad5382b680a0e22e3b8673180707aa0c594ab75656                                                0.0s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 53.19kB                                                                                0.0s
 => CACHED [2/4] WORKDIR /src/                                                                                0.0s
 => [3/4] COPY . .                                                                                0.1s
 => ERROR [4/4] RUN dotnet build ./test/test.csproj                                                                                3.7s
------
 > [4/4] RUN dotnet build ./test/test.csproj:
0.482 MSBuild version 17.9.8+b34f75857 for .NET
0.830   Determining projects to restore...
2.968 /src/fido2-net-lib/Src/Fido2.Models/Fido2.Models.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
2.968   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':
2.968   Signature type: Author
2.969   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Subject Name: CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
2.969   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   SHA256 hash: 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353
2.969   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Valid from: 07/27/2023 00:00:00 to 10/17/2026 23:59:59
3.153 /src/fido2-net-lib/Src/Fido2/Fido2.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
3.153   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':
3.153   Signature type: Author
3.153   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Subject Name: CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
3.153   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   SHA256 hash: 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353
3.153   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Valid from: 07/27/2023 00:00:00 to 10/17/2026 23:59:59
3.158   Failed to restore /src/fido2-net-lib/Src/Fido2.Models/Fido2.Models.csproj (in 1.51 sec).
3.178 /src/fido2-net-lib/Src/Fido2.Ctap2/Fido2.Ctap2.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
3.178   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':
3.178   Signature type: Author
3.178   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Subject Name: CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
3.178   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   SHA256 hash: 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353
3.178   Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json':   Valid from: 07/27/2023 00:00:00 to 10/17/2026 23:59:59
3.561 /usr/share/dotnet/sdk/8.0.204/NuGet.targets(169,5): error : The given key '(Microsoft.Extensions.Logging, 6.0.0)' was not present in the dictionary. [/src/test/test.csproj]
3.578
3.579 Build FAILED.
3.579
3.579 /src/fido2-net-lib/Src/Fido2.Models/Fido2.Models.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
3.579 /src/fido2-net-lib/Src/Fido2/Fido2.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
3.579 /src/fido2-net-lib/Src/Fido2.Ctap2/Fido2.Ctap2.csproj : error NU3034: Package 'Microsoft.NET.ILLink.Tasks 8.0.4' from source 'https://api.nuget.org/v3/index.json': This package is signed but not by a trusted signer. [/src/test/test.csproj]
3.579 /usr/share/dotnet/sdk/8.0.204/NuGet.targets(169,5): error : The given key '(Microsoft.Extensions.Logging, 6.0.0)' was not present in the dictionary. [/src/test/test.csproj]
3.579     0 Warning(s)
3.579     4 Error(s)
3.579
3.579 Time Elapsed 00:00:02.99
------
Dockerfile:4
--------------------
   2 |     WORKDIR /src/
   3 |     COPY . .
   4 | >>> RUN dotnet build ./test/test.csproj
   5 |
--------------------
ERROR: failed to solve: process "/bin/sh -c dotnet build ./test/test.csproj" did not complete successfully: exit code: 1

I'm also experiencing this on EndeavourOS (which is equivalent to Arch for our purposes).

Output from running 'dotnet --info'
.NET SDK:
 Version:           8.0.104
 Commit:            034f91fcc0
 Workload version:  8.0.100-manifests.c4df6daf

Runtime Environment:
 OS Name:     endeavouros
 OS Version:
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /usr/share/dotnet/sdk/8.0.104/

.NET workloads installed:
 Workload version: 8.0.100-manifests.c4df6daf
 [wasm-tools]
   Installation Source: SDK 8.0.100
   Manifest Version:    8.0.4/8.0.100
   Manifest Path:       /usr/share/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.4/WorkloadManifest.json
   Install Type:        FileBased

Host:
  Version:      8.0.4
  Architecture: x64
  Commit:       2d7eea2529

.NET SDKs installed:
  6.0.129 [/usr/share/dotnet/sdk]
  7.0.118 [/usr/share/dotnet/sdk]
  8.0.104 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.29 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.18 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  /home/joe/REDACTED/global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

I found that using dotnet msbuild '/t:Restore;Build' /p:Configuration=Release in place of dotnet build -c Release in my usual commands is a viable workaround for me for now, but this does feel quite problematic.


limit and  last queries consuming > 15 GB memory

Bug report
System info:  InfluxDB 1.0.0 and 1.0.2, Red Hat Enterprise Linux Server release 6.8
Steps to reproduce:

40 servers running telegraf with procstat to capture all process info every 1 minute

target database with one hour retention period

average number of series per server is 550 in the database, but one server has 16K

execute one of the following queries:
select * from  procstat limit 5
SELECT last("pid") as pid, last("cpu_usage") as cpu, last("memory_rss") / 1048576  as memory, last("num_fds") as fds, last("num_threads") as threads FROM "procstat" WHERE "host" =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY "process_name" fill(null)
a.  The limit query will cause 15 GB to be consumed instantly
b.  The last query running every 2 minutes will consume all available memory.  In Grafana the query returns, but SHOW QUERIES will show instances still running:

show queries
qid     query                                                                                database         duration
612     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       13m10s
246     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       23m11s
791     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       3m10s
27      SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       28m35s
32      SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       27m11s
133     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       25m11s
455     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       19m10s
552     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       17m10s
380     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       21m10s
714     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       7m10s
643     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       11m10s
672     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       9m10s
748     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       5m10s
582     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       15m10s
857     SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name  telegraf_procstat       1m10s

Expected behavior: LIMIT with small value or grabbing the last two minutes of a large series should not consume large amount of memory
Actual behavior: 1) A database of 300 MB consumes more than 15 GB of RAM when using LIMIT without WHERE clause 2) all available memory is consumed when querying the last two minutes of data periodically and using LAST
Additional info: Totally expect a performance hit for a large series SELECT, but this should be counteracted by the use of a 2m WHERE clause and LAST.  LIMIT with a small value should always be a safe query.
Please let me know if any other informaion is required.
Thank-you.

Can you run the following when you see the higher memory usage and attach the output in a gist?
curl -o block.txt "http://localhost:8086/debug/pprof/block?debug=1"
curl -o goroutine.txt "http://localhost:8086/debug/pprof/goroutine?debug=1"
curl -o heap.txt "http://localhost:8086/debug/pprof/heap?debug=1"
curl -o vars.txt "http://localhost:8086/debug/vars"
iostat -xd 1 30 > iostat.txt
influx -execute "show shards" > shards.txt
influx -execute "show stats" > stats.txt
influx -execute "show diagnostics" > diagnostics.txt

Also, can you try 1.1rc1 and see if you still have the same issue?

Hi @jwilder,
I was able to consume all the memory during the second execution of:
select * from procstat limit 5
Iostat may not be accurate as it was taken during swap thrashing, let me know if you need another run of it or the gist format is no good.
https://gist.github.com/joshuajoh/ea0281d1b952886749286a24ddd844e9
I'll give 1.1rc1 a shot, I'm also going to play with rewriting the last query to something like this too:
SELECT pid as pid, cpu_usage as cpu, "memory_rss" / 1048576 as memory, "num_fds" as fds, "num_threads" as threads FROM "procstat" WHERE "host" =~ /^Server_With_16K_Series$/ AND time > now() - 90s GROUP BY "process_name" ORDER BY desc LIMIT 1
Thank-you.

Hi,
I think we are facing the same issue (InfluxDB 1.0.2 CentOS 7).
A simple query like :
select * from "apache.hit" where host='server15.ec2.sonarsource.io' order by time desc limit 5
is making InfluxDB crashing. Here are an excerpt of /var/log/messages :
Nov  8 17:24:03 server10 influxd: goroutine 59979 [IO wait]: Nov  8 17:24:03 server10 influxd: net.runtime_pollWait(0x7f780a142600, 0x72, 0xc9ce340000) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/runtime/netpoll.go:160 +0x60 Nov  8 17:24:03 server10 influxd: net.(*pollDesc).Wait(0xc92743ea70, 0x72, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a Nov  8 17:24:03 server10 influxd: net.(*pollDesc).WaitRead(0xc92743ea70, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36 Nov  8 17:24:03 server10 influxd: net.(*netFD).Read(0xc92743ea10, 0xc9ce340000, 0x1000, 0x1000, 0x0, 0x7f7c443c4050, 0xc82000e150) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_unix.go:250 +0x23a Nov  8 17:24:03 server10 influxd: net.(*conn).Read(0xc9c9621728, 0xc9ce340000, 0x1000, 0x1000, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/net.go:172 +0xe4 Nov  8 17:24:03 server10 influxd: net/http.noteEOFReader.Read(0x7f7c28593e50, 0xc9c9621728, 0xc9c5ad53e8, 0xc9ce340000, 0x1000, 0x1000, 0x60, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/transport.go:1687 +0x67 Nov  8 17:24:03 server10 influxd: net/http.(*noteEOFReader).Read(0xc9ce332b60, 0xc9ce340000, 0x1000, 0x1000, 0xc8abf26f98, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: <autogenerated>:284 +0xd0 Nov  8 17:24:03 server10 influxd: bufio.(*Reader).fill(0xc8eb9330e0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/bufio/bufio.go:97 +0x1e9 Nov  8 17:24:03 server10 influxd: bufio.(*Reader).Peek(0xc8eb9330e0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/bufio/bufio.go:132 +0xcc Nov  8 17:24:03 server10 influxd: net/http.(*persistConn).readLoop(0xc9c5ad5380) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/transport.go:1073 +0x177 Nov  8 17:24:03 server10 influxd: created by net/http.(*Transport).dialConn Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/transport.go:857 +0x10a6 Nov  8 17:24:03 server10 influxd: goroutine 58226 [IO wait]: Nov  8 17:24:03 server10 influxd: net.runtime_pollWait(0x7f7c28595128, 0x72, 0xc8bb2ee000) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/runtime/netpoll.go:160 +0x60 Nov  8 17:24:03 server10 influxd: net.(*pollDesc).Wait(0xc93a657410, 0x72, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a Nov  8 17:24:03 server10 influxd: net.(*pollDesc).WaitRead(0xc93a657410, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36 Nov  8 17:24:03 server10 influxd: net.(*netFD).Read(0xc93a6573b0, 0xc8bb2ee000, 0x1000, 0x1000, 0x0, 0x7f7c443c4050, 0xc82000e150) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/fd_unix.go:250 +0x23a Nov  8 17:24:03 server10 influxd: net.(*conn).Read(0xc96f66f448, 0xc8bb2ee000, 0x1000, 0x1000, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/net.go:172 +0xe4 Nov  8 17:24:03 server10 influxd: net/http.(*connReader).Read(0xc8e4c59ce0, 0xc8bb2ee000, 0x1000, 0x1000, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/server.go:526 +0x196 Nov  8 17:24:03 server10 influxd: bufio.(*Reader).fill(0xc8bb2ec240) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/bufio/bufio.go:97 +0x1e9 Nov  8 17:24:03 server10 influxd: bufio.(*Reader).Peek(0xc8bb2ec240, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/bufio/bufio.go:132 +0xcc Nov  8 17:24:03 server10 influxd: net/http.(*conn).readRequest(0xc97ff12700, 0x0, 0x0, 0x0) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/server.go:702 +0x2e6 Nov  8 17:24:03 server10 influxd: net/http.(*conn).serve(0xc97ff12700) Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/server.go:1425 +0x947 Nov  8 17:24:03 server10 influxd: created by net/http.(*Server).Serve Nov  8 17:24:03 server10 influxd: /usr/local/go/src/net/http/server.go:2137 +0x44e Nov  8 17:24:04 server10 systemd: influxdb.service: main process exited, code=exited, status=2/INVALIDARGUMENT Nov  8 17:24:04 server10 systemd: Unit influxdb.service entered failed state. Nov  8 17:24:04 server10 systemd: influxdb.service failed. Nov  8 17:24:04 server10 systemd: influxdb.service holdoff time over, scheduling restart.
@jwilder, I can make a try upgrading to 1.1.0-rc1 but is it possible to rollback from 1.1.0-rc1 to 1.0.2 ?

So the default Grafana editor automatically makes every template variable a regexp for InfluxDB.
As soon as the queries were updated to the below memory consumption is fine.
WHERE host = 'Server_With_16K_Series' AND time > now() - 2m GROUP BY process_name
Looks like there is some type of memory consumption issue when using a regular expression for 40K series.
Please let me know if there is any other information that can be provided for this.
Thank-you.

Can you show the slower regex version of the query?

Sure:
SELECT last(pid) AS pid, last(cpu_usage) AS cpu, last(memory_rss) / 1048576 AS memory_in_MB, last(num_fds) AS fds, last(num_threads) AS threads, last(cpu_time_iowait) AS cpu_iowait, last(read_count) AS read_count, last(write_count) AS write_count FROM procstat WHERE host =~ /^Server_With_16K_Series$/ AND time > now() - 2m GROUP BY process_name

That specific regex is automatically rewritten to use equality in 1.1. I'd suggest testing 1.1rc1.

Should be fixed in 1.1.


Question: Menu with custom groups

I had following API for Dropdown Menu React component in mind and was wondering if there is an easy way to achieve it with @floating-ui/react-dom-interactions:
<Menu>
  <Group label="Settings">
    <MenuItem label="Item 1" />
    <MenuItem label="Item 2" />
  </Group>
  <Group label="Account">
    <MenuItem label="Item 3" />
    <MenuItem label="Item 4" />
  </Group>
  <Text>Some custom stuff</Text> // Some custom component
</Menu>

Of course the trick here is to provide proper focus management when navigating with keyboard, so the only focusable elements are MenuItems (Item 1 through 4 in the example), not the Groups itself nor other custom components.
In the official example it is relaying on React Children API to provide index for MenuItem, but in this case it's quite tricky. Is there any handy way to do it (e.g. t relay on menuitem role for element).

You could map the children and check if the child.type === MenuItem, if not, do another map to get to the children inside the Group

Thanks! That's what I had in mind. Though maybe there is other way around.


added jre to elastic in universe

This fixes a fatal handling of the elastic package where it still refers to the default JRE, this won't work in a offline-repository

@triclambert  ... sorry this PR now is a bit polluted :)
But very important is: https://github.com/mesosphere/universe/pull/1197/commits/765fcfd986bc191343359bb9d3b5cfe035752c4c
to have a Offline Possible Elasticsearch container, this might also apply for the beta-elastic package ... we weren't aware of that other package at the time of patching ...


Race condition when gc'ing a serie and receiving a sample at the same…

Fix https://github.com/prometheus/prometheus/issues/9879
When we receive samples for a series that is being gc'ed at the same time, the appender can end up with a already gc'ed memSeries reference.
The CRUX of this cr is that we have a race condition here as nothing is locking the memSeries yet and so, it can be gc'ed here. When this happens, the appender hold an already invalid series reference.
Im still not sure if this can really can cause duplicated samples in the tsdb but for sure it makes prometheus accept invalid samples and causes a warning during wall replay:
level=warn ts=2022-04-20T20:42:43.234426112Z caller=head_wal.go:361 msg="Unknown series references" samples=1 exemplars=0

This change is just making sure that we don't reuse the invalid object in the append.
Just for simplicity i just returned ErrOutOfOrderSample on this case (for now) just to make easier to read the PR.
I think in this case we should discard the memSeries reference and try to get the valid one.
Before:
dev-dsk-approtas-2a-1fab6ae0 % go clean -testcache && go test  ./tsdb -test.run '^\\QTestDB_appendAndCompactHeadConcurrently\E$' -v
=== RUN   TestDB_alan
    db_test.go:180:
        	Error Trace:	db_test.go:180
        	Error:      	Received unexpected error:

        	            	metric output does not match expectation; want:

        	            	# HELP prometheus_tsdb_head_samples_appended_total Total number of appended samples.
        	            	# TYPE prometheus_tsdb_head_samples_appended_total counter
        	            	prometheus_tsdb_head_samples_appended_total 11520

        	            	got:

        	            	# HELP prometheus_tsdb_head_samples_appended_total Total number of appended samples.
        	            	# TYPE prometheus_tsdb_head_samples_appended_total counter
        	            	prometheus_tsdb_head_samples_appended_total 11521
        	Test:       	TestDB_alan
--- FAIL: TestDB_appendAndCompactHeadConcurrently (0.29s)
FAIL
FAIL	github.com/prometheus/prometheus/tsdb	0.302s
FAIL

Looking the the following comment seems that this is not expected at all:
( The intention is to never receive a sample when we are deleting a series)
https://github.com/prometheus/prometheus/blob/fc3f1b8ded810a1263f72d37db9db4e8ce726120/tsdb/head.go#L1396-L1400

I think we should retry if we ended up with a invalid reference -> https://github.com/alanprot/prometheus/commit/fa20a1cf6e4a7815612de569afa6071ec3655528

cc @alanprot are you still willing to work on this and address @codesome 's comments? Thanks

I think we can close this for now!
This code changed quite a bit and we dont see this problem anymore!
Thanks!!!


Fix empty image fields saving null or undefined.

- Summary
Closes #828.
Does anyone think we need a more through fix, i.e. returning an empty string instead of null or undefined?

- Test plan

- Description for the changelog

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

I think an empty string is great.
I suppose we could think about popping up a confirmation about being sure you actually want screen readers to completely skip this image, but that would get really annoying if you're using a lot of decorative images on a page. I think having the alt field is enough to nudge people in the right direction, and we don't need to teach them accessibility good practices beyond that. :)

I was wondering if we should send an empty string to all plugins, instead of undefined (vs just changing this for the image plugin). That could be a breaking change, though, so I'm not too keen on it.

@verythorough I agree this could use more thought moving forward. As it stands it's an improvement, so merging for now.


Update README.md

WordPress should be styled with capital 'P' :)
https://developer.wordpress.org/reference/functions/capital_p_dangit/

Hi @glours , I see this was updated outside the PR, I'll close this. Thanks.


API for event predictions

Event predictions are only calculated client side, there is no API route for this information.
Could an API route be added that allows you to get the same information as the simulation results table?
To prevent abuse, you could hardcode it to only do a very small number of simulations.

Yeah I can work on this!


Merge same M3u Playlist and auto go to the next steam if Tuner / Streams if full

Hi will it be possible to have the 2 streams let say Vaders1 Vaders2
then enable buffering
and if the Buffer/Tuner of Vaders1 is full auto jump to Vaders2
thanks

Worthwhile only if the provider uses IDs for their streams. Then one could implement a stacking function. As often as the channel names change, there are currently only problems.

Yes the ID is the same.
I know right now it doesn't work :( I test it and I got the Xteve max stream when I was maxing out the vaders1

And what if I have two different providers?  Nice would be if you could then say, if Channel 1 HD fails from Provider 1, then take channel 1 SD from Provider 2. But only if each stream has a unique ID

That will be awesome :)

xTeVe already supports the IDs, unfortunately most providers can not or do not want to implement this. It is best to ask the providers for the ID function, would have many other advantages.

I was able to do it with TVHeadEnd but the system do not work as well as this one

Yes, TVHeadEnd can do that, but I think it only works until the M3U changes.

uf the M3U ID changes the ID will change for both of them
but its really rare that the M3U ID change

You probably mean the tvg-id. I mean another. I will not spend time on features that only work if two playlists come from the same provider. Maybe it has to work with different providers to 100% or I'll let it be the same.
Unique ID:
https://media.discordapp.net/attachments/484099914574462977/525051040739885077/cuid.mp4

It would be great if it could work with different provider :)
let say we have the same channels name "US: ABC New York" and a other provider have it too it could merge them and we could decide to put a priority on witch one should come first,

Yes, I would like that too. Only I would have to rely on the fact that the channel name never changes. Unfortunately, my experiences are a bit different. There are providers who additionally have a unique ID for each stream that never changes. xTeVe uses this ID to map the stream after updating the playlist in the mapping.
When the providers start to allocate an ID for their streams, I start to implement a stacking function in xTeVe. Before that makes no sense.
I have a $ 60 TV tuner that exports an M3U, which itself assigns IDs for the streams.

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the environmental variables to your tuners IPs. I also created a docker container for folks wanting to deploy in Kubernetes or something like I did.
https://hub.docker.com/r/akreii/tuner-lb
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the environmental variables to your tuners IPs. I also created a docker container for folks wanting to deploy in Kubernetes or something like I did.
https://hub.docker.com/r/akreii/tuner-lb
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the "TUNERS" environmental variables to your tuners IPs, comma separated (EX: <IP_ADDRESS>,<IP_ADDRESS>). I also created a docker container for folks wanting to deploy in Kubernetes or something like I did. You can then use this service to create one M3U playlist with. xTeVe will follow the 307 redirects (for URL /auto/v{channel}.ts) giving the first tuner, then second tuner after all filled up. Hope this helps.
https://hub.docker.com/r/akreii/tuner-lb
#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Here is an example line from my M3U playlist
#EXTM3U
#EXTINF:-1 tvg-id="guide2go.90555.schedulesdirect.org" tvg-name="WMDEDT (WMDE-DT)" tvg-chno="2" channelID="x-ID.2" group-title="HDHomerun",2,WMDEDT (WMDE-DT)
http://tuner-lb/auto/v2.ts

This look great.
can you put more details on the docker page how to use it or set it up.
Thanks

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the "TUNERS" environmental variables to your tuners IPs, comma separated (EX: <IP_ADDRESS>,<IP_ADDRESS>). I also created a docker container for folks wanting to deploy in Kubernetes or something like I did. You can then use this service to create one M3U playlist with. xTeVe will follow the 307 redirects (for URL /auto/v{channel}.ts) giving the first tuner, then second tuner after all filled up. Hope this helps.
https://hub.docker.com/r/akreii/tuner-lb
#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Here is an example line from my M3U playlist
#EXTM3U
#EXTINF:-1 tvg-id="guide2go.90555.schedulesdirect.org" tvg-name="WMDEDT (WMDE-DT)" tvg-chno="2" channelID="x-ID.2" group-title="HDHomerun",2,WMDEDT (WMDE-DT)
http://tuner-lb/auto/v2.ts

This look great.
can you put more details on the docker page how to use it or set it up.
Thanks

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the "TUNERS" environmental variables to your tuners IPs, comma separated (EX: <IP_ADDRESS>,<IP_ADDRESS>). I also created a docker container for folks wanting to deploy in Kubernetes or something like I did. You can then use this service to create one M3U playlist with. xTeVe will follow the 307 redirects (for URL /auto/v{channel}.ts) giving the first tuner, then second tuner after all filled up. Hope this helps.
https://hub.docker.com/r/akreii/tuner-lb
#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Here is an example line from my M3U playlist
#EXTM3U
#EXTINF:-1 tvg-id="guide2go.90555.schedulesdirect.org" tvg-name="WMDEDT (WMDE-DT)" tvg-chno="2" channelID="x-ID.2" group-title="HDHomerun",2,WMDEDT (WMDE-DT)
http://tuner-lb/auto/v2.ts

This look great.
can you put more details on the docker page how to use it or set it up.
Thanks

Want to be as helpful as I can here. I deploy it into Kubernetes so here is my deployment spec:
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    service: tuner-lb
  name: tuner-lb
  namespace: plex
spec:
  replicas: 1
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      service: tuner-lb
  strategy:
    type: Recreate
  template:
      labels:
        service: tuner-lb
    spec:
      containers:
      - env:
        - name: TUNERS
          value: <IP_ADDRESS>,<IP_ADDRESS>
        image: akreii/tuner-lb:latest
        imagePullPolicy: Always
        name: tuner-lb
        ports:
        - containerPort: 5000
          protocol: TCP

And my service spec
apiVersion: v1
kind: Service
metadata:
  labels:
    service: tuner-lb
  name: tuner-lb
  namespace: plex
spec:
  ports:
  - name: "80"
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    service: tuner-lb
  type: ClusterIP

I then rewrite my M3U playlist to use the service endpoint, here it will be http://tuner-lb.plex (plex being my namespace). xTeVe will connect to that and the tuner-lb service will 307 redirect to the tuners defined in the environmental variable "TUNERS". It is a VERY basic basic basic service, there is really 0 configuration done here. Just pull in the container, set your TUNERS environmental variable and rewrite your M3U playlist to use that to proxy to your SiliconDust tuners. Done!

Hi. I hope someone finds this. I wrote up a dirty script to do a 307 REDIRECT with SiliconDust tuners. This will detect the /tuners.html page for "not in use" or "none" in any of the text, meaning there is an available tuner. Just set the "TUNERS" environmental variables to your tuners IPs, comma separated (EX: <IP_ADDRESS>,<IP_ADDRESS>). I also created a docker container for folks wanting to deploy in Kubernetes or something like I did. You can then use this service to create one M3U playlist with. xTeVe will follow the 307 redirects (for URL /auto/v{channel}.ts) giving the first tuner, then second tuner after all filled up. Hope this helps.
https://hub.docker.com/r/akreii/tuner-lb
#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, redirect, abort
import logging
from logging import Formatter, FileHandler
import os
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)

@app.route('/ping')
def home():
    return 'pong'

@app.route('/auto/v<channel>.ts')
def tune(channel):
    tuner = available(app)
    if tuner:
        print('> Redirecting request to tuner {} ...'.format(tuner))
        url = 'http://{}:5004/auto/v{}.ts'.format(tuner, channel)
        return redirect(url, code = 307)
    else:
        abort(504)

def available(app):
    tuners = app.config['TUNERS'].split(',')
    for tuner in tuners:
        print('> Testing tuner {} ...'.format(tuner))
        try:
            r = requests.get('http://{}/tuners.html'.format(tuner))
            if r.status_code == 200:
                soup = BeautifulSoup(r.text, 'html.parser')
                data = soup.find('table')
                if data:
                    if "none" in data.text or \
                       "not in use" in data.text:
                       return tuner
        except Exception as e:
            logging.exception(e)

if not app.debug:
    file_handler = FileHandler('error.log')
    file_handler.setFormatter(
        Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')
    )
    app.logger.setLevel(logging.INFO)
    file_handler.setLevel(logging.INFO)
    app.logger.addHandler(file_handler)
    app.logger.info('errors')

#----------------------------------------------------------------------------#
# Launch.
#----------------------------------------------------------------------------#

# Default port:
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.config['TUNERS'] = os.environ.get('TUNERS')
    app.run(host='<IP_ADDRESS>', port=port)

Here is an example line from my M3U playlist
#EXTM3U
#EXTINF:-1 tvg-id="guide2go.90555.schedulesdirect.org" tvg-name="WMDEDT (WMDE-DT)" tvg-chno="2" channelID="x-ID.2" group-title="HDHomerun",2,WMDEDT (WMDE-DT)
http://tuner-lb/auto/v2.ts

This look great.
can you put more details on the docker page how to use it or set it up.
Thanks

Want to be as helpful as I can here. I deploy it into Kubernetes so here is my deployment spec:
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    service: tuner-lb
  name: tuner-lb
  namespace: plex
spec:
  replicas: 1
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      service: tuner-lb
  strategy:
    type: Recreate
  template:
      labels:
        service: tuner-lb
    spec:
      containers:
      - env:
        - name: TUNERS
          value: <IP_ADDRESS>,<IP_ADDRESS>
        image: akreii/tuner-lb:latest
        imagePullPolicy: Always
        name: tuner-lb
        ports:
        - containerPort: 5000
          protocol: TCP

And my service spec
apiVersion: v1
kind: Service
metadata:
  labels:
    service: tuner-lb
  name: tuner-lb
  namespace: plex
spec:
  ports:
  - name: "80"
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    service: tuner-lb
  type: ClusterIP

I then rewrite my M3U playlist to use the service endpoint, here it will be http://tuner-lb.plex (plex being my namespace). xTeVe will connect to that and the tuner-lb service will 307 redirect to the tuners defined in the environmental variable "TUNERS". It is a VERY basic basic basic service, there is really 0 configuration done here. Just pull in the container, set your TUNERS environmental variable and rewrite your M3U playlist to use that to proxy to your SiliconDust tuners. Done!


Add the GraphQL Tools OS library to Tools

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Build failed because of:
duplicated mapping key at line 79, column 13:
                name: GraphQL Tools
                ^

@caniszczyk how can I retriever the build?

Looks good, thanks @Urigo.  The last patch took care of it.  I'll merge this.

thank you @brianwarner !

btw we should probably call this "GraphQL Tools from The Guild"
versus just "GraphQL Tools" as that implies it comes from the foundation and is official
cc: @brianwarner

Sounds good to me, and it will increase clarity.  Do you want to make that change @Urigo?  Or I can, either way.

Sure!  I will send a change in a couple of minutes!
Just as more context:
graphql-tools has been around for many years, is one of the most popular npm packages in the community and I don't think anyone ever called it GraphQL Tools from The Guild,  it might sound weird to people..
Do you think people would think it's official because it has graphql in it's name?
It was also originally created by Apollo by the way

One idea could be to contribute these tools to the GraphQL Foundation which would eliminate some of the problem imho but I don't know how the TSC feels about it!

Ohh that would be great!
But I'm not sure everyone is on board the SDL first train....
On our side we would be happy to!
In the meantime, should I submit it as:

GraphQL Tools (from The Guild)
or
GraphQL Tools from The Guild

or maybe by The Guild sounds nicer?

(by The Guild) SGTM
On Fri, May 8, 2020 at 9:50 AM Uri Goldshtein<EMAIL_ADDRESS>wrote:

Ohh that would be great!
But I'm not sure everyone is on board the SDL first train....
On our side we would be happy to!
In the meantime, should I submit it as:

GraphQL Tools (from The Guild)
or
GraphQL Tools from The Guild

or maybe by The Guild sounds nicer?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/graphql/graphql-landscape/pull/109#issuecomment-625852756,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAPSIJBMGU6G5NUCHT3LIDRQQL3FANCNFSM4M2NCIJQ
.

--
Cheers,
Chris Aniszczyk
http://aniszczyk.org
+1<PHONE_NUMBER>

done!
https://github.com/graphql/graphql-landscape/pull/110


parenttriplesmap not found in nested function

considering the yarrrml document of https://github.com/RMLio/yarrrml-parser/issues/68 ,
the mapper doens't find the parenttriplesmap and instead uses its own logical source.
I believe two things should happen:

[ ] An error should be given when the parenttriplesmap is not found, and the rmlmapper shouldn't continue (the rml document is invalid then, interpreting https://www.w3.org/TR/r2rml/#foreign-key, there should never be a rr:child without a rr:parentTriplesMap)
[ ] A debug statement should be given when the parenttriplesmap is found not as its direct ancestor, but due to a nested function
[ ] the parenttriplesmap should be looked for in every ancestor until one is found ;)

the rmlmapper shouldn't continue

what do you mean by this? IT shouldn't continue at all or it shouldn't continue with this Predicate Object Map but continue the execution of the rest rules?

the rmlmapper shouldn't continue

what do you mean by this? IT shouldn't continue at all or it shouldn't continue with this Predicate Object Map but continue the execution of the rest rules?

I propose option 3: first look for parenttriplesmap in every ancestor, and if not found, only then exit (bc if not found, the rml document is invalid, interpreting https://www.w3.org/TR/r2rml/#foreign-key: there should never be a rr:child without a rr:parentTriplesMap)


unexpected error creating file watcher: no space left on device

Is this a request for help?:
Maybe
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
Bug report

Version of Helm and Kubernetes:
K8S
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-09T21:51:06Z", GoVersion:"go1.9.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.9", GitCommit:"19fe91923d584c30bd6db5c5a21e9f0d5f742de8", GitTreeState:"clean", BuildDate:"2017-10-19T16:55:06Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Helm
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
Which chart:
stable/nginx-ingress
What happened:
Ingress controller failing:
I0517 12:57:08.746062     100 flags.go:162] Watching for ingress class: nginx
W0517 12:57:08.746614     100 client_config.go:533] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0517 12:57:08.746930     100 main.go:181] Creating API client for https://<IP_ADDRESS>:443
I0517 12:57:08.777747     100 main.go:225] Running in Kubernetes Cluster version v1.7 (v1.7.9) - git (clean) commit 19fe91923d584c30bd6db5c5a21e9f0d5f742de8 - platform linux/amd64
I0517 12:57:08.782598     100 main.go:84] validated kube-system/austere-bobcat-nginx-ingress-default-backend as the default backend
I0517 12:57:09.045420     100 stat_collector.go:77] starting new nginx stats collector for Ingress controller running in namespace  (class nginx)
I0517 12:57:09.045479     100 stat_collector.go:78] collector extracting information from port 18080
F0517 12:57:09.062095     100 nginx.go:190] unexpected error creating file watcher: no space left on device
What you expected to happen:
See it running: )
How to reproduce it (as minimally and precisely as possible):
I just installed with helm on azure: helm install stable/nginx-ingress --namespace kube-system
Anything else we need to know:

We are seeing the same issue. It's related to https://github.com/kubernetes/ingress-nginx/issues/1397
It happens here in the ingress-nginx code: https://github.com/kubernetes/ingress-nginx/blob/a30b96bcce63dcd64f62301665a9c6ebf775e9e5/internal/ingress/controller/nginx.go#L190

Notice same error..
+ exec /usr/bin/dumb-init /nginx-ingress-controller --force-namespace-isolation --watch-namespace infra --election-id=infra-mariadb --ingress-class=infra-mariadb-mariadb-ingress --default-backend-service=infra/mariadb-ingress-error-pages --tcp-services-configmap=infra/mariadb-services-tcp

-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:    0.9.0
  Build:      git-6816630
  Repository: https://github.com/kubernetes/ingress-nginx
-------------------------------------------------------------------------------

I0730 20:28:38.058381       7 flags.go:151] Watching for ingress class: infra-mariadb-mariadb-ingress
W0730 20:28:38.058420       7 flags.go:154] only Ingress with class "infra-mariadb-mariadb-ingress" will be processed by this ingress controller
I0730 20:28:38.058886       7 main.go:227] Creating API client for https://<IP_ADDRESS>:443
I0730 20:28:38.071967       7 main.go:239] Running in Kubernetes Cluster version v1.10 (v1.10.2) - git (clean) commit 81753b10df112992bf51bbc2c2f85208aad78335 - platform linux/amd64
I0730 20:28:38.074409       7 main.go:83] validated infra/mariadb-ingress-error-pages as the default backend
I0730 20:28:38.409008       7 stat_collector.go:77] starting new nginx stats collector for Ingress controller running in namespace infra (class infra-mariadb-mariadb-ingress)
I0730 20:28:38.409031       7 stat_collector.go:78] collector extracting information from port 18080
F0730 20:28:38.421717       7 nginx.go:178] unexpected error watching template /etc/nginx/template/nginx.tmpl: no space left on device

Hi all, I encountered the same issue on AKS, and it looks like I found the root cause thanks to the clue given in https://github.com/kubernetes/ingress-nginx/issues/1965 : need to increase inotify/max_user_watches.
On my AKS cluster kubelet had ~7000 inotify file descriptors opened, with a sys limit of ~8000 limit. I increased the limit to x5.
Useful commands to debug :
lsof -K | grep inotify | grep kubelet | wc -l
`journalctl -u kubelet -f -n 1000 | grep inotify``
Fix :
echo 40960 > /proc/sys/fs/inotify/max_user_watches
echo fs.inotify.max_user_watches=40960 >> /etc/sysctl.conf


Added few libraries

Added few libraries which i used in my app and were missing.

@TheGlow666 closed again?


Many related small questions

Hiya, thanks for your great work, it really does work well.
I was trying to train my own model and hit on a few small hitches that I hope to solve for future users of the code:

When going over the instructions to resample the VCTK files, it took me a while to debug that you need to pass the full sample rate (e.g. 16000) and not the sample rate in KHz, as is given in the example command-lines (16). A small update to the readme would be nice for future users (e.g. --target_sr 4 -> --target_sr 4000).
Converting the audio from .flac (VCTK default) to .wav is also a necessary step for the scripts (though note that sox has no issue reading .flac files)
Creating configuration & dataset .yaml files: I copied the provided 4-16 files and modified appropriately.
One of the files, p271/p271_069_mic1.wav has exactly 96001 samples, so for the 12-48KHz task, its length is rounded up to 2 sections for the high-res dataset, but after downsampling it's rounded down to 24000 samples, so it's only one section. This breaks the training code unfortunately. I fixed it by manually trimming the file by one sample (sox p271_069_mic1.wav p271_trimmed.wav trim 0 -1s) and regenerating the .egs files.

I was left with a few questions:

The paper says the setting for 12-48 was nfft=1024 and hop=256, batch size 8. The models you provide in the drive say 512/256 and 512/128. What should I believe?
Does the code support resuming a training run?

Thanks again for the paper and the code - the results are good and the code is as well.

Ok, answering myself here:

The provided models have their config stored and it matches their names.
there is a parameter called continue_from that resumes training from an existing checkpoint.

I'll open a PR for doc fixes


Relational Selection: Error in RecursiveTreeViewItem when using expandedNodes

Current Behavior
When you use expandedNodes to open the top level parent and then open a child that has children the following error is thrown into the console:
Uncaught (in promise) TypeError: expandedNodes.push is not a function
    at toggleNode (RecursiveTreeViewItem.svelte:21:21)
    at Array.toggle_handler_1 (RecursiveTreeViewItem.svelte:96:22)
    at TreeViewItem.toggle_handler_1 (RecursiveTreeViewItem.svelte:127:32)
    at lifecycle.js:105:8
    at Array.forEach (<anonymous>)
    at lifecycle.js:104:22
    at $$self.$$.update (TreeViewItem.svelte:172:3)
    at update (scheduler.js:115:6)
    at flush (scheduler.js:79:5)

The tree still seems to work as expected.
The error is not thrown if you remove expandedNodes
Expected Behavior
No error is thrown when using expandedNodes
Steps To Reproduce

Using RecursiveTreeView like so:

<RecursiveTreeView
        selection
        multiple
        relational
        expandedNodes={'parent'}
        nodes={tree}
        bind:checkedNodes={checkedNodes}
        bind:indeterminateNodes={indeterminateNodes}/>

open a child of parent
See console log

Link to Reproduction / Stackblitz
No response
More Information
"@skeletonlabs/skeleton": "2.4.0",
"@sveltejs/kit": "^1.27.1",
 "svelte": "^4.2.1",

I understand its in beta but I thought I would still report it

FYi @Mahmoud-zino

@JamesPeck
According to docs expandedNodes value should be an Array type. Please try  expandedNodes={['parent']} instead.
Perhaps this will so;ve the issue.

@JamesPeck Thank you for reporting the issue, and yup like @artello73 mentioned, expandedNodes is an array, using expandedNodes={['parent']} should work as expected.