Fix bad rewrite Result for or query sql when using encryptRule

Fixes #4188.

Pull Request Test Coverage Report for Build 1638

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
22 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.04%) to 64.716%

Files with Coverage Reduction
New Missed Lines
%

sharding-orchestration/sharding-orchestration-core/src/main/java/org/apache/shardingsphere/orchestration/internal/util/IpUtils.java
2
80.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/MySQLDCLVisitor.java
20
0%

Totals

Change from base Build 9367:
-0.04%

Covered Lines:
10961

Relevant Lines:
16937

💛  - Coveralls

Codecov Report

Merging #4201 into master will decrease coverage by 0.03%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##             master   #4201      +/-   ##
===========================================
- Coverage     60.84%   60.8%   -0.04%
  Complexity      352     352
===========================================
  Files          1012    1012
  Lines         16926   16937      +11
  Branches       2981    2983       +2
===========================================
  Hits          10298   10298
- Misses         5976    5987      +11
  Partials        652     652

Impacted Files
Coverage Δ
Complexity Δ

...ken/pojo/EncryptPredicateEqualRightValueToken.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

.../token/pojo/EncryptPredicateInRightValueToken.java
87.5% <ø> (ø)
1 <0> (ø)
:arrow_down:

...ken/pojo/generic/SubstitutableColumnNameToken.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...impl/EncryptPredicateRightValueTokenGenerator.java
83.33% <100%> (ø)
1 <0> (ø)
:arrow_down:

...tor/impl/EncryptPredicateColumnTokenGenerator.java
85.71% <100%> (ø)
1 <0> (ø)
:arrow_down:

...dingsphere/sql/parser/visitor/MySQLDCLVisitor.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Blue Spinning Circle on app first-run/site creation (& More)

I have been trying to install <IP_ADDRESS> on main tenant for a month or so but each time, it stalls on the spinning blue circle (note: I am sharepoint admin for our tenant and fulfil the prerequisites listed on this site; I have also been able to get the same version working correctly on my dev tenant)
(between install attempts, I first remove the app from the Teams admin console and from the App Catalogue, as well as the relevant site collection and API permissions from the SharePoint admin console.  I then wait some time for changes to take effect before trying again)
Every time I run through the deployment guide, it seems to stall after creating the sharepoint site collection, but before (or at the point of) the creation of the lists:
Event Track Details
Events List
Member List
So these three lists never appear in Site Contents
(Note: it does however seem to create the library "Digital Badge Assets")

My initial 'fix' for this was to import working lists from my dev tenant (using ShareGate) - this seemed promising, and led to most of the app functionality working, including the creation of additional lists when setting up Tournament of Teams...
However, two critical issues later presented themselves:
Firstly, we would get an error when trying to apply the digital badge to profile pictures:
An unexpected error occured while retrieving the digital badges. Below are the details: {"response":{},"status":400,"statusText":"Bad Request","isHttpRequestError":true}
Secondly, when navigating around the Tournament of Teams options, clicking on Tournament of Teams Status would give the following error:
An unexpected error occured while getting users. Below are the details: {"errorCode":"consent_required","errorMessage":"AADSTS65001: The user or administrator has not consented to use the application with ID '41bcc5a6-a7a8-458b-b5b3-647dbe4d4372' named 'SharePoint Online Client Extensibility Web Application Principal'. Send an interactive authorization request for this user and resource.\r\nTrace ID: 9e473067-6cf6-4c81-aca2-006d12e30d01\r\nCorrelation ID: 46ec3660-adf2-4c7c-a4d6-09f8d108e2a1\r\nTimestamp: 2022-02-22 13:05:40Z","name":"InteractionRequiredAuthError"}
there's also a further (more minor) bug where if using the Dark Theme for Teams, adding a new user will format the form entry text as white against a white background (it still works, it's just hard to tell what you're typing) - though this issue was also present on the otherwise-working dev environment.
With all of the above in mind, I uninstalled the app and removed it from Teams/SharePoint entirely, before trying to reinstall it again, only this time with Teams in a web browser and running a HTTP trace during the setup step.
errors in the trace files suggest authentication errors when trying to set the SP lists up, but I cannot identify what is causing this; I have compared and replicated SP settings from live to dev tenant, and nothing has 'broken' the ability to install on the dev tenant.
(I actually now have two sets of HTTP trace logs, which seem to vary slightly in how they error - though they both seem to boil down to authentication between the app and SharePoint)
I'm now not sure what to try next, so any assistance you might be able to lend would be gratefully received
Many thanks

Hi @v-saikirang
Sure thing:
API Permissions:

Console errors (note, I might miss a few lines between image 2 and 3 as there were around three pages worth, but the error for each line was largely the same):

Thanks

Hi @HubZeb,
Thanks for the details.
Can you also try a fresh install by deleting the cmp sitecollection from both "Active Sites" and "Deleted Sites" and repeating the steps. You don't have to delete the API permissions. Please wait for 30 mins after deleting the site.
After "Sync to Teams" open the app in browser and share a screenshot of the console errors.
Thanks.

Hi @HubZeb,
Thanks for the detailed log.
From the logs I see that it says "Site collection already existing". But if you have performed a fresh install and then opened teams it should not say this. Instead it should say "Creating site collection". So can you please confirm these are the logs from the first load after fresh install.
Is the CMP site collection created? If yes, can you try access this URL in a new browser and share a screenshot. Replace with your actual tenant. Can you also check if your account is added in owners group in Share point.
Thanks.
https://[tenant].sharepoint.com/sites/ChampionManagementPlatform/_api/site/id

Hi @v-saikirang
The CMP site collection was created (and creation time matches when I ran the app for the first time) I can confirm that I am both listed as site admin and am in the site owner group for this site collection.
These are the correct logs; I noticed that it said the site collection already existed and thought it odd too, as I had deleted it from active, then from deleted sites, then waited at least an hour before starting the log and running the app.
I've just looked through the log file (previously attached) again, and towards the end of the log, it does actually say that it's creating the site collection:

...before confirming the creation:

https://[tenant].sharepoint.com/sites/ChampionManagementPlatform/_api/site/id gives the following:

One thing I was going to mention previously but it looks like I didn't include... when I first ran the app, I got this popup:

...I have seen this before on my dev tenant, where refreshing Teams from this would first give another popup which says the user has been granted access, before progressing the creation of the site collection and related lists; the app's UI would then populate with all of the correct icons.  The live tenant does not get this second popup.
Thanks

Hi @HubZeb,
It's strange how the logs are showing both the scenarios. Please refresh after some time in a new browser and share the logs. If possible can you please share your email id so we can go over this through a teams call if needed.
Thanks.

Hi @v-saikirang
ran again - this one looks more 'normal':
CMP_RunOnce_110322.log
email is<EMAIL_ADDRESS>(I'll edit this post to delete this line from here once you've confirmed receipt)
Thanks

Hi @HubZeb,
As per our trouble shooting sessions below is the summary:

Issues with Graph API calls from the application
Implemented workarounds to set up and configure the app
The Digital Badge is still not working due to graph dependency
Once the graph api issue is fixed the Digital Badge should also work.

Since you are already working with support Engineer on a different ticket to fix the Azure Graph APIs issue iam closing this ticket for now. Please let us know if you see any issues.
Thanks.

some 'close notes', just in case it helps others with the same issue:
Digging into Azure >> App Registrations >> API Permissions for "SharePoint Online Client Extensibility Web Application Principal"...
the Graph API entries should be listed here... on my Dev tenant, these were listed under 'Other Permissions..." (you can commit them to 'Configured Permissions' from here by clicking on the '...' after each listed API):

However, the live tenant was not showing these permissions at all:

To resolve this, I got myself added to the Application Administrator role (this required the assistance of a global admin):

Once I had this role, I was able to add permissions for the relevant API:

Once the API are added (1), you then need to grant admin consent (2) and the Status column will be updated to confirm permissions are set.
Once this was done, the Graph-specific parts of the CMP app worked flawlessly
Thanks


Sidr Responsive Menu (Google Chrome)

Google chrome requires to clear cache every time you update css code.
for example i have a website on Drupal 8 and im updating a local.css file that overrides all css on the template. when i upload the updated version of the css file via FTP i will then need to clear the Google Chrome cache EVERYTIME i want to view the Sidr Responsive Menu on the mobile device version of Chrome. This of course doesn't happen in IE11 and im not sure about firefox as i haven't downloaded that.
If anyone has a fix for this please post it and hopefully the developers will fix this in the next update.

Stackoverflow is a better place for doubts and implementation issues (don't forget to provide your failing code).


Limit members

Hey @mpociot,
I think it would be very handy to limit how many members can be in a team on a per-team basis.
For example when you think of SaaS, you might want to offer different packages, where a starter package only allows X team members and a premium one allows unlimited.
What do you think about this?

I actually currently stoped developing in PHP and will not be using this (very awesome) package at the moment, so I won't send a PR.


[6.0] Fix a few issues with infinite recursions if the content contains cyclic curation

Explanation: This fixes two crashes and a few minor related issues that can happen in some cases when building documentation that has cyclic curation.
Scope: Crashes (infinitely recursing until the the process runs out of stack) when building documentation with some cases of cyclic curation.
Issue: rdar://126974763
Risk: Low.
Testing: Added automated tests for both crashes. Manually tested with the project where these issues were originally found.
Reviewer: @mayaepps @patshaughnessy
Original PR: #898

@swift-ci please test


Clarify prerequisites

added comment on prerequisite of use case

Updated description. Could you please take another look @dirkwall ? Thanks!


GitHub Actions to add/remove label "stale" and comment

Description
GA concept:

Any changes made in the main branch will be automatically reviewed against all open pull requests (PRs). If a conflict arises, a label "stale" will be added, and a comment will be left to notify the contributors.
Upon an update to a PR, a reevaluation will be conducted. If the PR has the "stale" label and there are no conflicts, the label will be removed.

Live Test: https://github.com/totoprayogo1916/github-playground/pull/13
Checklist:

[x] Securely signed commits

This workflow was labeled for PRs with no conflicts, so I reverted.
https://github.com/codeigniter4/CodeIgniter4/pull/7947#issuecomment-1726974403
https://github.com/codeigniter4/CodeIgniter4/pull/7944#issuecomment-1726974445
https://github.com/codeigniter4/CodeIgniter4/pull/7925#issuecomment-1726974479


webview: Remove "Possible infinite loop" error.

This error wasn't something we expected to actually happen, but because
we set the threshold far too low, it's actually our most common error.
Given that we just changed the webview setup code in a way that we
expect to make this error more impossible than we previously thought, we
might as well just get rid of it and save ourselves the noise in Sentry.

Thanks! Merged.


demo-base-release.apk' as it does not exist

What went wrong:
Cannot expand ZIP '/Users/daixiaogang/github/DynamicAPK/build-outputs/demo-base-release.apk' as it does not exist.

我检查过  名字都没有问题  .

In Command ：$ gradle clean  ，then $ gradle assembleRelease bundleRelease repackAll

@TediWang   Thank you for answer my questions,but it  does not  work.

gradle assembleRelease
gradle bundleRelease
gradle gradle


native: decode storage item in Seek

This lead to incorrect calculations.

I think we need to port some tests from C# though to ensure calculation correctness, they have some precise GAS values for several cases.


display listening ports for each service when uses curveadm status

OSPP Project Number: 222990287
Problem Summary:
Display port number that each service is listening to by default when user uses curveadm status command.
What is changed and how it works?
internal/tui/service: status.go
internal/task/task/common: get_status.go
get_status.go

added additional step in NewGetServiceStatusTask function. New step executes pipeline command inside container to extract port numbers the service is listening to.
If pipleline command returns any message other than port number(e.g. error message), empty string will be returned as result.

status.go

added new merge function for ports: Duplicated port number will be merged, each port number is splitted by comma.
empty string will be return if there is no listening port.

@ArberSephirotheca can you provide a screenshot for the curveadm status :)

It's better to merge your five commits to one by using git rebase -i.

Hi @ArberSephirotheca , thanks for your contribution.
I merged this pr and build curveadm, then run curveadm status command, output is like:

so we'd better to fix these problems:

we'd better to print service ports by using curveadm status -v, if verbose flag isn't set, do not print the ports
the ports is splited to two lines, not one, we should print them in one line.

we'd better to print service ports by using curveadm status -v, if verbose flag isn't set, do not print the ports
Now the listening port will be displayed only if user enables verbose mode.
the ports is splited to two lines, not one, we should print them in one line.
Fixed.
services ports like metaserver/chunkserver/snapshotclone are not printed.
I changed the command to be executed in container when ues curveadm status. It now should print listening ports for all types of services.
how to deal with chunkserver replicas ports, we often have more than one chunkserver on one host, how to print them?
If user does not enable expand mode, replicas with same port number will be merged together by port merge function, see:
https://github.com/opencurve/curveadm/pull/123/files#diff-43002aebd9f6d4f2b2084c01747a8b1821a931f16531e9b75afed88c9c6932b2R123-R139
If expand mode is enabled, the port number for each replica is printed respectively.

@ArberSephirotheca  goodjob, but I find a little problem, the elapsed time of status command increased 2s (without verbose flag), we'd better fix it.
this may because we always run lsof commands in all service containers, even if we do not add verbose flag.
[curve@localhost curveadm]$ time ./sbin/curveadm status
Get Service Status: [OK]

cluster name    : mybs
cluster kind    : curvebs
cluster mds addr: <IP_ADDRESS>:60666(leader),<IP_ADDRESS>:61666,<IP_ADDRESS>:62666

Id            Role           Host       Replica  Container Id  Status
--            ----           ----       -------  ------------  ------
3620695a3ccd  etcd           <IP_ADDRESS>  1/1      22fd65adcd06  Up 2 days
e36d51398eaf  etcd           <IP_ADDRESS>  1/1      a2b09821c5b8  Up 2 days
cb6d4957cb62  etcd           <IP_ADDRESS>  1/1      d12e3bdff012  Up 2 days
3786cb933a4d  mds            <IP_ADDRESS>  1/1      6c429be70e66  Up 15 hours
a12021be4ab1  mds            <IP_ADDRESS>  1/1      30ae577d8500  Up 3 hours
a00436fa7ff7  mds            <IP_ADDRESS>  1/1      674440f98541  Up 8 hours
aa9f2935af17  chunkserver    <IP_ADDRESS>  1/1      00bfa45fb0af  Exited (134) 36 hours ago
5b594423361d  chunkserver    <IP_ADDRESS>  1/1      1fefea2e14dc  Up 2 days
57811d7e2374  chunkserver    <IP_ADDRESS>  1/1      dd62cc23f4a8  Up 2 days
6b4804d037fa  snapshotclone  <IP_ADDRESS>  1/1      000d3a971a35  Created
9ab6612ab51e  snapshotclone  <IP_ADDRESS>  1/1      ec4a48497931  Created
5901c11a3d24  snapshotclone  <IP_ADDRESS>  1/1      96603bc6bbae  Created

real    0m3.180s
user    0m0.143s
sys     0m0.081s
[curve@localhost curveadm]$ time curveadm status
Get Service Status: [OK]

cluster name    : mybs
cluster kind    : curvebs
cluster mds addr: <IP_ADDRESS>:60666(leader),<IP_ADDRESS>:61666,<IP_ADDRESS>:62666

Id            Role           Host       Replica  Container Id  Status
--            ----           ----       -------  ------------  ------
3620695a3ccd  etcd           <IP_ADDRESS>  1/1      22fd65adcd06  Up 2 days
e36d51398eaf  etcd           <IP_ADDRESS>  1/1      a2b09821c5b8  Up 2 days
cb6d4957cb62  etcd           <IP_ADDRESS>  1/1      d12e3bdff012  Up 2 days
3786cb933a4d  mds            <IP_ADDRESS>  1/1      6c429be70e66  Up 15 hours
a12021be4ab1  mds            <IP_ADDRESS>  1/1      30ae577d8500  Up 3 hours
a00436fa7ff7  mds            <IP_ADDRESS>  1/1      674440f98541  Up 8 hours
aa9f2935af17  chunkserver    <IP_ADDRESS>  1/1      00bfa45fb0af  Exited (134) 36 hours ago
5b594423361d  chunkserver    <IP_ADDRESS>  1/1      1fefea2e14dc  Up 2 days
57811d7e2374  chunkserver    <IP_ADDRESS>  1/1      dd62cc23f4a8  Up 2 days
6b4804d037fa  snapshotclone  <IP_ADDRESS>  1/1      000d3a971a35  Created
9ab6612ab51e  snapshotclone  <IP_ADDRESS>  1/1      ec4a48497931  Created
5901c11a3d24  snapshotclone  <IP_ADDRESS>  1/1      96603bc6bbae  Created

real    0m1.295s
user    0m0.085s
sys     0m0.056s

LGTM!


Consider adding collaborators

I consider adding some collaborators. I want this repo very community-driven so it's a non-sense that I am the only one who can merge the submitted PRs.  Moreover, it will allow this repo to be always active and avoid it to be frozen when I am in holidays, like at the end of May this year.

I might be interested to be more involved.

I’d be interested

I am also in

I'm also interested in collaborating.

Hi everyone.
I was not expected so much interest, thank's. I'm sorry but I need a few days to decide how to choose the good profiles, or maybe everyone? It's an open question. Let me think about that. And don't hesitate to tell what you think here.
Thank you for your interest and for all the stuff you are doing for Blazor.

@AdrienTorris I think you should understand for yourself what you expect from collaborators.
For my opinion there are few goals to have other collaborators

Manage PRs
Search new content for awsome-blazor
Changing existing content to make it more nice. For example few time ago we merge all Components and Librarries groups into one, because they have same content. But for my opinion they should be separated by library-type, something like Components, Js Interop,,  etc

So, what you expect from collaborators?

I agree with @SamProf. Maybe there is not that much work to do here but regardless, it could still take some time for all of us. Also if there would be more of collaborators they should communicate more and agree of the direction and structure of the awesome list.
The categories definitely need some restructuring, and I also think there are too many simple applications that the people are posting. Although they are still worthy for the beginners, they should maybe be in their own category.
Maybe it's the best to strive for quality instead of quantity when building the list.

Blazor is moving fast and some links become deprecated. With more hands may be easiest to manage content, be kind to people and keep repo up to date. As a PR collaborator, I appreciate a quick response from maintainers. Quick response don't mean to merge PR, just to keep collaborators informed of the "merge" or "reject" process and be grateful for the contributions. On the other hand I am reading good ideas in this thread from @SamProf  and @stsrki.

I agree with you, we definitely have to restructure the page and prefer quality over quantity (which is not easy to do, it's difficult to tell to someone that his sample or library is not enough interesting to be mentioned on Awesome Blazor).
I just published a post to explain the reasons why I want to add some collaborators and to be honest I didn't anticipate that several people would be interested.
I saw that Chris Sainty was interested, if it's still the case I'll add him first, I think he's absolutely perfect for this. He's a maintainer of some libraries, he has a great blog and writes a lot about Blazor, he does talks, in short, he's a public figure around Blazor. I do not tell that all the future collaborators will have to be public figures (I will be the first troubled doing that ^^) and you all are really relevant candidates (I mean it, I visited all your profiles the last two days), but I have to start with someone.
Now the questions are "How many contributors?" and "How organize the collaboration to make this repository a relevant resource to any Blazor developer?".

@AdrienTorris I think think that it should be completly your decision.
I think that "awsome" should be open for everyone and any component library can be presented here. but for example you can have group with most starred projects. (or most popular).
Or maybe just in list show count of starts in list.

I'm Interested to, so pleasure contribute to this repo

@AdrienTorris I agree that it's not easy to say someone their code is not that good. Just to be clear, I'm here talking about sample or test applications and not about tools or libraries that people are posting. Some control will have to be if this is going to be an awesome-list and not an all-list. Maybe there could be a list of missing real-world examples that people could vote for. And someone can took it and create it.
PS. Chris Sainty is an excellent choice.


Switch to rich_click

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (2600594) 98.33% compared to head (5ccabbd) 98.33%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main       #6   +/-   ##
=======================================
  Coverage   98.33%   98.33%
=======================================
  Files          17       17
  Lines         721      721
=======================================
  Hits          709      709
  Misses         12       12

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


feat/api smoke tests

What are you changing?
Adding smoke tests of staging to this repo's CI
Provide some background on the changes
We want to ensure that staging is working before we do a release to production.

 API smoke tests for release testing


logic_net includes [net_drivers] and [net_loads]

Currently I did not get any data from [net_drivers] and [net loads]. have any future plan of it?

Not at this time.
Surelog does not create a fully connected flattened netlist (which is needed to make that computation).

I have no bandwidth to work on this, but I'll help anyone who wants to take a stabb at it.


Respect RunAfterRule constraint from ktlint

Resolves #5259
Consulted with ktlint in https://github.com/pinterest/ktlint/pull/2062, we are building a consistent sorting logic in detekt to match ktlint.

This PR is stale because it has been open 90 days with no activity. Please comment or this will be closed in 7 days.

Warnings

:warning:
This PR is approved with no milestone set. If merged, it won't appear in the detekt release notes.

  Generated by :no_entry_sign: dangerJS against 67fc1a0588bc70d3e8ca6085298d657e2a0648d1


add hydrate method that uses reactDOM.hydrate

this pr solves the issue in https://github.com/airbnb/enzyme/issues/1316
react16 has a hydrate function, so it would be great to support that in this adapter.

Replaced by #1707.


Commands Request URL

In the Django example folder, i noticed that there's no views file and no request url in urls.py for the commands in slack_listeners.py file. Using the commands won't work without specifying a url(I am not using sockets). from what i can see, there's actually no way to use the example command in a views.py file.

I think i've figured how to use it, i'll create a pr for it.

Hi @Smyja, thanks for asking the question! You can use /slack/events endpoint for all slash commands too. So, all you need to do is to set the /slack/events URL when creating a slash command.
I hope this helps! I believe that everything should be clear on this, so let me close this issue now.


SEO: Add meta tags to improve appearance in search results.

For views in templates/zerver add meta content to improve Zulip's appearance online search results.
Add

Description meta tag
keywords meta tag

along with  OGP meta tags to improve how it appears when the website is shared socially.
Link to discussion : https://chat.zulip.org/#narrow/stream/6-frontend/subject/clients.20page/near/549188

@zulipbot label "help wanted"

Duplicate of #8255.


SessionBuilder listener not close session

const ngrok = require('@ngrok/ngrok');

(async function () {
  const session = await new ngrok.SessionBuilder()
    .authtoken('***')
    .serverAddr('connect.eu.ngrok-agent.com:443')
    .connect();

  const listener = await session.httpEndpoint().listenAndForward('http://localhost:8080');

  console.log(`Ingress established at: ${listener.url()}`);
  console.log(`close`);
  await listener.close();
  await session.close();
  // default heartbeat 10s
  console.log(`timeout 5s`);
  await timeout(5 * 1000);
  console.log(`new session 5s`);
  const session_1 = await new ngrok.SessionBuilder()
    .authtoken('***')
    .serverAddr('connect.eu.ngrok-agent.com:443')
    .connect();
})();

function timeout(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

and error
Ingress established at: https://aa5a-***-***-***-246.ngrok-free.app
close
timeout 5s
new session 5s
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: failed to connect session: Your account is limited to 1 simultaneous ngrok agent session.
You can run multiple tunnels on a single agent session using a configuration file.
To learn more, see https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config/
Active ngrok agent sessions in region 'eu':
  - ts_2c46Kcqe1Gxr8F7oQqFgHLTxzfS (********) error_code: ERR_NGROK_108] {
  code: 'GenericFailure',
  errorCode: 'ERR_NGROK_108'
}

Node.js v18.7.0

Hi @twocolors, thanks for your submission. It looks like you're on a free account. Are you able to verify in the dashboard that you have no other agents running?

I have no other agents runners , this example work normal
(async function () {
  const listener = await ngrok.forward({ addr: 8080, authtoken: '***' });
  console.log(`Ingress established at: ${listener.url()}`);
  console.log(`close`);
  await listener.close();
  console.log(`timeout 5s`);
  await timeout(5 * 1000);
  const listener_1 = await ngrok.forward({ addr: 8080, authtoken: '***' });
  console.log(`Ingress established at: ${listener_1.url()}`);
  console.log(`close1`);
  await listener_1.close();
})();

function timeout(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

out
Ingress established at: https://8b25-149-62-49-246.ngrok-free.app
close
timeout 5s
Ingress established at: https://08c0-149-62-49-246.ngrok-free.app
close1

and if for SessionBuilder and handleStopCommand this handle not call when send close on listener or session

Hello, thanks again for writing in. The session close can take a bit longer, since that is a request to have the server side close the connection. You are right that the associated callback, handleDisconnection in this case, does not get called since the session has already been requested to close, that's something we can look into.
The following code relies on logging, so would be a bit brittle for production, but illustrates the session close will asynchronously complete:
const ngrok = require('@ngrok/ngrok');

var connected = false;
ngrok.loggingCallback(function (level, target, message) {
  console.log(`${level} ${target} - ${message}`);
  if (message.includes("reconnect failed")) {
    // the read side of the connection is now closed
    connected = false;
  }
}, "DEBUG");

(async function () {
  var session = await new ngrok.SessionBuilder().authtokenFromEnv()
    .serverAddr('connect.eu.ngrok-agent.com:443').connect();
  connected = true;

  const listener = await session.httpEndpoint().listenAndForward('http://localhost:8080');

  console.log(`Ingress established at: ${listener.url()}`);

  console.log(`timeout 2s`);
  await timeout(2 * 1000);
  await listener.close();
  await session.close();

  while (connected) {
    console.log(`timeout 5s`);
    await timeout(5 * 1000);
  }

  console.log(`new session`);
  const session_1 = await new ngrok.SessionBuilder().authtokenFromEnv()
    .serverAddr('connect.eu.ngrok-agent.com:443').connect();

  await timeout(300 * 1000);
})();

function timeout(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

why then ngrok.forward close session(connect) in monent ? and if set heartbeatInterval in 5 sec , session on SessionBuilder wil close faster. i think in your example close session in timeout(heartbeatInterval)

Sure, let me answer each of those:

why then ngrok.forward close session(connect) in monent ?

In the code above that uses ngrok.forward, it is closing just the listener (await listener.close()), but the session is still open. The second call to ngrok.forward re-uses the still established session to create the new listener on. Multiple listeners on the same session is a common pattern.

if set heartbeatInterval in 5 sec , session on SessionBuilder wil close faster

The smallest heartbeatInterval can be set to is 10 seconds, that doesn't appear to affect session close time though. heartbeatTolerance also does not change the timing.

yep, you right. thx
what ~time need to close session on server?

No problem! I was seeing around 25 seconds when adding timing output to that illustration code.

thx for help


add doc about how to use grafana to visualize service metrics

add doc about how to use grafana to visualize service metrics
fix part of: https://github.com/kmesh-net/kmesh/issues/600 , L7 Observability Metrics

/assign @LiZhenCheng9527

@hzxuzhonghu updated


mpv: enable dvb on Linux

Motivation for this change
Since updating to 17.09, I can no longer use my tv tuner card with mpv. This will enable dvb support again on Linux.
I've verified that Arch Linux, Debian and Fedora enable this flag.
Things done

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

[X] NixOS
[ ] macOS
[ ] 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 nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Was this enabled in mpv in 17.03?

Backported to 17.09: 8a732c28ff8b97f01ef138d944d3b8217e184e6b

Looks like it is disabled by default starting from 0.26:
https://git.srsfckn.biz/mpv/commit/?id=99cef59fc9a4d33ebbbb4405ec86faf0ff213f0c
I didn't have any problem compiling it against 4.9.56, so I don't know how old the kernel would need to be for it not to compile. Probably older than what is in 17.09.

Our kernel headers are the same for programs.


How to use in nuxtjs?

If you are reporting a bug, please fill in below. Otherwise feel free to remove this template entirely.
Description
What are you reporting?
Expected behavior
Tell us what you think should happen.
Actual behavior
Tell us what actually happens.
Environment
Run this command in the project folder and fill in their results:
npm ls vue-gtag:
Then, specify:

Operating system:
Browser and version:

Reproducible Demo
Please take the time to create a new app that reproduces the issue or at least some code example
Demonstrable issues gets fixed faster.

This ticket left uncompleted makes me sad. If you have just a question just type it, ok?


Node-Red Hue Set

I would like to drive the flow from a database but to do that I need to pass the Light ID into the SET node. I don't seem to be able to find how to do this. It seems I can pass anything else except that key data. Sorry if this is the wrong place to raise this!

This module has nothing to do with node red, you should raise an issue on the associated node red plugin/module that is using this module. This module is just a wrapper around the hue api, and you can specify the light id on all code that interacts with lights directly.