update README to decribe kernel chaos and merge daemonset.yaml

What problem does this PR solve?

Update README to describe kernel
Merge two daemonset's deploy config

What is changed and how does it work?
Check List
Tests

Manual test
No code

Code changes

No code

Side effects

None

Related changes

None

Does this PR introduce a user-facing change?:

NONE

Codecov Report

Merging #328 into master will decrease coverage by 1.18%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #328      +/-   ##
==========================================
- Coverage   60.38%   59.19%   -1.19%
==========================================
  Files          44       42       -2
  Lines        2890     2556     -334
==========================================
- Hits         1745     1513     -232
+ Misses       1026      943      -83
+ Partials      119      100      -19

Impacted Files
Coverage Δ

pkg/utils/selector.go
53.36% <0%> (-6.7%)
:arrow_down:

pkg/chaosdaemon/util.go
76.25% <0%> (-6.19%)
:arrow_down:

pkg/ptrace/ptrace_linux.go
65.55% <0%> (-0.38%)
:arrow_down:

pkg/utils/chaosdaemon.go

controllers/timechaos/types.go

pkg/chaosdaemon/time_server.go
100% <0%> (+5.12%)
:arrow_up:

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 5a330e3...ccbd6c7. Read the comment docs.

/merge


maven: 3.9.6 -> 3.9.8

Description of changes
Closes #314980.
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 324437 run on x86_64-linux 1

39 packages built:

apgdiff
bytecode-viewer
certificate-ripper
commafeed
cryptomator
digital
forge-mtg
gephi
global-platform-pro
gol
h2
h2.doc
java-language-server
jd-cli
jetbrains.idea-community (jetbrains.idea-community-src)
jetbrains.idea-community-bin
jetbrains.idea-ultimate
jetbrains.pycharm-community (jetbrains.pycharm-community-src)
jnr-posix
joularjx
jugglinglab
kotlin-interactive-shell
kotlin-language-server
ktfmt
lemminx
mariadb-connector-java
maven (maven3)
microsoft-identity-broker
ns-usbloader
openrefine
protege
quark-goldleaf
runelite
s3proxy
scenebuilder
schemaspy
slipstream
sonarlint-ls
tabula-java

Result of nixpkgs-review pr 324437 run on aarch64-darwin 1

1 package marked as broken and skipped:

protege

10 packages built:

bytecode-viewer
certificate-ripper
gol
h2
h2.doc
jugglinglab
kotlin-language-server
mariadb-connector-java
quark-goldleaf
tabula-java

Result of nixpkgs-review pr 324437 run on x86_64-darwin 1

1 package marked as broken and skipped:

protege

11 packages built:

bytecode-viewer
certificate-ripper
digital
gol
h2
h2.doc
jugglinglab
kotlin-language-server
mariadb-connector-java
quark-goldleaf
tabula-java


Choropleth TODO

[ ] Getting the exploreURL for the charts
[ ] Getting the sources for the charts
[ ] Clean up scales and units (eg. right now, I append unit to the end of the value, but when the unit is $, it should be appended to the front)
[ ] Try using the date alignment for getting data for choropleth
[ ] Deal with when the tooltip message is too long
[ ] Using viridis or something else for the color scale
[ ] make the colors of my choropleths match the colors of the category
[ ] geojson type

tracked in #422


Lost Phone Cannot Log I

I lost my phone and cannot get past the authenticator page. I have had this issue for over 3 months and i am frozen out of my admin account and i have lost 5 customers.
Error Code: 500121
Request Id: ac14f0b2-9de1-4120-8e95-9f3689996900
Correlation Id: 3f8b8f38-e066-4337-a51b-3ae1940b6f7d
Timestamp: 2020-05-17T20:26:09Z

@AfroDigital May I know what exactly are you facing the issue?   Can you elaborate bit more on your query?
Can you please provide us with the URL of the Azure Doc you are having issues with? We look forward to your reply.

I am trying to log in to my office 365 account an i am the admin. The prompt always wants me to use the authentication app which i don't have on my new phone, I need an alternative log in mechanism to send text to my phone to let me log in

@AfroDigital  : Apologies for the delay on this, I can see this is an urgent scenario. In this case I would request you to please contact the Office 365 support either via chat or phone. You might have to proof that you are the admin by other means suggested by the support team.  Let me know if you have any questions.

@AfroDigital I hope you were able to make some progress with the Office team, I will be closing this thread for now, feel free to comment if you need any further help. Thanks


DBZ-4629 Debezium server crashes when no connection to the source db

This is a re-make of this older pull request: https://github.com/debezium/debezium/pull/3268
I have one comment, related to the errors.max.retries property. Value of 0 means the mechanism is disabled and it is equivalent to the old behavior, which was swallowing the RetriableException in EmbeddedEngine.

@jpechane @Naros @gunnarmorling Hi, could you give your input on this? Thanks!

@jpechane, I have checked the behavior prior to this implementation, including the "by-default retry PR" and when I stop the database the DebeziumServer stops. Is there any documentation or configuration I can look into? Maybe I have missed something. Also, like I said, I left default configuration with 0 retries which is basically disabling the mechanism and preserves the old behavior.

@ggaborg Have you use the snapshot version? It as not release yet. I am sorry for not telling that.

I have used the up-to-date master branch

@ggaborg It should be https://issues.redhat.com/browse/DBZ-5244

Yes, I have it in the master branch. And it should work be default right, no configuration needed? Stopping the database after successful startup should not terminate DebeziumServer, but it does. With this PR it doesn't.

@jpechane @spicy-sauce Hi, I have retested Debezium Server again with latest master with both sqlserver and mysql connectors and it looks like the connectors are restarted if database is stopped and started again after a while. The recording of changes is also working as expected. Should we close this PR then and the jira issue https://issues.redhat.com/browse/DBZ-4629?

@ggaborg so this now works as result of changing the behavior so by default a RetriableException will be thrown by the connectors? Does it mean that Debezium Server catches this exception and keeps trying to connect it based on the backoff mechanism? So no further changes are needed? What are the properties used for this backoff?

@spicy-sauce I tested without playing with any properties, don't know which properties can be configured. Asked about them in a comment above. It seems that no change is required anymore, the current backoff mechanism seems to be working and keeps restarting the connector.

OK, so this is great, just need to see how can it be configured (if at all - if not, we may want to support this), so we won't try to get a connection too instantly and bloat to log as result.

@jpechane @spicy-sauce Hi, tested also with the postgres connector by stopping the db and it only works if the db restarts before the first retry; if the db is still down on first retry, dbz stops.
With sqlserver it keeps retrying indefinitely and reconnects when db is restarted.
With mysql it looks like the mechanism does not kick in (no such messages "Going to restart connector after 10 sec. after a retriable exception") but there is another mechanism of the binary log client keepalive "INFO  [com.git.shy.mys.bin.BinaryLogClient] (blc-keepalive-localhost:3306) Keepalive: Trying to restore lost connection to localhost:3306"

@ggaborg @spicy-sauce I am sorry guys we had a busy week. Hopefully I'll get to this one tomorrow

@jpechane, it seems that the current behavior is not consistent for the assortment of connectors as tested by @ggaborg.  I think this is not the desired behavior, the same backoff mechanism should be used regardless the connector in Debezium Server. WDYT?

@spicy-sauce You are right, sorry. I completely forgot about that :-(. It makes sense to get this in then. @ggaborg Could you please rebase the PR against the latest main? Thanks

@jpechane
Hi. I would like to check with you if my understanding of what the by-default retry mechanism is: when exception is thrown by the producer the poll() method of the BaseSourceTask is catching it. if it is a retriable it will stop the task and rethrow the error. Now the EmbeddedEngine which is doing the poll() is catching the exception and if it is retriable it ignores it and continues to poll(). In the next poll(), the task will startIfNeededAndPossible. But now it depends on each connector what it does in its start() method. My guess is that some of them are only creating a connection but they are not actually using it until doPoll() so the task is able to start, but others like postgres, are trying to use the connection and if they fail (e.g. when the db is stopped) they throw exception which stops the engine.
Now, what we implemented in this PR is that we catch the retriable from producer and keep retrying to start the task no matter what the start exception is.
I'm thinking that in fact we don't need this PR but instead we could check for retriable exceptions also on startIfNeededAndPossible and use something similar to the ErrorHandler which solves retriable exceptions.
WDYT?
Bellow exception from postgres on first retry to start task which ends the engine:
11:11:49.183 [pool-7-thread-1] INFO io.debezium.server.ConnectorLifecycle - Connector completed: success = 'false', message = 'Error while trying to run connector class 'io.debezium.connector.postgresql.PostgresConnector'', error = '{}'
io.debezium.DebeziumException: Couldn't obtain encoding for database postgres
at io.debezium.connector.postgresql.connection.PostgresConnection.getDatabaseCharset(PostgresConnection.java:488)
at io.debezium.connector.postgresql.PostgresConnectorTask.start(PostgresConnectorTask.java:75)
at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:135)
at io.debezium.connector.common.BaseSourceTask.startIfNeededAndPossible(BaseSourceTask.java:221)
at io.debezium.connector.common.BaseSourceTask.poll(BaseSourceTask.java:153)
at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:790)
at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:192)
at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:151)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:319)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:247)
at org.postgresql.Driver.makeConnection(Driver.java:434)
at org.postgresql.Driver.connect(Driver.java:291)
at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:243)
at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:882)
at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:877)
at io.debezium.connector.postgresql.connection.PostgresConnection.getDatabaseCharset(PostgresConnection.java:485)
... 10 common frames omitted
Caused by: java.net.ConnectException: Connection refused: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at org.postgresql.core.PGStream.createSocket(PGStream.java:241)
at org.postgresql.core.PGStream.(PGStream.java:98)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:109)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:235)
... 18 common frames omitted

@jpechane On the other hand, if we merge this PR, can we put the default to -1 for errors.max.retries? Currently it is 0 which disables the mechanism. See bellow the adoc:
|errors.max.retries
|0
|The maximum number of retries on connection errors before failing (-1 = no limit, 0 = disabled, > 0 = num of retries).

Hey all, will this make its way into CR1? Thank you!


ReportViewer 2016 upgrade

https://blogs.msdn.microsoft.com/sqlrsteamblog/2016/11/30/report-viewer-2016-control-update-now-available/

We are working with the newest Viewer control and everything works like expected ... just changed the Assembly version

Any update on this?  I'm running into a situation where I keep accidentally upgrading my rdlc files with the new schema and have to roll back since the old viewer can't handle it.
Thanks!


QuestDB SAMPLE BY documentation is missing w for weekly

To reproduce
I was assuming that SAMPLE BY  weekly (w) is not supported. I also read some stackoverflow articles where it was described as not being supported
I ran this query though and its working fine
  SELECT
                        time,
                        symbol,
                        first(open) as open,
                        max(high) as high,
                        min(low) as low,
                        last(close) as close,
                        sum(volume) as volume
                    FROM candles
                    WHERE symbol = 'NQ'
                    SAMPLE BY 1w ALIGN TO CALENDAR
                    ORDER BY time

QuestDB version:
8.1.1
OS, in case of Docker specify Docker and the Host OS:
Official docker image
File System, in case of Docker specify Host File System:
.
Full Name:
Abdou
Affiliation:
None
Have you followed Linux, MacOs kernel configuration steps to increase Maximum open files and Maximum virtual memory areas limit?

[X] Yes, I have

Additional context
No response

@goodroot why was the commit reverted?


Reverse String Order

Before jumping into Pr first comment for assign.
Problem statement : Create a function that takes a string as its argument and returns the string in reversed order.
Probelm Link : https://edabit.com/challenge/gYxDahmv8CbWmiThc
Choose one Cateorgy - Easy
question category : Strings

Before submitting a PR please Check some details.

[x] fileName formet should be in camelcase
example- returnTheNextNumber.py
[x]  Choose label for Problem , example- "good first issue", "easy"
[x]  In file there should be problem statement and link to problem

/* Problem-Task : This program will add two numbers
 * Problem Link : https://edabit.com/challenge/SFzHtm63XT6EYNHWY
*/
int main() {
    int bla;
    return 0;
}

This repository is vaild for HacktoberFest2020
Read before making PR - How to contribute on Github
Good Luck,

Please assign this issue to me

Please review the PR #203

Please assign this issue to me i will share the algorithm in c language

I will like to work on this issue in Java and C++. Please assign.


16px / 24px - Fold icons

We talked about substituting fold icons with a dotted line version so they can be easily differenciated from upload / download at 24px
16px
https://www.figma.com/file/2rjsQp42uKvzPXzLZIqOeA/Octicons-v2-Source?node-id=786%3A432

24px
https://www.figma.com/file/2rjsQp42uKvzPXzLZIqOeA/Octicons-v2-Source?node-id=786%3A725


Add support for running the test suite on GitHub actions.

I'm really curious to see how fast we can get the test suite running on GitHub actions compared to CircleCI. This PR is a rebase of @MikeRogers0's PR on the original Bullet Train repository at https://github.com/bullet-train-co/bullet-train/pull/439. There are some comments from Mike on that PR.
Miss you, Mike! ❤

@gazayas Let me know if you need to be made an admin on the organization in order to do stuff with GitHub actions. I haven't played around with it at all. Knapsack Pro has an article about parallelism on GitHub actions at https://docs.knapsackpro.com/2021/run-minitest-on-github-actions-with-parallel-jobs-using-build-matrix .

@andrewculver Got the tests to pass, I'll see if I can make them parallel with the link you provided.

The Super Scaffolding Minitest fails in GitHub Actions, but it's also failing locally for me. I tried running the Super Scaffolding system tests on the main branch, and I got the same errors:
RuntimeError: Wrapped undumpable exception for: ActionView::Template::Error: undefined method `new_account_team_personality_disposition_path' for #<ActionView::Base:0x0000000003a930>

              recipient.public_send(method, *args, options)
                       ^^^^^^^^^^^^
Did you mean?  new_account_personality_disposition_note_path
               new_account_insight_personality_disposition_path
               new_account_personality_disposition_note_url
               new_account_insight_personality_disposition_url

Besides this, the GitHub Actions tests are passing, although I'm not sure why the tests are passing in CircleCI.
Something else to note is that trying to run the tests in separate commands gave me a database connection issue. I solved this by lumping both the normal Minitest tests and the Super Scaffolding Minitest tests together. Here's the error I was getting after the Super Scaffolding setup script finished:
1. If you would like the table view you've just generated to reactively update when a Test File is updated on the server, please edit `app/models/team.rb`, locate the `has_many :test_files`, and add `enable_updates: true` to it.

DEBUGGER: Attaching after process 3347 fork to child process 3365
Running via Spring preloader in process 3365
rake aborted!
ActiveRecord::ConnectionNotEstablished: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?

@gazayas I think the Super Scaffolding test failure is actually a legit failure we need to fix. Opened an issue for it: https://github.com/bullet-train-co/bullet_train/issues/192

@andrewculver Got it, I'll look over the test again.

@andrewculver Since we're getting an SSH error, I think we'll have to generate a private key for the workflow:
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

In the last commit, I added the call to the environment variable in the workflow for use with webfactory/ssh-agent, so we'll just need to add the environment variable according to the docs.
Install SSH Key is another option in case we want to use something else.

I haven't looked too closely at this yet, but it looks like there's an official setup-node action, which has yarn support https://github.com/marketplace/actions/setup-node-js-environment

@andrewculver @gazayas @kaspth Is this still something we want to do? If so, I don't mind either picking up this PR or taking a fresh stab at it. (I already have GitHub actions running CI in my own BT project, so hopefully I could just plop that config in and it will mostly work.)

I'm all for this being implemented later. We've been making some progress with the current CI setup, so it might be best to wait and decide on a good workflow there and then apply a similar test setup in GitHub actions after we feel confident with it.

Considering that this PR is more than a year old, and in the interests of reducing in-flight WIP, I'm going to go ahead and close this one. We have issue #764 so we don't lose track of the idea, and it points to this PR if there's anything here we want to retrieve later.


improve matching of PSCIS crossings to streams

On review of implausible PSCIS-stream matches, it seems there is lots of room for improvement.
eg

do not match "Tributary to Lillooet River" to the primary Lillooet channel
better check match via diameter_or_span and channel width / stream order

Another example of potential improvement is pair of PSCIS 197600, 197601.
197601 should be matched to railway, 197600 to the highway.

improve matching using pscis road name
when different road/railway features are near two assessments and a single stream, don't snap assessments to the same road/railway feature (this might be tricky to implement, and also has the challenge that some historical data has multiple assessments for the same crossing, results will be inconsistent)

While there is definitely room for improving PSCIS-modelled crossing matching, above is more of an issue with loading crossing_feature_type than the stream matching. Any PSCIS crossing with a rail crossing nearby will be coded as rail. https://github.com/smnorris/bcfishpass/blob/a92591863b26dae675c8ba73a913ab5192619e84/scripts/model/sql/crossings.sql#L778

check stream_match_score in bcfishpass.pscis to find suspect matches
I think the matching QA logic may mostly assumes there are two mapped streams to choose from and tries to rank them - the really bad results seem to be where an assessment occurs on an unmapped stream and there is a major channel nearby

Matching process is improved a bit but many crossings will require manual review. See column suspect_match in output table bcfishpass.pscis and Karina's manual review of crossings associated with rail (fixes for these were not generally included but problems were noted).
Difference in results with new queries:
n crossings newly matched/included: 33
n crossings removed from output table, likely on unmapped streams: 169


1.21 recipes not working

Hi the new Niftycars mod for 1.21 doesn't work for me. Game loads but i cant create the items i need in the crafting table. I have latest Fabric API (v1.102.0), Forge Config API Port (v21.0.8) and Loader Version (0.16.5)

Fixed in 21.0.1


Reduce number of inputs - take a json for inputs that are not needed by most users

Description

Reduce number of variables in the DA - eg: only expose the variables that are needed by the majority of users (eg: 80% of users)
Move the variables that are not needed by most users to a json input. See landing zone DAs as example (override_json input).

Looking at moving the pipeline properties into the new pipeline property JSON support. This should significantly reduce the number of inputs


Ubiquiti has removed 4.7.6 zip package

Hi,
Just tried installing this and it seems that Ubiquiti has removed the 4.7.6-zip file from their download-server.
Latest version (at the moment) 4.8.14 seems to work after installing this package/fix:
http://scottn.us/2016/02/pfsense-unifi-controller-stuck-adopting/
Please update the installation script accordingly!

Thank you for the information; the script has been updated.


misc: use fixed nydus version for E2E test

The value of NYDUS_VERDION is null frequently if we request it from github API. We cannot solve this issue by sleeping 1 second, because the next available time is in the response headers and longer than 1 second. The NYDUS_VERSION is not changed often, so we can fix it.
More information: https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limit-headers
Signed-off-by: Bin Tang<EMAIL_ADDRESS>

Codecov Report
Base: 31.55% // Head: 30.57% // Decreases project coverage by -0.97% :warning:

Coverage data is based on head (a330f03) compared to base (2e095fe).
 Consider uploading reports for the commit 041ba3f to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #314      +/-   ##
==========================================
- Coverage   31.55%   30.57%   -0.98%
==========================================
  Files          34       37       +3
  Lines        3578     3800     +222
==========================================
+ Hits         1129     1162      +33
- Misses       2333     2517     +184
- Partials      116      121       +5

Impacted Files
Coverage Δ

pkg/daemon/client.go
26.19% <0.00%> (-2.02%)
:arrow_down:

pkg/daemon/daemon.go
0.00% <0.00%> (ø)

cmd/containerd-nydus-grpc/pkg/command/flags.go
100.00% <0.00%> (ø)

cmd/containerd-nydus-grpc/pkg/logging/setup.go
70.27% <0.00%> (ø)

config/default.go
0.00% <0.00%> (ø)

config/global.go
39.02% <0.00%> (ø)

config/config.go
8.41% <0.00%> (ø)

pkg/system/system.go
6.37% <0.00%> (+0.03%)
:arrow_up:

pkg/blob/blob_manager.go
32.65% <0.00%> (+3.06%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Programmatically updating title or tags works inside ngOnInit, but not within subscribe callback function.

I'm submitting a ...  (check one with "x")
[x] bug report => check the README and search github for a similar issue or PR before submitting
[ ] support request => check the README and search github for a similar issue or PR before submitting
[ ] feature request

Current behavior

Neither this.meta.setTag('description', 'updated description'); or this.meta.setTitle('updated title'); seem to work inside of a subscribe function of an http request to a REST API.
Expected/desired behavior

It should use the default values of the metaService as defined here: https://github.com/nglibs/meta#appmodulets-2
until the http request finishes and the subscribe function is called, then it should use the updated data as defined by the setter functions.
Minimal reproduction of the problem with instructions
Follow the above description
What is the motivation / use case for changing the behavior?

I have data from the server that needs to be put into the meta and title tags for better seo with Google.
Please tell us about your environment:

Angular version: 2.0.X

angular-cli: 1.0.0-beta.26
node: 6.9.3
os: darwin x64
@angular/common: 2.4.5
@angular/compiler: 2.4.5
@angular/core: 2.4.5
@angular/forms: 2.4.5
@angular/http: 2.4.5
@angular/material: 2.0.0-beta.1
@angular/platform-browser: 2.4.5
@angular/platform-browser-dynamic: 2.4.5
@angular/router: 3.4.5
@angular/compiler-cli: 2.4.5

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Language: [all | TypeScript X.X | ES6/7 | ES5]
TypeScript
Node (for AoT issues): node --version =

Maybe I don't understand how this is supposed to work. Is it even possible to update the meta information outside of the ngOnInit function?

Looks like it works inside of a route param subscription declared in the ngOnInit:
this.route.params.subscribe((params: Params) => { this.meta.setTitle('this works fine'); });
but not inside my REST http subscription:
this.xrdService.entity.getEntityBySeoName(this.seoName)             .subscribe((result: XRDEntity) => {                       this.meta.setTitle('this does not work');            });
Any suggestions?

Hi @kblestarge, I'll analyze this and will return to you at the first opportunity.

@fulls1z3, any helpful insights?

Hi @kblestarge, just started, first with fixing the dependencies. But I'm planning to resolve all open issues on this & fellow repositories at once, while I have some free time this & tomorrow evenings.
Probably tomorrow, or Saturday I'll publish a release. Stay tuned :)

So I was having some issues with this as well but I found a pretty good solution.
First the issue: NavigationEnd is called as soon as ngOnInit() finishes and does not wait for subscriptions to complete (and it shouldn't). Even deferred function won't add data from the subscriptions. As a hack you could add a function to manually update them when the subscription is done, however, this would be bad SEO as the values would load and then be updated (It's possible that the googlebot would only read the first values and move on).
The Best Solution: (No changes to @nglibs/meta needed). You need to load the data before the page is rendered. You can do this using the resolver in your routing module. Read this: https://angular.io/docs/ts/latest/api/router/index/Resolve-interface.html
Then on your page you can get the data by:
constructor(private route: ActivatedRoute) {}

ngOnInit(){
    this.product = this.route.snapshot.data['product'];
}

This ensures that the subscription is completed before the component is loaded and all of the metadata can be set immediately after in ngOnInit().
Note: you do not need to use the defer method for this.
@kblestarge Let me know if any of this is unclear and best of luck.
@fulls1z3 Awesome job on this project.

@Raydaq-git that works great for me! Thank you!

Hi @kblestarge, @Raydaq-git. First of all I'd like to thank to @Raydaq-git for coming up quickly and offering such a working solution as well as both your appreciation.
The use of resolver would definitely work in most cases, no doubts. However, I'd like to offer another alternative too: the callback function - which might be a slightly more elegant way to handle this.
I need to clarify that, it could be the case only if you're using a certain REST call to fetch the data. I mean, there's a generic service (could be a SEO service returning page titles) that you invoke by passing the page id/key/etc as argument.
Well, if you look at the app.module.ts on @nglibs/example-app, you'll notice that the metaFactory contains the (key: string) => translate.get(key) as a callback. It means, the value that the meta property contains gets resolved using that callback function.
And, if you look at the config.json, home.routes.ts, and about.routes.ts you'll notice keys/values like "defaultPageTitle": "DEFAULT_TITLE", "defaultMetaDescription": "DEFAULT_DESC", as well as:
  {
    path: '',
    component: HomeComponent,
    data: {
      meta: {
        title: 'PUBLIC.HOME.PAGE_TITLE',
        override: true,
        description: 'PUBLIC.HOME.META_DESC'
      }
    }
  }

In this example app, the callback function is the translate.get (thanks to @ocombe, for his awesome project ngx-translate). ngx-translate uses these keys are to retrieve translations of meta information on en.json and on tr.json.
In your case, a more or less a similar approach should work:
metaFactory
callback: (key: string) => seoService.getEntityBySeoName(key)

This way, you won't need to call meta.setTitle/meta.setTag within the subscriptions. Simply pass the keys to a generic service which handles retrieval of seo data, and you're done ;)
Meantime, I feel that you're getting the meta info on the entity level - not using a generic method. The callback approach might not work if you stick using separate methods for every object. But there might be a way to make it generic - it's up to the architecture of your project.
Anyway, please feel free to ask anything you need, I'll be glad to provide help as far as in me lies.


Query are taking too much time and not giving the output result in grafana

What happened:
We created one Athena query to get the results. In the AWS console the query is executing and giving the result at 7 second. But the grafana is taking too much time and not giving the result in grafana UI.
What you expected to happen:
The grafana need to give a result on time at least it can take 15 seconds but its taking more than 30mins and not giving the result.
How to reproduce it (as minimally and precisely as possible):
Fix the grafana execution performance.

Screenshots

Anything else we need to know?:
Environment: Build

Grafana version: 10.4.1
Plugin version: Latest version from grafana labs
OS Grafana is installed on: Linux Machine
User OS & Browser:  Windows(Chrome and explorer)
Others:

Hi @SricharanSundar ! I have a few questions about the issue to help us reproduce it. Can you give us an example of the dashboard/query with this issue (If you click the share button you can export the dashboard json) or a screen recording? Does this issue happen ever time you run an Athena query or just with specific queries?

Does your issue seem like it could be related to https://github.com/grafana/athena-datasource/issues/319 ?

Does your issue seem like it could be related to #319 ?

Comparatively same, But im not getting 504. Taking too much time while giving the result. Is there any other datasource is available to use athena SQL.

Hi again, @SricharanSundar . This the datasource for connecting with Athena. I have a few questions about the issue to help us reproduce it. Can you give us an example of the dashboard/query with this issue (If you click the share button you can export the dashboard json) or can you do a screen recording? Does this issue happen ever time you run an Athena query or just with specific queries?


Additional Issues Noted

The DB schmea they have
the table name is validator_description but in code they have validator_descriptions or the db has a table validator_info they have validator_infoes which is obviously a misspelled typo
also some of the relations are made as object relations not array relations.
so for example
this all pertains just to validator stuff.
so if they have a query that fetches info for validator_description and it's written for a array relation
{
validator{
validator_description(limit: 1){
moniker
}
}
}
so that query for example is written for validator_desription being an array relation since yo can put limit:1 in perens.
but their relation in the db is made a s object relationship
{
validator{
validator_description{
moniker
}
}
}
so it needs to be with out the limit flag for example.
so thing is it really depends what their intention was which makes a difference which fix they want to implement
I also don't understand yet why bdjus only pulls moniker stuff for only like 6 validators and not the rest
bdjuno does pull the info in with its queries it just doesn't put them into the db for one reason or another.

Closing this as duplicate of https://github.com/forbole/bdjuno/issues/159 (will answer there)


DocManager OperationFailure can lose updates

If a Doc Manager fails to upsert/update and raises OperationFailure, mongo-connector continues processing further oplog entries and updates oplog.timestamp - so the failed operation will never be retried and the target system will contain different data from mongodb.
See #479 for a fix.

Closing this per the discussion in #479 (conclusion summary: The doc manager should take care of retrying operations it knows to be retry-able).


Issue npm install during build to ensure deps.

Fixes #23.

Codecov Report

Merging #24 into master will increase coverage by 0.07%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             master     #24      +/-   ##
===========================================
+ Coverage     71.12%   71.2%   +0.07%
- Complexity      348     349       +1
===========================================
  Files            42      42
  Lines          1285    1285
  Branches        110     110
===========================================
+ Hits            914     915       +1
+ Misses          336     334       -2
- Partials         35      36       +1

Impacted Files
Coverage Δ
Complexity Δ

.../com/shzlw/poli/service/JdbcDataSourceService.java
27.27% <0%> (+3.03%)
5% <0%> (+1%)
:arrow_up:

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 9b0eac7...5b79cd8. Read the comment docs.


Is agent POSIX compliant?

If not, what can be done? Do you think it is needed to be POSIX compliant to run on most machines?
Trafikito agent should be able to run on devices like drones, robotic vacuum cleaners and basically anything that has any flavor of Linux and ability to run shells script. So it could truly monitor anything and take automatic action when something.

POSIX compliant makes sense, but some people as different ideas - bash is NOT compliant, but as lomg as you stick to the POSIX shell things should be okay.
The way you define the hash bang as '#!/usr/bin/env sh' is a good start for probably most Unix/Linux distros, but it points to different commands, eg:
Debian9 - /bin/dash (with a 'd' = POSIX)
Centos7 - /bin/bash
Ubuntu17 - /bin/dash
I will check for bash specific code in scripts.

Yes - the code is now POSIX compliant


REST OPTIONS Action bug fix with Header name

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
yes/no

Fixed issues
comma-separated list of tickets # fixed by the PR, if any

Merged. Thank you!


Add remark command

tP week 6 requirement

ethans comments are brutal man 4 strikes and you're out @officialchengyud


Tagged releases

Could you create tagged releases?
https://help.github.com/articles/creating-releases/

Great idea! Done for the latest code: https://github.com/rflynn/imgmin/releases/tag/v1.1


Content randomly not syncing, without error

I'm hitting a weird issue where, seemingly randomly, my content isn't being saved. The save icon in the sidebar is not red, and there is no error message - as far as I can tell, there's no difference between cases where my content is saved, and cases where it's not.
Is there anything I can do to try to track this down? It's pretty hard to reproduce this issue so I haven't been able to catch anything in the javascript console so far.

I am running (check any that apply, put an x inside the [ ] to check a box, like this: [x]):

[ ] Windows
[ ] OSX
[x] Linux
[ ] Other

and using

[x] The nodejs version
[ ] The single file executable

(The server is behind a caddy reverse proxy that adds basic auth)
Before posting I read issue guidelines and:

[x] I am using the newest version
[x] The answer to my question isn't listed in the documentation or this isn't
a question (this is a potential bug report)
[x] This is not a duplicate issue
[x] I have not done anything that required me to set acceptance to
I Will Not Get Tech Support For This

I suspect it's related to the websocket connection getting broken.

I have perhaps the same problem and have identified some peculiarity that could explain it at least partially.
My setup:

TW5 + Bob (git clones) served by nodejs in termux / Android, syncing the wiki files via the FolderSync app to owncloud
TW5 + Bob (git clones) served by nodejs in WSL (ubuntu 18 under Windows), syncing the wiki files to owncloud via the owncloud desktop client.

The wiki was populated by copying over the *.tid files from an existing nodejs TW5. Before that I tried adding the existing wiki as subwiki, but due to different paths on the two systems that didn't work.
In my case, the tiddlers are automatically saved, but for every tiddler I have two files on disk - TIDDLERNAME.tid and TIDDLERNAME_1.tid - and TW / Bob seems to randomly choose which of these to serve and into which to save.
From the outside this looks as if the files are sometimes not saved at all.

@jeromebaum
I have recently run into the websockets not giving any error but not saving changes as well.
I have not found any consistent way to make this happen and sometimes it will just start working again and save all the changes.
I suspect it has something to do with some bottleneck with saving to the file system. I will continue to look into this, if you find a
@creinig
The problem with your setup is having two instances of bob and foldersync all modifying the same wiki files at the same time. That causes race conditions where depending on the state of the three processes it gives the behaviour you describe.
The federated wiki syncing features I am currently working on will give a way to solve this problem, but they aren't documented and polished enough to be too useful.
The only solution until that is available is to only have one process affecting the files at a time, so in your case the foldersync should only run when Bob isn't running on either computer.

After a bit more testing it looks like the problem that I am seeing isn't that it isn't trying to sync, it is that there is sometimes a very long delay before files get saved. I just made some edits that took about a minute and a half to save to the file system.
And for some reason when the tiddler saving is delayed like this it also doesn't sync the new tiddlers with other open browser tabs.
Hopefully this is the same problem you are having because I think I know where the problem is.

The updates in the newest release (1.4.0-beta) should address these problems. I am going to try it for a bit longer before saying this is solved. If you run into these problems using the newest version please let me know.

I believe I am running into the same issue on Bob 1.5.2 (I believe I am up to date with the master branch).
I am running the node version locally, on a linux system. Recently I am getting this mainly while editing journal entries, which is only relevant because this will also cause issues with the default new journal text ($:/config/NewJournal/Text).
Currently I am seeing this behaviour every single time I try to create my journal entry for 31st may. It's not a very long or complicated tiddler so I have no idea why it would doing this, but I have yet to succeed in continuing to use the wiki after creating/editing that journal entry,
I am seeing the following behaviour:

At some point I will finish editing a tiddler and it will have a padlock icon on it, I can no longer make changes to it
Updated tiddler is not showing up in the terminal where I ran the server command
From this point on, regardless of any changes I make, they do not show up in the server terminal
On restarting the server I have lost all changes, they are also not in any backups
I see the folloiwng in the browser console:

services.settings: InvalidSignatureError: "Invalid content signature (main/normandy-recipes-capabilities)"
    InvalidSignatureError resource://services-settings/RemoteSettingsClient.jsm:123
    _validateCollectionSignature resource://services-settings/RemoteSettingsClient.jsm:732
remote-settings.js:322
BroadcastService: receivedBroadcastMessage: handler for remote-settings/monitor_changes threw error: InvalidSignatureError: "Invalid content signature (main/normandy-recipes-capabilities)"
    InvalidSignatureError resource://services-settings/RemoteSettingsClient.jsm:123
    _validateCollectionSignature resource://services-settings/RemoteSettingsClient.jsm:732

I am also not really sure how to react when this happens, other than downloading all changed tiddlers, restarting, and reuploading them.

@PARC6502
I think I know what caused the problem you are describing, it should be fixed in the nexe branch. I will get around to merging that with dev at some point but for now you could try that branch.

I'm hitting the same problem as well.. Already lost a couple of new notes :(
Do you know when 1.4.0 is out so I can start trusting my notes? :)

I looked some more at my case, and I am able to reproduce this using the commander plugin and change tag on ~120 files at the same time.

server console show "Save Tiddler ..." but it doesnt update often, bulks of 20'ish with a couple of minutes between
browser console shows "Create tiddler ..." same bulky updates, but also duplicated entries (might have been in server-console as well
browser console verbose has a ton (5-10 a seconds) of "[Violation] 'setTimeout' handler took 60ms" from $:/core/modules/wiki.js:162
One of the two websocket connections are super-chatty, both directions.

{"type":"updateEditingTiddlers","list":[],"wiki":"RootWiki","id":"s31029"} | 74 | 23:51:15.916
{"type":"ack","id":"s31029","token":null,"wiki":"RootWiki"} | 59 | 23:51:15.916
{"type":"updateEditingTiddlers","list":[],"wiki":"RootWiki","id":"s31031"} | 74 | 23:51:16.031
{"type":"ack","id":"s31031","token":null,"wiki":"RootWiki"} | 59 | 23:51:16.031
{"type":"ack","id":"b273"}

Including a bunch of type=saveTiddler. Probably around 60-70 messages a second.
For me, it seams to be stuck in a loop. Where it tries to do the whole update, but again and again..
Saving a new note when this happens shows no errors, but the save probably ends up faaar behind.
I can test 1.4.0 beta, but I also think there should be an indicator to see how this job-queue is doing, as well as a fix :)
I'll come back with more info if I have

I understand that this is a side-project. But can I make some donation to free up some time for anyone to work on the stability of the sync? At least an indicator when a new note is not synced (don't like loosing notes).

Hi. I belive @inmysocks and I have tracked down one of the possible root race-condition bugs behind this failure.
See https://github.com/OokTech/TW5-Bob/pull/134
It requires a patch/PR to TW that has not been accepted into the core yet.

Hi. I belive @inmysocks and I have tracked down one of the possible root race-condition bugs behind this failure.
See #134
It requires a patch/PR to TW that has not been accepted into the core yet.

Thanks for the info. I saw that issue a couple of days ago and was very happy! Great work!
I'll see if I can but together a build with that pr for my testing. I'll report back how it went in that issue

There between me and @joshuafontany  1.6.0 that should help or fix the problems here. It should be released this weekend or Monday.

I am having similar issues. Though I do get the (red) not saved indicator. I haved tracked it down to following piece of code:
    $tw.Bob.Reconnect = function (sync) {
      if($tw.connections[0].socket.readyState !== 1) {
        $tw.Bob.setup();
        if(sync) {
          $tw.Bob.syncToServer();
        }
      }
    }
    $tw.Bob.syncToServer = function () {
      // Use a timeout to ensure that the websocket is ready
      if($tw.connections[0].socket.readyState !== 1) {
        setTimeout($tw.Bob.syncToServer, 100)
        console.log('waiting')
      } else {

On console, $tw.connections[0].socket.readyState is not equal to 1 but no console.log('waiting') logs. It seems $tw.Bob.syncToServer is not being called. Either way $tw.Bob.syncToServer() is of no use here (infinite loop), since it effectively needs a $tw.Bob.Reconnect(). I was able to resume sync after it. So, where exactly the call to $tw.Bob.syncToServer() is made? Apart from that $tw.Bob.syncToServer should call $tw.Bob.syncToServer() after certain recursion depth due to $tw.connections[0].socket.readyState !== 1.

No, it is of no use here because this has nothing to do with the problem described.
This is for when the browser gets disconnected from the server while the server is still running. In that case there is a reconnect button that appears and uses this function, unless you have clicked that button this code will never run and you shouldn't see the 'waiting' message. The function does what it is meant to do.
If the not saved indicator is red then the most likely situation is that everything is working, but the core syncer puts a delay between each message sent to the server so it can take a long time to save everything if you modify or add a lot of tiddlers at the same time.
If the problem is the connection to the server a 'not connected to the server' banner will appear, if your problem isn't just slow syncing the problem would be something with the syncer module, not this.

You are right. I am using Mono theme by JD and the banner was hidden under the top bar. I fixed it by replacing top: with bottom: in  WebSockets/BrowserMessageHandlers.js.

Is there any progress on this issue? I am using TW5-Bob Version 1.7.3 BETA Intense Kitten and I also randomly lose content when creating or editing tiddlers.
There is no clear indication that the connection to the server is broken (no red banner, no red check mark), but there seems to by no synchronization between the local Wiki and the server.
I am trying to convince friends and colleagues to use TW5-Bob, but losing content randomly leads people to doubt.
Is there anything I can do to help pinning this bug down? Any suggestions from the devs how I can see log messages in detail and try to debug?
Thanks for your engagement in this project. I really appreciate this software a lot.


No way to detect mouse button/number of clicks on tray icon

If I understand correctly, the only API made available for attaching an event to the tray is setOnAction() (onAction() with the Builder). This takes an ActionEvent, not a MouseEvent which seems strange. In particular, it interferes with the right click on the tray icon because the event is always fired regardless of which button is used or clicks used. For example, how do you fire something only on a left click and not on the right click/context menu?

Looking at the code, there are some private methods that may be useful. In particular, the getPrimaryClickListener() seems to fire on any type of click (if "primary" is supposed to refer to the first mouse button).

Not sure if this should be a new issue, but it would be great for the MenuItems as well.

ActionEvent is supposed to be used for menus, though. Menus normally are supposed to do the same action on left and right click.
The problem with using and ActionEvent in place of a MouseEvent is like I said: right clicking to bring up the context menu will also trigger the icon action, which can't be what is intended.

@dwalluck It's even more fun when you have to account for the OS that the library is being run on. For example, what equates to a primary mouse click on Windows does not always equate to a primary mouse click on MacOS or some Linux distros. That's AWT to blame rather than the FXTrayIcon implementation. Even more of a surprise was that different versions of the same OS treated events differently.
When I initially wrote FXTrayIcon, I noticed this when comparing Windows and OSX. Rather than try to cater to all OSes that a user might use FXTrayIcon on, I tried to create a good general implementation that would be more or less uniform across the platforms.
We could go down a very deep rabbit hole trying to make this feature (MouseEvent handling) work for all operating system choices. I will leave this Issue open for the time being, but unless someone has a good solution for a fix that will work for most OSes, and in a predictable way, I will probably close after some time.
Unfortunately, we have a lot of limitations imposed by AWT and the way that it behaves on different platforms. I welcome contributions that aim to provide this functionality, but I, myself do not have a good solution in mind that works cross-platform.

Help me to understand what the issue is. Naively, without having studied the code, I would have expected you to map a JavaFX action event to AWT action and a JavaFX mouse event to AWT mouse. I don't understand why, if you want to add an ActionEvent to the tray icon, you don't use addActionListener. Instead, setOnAction adds a mouse listener.
Also, I wasn't sure about this code and whether it could somehow interfere with the user-added action because I think it's always present.
// Show parent stage when user clicks the icon
this.trayIcon.addActionListener(stageShowListener);

What I wanted to do was add an action that shows/hides on mouse click. But, right click should not modify the shown state, only bring up the popup menu. I don't think we can use isPopupTrigger() to workaround just that issue since that is only on mouse pressed/released and not mouse clicked.

@dwalluck Hello,
I tried to create another event handler method that assigned a MouseEvent to the awt.TrayIcon object, but when I tried to assign the event using
trayIcon.addMouseListener(getPrimaryClickListener(e))
The IDE said that awt.TrayIcon requires an ActionEvent to be passed into the listener. So it won't actually take a MouseEvent as an argument... this is an AWT limitation.
Or am I missing something?

The IDE said that awt.TrayIcon requires an ActionEvent to be passed into the listener. So it won't actually take a MouseEvent as an argument... this is an AWT limitation.

I think this is just because getPrimaryClickListener returns ActionEvent, but it could return MouseEvent. The problem I saw is there's no way to construct a new MouseEvent from EventHandler<MouseEvent>, but there must be a way to do it.

Edit: Having read further in the discussion, I think I'm understanding what you're getting at.

java.awt.TrayIcon has a method addMouseListener which I think should be used instead of addActionListener. Just as we have a java.awt.event.ActionEvent and a javafx.event.ActionEvent, there is a java.awt.event.MouseEvent and a javafx.scene.input.MouseEvent.

Also, I have verified that having this.trayIcon.addActionListener(stageShowListener) always there will interfere with the user's own action. Maybe it needs to be removed if a customer handler is added and the developer is expected to add the functionality themselves in that case.

@dwalluck

and the developer is expected to add the functionality themselves in that case.

This is technically already an option, no? Simply don't engage the library's methods and then create those as needed.

This is technically already an option, no? Simply don't engage the library's methods and then create those as needed. Reflection is a wonderful thing ☺

My point is I believe that code is always called. It makes sense as a default, but interferes with the when you want to add a custom handler.

This should be possible... I will check this and see if there's a way that we can implement this in the next major version release.


Change PaymentSummary to be a variant

Make PaymentSummary a variant. It is returned by RecentPayments and PaymentDetail.
variant PaymentSummary switch (PaymentSummaryType typ) {
  case STELLAR: PaymentSummaryStellar; // The only record of this tx is from horizon
  case DIRECT: PaymentSummaryDirect;
  case RELAY: PaymentSummaryRelay;
}

This PR goes hand-in-hand with https://github.com/keybase/keybase/pull/2449. Skewing the client and server across these PRs will render wallet history and wallet detail inoperative on the client.

I know not part of this PR, but there's an err on line 112 of relay.go that isn't checked.


Background selection multiples.

Some acquisition tables have multiple background positions, as the background count rate can change at different places in the mass spectrum. For run tables with multiple backgrounds, users will need to nominate:
-Which background to use.
-Whether to interpolate between stations (advanced- not necessary in first instance).
Squid may want to:
initially assign nearest background to peaks AS LONG AS USER CAN CHANGE THIS later

Single background is selectable currently.

User can select a single background from many but only one per data reduction;  multiple backgrounds will be address in Phase II of Squid development.


Divide ligand's VDW radii by voxelspacing

This commit fixes a bug in DisVis when using the voxel spacing option (i.e., -vs > 1).
DisVis divides the vdw radii of the receptor by self.voxelspacing, but without this patch, it does not divide the vdw radii of the ligand by voxelspacing.
The effect of this bug is positioning the ligand and receptor too far apart when voxelspacing > 1 is used, since the vdw radii in the 1A voxel spacing reference frame occupy a lot more effective space when the voxel spacing is increased to, say, 4A.

Good catch, should be merged, and disvis updated on server. Branch 3.0 doesn't have this issue.


Get DOI for data

Zenodo provides DOI for github releases. This allows people doing research to provide citations for the data.
This explains how to get a DOI. https://zenodo.org/account/settings/github/

Cool!


luci-theme-bootstrap: Always show scrollbar

With this addition to the body tag, on desktop browsers the vertical scrollbar
is always visible and the content will not be shifted by changing tabs (like
at System/Software when the update tab has no to little content).
I couldn't see any negative side effects with Chromium browsers or Firefox
under Windows/Linux and Android, but I don't have access to Apple devices
for tests.

Screenshot before:

Screenshot with the change:

Screenshot with a modal dialog:

Do you need further information for this PR?

@systemcrash Are there any information missing or is my PR not ok from formal side?

Merged, thanks!


YouTube and iTunes...

I've logged into two separate profiles and am still finding that my Last.fm account isn't scrobbling properly. Do I need to execute a new version?

How to debug extensions.

YouTube is working for me


Playground lint problem

There is a possible lint problem in the playground.
The relation `access` does not exist. linter

No Problem
type org
  relations
    define member as self

type feature
  relations
    define associated_plan as self
    define member as subscriber_member from associated_plan

type plan
  relations
    define subscriber as self
    define subscriber_member as member from subscriber

type permission
  relations
    define access_feature as member from associated_feature
    define associated_feature as self

Problem
type org
  relations
    define member as self

type feature
  relations
    define associated_plan as self
    define access as subscriber_member from associated_plan

type plan
  relations
    define subscriber as self
    define subscriber_member as member from subscriber

type permission
  relations
    define access_feature as access from associated_feature
    define associated_feature as self

The relation `access` does not exist. linter

The complaint is on the type permissions, where it says that access doesn't exist from that associated_feature.
access does exist in the type feature.
Oddly enough, if you replace access with member in both type feature and type permission it has no lint problems.

@ghstahl it has been fixed, though not deployed yet. Expect it to be fixed on the Playground later today or tomorrow morning.
Thanks for your report!

@ghstahl The fix has been pushed to the Playground, you should be able to save properly now (reload the page if you are not seeing the new version)


Asset Converter 2.0

Description
Need an asset converter that works.
Description of the related problem
Current converted not suitable for Vulkan, does not:

care about usage flags (will merge buffers that shouldn't be merged)
promote images to usable formats

Perf/Efficiency:

wrong assumption that the same Asset Type wil only be encountered at the same level of the Directed Acyclic Graph of Assets
cannot "stream upload images" yet

Ergonomics and Correctness:

templates everywhere
does not use compute shader to produce mip-maps

Solution proposal

As input take a sorted dynamic_refctd_array<IAsset> of root assets + conversion options argument (current SParams)
Do not use templates and perform a Depth First Search to explore the DAG starting from the roots
Figure out what Buffers and Images need to be de-aliased due to format promotion (promotion occurs in the view)
Use unordered_map<cpu_asset_type_and_metadata,gpu_asset_type_and_metadata> to store all assets to convert, the key metadata will probably just be the promoted format if any, the value metadata will contain modifiers like additional usages etc.
Then commence converting assets, starting form the bottom of the logical stack
ALWAYS If you can find the cached asset conversion with the correct metadata (usages, etc.) then use that, otherwise proceed with steps 7 onwards, at each step check all dependents are ready and figure out if can recover from error before creating anything
Create Buffers, bucketed by usage, depending on options trim and merge them into large suballocated buffers (we already do this)
Create Images without any merging
Figure out the heaps and memory types each IGPUBuffer and IGPUImage need, and whether they need to be dedicated, bucket the allocations by that
Allocate Device Memory and bind it to the created Buffers and Images (allows for suballocation)
Fill Buffers and Images with data and convert if needed (remember about de-aliased promoted copies!)
Create Image Views, Buffer Views and Acceleration Structures while remembering to promote and adjust any offsets after any promotion or packing/merging (probably should modified Hash Cons here, try and find duplicate views)
Create Samplers with Hash Consing
Create Descriptor Set Layouts with Hash Consing
Create Pipeline Layouts with Hash Consing
Create Shaders (maybe with Hash Consing, since we can has and compare the source code)
Create Specialized Shaders (with modified Hash Consing - basically compare for equality after hotswapping shaders)
Create Compute and RenderpassIndependentPipelines (with modified Hash Consing)
Create Graphics Pipelines (with modified Hash Consing)
Create MeshBuffers (with modified Hash Consing)
Create Meshes (with modified Hash Consing)
Return an dynamic_refctd_array<IReferenceCounted> wrapped in a utility struct

Special concerns:

Use the provided logger extensively
Stream and convert (if needed due to promotion) the Image regions via Staging Buffer, no intermediate GPU Buffers with all data

Additional context
Hash certain objects to not create needless copies
You can hash samplers, and descriptor set layouts, pipeline layouts (via hash consing).
This will reduce the number of samplers and layouts created (important cause VK has limits on this shit).
You can apply this regardless of if the assetManager has been provided as an external cache (also useful to make it work on hashes of the samplers and layouts).
CPU Asset Usages are hints
When creating a Buffer or Image (or in the future ImageView) remember that usages are hints, you need to patch them up during DAG traversal (add usages which are implied by the DAG if they're not there already).
You cannot however, "narrow down the usages" if a user has explicitly stated that a Buffer has a usage, it must have that usage.
This allows us to handle promotion and de-aliasing better, as de-aliased buffers and images are an extra copy and not the original, hence they need not have any of the usages explicitly enumerated by the original, only the implicit ones from the views that actually use them.
Controlling Options
General Options:

[ ] whether to attempt to patch up assets with failed dependants (i.e. just disable a vertex attribute, if vertex buffer failed creation)
[ ] whether to allow the "shrinking" of data ranges (shrink image by removing subresource ranges not used by any view, shrink buffers by removing any ranges not used by view or binding... while respecting alignments of all of them) for non-root assets (being root implies whole range is used)
[ ] whether to disallow the "packing" of buffer ranges non-root assets
[ ] whether to allow the "packing" of buffer ranges for root assets (disables the disallowance of packing non-root buffers)
[ ] whether to allow format promotion
[ ] whether to treat a promotion as a failure to create a root asset (return nullptr for the associated retval slot)
[ ] whether to allow de-aliasing (creating different copies of an underlying Buffer or Image for different views of the same underlying) during promotion

Patching-up BufferViews and VertexAttribute Bindings
After converting an entire buffer range due to a promotion, the relative offset may change due to shrinking and/or having a larger format.
This is also a concern for strides for vertex buffer bindings in graphics pipelines and acceleration structures.

Additional Comment based on talk with @devshgraphicsprogramming

Pack buffers with similar usages together, new BufferAPI allows suballocating buffers from a big IDeviceMemoryAllocation

Additional Comments based on talk with @devshgraphicsprogramming
* Pack buffers with similar usages together into seperate classes (same for images), new BufferAPI allows suballocating buffers from a big IDeviceMemoryAllocation

* We convert assets in several passes : for example 1. batch splitting (figure out all the dependants) and assign to their classes 2. Create GPU resources 3. ????

buffers are packed together already, notice that ICPUBuffer does not produce a IGPUBuffer it produces an SBufferOffset<IGPUBuffer>, but obvs we cant fuse different usage buffers together.
IDeviceMemoryAllocation fusing is what could allow us to put multiple buffers (and images) with different usages in the same memory allocation.


Improvements for multichain support.

Is your feature request related to a problem? Please describe.
I found the ledger_id and chain_id usage for integration with multiple chains quite cumbersome.
I believe it makes more sense to route messages pointed at a say optimism to the optimism ledger, as opposed to configuring the ethereum ledger with a chain_id of optimism.
This is a not hugely intuitive and afaict it also means you cannot have 1 agent controilling 2 different evm chains without carefui crafting of messages as so;
In the below is the current interface;

        ledger_id: str = self.params.ledger_ids[0]
        response_msg = yield from self.get_contract_api_response(
            performative=ContractApiMessage.Performative.GET_RAW_TRANSACTION,  # type: ignore
            contract_address=self.synchronized_data.safe_contract_address,
            contract_id=str(GnosisSafeContract.contract_id),
            contract_callable="get_raw_safe_transaction_hash",
            to_address=vault_address,
            value=0,
            data=call_data,
            safe_tx_gas=SAFE_GAS,
            ledger_id="ethereum",
            chain_id=ledger_id,

Describe the solution you'd like
Id like to instead propose a mapping of EVM chains to ethereum ledgers within the file;
https://github.com/valory-xyz/open-aea/blob/80b432192a55e6a9fa668d8f0df4340a6a944ec9/packages/valory/connections/ledger/base.py#L161
If we create a hashmap like so;
EVM_LEDGERS = {
    i: ETHEREUM_LEDGER_ID
    for i in [
        "matic",
        "gnosis",
        "bsc",
        "optimism",
        "arbitrum",
        "celo",
        "avalanche",
        "fantom",
        "base",
        "zksync",
        "canto",
    ]
}
if ledger_id in EVM_LEDGERS:
        api = self.ledger_api_registry.make(ETHEREUM_LEDGER_ID, **self.api_config(ledger_id))
    else:
        api = self.ledger_api_registry.make(
            ledger_id, **self.api_config(ledger_id)
       )

Then, the interface would be like so;

        ledger_id: str = self.params.ledger_ids[0]
        response_msg = yield from self.get_contract_api_response(
            performative=ContractApiMessage.Performative.GET_RAW_TRANSACTION,  # type: ignore
            contract_address=self.synchronized_data.safe_contract_address,
            contract_id=str(GnosisSafeContract.contract_id),
            contract_callable="get_raw_safe_transaction_hash",
            to_address=vault_address,
            value=0,
            data=call_data,
            safe_tx_gas=SAFE_GAS,
            ledger_id=ledger_id,

This would make way way more sense, and then all of the ledger configured within the ledger package would be used by default.
Additionally we wouldnt be over-riding chain_id which is commonly used else where  within the industry with a different meaning.

Related issues;

[ ] https://github.com/valory-xyz/open-aea/issues/694


two indexes instead of one created on migration

Laravel Version: 6.4.1
PHP Version: 7.2.17
Database Driver & Version: MYSQL 5.7.25 (Ubuntu)

Description:
Two unique indexes are created on the table in case of a migration has modified an existing record.
Steps To Reproduce:
Migration to run
public function up(): void
{
   Schema::create('some_records', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('field_1')->nullable();
    });

    Schema::table('some_records', function (Blueprint $table) {
        $table->unsignedInteger('field_1')->nullable()->unique()->change();
    });
}

check indexes for the some_records table, you will see 2 of them:

field_1 - unique
some_records_field_1_unique - unique

When it is expected to be one:

some_records_field_1_unique - unique

I get the same result. Even if I split up the migrations into two separate ones. Not sure what's going on but that indeed seems to be unwanted.

In the meantime you can circumvent it with:
public function up(): void
{
   Schema::create('some_records', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('field_1')->nullable();
    });

    Schema::table('some_records', function (Blueprint $table) {
        $table->unique('field_1');
    });
}

Hi! I didn't debug enough to find the problem but noticed that this simple migration executes these two queries in the database
ALTER TABLE some_records CHANGE field_1 field_1 INT DEFAULT NULL UNIQUE
alter table 'some_records' add unique 'some_records_field_1_unique' ('field_1')

So, I guess change() method is executing a diff comparison between the database and the Blueprint and unique() is adding a unique add command.


Adds support to Laravel 5.7

#28 fix

The tests are failing but I don't think is related. The tests fail in this line:
https://github.com/austinheap/laravel-database-encryption/blob/b5f9b05e33bda5b11554dd4d67f18c101df191b9/tests/Traits/DatabaseTest.php#L69
No other test fails, so this "should" be safe to merge.

Any update on when this will be fixed/merged? I am working on upgrading an app to Laravel 5.7.

No promises on when I'll have time to dig into why the tests are failing but you can override the composer.json dependency with your own branch.

Hopefully, you get the time to revise the code soon though ;)

Closing in place of https://github.com/austinheap/laravel-database-encryption/commit/573112a53089d7b946005b6f65385bfebbb07138. Feedback please! 😁


add union aggregator

This commit adds a union aggregator that takes union over all of its
input values and produces a value of type set of this computed union.
The type of the input values must be uniform.

I think you mentioned a size limit / circuit breaker on the forthcoming collect reducer; doesn't this need one too? Or maybe in a later PR?

Yes, thanks!  I had the same thought and already added it to the upcoming branch.  I will bring it forward to this PR.

I think this is ready now.


Unable to Integrate Local GPT Plugin with Azure OpenAI

Hello,
I'm having trouble configuring the Obsidian Local GPT plugin to work with Azure OpenAI.

Set the AI provider to "OpenAI compatible server".
Used the following Azure OpenAI endpoint for configuration: https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2024-06-01 Found here
Entered my Azure OpenAI API key in the plugin settings.

Any guidance resolving this would be greatly appreciated! 😊

Hello! Have absolutely no idea why it's not working. Try with different provider, for example Ollama.


update MSCA Dashboard Page

update MSCA Dashboard Page

added GraphQL query that pulls in all of the data, including new images
updated the HTML to include all the requested changes

Check out a preview of your pull request here: https://app-servicecanadalabs-dev-pr-preview-3.azurewebsites.net


<EMAIL_ADDRESS>hash check failed

mediafire.com no longer provide direct download for URLs like https://www.mediafire.com/file/aclnp3sdzb9yn94/MusicBeePortable_3_3_Update1.zip/file. Therefore Scoop will not be able to download the file from official source. Does anyone have a clever idea to solve it?
I searched mediafire.com through all the packages, but it seems that MusicBee is the only one that download files from mediafire.com.

See https://github.com/lukesampson/scoop/pull/3676

See lukesampson/scoop#3676

Didn't notice that. Thanks for the information.


No way to mark tiles with X on mobile devices

Need a mode switcher (you just use Shift on desktop)

47a6f13322fb975411e0042497b2f3585460b85a


Add simple Android replication Service

This is part 3 of a 6 part change to implement replication policies. Each of the 6 parts of the implementation of replication policies are each in a separate branch.
The following text is common to all 6 PRs.
The 6 branches include:

48607-policies-1-replicator-id: Adding an ID to replicators so we can easily identify which replicators are completed or have errored in subsequent callbacks.
48607-policies-2-java: Adding replication policies for Java.
48607-policies-3-android-service:Adding basic replication policies for Android.
48607-policies-4-android-periodic: Adding replication at regular intervals for Android.
48607-policies-5-android-wifi: Adding replication only when on Wifi.
48607-policies-6-docs: Documentation updates.

What?
Add mechanism to enable users to more easily specify the circumstances under which they want replication to occur. This allows relatively simple definition of policies such as:

Do a pull replication every 2 hours;
Do a full sync every hour, but only when we have a Wifi connection;
Sync whenever we connect to Wifi.

Why?
Prior to this PR, it was very difficult to implement such policies, particularly on Android where many aspects of the way the Android operating system works would need to be taken into account in order for such policies to work reliably.
How?
On Android we want the replication policy management to be reliable, battery efficient and not hog system resources unnecessarily. To achieve this we typically might trigger our replications from a BroadcastReceiver. This allows our code to be completely inactive on the device and be started when events of interest are broadcast.  We can also use a BroadcastReceiver to trigger periodic replications via the AlarmManager mechanism in an efficient way.  However, a BroadcastReceiver is intended to only run for a short time in response to receiving a broadcast, so the replication is carried on inside a Service that may be started from a BroadcastReceiver.
Running replications in a Service allows them to run independently of the lifecycle of other application components and be started easily via other application components.  We must also handle the fact that when we wish replication to occur, the device may be asleep, so we need to hold a WakeLock for the duration of the replication to prevent the device going back to sleep once the onReceive() method of the BroadcastReceiver triggering the replications has completed.  Also, if our replications are over Wifi, we need to hold a Wifi lock to keep the Wifi radio awake.
On Java, replication policies are much simpler than on Android. The new ReplicationPolicyManager class takes care of ensuring that if replications are in progress they are not restarted.
See the Replication Policies User Guide for further information on how replication policies are implemented on Android and on Java.
reviewer @mikerhodes
reviewer @ricellis

It is always upsetting to see test specific code in classes. If the notifier is useful for automated testing are there other circumstances where it might be useful to an application? Would it be worth making a real interface/plug-point for that functionality?

It is always upsetting to see test specific code in classes. If the notifier is useful for automated testing are there other circumstances where it might be useful to an application? Would it be worth making a real interface/plug-point for that functionality?

I agree that it's not nice having the test specific code here and was reluctant to do it, but (other than having a timed wait and hoping that the operation had completed, which I dislike even more) I couldn't think of a better way. I can't really think how it would be useful to an application as it's only notifying that replications have been either kicked off or the stop has been requested, not that replications are complete or the stop is complete, so I'm not convinced making it a real part of the API makes sense.

What about broadcasting additional Intents for the kick-off and stop? The tests could consume these broadcasts via a mock.  Someone might even find a valid use case for consuming them.
Presumably android is reasonably well optimised for broadcast/receive of intents, but I'm not sure how much overhead this would add, obviously the current no-op method call is very light. it hopefully wouldn't be that much of an increased performance hit over the no-op call

Aside from the conditionless policy manager, my question is whether this class needs to be thread-safe or not. I don't understand enough of the semantics around services to know that.

Aside from the conditionless policy manager, my question is whether this class needs to be thread-safe or not. I don't understand enough of the semantics around services to know that.
After reading up, it looks like your worker thread is going to handle all the communications, so things should always be executed in that thread from intents, but I'm not sure about the completion handlers from the policy nor the add/removeListener code.

Access to the mListeners set needs to be made thread safe as listeners can be added/removed from different threads. Fixed in 86400d8.

What about broadcasting additional Intents for the kick-off and stop? The tests could consume these broadcasts via a mock. Someone might even find a valid use case for consuming them.
Presumably android is reasonably well optimised for broadcast/receive of intents, but I'm not sure how much overhead this would add, obviously the current no-op method call is very light. it hopefully wouldn't be that much of an increased performance hit over the no-op call

As discussed, I've now instead made the callback mechanism a more general way of being notified when an operation has been kicked off within the service rather than having it as something test specific. Done in a187a46.

+1

+1

Following review, PRs #196, #197, #198, #199, #200 and #201 have been merged into a feature branch feature-48607-policies and PR #207 created to allow them to be merged to master.


testExamplesJaxprDoc in api_test.py fails on Python 3.5

https://github.com/google/jax/pull/2439 fixes Python 3.5 support in JAX.
However, one test fails under Python 3.5, so I added code to skip it on Python 3.5. I'm guessing this is related to a dependency on set or dictionary ordering somewhere.

https://github.com/google/jax/pull/2445 drops Python 3.5 support, but I suspect there's still a bug here (something is clearly depending on ordering where it shouldn't.) Feel free to close or fix, as you see fit.

I'll just close it.


swap slots/intent in NLU table header

order_food seems to be intent; B-* seem to be slots

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

Thanks for noticing this @ivanhe ! Please sign the CLA and I'll merge this.

I ended up changing the order of the column in that example. Thank you anyway!


etcdserver: create etcd member directory when fallback to proxy

etcd output:
etcd: listening for client requests on https://<IP_ADDRESS>:2379
datadir is valid for the 2.0.1 format
etcd: stopping listening for client requests on https://<IP_ADDRESS>:2379
etcd: stopping listening for peers on https://<IP_ADDRESS>:2380
etcd: cannot write to member directory: open /root/etcd/member/.touch: no such file or directory

@jlsalvador Can you provide more context? Thanks!

Short description
The problem happens when you reboot a proxy machine.
Check these files to understand the problem:

https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L146
https://github.com/coreos/etcd/blob/master/wal/util.go#L69
https://github.com/coreos/etcd/blob/master/etcdserver/storage.go#L91

Prerequisites:
You must have a full cluster with its members and one fallback proxy.
Trace:

Check https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L139 . When you reboot a etcd proxy, walVersion (https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L146) will be set to WALv2_0Proxy. Ok with that. :ok_hand:
Check https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L153 . Because walVersion is WALv2_0Proxy, haveWAL will be true. So it will enter in case hasWall: switch-case (https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L193).
upgradeWAL function will be called and as you can see (https://github.com/coreos/etcd/blob/fbd5c81139024b5b47345ee7b036fb3321755e84/etcdserver/storage.go#L91), it doesn't enter in any switch-case. So it doesn't create the member directory inside the data directory.
fileutil.IsDirWriteable(cfg.MemberDir()) will fail (https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L203). :-1:

Fixes:
Always create the member directory or don't check the member directory existence when the etcd instance is a proxy.
Example:
Check with Vagrant

config.rb:

$new_discovery_url='https://discovery.etcd.io/new?size=3'

# To automatically replace the discovery token on 'vagrant up', uncomment
# the lines below:
#
#if File.exists?('user-data') && ARGV[0].eql?('up')
#  require 'open-uri'
#  require 'yaml'
#
#  token = open($new_discovery_url).read
#
#  data = YAML.load(IO.readlines('user-data')[1..-1].join)
#  data['coreos']['etcd']['discovery'] = token
#
#  yaml = YAML.dump(data)
#  File.open('user-data', 'w') { |file| file.write("#cloud-config\n\n#{yaml}") }
#end
#

#
# coreos-vagrant is configured through a series of configuration
# options (global ruby variables) which are detailed below. To modify
# these options, first copy this file to "config.rb". Then simply
# uncomment the necessary lines, leaving the $, and replace everything
# after the equals sign..

# Size of the CoreOS cluster created by Vagrant
$num_instances=4

# Change basename of the VM
# The default value is "core", which results in VMs named starting with
# "core-01" through to "core-${num_instances}".
#$instance_name_prefix="core"

# Official CoreOS channel from which updates should be downloaded
$update_channel='stable'

# Log the serial consoles of CoreOS VMs to log/
# Enable by setting value to true, disable with false
# WARNING: Serial logging is known to result in extremely high CPU usage with
# VirtualBox, so should only be used in debugging situations
#$enable_serial_logging=false

# Enable port forwarding of Docker TCP socket
# Set to the TCP port you want exposed on the *host* machine, default is 2375
# If 2375 is used, Vagrant will auto-increment (e.g. in the case of $num_instances > 1)
# You can then use the docker tool locally by setting the following env var:
#   export DOCKER_HOST='tcp://<IP_ADDRESS>:2375'
#$expose_docker_tcp=2375

# Enable NFS sharing of your home directory ($HOME) to CoreOS
# It will be mounted at the same path in the VM as on the host.
# Example: /Users/foobar -> /Users/foobar
#$share_home=false

# Customize VMs
$vm_gui = true
$vm_memory = 512
$vm_cpus = 1

# Share additional folders to the CoreOS VMs
# For example,
# $shared_folders = {'/path/on/host' => '/path/on/guest', '/home/foo/app' => '/app'}
# or, to map host folders to guest folders of the same name,
# $shared_folders = Hash[*['/home/foo/app1', '/home/foo/app2'].map{|d| [d, d]}.flatten]
#$shared_folders = {}

# Enable port forwarding from guest(s) to host machine, syntax is: { 80 => 8080 }, auto correction is enabled by default.
#$forwarded_ports = {}

user-data:

#cloud-config

coreos:
  etcd:
      addr: $public_ipv4:4001
      peer-addr: $public_ipv4:7001
  fleet:
      public-ip: $public_ipv4
  units:
    - name: etcd.service
      command: start
      content: |
        [Unit]
        Requires=docker.service
        After=docker.service

        [Service]
        User=root
        PermissionsStartOnly=false
        TimeoutStartSec=0
        SyslogIdentifier=etcd
        EnvironmentFile=/etc/environment
        ExecStartPre=-/usr/bin/docker kill etcd
        ExecStartPre=-/usr/bin/docker rm etcd
        ExecStartPre=/usr/bin/docker pull quay.io/coreos/etcd:v2.0.5
        ExecStart=
        ExecStart=/bin/bash -c "/usr/bin/docker run \
            -p <IP_ADDRESS>:4001:4001 \
            -p <IP_ADDRESS>:7001:7001 \
            --name etcd \
            -v /root/etcd:/root/etcd \
            -v /usr/share/ca-certificates:/etc/ssl/certs \
            -e ETCD_DISCOVERY=https://discovery.etcd.io/a8204e37138ef97d307bfa2fd0462669 \
            -e ETCD_NAME=%m \
            -e ETCD_HEARTBEAT_INTERVAL=1000 \
            -e ETCD_ELECTION_TIMEOUT=10000 \
            -e ETCD_DATA_DIR=/root/etcd \
            -e ETCD_LISTEN_CLIENT_URLS=http://<IP_ADDRESS>:4001 \
            -e ETCD_LISTEN_PEER_URLS=http://<IP_ADDRESS>:7001 \
            -e ETCD_ADVERTISE_CLIENT_URLS=http://$COREOS_PUBLIC_IPV4:4001 \
            -e ETCD_INITIAL_ADVERTISE_PEER_URLS=http://$COREOS_PUBLIC_IPV4:7001 \
            quay.io/coreos/etcd:v2.0.5"
        ExecStop=/usr/bin/docker kill etcd
    - name: fleet.service
      command: start

@jlsalvador I think a better way to solve this is to return discovery.ErrFullCluster when etcd restarted and found the WALv2_0Proxy, which is the original cause for the etcd to fallback to a proxy.

@jlsalvador The proxy should not upgrade to etcdserver anyway.

@jlsalvador I agree with @xiang90. etcd should jump out and go into the proxy mode when reboot instead of running member mode.

@xiang90 @yichengq LGTM your solution. :+1:
You can drop my pull request #2505.

@jlsalvador I will fix this shortly and let you give it a try. Thanks for reporting!


UI logs are GIGANTIC on 1.12.x branch

these logs should not be gigabytes in size. It appears that this is due to the metrics being pushed to the UI. the metrics op should be fixed.
after that let's revisit and see if there are more lines that need to be fixed

Raised a PR with the fix in ziti-tunnel-sdk-c repo https://github.com/openziti/ziti-tunnel-sdk-c/pull/306


Remove Debian 9 from test suite

It's too old - https://lists.debian.org/debian-devel-announce/2023/03/msg00006.html
Could add a prepare stage in the CI tests that changes the upstream mirror, but not worth it to me.
Not removing legacy Debian compatibility from the role, but future changes won't be tested against Debian 9.

Completed in https://github.com/artis3n/ansible-role-tailscale/pull/321