Walk the graph only once for eagerly computed nodes

This is an attempt at applying @lord's ideas in How To Recalculate a Spreadsheet to the Reactively algorithm. I wanted to better understand how signal libraries relate to incremental computation solutions outside the JS ecosystem.
I'm opening this PR hoping it will be interesting to folks researching signals and incremental computation, I don't expect it to be merged. I've been able to slightly improve performance in some of the benchmarks, but complicating the code it's likely not worth it.

Performance results on the "dynamic" and "kairo" benchmarks. Performance improves slightly in the "kairo" benchmarks, which use register effects. Performance is mostly the same on the "dynamic" benchmark that lazily read nodes without registering effects.
Here's a brief explanation of the changes.
I add a concept of "eager" nodes. Eager nodes are identified as nodes that require immediate recomputation when their sources change. In our case they are nodes that have an effect as descendant, since effects are eager. The algorithm updates eager nodes similarly to Jane Street's incremental algorithm, while using the existing Reactively algorithm for non-eager nodes. This approach aims to optimize the performance of the library by avoiding walking the graph unnecessarily.
There are two broad ways to go about incremental computation: dirty marking and topological sorting.
My impression is that most of the JS signals libraries, including Reactively, are based some variant of dirty marking.
Instead, the incremental algorithm is based on the idea of topological sorting. My understanding is that it is a better fit for eager nodes.

dirty marking: when the value of an input node changes, we walk the graph from the input to every node affected by the change, marking each of them as dirty. Before reading a node, we check whether it's dirty. If it is we walk the graph in the opposing direction recomputing each node, otherwise we can immediately return the its value.
topological sorting: assuming we have a topological order for the graph, when the value of an input node changes we can walk the graph once, recomputing each affected node. The topological order guarantees that we visit a node at most once, only after its sources. We can obtain a topological order by tracking the partial height of each node, the invariant is that the partial height of a node is larger than the partial height of its sources. More informations can be found in this talk.

There are two ways to access the value of a node: by lazily reading its value or by registering an effect.
Here's a small example:
const a = reactive(0);
const b = reactive(() => a() + 1);

for (let i = 0; i < 20; i++) {
  a.set(i);
}
// Lazily read the value of `b`, then log.
console.log(b.get());

const a = reactive(0);
const b = reactive(() => a() + 1);

// Eagerly log the value of `b`.
reactive(() => console.log(b()), { effect: true });
for (let i = 0; i < 20; i++) {
  a.set(i);
}

In the first case dirty marking should perfom best: we walk the graph down 20 times, and walk it up 1 time. b is recomputed only once.
If we were to compute nodes according to the topological order we would compute b 20 times instead.
In the second case recomputing nodes according to the topological order should perfom best: we walk the graph down 20 times, each time recomputing b.

My intuition is that if the graph were deeper and the computations more expensive, then we could get better performance by using one algorithm for lazy nodes and another for eager nodes.
Assuming there are no major mistakes in my implementation, the benchmark results in the picture above kind of back up this intuition but are not very satisfying.
My take-away is that performance is bottlenecked by how we construct the graph edges rather than the algorithm employed to walk the graph.
Some references I've found useful:

the blog posts in this repo
How To Recalculate a Spreadsheet
Seven Implementations of Incremental
mini-adapton
this salsa-rs issue
this Twitter thread by Geoffrey Litt

Not familiar with the specifics of this library, but do you have benchmarks that show a change to some input that doesn’t actually cause any value changes to some massive graph? This will be where the topological algorithm shines best; I’d guess the biggest speedup would not come from reducing the walks from 2 to 1, but from skipping walking a node altogether.

@lord That's an interesting group of benchmarks that I don't think are currently tested for. I'll look into creating them!
@giacomoran  Wow, the implementation of a topological sort is simpler than than I was expecting, thanks for sharing this!
I'm curious if either of you have already come across research for an idea I've been toying with for Solid&Reactively: async transactions. The way we're planning for this to work is to entirely fork the graph, modify the forked copy and if any reactive nodes return a promise, wait for the promises in the transaction to complete before merging the graph back in. This is similar in concept to a database transaction that happens on a separate thread, or how createTransition+Suspense works in Solid. I looked at some papers like Shake before Building to see if they handled async, but there isn't a lot on the idea of dealing with consistency of multiple transactions.

What is the purpose of forking, to allow users to access prior values, and to allow transactions to rollback? I haven't looked at this stuff in a few years, but that sounds reasonable to me. Although if multiple transactions can exist concurrently, I wonder if that could get extremely complicated very quickly

Yes, multiple transactions can occur concurrently, and the goal is to reduce recalculation of the async reactive nodes to the minimal amount (those that must be calculated if all the root nodes had been set, and then async nodes had run), which may include cancelling promises when two transactions notice a conflict.
Backing up a bit, in Solid, the idea of a transition/transaction is to be able to model things such as routing using reactive nodes, and have contents on the current route change while data is being fetched on the next route. So for example, if you have a counter component on the current route, and a JSON fetch on some other route, you want both of those to be "live" at the same time. Then, once the data has been fetched you want to destroy the counter. (The api for transactions in theory also allows for delayed execution of effects, or storing multiple copies of the graph for rollbacks like you mentioned).

@lord Interesting, yes! By walking the graph down just once, you can stop early and avoid most of the walk altogether.
@modderme123 I'm curious about your approach. I'm not too familiar with transactions, I have a few questions.
Could you implement transactions the way you are describing for a fully synchronous graph? For instance by rolling back all the changes when the recomputation hits a special node.
If so, it could be similar to what signia does, not sure if they support async nodes.
In your example, what is the main advantage of using a transaction? Over, for instance, starting the fetch in a effect and then writing the JSON data to a signal?

In your example, what is the main advantage of using a transaction? Over, for instance, starting the fetch in a effect and then writing the JSON data to a signal?

Continuing on the router example, one of the advantages is it allows you to declare asynchronous computations that aren't directly tied to what you are manipulating. So for example the custom link tags can just onClick create a transaction and navigate (and in fact we do this in solid-router), and then data can be fetched automatically in the new route (based on the location signal), while keeping the current page the same (effects that read the location signal won't be run until the transaction has finished loading data). While this could be implemented fully synchronously, I believe the inversion of control by having computations declare their own async dependencies is powerful. It is very much related to signia's transactions, except by waiting for promises before evaluating the transaction effects we lose a lot of guarantees about the original main graph changing (which will queue effects that we actually are supposed to run).

I've been thinking about this depth based marking scheme recently and discovered an interesting behavior that I couldn't seem to fix (I believe this isn't a problem for incremental because bind nodes provide a different API):
test("dynamically changes dependencies", () => {
  const s = reactive(false);
  const s2 = reactive(2);
  let callCount = 0;
  const a = reactive(() => s2.get());
  const b = reactive(() => {
    callCount++;
    return s2.get();
  });
  const c = reactive(() => (s.get() ? a.get() : b.get()), { effect: true });
  stabilize();
  expect(callCount).toBe(1);
  s.set(true);
  s2.set(3);
  stabilize();
  expect(callCount).toBe(1);
});

graph TD
  S((S)) ---> C
  A --> C
  B -.-> C

graph TD
  S((S)) ---> C
  A -.-> C
  B --> C

Current behavior
The node's sources are updated in this.update().
After calling s.set(true), the algorithm still thinks that the s2 node is eager. On s2.set(3), it therefore propagates the update to the b node.
If you call stabilize() between s.set(true) and s2.set(3), b would not be recomputed unnecessarily.
Possible solution
I took a brief look at incremental's bind, you are right, bind does more!
I've briefly reviewed the algorithm and looked at incremental's bind, so take my comment with a grain of salt.
Incrementals allows "marking" certain nodes as dynamic, using bind.
In your example, node c is dynamic. Node s is in the left-hand side of the dynamic node while a and b are in the right-hand side.
Incremental forces the left-hand side of dynamic nodes to have smaller height than the right-hand side.
Therefore, in your example where s and s2 are updated at the same time, c would be recomputed before b.
At this point, the graph can be walked upstream from c, visiting a instead of b.
The whole right-hand side is recomputed, as if we were running c for the first time.
Ref


[Enhancement] Context menu

Summary
can we expect a simplified (using it in xaml) of this POPUP MENU?
i saw it in many native apps and it's a very handy feature!!!
API Changes
I found a repo that did this but it's old and buggy!
https://github.com/SKLn-Rad/Xam.Plugin.PopupMenu
Example Screenshot
i used it a year ago when I started using Xamarin.forms in my playground app and it works fine but not customizable (like background and text color or icon for items , etc) and haven't sub menus(I don't know iOS has it but android and UWP does 👀)! plus unfortunately NOT works in UWP Release mode.

Platforms
Core/XAML
iOS
Android
UWP

@mhrastegary77 please see the pop-up view control. We have the anchor feature that I believe do what you want.

Thanks! However, we are no longer adding new features to Xamarin Community Toolkit, focusing on the .NET MAUI Community Toolkit.
Please open a New Feature Discussion to implement this feature in the .NET MAUI Community Toolkit.
I've posted more information about the Future Of Xamarin Community Toolkit here: https://devblogs.microsoft.com/xamarin/the-future-of-xamarin-community-toolkit/?WT.mc_id=mobile-0000-bramin


Required message is missing in the product carousel's title field.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
master
Issue Description
The required message is missing in the product carousel's title field.
Preconditions

Admin must be logged in.

Steps to reproduce

Go to 'Admin panel'
Click on 'Edit product carousel' inside the settings/theme
Remove the title name
See the error

Expected Result
it should show the required message if the field is blank.
Actual Result
It focuses on the required field but does not show the required message. Here
Screenshots
No response
Additional context
No response

Now, this issue is fixed. so I am closing this issue.
And I have attached a screenshot Here, for future reference.


[$500] Settings - Preferences page is visible for a moment when navigate via text link in Focus Mode popup

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.46-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/34069
Action Performed:

Open New Expensify app.
Login
Popup appears
Click on the text link “Settings”

Expected Result:
Priority mode page opens
Actual Result:
Preferences page is visible for a moment when navigate via text link in Focus Mode popup
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/81671c03-e15f-4eba-bca2-f1a2d84ab4c1
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0128371baf608716e9
Upwork Job ID:<PHONE_NUMBER>791371264
Last Price Increase: 2024-03-06

@JmillsExpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

I'm also not sure, so let's see what the community says.

@tienifr's proposal looks good to me. We also should set isCentralPaneAndBottomTabMandatory is false in the small screen
🎀 👀 🎀 C+ reviewed

@thienlnam Please uphold this issue. I still can reproduce after https://github.com/Expensify/App/pull/37421 is merged

@thienlnam I approved the proposal here. All yours

Any updates on the proposal reviews for this issue?

Waiting for a approval from @thienlnam

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@DylanDylann] The PR that introduced the bug has been identified. Link to the PR: NA
[@DylanDylann] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: NA
[@DylanDylann] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: NA
[@DylanDylann] Determine if we should create a regression test for this bug. Yes
[@DylanDylann] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
Regression Test Proposal

Open New Expensify app.
Login
Popup appears
Click on the text link “Settings”
Verify that Preferences page is not visible and priority mode page opens

Do we agree 👍 or 👎

Payment summary:

Contributor: @tienifr $500
Contributor+: @DylanDylann $500

For the regression test, isn't there a pre-requisite that you're in focus mode? I don't quite understand how that's going to prevent this from being tested and happening again.

@JmillsExpensify Yeah, we should have a pre-requisite as you said. I updated

All contributors paid


App Name
BRD
App Website
https://brd.com/
Other notes
No response

BRD is defunct wallet, was acquired by coinbase, latest version will ask user to migrate seed to another app, so if the wallet is checked older version should be used.
From https://brd.com/brd-joins-coinbase

March 4, 2022 - Peer to peer transactions will be disabled; however, users will remain able to access their 12 word backup phrase for migration to the Coinbase Wallet app.

Thanks @emanuelb. If this project is shutting down, I don't see a need for testing it any longer. Closing this issue.


fix: global replace date and author incident comments

This PR will fix scenarios where this is a i18n that contains $DATE and $AUTHOR multiple times. We do this in our project so that all content is both in english and french.
You'll notice in the below image the 2nd set of $DATE and $AUTHOR were not replaced since the /g was missing.

Thank you!


runtime: does not traceback goroutine in systemstack

Run the following program:
package main

func main() {
	for {
		_ = make([]byte, 1<<20)
	}
}

and kill it with SIGABRT. Most of the it crashes as follows. I.e. stack of the main goroutine is not unwound.
SIGABRT: abort
PC=0x447b71 m=0

goroutine 0 [idle]:
runtime.futex(0x4af628, 0x0, 0x0, 0x0, 0x0, 0x4af140, 0x0, 0x0, 0x4077dd, 0x4af628, ...)
	?:0 +0x21 fp=0x7fff603b11b8 sp=0x7fff603b11b0
runtime.futexsleep(0x4af628, 0x0, 0xffffffffffffffff)
	src/runtime/os1_linux.go:40 +0x53 fp=0x7fff603b1200 sp=0x7fff603b11b8
runtime.notesleep(0x4af628)
	src/runtime/lock_futex.go:142 +0xad fp=0x7fff603b1228 sp=0x7fff603b1200
runtime.stopm()
	src/runtime/proc1.go:1059 +0x127 fp=0x7fff603b1250 sp=0x7fff603b1228
runtime.exitsyscall0(0xc208000a00)
	src/runtime/proc1.go:2017 +0x16e fp=0x7fff603b1278 sp=0x7fff603b1250
runtime.mcall(0x7fff603b12a0)
	src/runtime/asm_amd64.s:204 +0x5e fp=0x7fff603b1288 sp=0x7fff603b1278

goroutine 1 [running]:
	goroutine running on other thread; stack unavailable

The main goroutine is actually at this point:
goroutine 1 [running]:
runtime.systemstack_switch()
	src/runtime/asm_amd64.s:216 fp=0xc20802dde0 sp=0xc20802ddd8
runtime.mallocgc(0x100000, 0x4516a0, 0x1, 0xc209254000)
	src/runtime/malloc.go:632 +0x8d9 fp=0xc20802deb0 sp=0xc20802dde0
runtime.newarray(0x4516a0, 0x100000, 0xc209354000)
	src/runtime/malloc.go:742 +0xce fp=0xc20802def0 sp=0xc20802deb0
runtime.makeslice(0x44ea00, 0x100000, 0x100000, 0x0, 0x0, 0x0)
	src/runtime/slice.go:32 +0x16c fp=0xc20802df40 sp=0xc20802def0
main.main()
	crash.go:5 +0x3c fp=0xc20802df90 sp=0xc20802df40

This makes it very hard to debug hanging programs. The stack must be unwound.
We leave g in running status during systemstack. This is probably part of the problem. Another part is why the goroutine does not return from systemstack during freezetheworld.

/cc @rsc @RLH @aclements

freezetheworld can't force a return from the system stack.  The signal handler runs on the same M as the user code, so the user code can't make any forward progress.
A simple fix to this problem is to print the stack if the G's M is identical to the caller's M.  The G can't be running, and crucially modifying its stack, if that is the case. (Unless of course the two Gs are identical, but we already skip printing in that case.)

I still got "goroutine running on other thread; stack unavailable" 2 times out of 6.

Was just about to post.
SIGQUIT: quit
PC=0x4484b1
goroutine 0 [idle]:
runtime.futex(0x11941b8, 0x0, 0x0, 0x0, 0x0, 0x1193020, 0x1, 0x41604f, 0x41626e, 0x11941b8, ...)
/usr/local/go/src/runtime/sys_linux_amd64.s:277 +0x21
runtime.futexsleep(0x11941b8, 0x0, 0xffffffffffffffff)
/usr/local/go/src/runtime/os_linux.c:49 +0x47
runtime.notesleep(0x11941b8)
/usr/local/go/src/runtime/lock_futex.go:145 +0xae
stopm()
/usr/local/go/src/runtime/proc.c:1178 +0x119
findrunnable(0xc208012900)
/usr/local/go/src/runtime/proc.c:1487 +0x562
schedule()
/usr/local/go/src/runtime/proc.c:1575 +0x151
runtime.park_m(0xc2091b4480)
/usr/local/go/src/runtime/proc.c:1654 +0x113
runtime.mcall(0x43eb94)
/usr/local/go/src/runtime/asm_amd64.s:186 +0x5a
goroutine 1 [chan receive, 10175 minutes]:
main.main()
/home/vagrant/rpmbuild/BUILD/packetbeat/main.go:269 +0x264d
goroutine 17 [syscall, 10175 minutes, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 19 [syscall, 10175 minutes]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.init·1
/usr/local/go/src/os/signal/signal_unix.go:27 +0x35
goroutine 20 [select]:
github.com/bitly/go-hostpool.(*epsilonGreedyHostPool).epsilonGreedyDecay(0xc2090f6b40)
/home/vagrant/src/github.com/bitly/go-hostpool/epsilon_greedy.go:84 +0x142
created by github.com/bitly/go-hostpool.NewEpsilonGreedy
/home/vagrant/src/github.com/bitly/go-hostpool/epsilon_greedy.go:65 +0x3a3
goroutine 8 [chan receive]:
packetbeat/outputs.(*PublisherType).UpdateTopologyPeriodically(0x1193820)
/home/vagrant/src/packetbeat/outputs/publish.go:166 +0x69
created by packetbeat/outputs.(*PublisherType).Init
/home/vagrant/src/packetbeat/outputs/publish.go:299 +0x15ff
goroutine 6 [IO wait, 8816 minutes]:
net.(*pollDesc).Wait(0xc2091b0060, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2091b0060, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2091b0000, 0xc2091b2000, 0x1000, 0x1000, 0x0, 0x7fc232dd8a20, 0xc208f35f08)
/usr/local/go/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc20804c338, 0xc2091b2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:121 +0xdc
net/http.noteEOFReader.Read(0x7fc230589218, 0xc20804c338, 0xc2091ae058, 0xc2091b2000, 0x1000, 0x1000, 0x9b33c0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1270 +0x6e
net/http.(*noteEOFReader).Read(0xc209172180, 0xc2091b2000, 0x1000, 0x1000, 0xc208012900, 0x0, 0x0)
:125 +0xd4
bufio.(*Reader).fill(0xc2091a2240)
/usr/local/go/src/bufio/bufio.go:97 +0x1ce
bufio.(*Reader).Peek(0xc2091a2240, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:132 +0xf0
net/http.(*persistConn).readLoop(0xc2091ae000)
/usr/local/go/src/net/http/transport.go:842 +0xa4
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:660 +0xc9f
goroutine 7 [select, 8816 minutes]:
net/http.(*persistConn).writeLoop(0xc2091ae000)
/usr/local/go/src/net/http/transport.go:945 +0x41d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:661 +0xcbc
goroutine 9 [chan receive, 8816 minutes]:
packetbeat/outputs.(*PublisherType).publishFromQueue(0x1193820)
/home/vagrant/src/packetbeat/outputs/publish.go:66 +0x5e
created by packetbeat/outputs.(*PublisherType).Init
/home/vagrant/src/packetbeat/outputs/publish.go:303 +0x165f
goroutine 10 [chan receive]:
packetbeat/procs.(*Process).RefreshPids(0xc209170690)
/home/vagrant/src/packetbeat/procs/procs.go:132 +0xc9
created by packetbeat/procs.NewProcess
/home/vagrant/src/packetbeat/procs/procs.go:125 +0x11d
goroutine 11 [chan receive, 10175 minutes]:
packetbeat/protos/thrift.(*Thrift).publishTransactions(0xc20805d5c0)
/home/vagrant/src/packetbeat/protos/thrift/thrift.go:1006 +0x63
created by packetbeat/protos/thrift.(*Thrift).Init
/home/vagrant/src/packetbeat/protos/thrift/thrift.go:244 +0x139
goroutine 12 [runnable]:
packetbeat/protos/mysql.read_lstring(0xc2095fde04, 0x16f, 0x16f, 0x138, 0xc2095fdf3c, 0x0, 0x37, 0x138, 0x416001, 0x0, ...)
/home/vagrant/src/packetbeat/protos/mysql/mysql.go:727
packetbeat/protos/mysql.(*Mysql).parseMysqlResponse(0xc2090efe60, 0xc2095fde04, 0x16f, 0x16f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/vagrant/src/packetbeat/protos/mysql/mysql.go:662 +0x72a
packetbeat/protos/mysql.(*Mysql).receivedMysqlResponse(0xc2090efe60, 0xc209404780)
/home/vagrant/src/packetbeat/protos/mysql/mysql.go:552 +0x728
packetbeat/protos/mysql.handleMysql(0xc2090efe60, 0xc209404780, 0xc209f37740, 0xc2092bb300, 0xc2095fde04, 0x16f, 0x16f)
/home/vagrant/src/packetbeat/protos/mysql/mysql.go:461 +0x165
packetbeat/protos/mysql.(*Mysql).Parse(0xc2090efe60, 0xc20a504b40, 0xc209f37740, 0xc20802fe00, 0xa52c00, 0xc208ba7a40, 0x0, 0x0)
/home/vagrant/src/packetbeat/protos/mysql/mysql.go:422 +0x4ff
packetbeat/protos/tcp.(*TcpStream).AddPacket(0xc209f37720, 0xc20a504b40, 0xc2091ee2c0, 0x0)
/home/vagrant/src/packetbeat/protos/tcp/tcp.go:79 +0x341
packetbeat/protos/tcp.FollowTcp(0xc2091ee2c0, 0xc20a504b40)
/home/vagrant/src/packetbeat/protos/tcp/tcp.go:162 +0xb47
packetbeat/protos/tcp.(*DecoderStruct).DecodePacketData(0xc2091ee000, 0xc2095fddc0, 0x1b3, 0x1b3, 0xc20947df80)
/home/vagrant/src/packetbeat/protos/tcp/tcp.go:328 +0x47d
packetbeat/inputs/sniffer.(*SnifferSetup).Run(0xc20804e690, 0x0, 0x0)
/home/vagrant/src/packetbeat/inputs/sniffer/sniffer.go:315 +0xc35
main.func·002(0x0, 0x7fc230587858, 0xc20804e690)
/home/vagrant/rpmbuild/BUILD/packetbeat/main.go:243 +0x45
created by main.main
/home/vagrant/rpmbuild/BUILD/packetbeat/main.go:249 +0x22d9
goroutine 13 [chan receive, 10175 minutes]:
main.func·003()
/home/vagrant/rpmbuild/BUILD/packetbeat/main.go:256 +0x3f
created by main.main
/home/vagrant/rpmbuild/BUILD/packetbeat/main.go:259 +0x256f
goroutine 34 [select]:
net/http.(*persistConn).writeLoop(0xc209443810)
/usr/local/go/src/net/http/transport.go:945 +0x41d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:661 +0xcbc
goroutine 16 [IO wait]:
net.(*pollDesc).Wait(0xc20a0c2fb0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc20a0c2fb0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc20a0c2f50, 0xc2095de000, 0x1000, 0x1000, 0x0, 0x7fc232dd8a20, 0xc208f3d800)
/usr/local/go/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc209a70930, 0xc2095de000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:121 +0xdc
net/http.noteEOFReader.Read(0x7fc230589218, 0xc209a70930, 0xc209443868, 0xc2095de000, 0x1000, 0x1000, 0x9b33c0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1270 +0x6e
net/http.(*noteEOFReader).Read(0xc2095dc0c0, 0xc2095de000, 0x1000, 0x1000, 0xc208012900, 0x0, 0x0)
:125 +0xd4
bufio.(*Reader).fill(0xc20a0f43c0)
/usr/local/go/src/bufio/bufio.go:97 +0x1ce
bufio.(*Reader).Peek(0xc20a0f43c0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:132 +0xf0
net/http.(*persistConn).readLoop(0xc209443810)
/usr/local/go/src/net/http/transport.go:842 +0xa4
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:660 +0xc9f
rax     0xca
rbx     0x11941b8
rcx     0xffffffffffffffff
rdx     0x0
rdi     0x11941b8
rsi     0x0
rbp     0x1
rsp     0x7fffec0f5be8
r8      0x0
r9      0x0
r10     0x0
r11     0x286
r12     0x6
r13     0xa
r14     0xecd2495ae
r15     0x18
rip     0x4484b1
rflags  0x286
cs      0x33
fs      0x0
gs      0x0


EMQTT cluster for Production environment, best practices

Hi,
Can you please share the best practices for a setting up EMQTT cluster for production environment.
What should be the right configuration.
Thanks in advance.

Im also looking for a short guide. Thanks.

@StarpTech @adarshlal Cooking a guide to deploy EMQ cluster on AWS, which will be released with EMQ version 2.2

@emqplus thanks, waiting for the docs to come 😃

@emqplus Is the documentation ready ? Because i am about to start with clustering and that will guide me in better ways

@emqplus I would also appreciate any documentation on deploy on AWS. Even better if there is some automation done for it (e.g.: Cloudformation, Ansible)

Hi @gihad, Deployment Guid of EMQ X: http://emqx-enterprise-docs-en.readthedocs.io/en/latest/deploy.html

@emqplus What is EMQ X? Is there a link to a website with information about it? I can only find links to emqtt here: http://emqtt.io/downloads

The default config of emqx is recommended config. You could also refer our (official docs)[http://emqtt.io/docs/v3/index.html] to customize your config


Ensure docker==6.1.3 and requests==2.28.1 to support docker-compose v1

Description
Ensure docker==6.1.3 and requests==2.28.1 to support docker-compose v1
Issues Resolved
https://github.com/opensearch-project/opensearch-build/issues/4946
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

https://build.ci.opensearch.org/job/packer-build/104/console
https://build.ci.opensearch.org/job/packer-build/105/console


{WIP} Add support for Windows (10)

Functionality described in the README now supported on Windows.
Dependencies, Platform restrictions:

Hyper-V enabled
Powershell module
64bit Windows 10 Pro, Enterprise and
Education (1511 November update, Build 10586 or later)

Todo:

Fix MobyLinuxVM ip address error / find a workaround

Spec tests (Acceptance, Classes, Defines) running on Windows

Windows-only tests added as needed

AppV builds for Windows to go along with Travis

Integration tests running against a Windows VM

docker install - Test ability to apply a docker resource (e.g. image pull) during the
same run as a docker install.  Has seemed to work, but light testing only.

docker::image - Test Docker tar

docker::image - Test image rebuild from subscription

docker::registry - Test functionality with a valid registry

Docker service / daemon configuration

Docker containers managed by Windows SCM or maybe NSSM

Windows params.pp defaults sane?

Consider lifting docker::image, docker::run, docker::exec, docker::registry
out into lib/ (type/provider).

Known Issues:

docker::image ensure latest does not validate 'unless' properly

Exec does not validate 'unless' properly

Net-ssh gem failure on Windows when trying to run acceptance tests.

Executing specs in spec\defines, spec\classes gives errors similar to:
Invalid resource type docker::exec
Could not find class ::docker for

Start_docker_app.ps1.erb and update_docker_image.ps1.erb use
& (Powershell major version > 2) rather than Invoke-Expression
(other Powershell versions).  This will break on earlier versions of
Powershell.

Ensuring absent on a docker network resource will remove the
docker network but gives the error:
Network remove error: Could not evaluate: Docker network does not
support mutating existing networks

MobyLinux ip address error:
On Windows 10, docker-engine is supported using MobyLinuxVM and Hyper-V,
as it can only run on Linux.  The VM is launched using the Docker for Windows app.
However, the app often fails on startup with the error:
Failed to start VM “MobyLinuxVM”: The VM couldn’t get an IP address after 60 tries
Setup: VMWare Fusion 8
Networking: Bridged autodetect
Hypervisor applications enabled
Hyper-V enabled
A diff of the logs for passing and failing runs reports identical output until the passing run displays a hvsock successful connection while the failing run is still waiting for an ip.  The Docker forums / github issues do not have a commonly accepted fix.
For example: https://forums.docker.com/t/failed-to-start-vm-mobylinuxvm-the-vm-couldnt-get-an-ip-address-after-60-tries/19551
This is OK with a bare metal install of Windows 10

A few questions / notes here.

If a tagged image is downloaded (ubuntu:precise for example), untagged pulls / removes
of that image do not work properly (ensure present / absent on ubuntu).
That is, docker::image will attempt to remove ubuntu (default:latest) even if ubuntu:latest
is not installed because the exec conditional matches the ubuntu in ubuntu:precise.
Likewise, docker::image will not install ubuntu (default:latest) even ubuntu:latest is
not installed.
Is this desired behavior?  Do we want to require that all image resources be tagged if there is
a tagged version of that image that is already downloaded?

What is the Windows analogue to init.d/systemd/conf.d/etc service config files?
This is needed for both container and daemon management.
Can something like NSSM provide the same functionality as the config files?
Can it do so at the container level?
Why not configure the daemon by writing daemon.json?

Do we want to start lifting more code from manifests into lib type/provider?  If not, what's the
reasoning behind the split between networks / compose and the other types?

Both latest and beta MSIs are available for download.  Currently, the module is only
pulling stable.  Should we give the option to choose?
How do you want to handle upgrades?  Currently, the user needs to ensure that the
downloaded MSI is absent in order to pull a new version.  They may also need to uninstall
the old version first.  I haven't tested this.

The issues with running defines/classes tests on my machine may just be related to env, as the
defined types / docker class are resolved properly in Travis.  I also don't see any platform
guards against Windows that would result in this behavior.

As far as I can tell, Travis is only running against puppet 3.8.7.  Do we want to test against
later versions as well?

@garethr Any thoughts?


script halts with error 'Device is not licensed yet'

Version
f5-bigip-runtime-init-1.6.0-1.gz.run
Issue
I am trying to automate build of bigip VE in Microsoft Azure using the custom-data parameter to run a script which will download and run bigip-runtime-init to install packages (as3, do, ts) and then run a DO statement. However, the script always halts with the following error in: /var/log/cloud/bigIpRuntimeInit.log:
2023-02-28T16:18:46.234Z [9906]: error: Device is not licensed yet
This seems to occur just after the script has processed extension_packages / install_operations and installed DO, AS3 and TS.
I originally had the license key in the DO statement but this failed so I also tried to put it into the YAML file itself - so I now have this:
extension_services:
  service_operations:
    - extensionType: do
      type: inline
      value:
        schemaVersion: 1.0.0
        class: Device
        async: true
        Common:
          class: Tenant
          deviceLicense:
            class: License
            licenseType: regKey
            regKey: 'SWEAX-BUFRF-XXXXX-XXXXX-XXXXX'
    - extensionType: do
      type: url
      value: file:///config/cloud/do_w_admin.json

where my do_w_admin.json (which is a DO statement) also has the license object (as per snippet below - actual reg key used has been anonymised):

    "Common": {
        "class": "Tenant",
        "deviceLicense": {
            "class": "License",
            "licenseType": "regKey",
            "regKey": "SWEAX-BUFRF-XXXXX-XXXXX-XXXXX"
        },

What is odd is that if I just log into the device once it is built and run the bigip-runtime init script manually from the command line, I get this:
2023-02-28T17:09:04.604Z [3423]: info: Creating - do 1.36.0 {"schemaVersion":"1.0.0","class":"Device","async":true,"Common":{"class":"Tenant","deviceLicense":{"class":"License","licenseType":"regKey","regKey":"SWEAX-BUFRF-XXXXX-XXXXX-XXXXX"}}}

... and this then runs and appears license the device - the DO statement is processed and the box is configured. However, when I log into it, it says it is unlicensed again!
When I check the status of DO tasks by calling: https://<device-public-ip>/mgmt/shared/declarative-onboarding/task/ it returns a 200 OK with the license showing in the response - but the box is unlicensed.

update - I've actually got around this by adding the following to the pre_onboard_enabled section of the config:
pre_onboard_enabled:
  - name: license_device
    type: inline
    commands:
      - /usr/bin/tmsh install /sys license registration-key SWEAX-BUFRF-XXXXX-XXXXX-XXXXX

I've then removed the license config from the DO statement and this seems to allow the script to fully complete.
Would be good to confirm this is the expected behavior as all the examples I've seen on clouddocs and in this git repo show the license being provisioned within the DO statement.

I'm not quite sure what is going on here. Would you mind sending me some additional info including full Runtime-Init logs and LTM logs and also your DO declaration? Please send directly to me at<EMAIL_ADDRESS>

Closing. If you would like additional assistance, please leave a message here and I will reopen.


Try to reproduce results on MIRACL dataset.

I'm interesting the BGE-M3 results on MIRACL and try to reproduce it.
I found the MIRACL dataset corpus having following format
{
    "docid": "39#0",
    "title": "Albedo",
    "text": "Albedo (meaning 'whiteness') is the measure of the diffuse reflection of solar radiation out of the total solar radiation received by an astronomical body (e.g. a planet like Earth). It is dimensionless and measured on a scale from 0 (corresponding to a black body that absorbs all incident radiation) to 1 (corresponding to a body that reflects all incident radiation)."
}

for indexing the corpus, should I use title information(prepend to text to generate an embedding) or just inference the embedding only from text?

In BGE-M3 paper, we use content = f"{title}\n{text}" to generate the embedding.


fix(@vtmn/react): add missing onChange event to VtmnDropdown

Changes description

Injected new event in VtmnDropdown's children and then called children's callback.
This event was missing according to the showcase : https://www.decathlon.design/726f8c765/v/0/p/42d824-dropdown/b/28931f
Context

This P.R aims to resolve issue #1377 by adding an onChange event to VtmnDropdown component.
Checklist

[X] Make sure you are requesting to pull a topic/feature/bugfix branch. Please, don't request directly from your main!
[X] Check commits & PR names matches our requested structure. It must follow the https://www.conventionalcommits.org pattern.
[X] Check your code additions will fail neither code linting checks.
[X] I have reviewed the submitted code.
[X] I have tested on related showcases.
[X] If it includes design changes, please ask for a review design-system-core-team-design GitHub team.

Does this introduce a breaking change?

No

Other information

Thanks! Now that's ok for me.
@Decathlon/design-system-core-contrib-web-dev can you please review?

Nice ! Thanks for having pointed out this issue I didn't notice it when testing it :S
Good afternoon :D


Pageserver is not able to start after cluster restart.

How to reproduce:
Start  cluster:
zenith init
zenith start
zenith pg start main

create table insert one record in it:
create table foo (x integer);
insert into foo values (1);

Attach debugger to safekeeper and suspend it.
Try to perform second insert:
insert into foo values (2);

Backend is now waiting confirmation of transaction.
Kill this backend with kill -9
Postmaster restarts cluster but safekeeper is not able to process WAL received from wal_proposer:
2022-02-15T15:30:07.175452Z  INFO {tid=16}:WAL acceptor{timeline=681208b415359603603f80aab59bd348}: start receiving WAL since 0/16C4518
2022-02-15T15:30:07.176990Z  INFO {tid=16}:WAL acceptor{timeline=681208b415359603603f80aab59bd348}: restart decoder from 0/16C4668 to 0/16C4518
2022-02-15T15:30:07.177129Z  WARN {tid=16}: query handler for START_WAL_PUSH postgresql://no_user:@<IP_ADDRESS>:64000 failed: failed to run ReceiveWalConn: failed to process ProposerAcceptorMessage: invalid xl_tot_len 0 at 0/16C4518

pg_waldump shows the following:
pg_waldump -s 0/16C4518<PHONE_NUMBER>00000000000001
first record is after 0/16C4518, at 0/16C45F0, skipping over 216 bytes
rmgr: XLOG        len (rec/tot):    114/   114, tx:          0, lsn: 0/016C45F0, prev 0/016C45B8, desc: CHECKPOINT_SHUTDOWN redo 0/16C45F0; tli 1; prev tli 1; fpw true; xid 0:1027; oid 24576; multi 1; offset 0; oldest xid 726 in DB 1; oldest multi 1 in DB 1; oldest/newest commit timestamp xid: 0/0; oldest running xid 0; shutdown
rmgr: Standby     len (rec/tot):     50/    50, tx:          0, lsn: 0/016C4668, prev 0/016C45F0, desc: RUNNING_XACTS nextXid 1027 latestCompletedXid 1026 oldestRunningXid 1027
pg_waldump: fatal: error in WAL record at 0/16C4668: invalid record length at 0/16C46A0: wanted 24, got 0

Should not work.
restart_after_crash should be set to true to avoid such behavior.


Contents of 'vendor/autoload.php' file

I'm trying to use this library without installing with composer, so i need the contents of vendor folder. can anyone please share me.
PS: Composer is not allowed to be installed in our server

The contents of this folder will vary depending on your PHP version. If you're not allowed composer on your server, just run 'composer install' on any machine with the same PHP version and then copy the entire vendor folder.
Alternatively, and probably easier if you're allowed, download https://getcomposer.org/composer.phar, run ./composer.phar install, then delete composer.phar again.

just run composer install on any machine with the same PHP version

It's safer to use Composer's platform settings to lock dependencies to the production environment so you get full dev/prod parity by running the same dependencies everywhere.

@curry684, i can install composer in development server, but when i try to install the library with composer, the composer uses '/tmp' directory (using sys_get_temp_dir()), which is our server system temp folder , but the folder is not allowed to be accessed by libraries. how i config composer to use some other temp directory?

With my answer you don't need to run Composer in production, you can just upload vendor recursively from any dev/CI machine.
To override the temp dir see this answer.


Spelling and grammar fixes

Go fmt must have auto formatted some lines here, changes are easily identifiable now for you though. Nothing major.

Thank you @pattmax00


Update de_DE.lang

 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.

Hi @k44du2
could you sign the CLA ?

cla not signed


Skip button on Feedback box out of alignment

Issue moved from dotnet/dotnet-api-docs#4584

Please respond to @nschmeller.

From @nschmeller on Tuesday, July 28, 2020 2:31:39 PM
Upon viewing the feedback box

and selecting either option "Yes" or "No", the following layout for further feedback comes up

The "Skip" button used to be aligned with the "Submit" button, but recently it's been to the bottom right of where it should be.
This is on the latest version of Safari.
I took a quick look through recent issues and didn't see anything similar to this, but please let me know if this is redundant.

Issue moved from dotnet/dotnet-api-docs#4584

Please respond to @gewarren.

From @gewarren on Thursday, July 30, 2020 10:45:00 PM
@nschmeller Thanks for letting us know. I'll let the appropriate team know.


pd(template): adjust evidence max_bytes

A block is comprised of 3 things: validator commitments, misbehavior evidence, and transactions.
#4597 set the maximum total block size max_bytes to 1MiB, but now it's exactly equal to misbehavior evidence max_bytes.
https://docs.rs/tendermint/0.34.1/tendermint/evidence/struct.Params.html#structfield.max_bytes

This sets the maximum size of total evidence in bytes that can be committed in a single block, and should fall comfortably under the max block bytes. The default is 1048576 or 1MB.

Should the evidence limit be decreased or the block size limit be increased?

Resolved by #4637.


[wip] feat: handle livechat message

Hello, everyone,
In this PR there's the basic to receive livechat message without the need to mention the bot.
How to use (for now):

Set env var RESPOND_TO_LIVECHAT to true
Add the bot as the only agent
Send a command (e.g: ping)

Note: It's my first contribution, so any comment is more than welcome! Also, I didn't find any contributing guide, so call me out if I miss something! :^)

 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.

Great, it could be great to be able to assign first bot and have a method to transfer to a real live agent.
The process could be:

Guest start a conversation on live chat
After sending first message, the bot is assigned to room
We want to transfer guest to a real live agent available (you are able to transfer on rocket chat GUI) after asking user or by an automate process.
A real agent is transferred.

Good luck for your work :)

@JigSawFr https://github.com/RocketChat/Rocket.Chat/pull/7136 With this, the first agent can be a bot. :^)
As for transferring, it's the next todo on the list!

Love it !

These changes on their own look good.  I know a couple of guys on the team have done some livechat stuff with hubot some how.  Going to take a peak and see if we can combine the two.

Ok I think I got it now.
So the team is actually making use of the hear listener in hubot.  The bot is added as an agent in the queue.  When its the only one available its taking all of the messages.
This code seems to then allow the bot to respond to messages that it is directly mentioned.  So something like bot what is the weather? would then be handled by the bot.
So for livechat messages it self this PR is not required.  But... it will allow mentions to be handled by the bot.

@gugahoa could you add this option to the readme and i'll go ahead and merge?
Btw thanks for the contribution!


pub run "hello world" takes 2.5 seconds

This issue was originally filed by @sethladd

Hi,
Just testing out pub run. On my macbook air, running Dart 1.6, and running a "hello world" script, it's taking 2.5 seconds. That seems long for a simple script.
~/WebstormProjects/stagehand$ dart --version
Dart VM version: 1.6.0-dev.4.0 (Fri Jul 18 06:17:25 2014) on "macos_x64"
~/WebstormProjects/stagehand$ time pub run stagehand
I'll turn it up to 11.
real	0m2.542s
user	0m2.000s
sys	0m0.368s
~/WebstormProjects/stagehand$ cat bin/stagehand.dart
main() {
  print("I'll turn it up to 11.");
}
For reference, here's a raw run:
~/WebstormProjects/stagehand$ time dart bin/stagehand.dart
I'll turn it up to 11.
real	0m0.091s
user	0m0.073s
sys	0m0.016s

This issue has been moved to dart-lang/pub#1063.


Option to delete uploads when deleting an album.

Sometimes I create albums that later I don't need. Deleting all those uploads one by one is a pain. Would be nice to make it possible to delete albums along with their contents.

This is something I want aswell. I might try to make a PR for this sometime soon™.

@PascalTemel FYI Kana is currently rewriting the entire project, so I'd wait a couple weeks before making a PR

Thanks for the info, guess Ill wait.

Already implemented in dev


Problem

Hello, could you help me please? After installing the program and specifying the path, the program does not start. When I write AmpUMI h- and other, it says that there is no such command. What is the problem?

While I'm writing answer, the program started working. Do not know how. Sorry for disturbing you.


Google Signin/Login fixing

Google Sign in is not working as when anyone click on it  he requires to fill email password as they are required field so I fix this if you assign this issue to me

Assign this with gssoc-extd and level 3


TypeError: init() got an unexpected keyword argument 'compute_dtype'

Reminder

[X] I have read the README and searched the existing issues.

System Info
llamafactory version: 0.8.4.dev0
Reproduction
training config
    --deepspeed ${ds_config_path} \
    --stage dpo \
    --pref_beta 0.1 \
    --pref_loss sigmoid \
    --model_name_or_path ${model_name_or_path}  \
    --do_train \
    --dataset ${dataset} \
    --dataset_dir ${dataset_dir} \
    --preprocessing_num_workers 32 \
    --cutoff_len ${cutoff_len} \
    --template qwen \
    --finetuning_type ${finetuning_type} \
    --output_dir ${output_dir} \
    --overwrite_output_dir \
    --learning_rate 5e-06 \
    --overwrite_output_dir \
    --num_train_epochs 3 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 1 \
    --save_steps 1 \
    --save_strategy epoch \
    --warmup_ratio 0.1 \
    --weight_decay 0.01 \
    --bf16 True \
    --save_only_model \
    --plot_loss True \
    --gradient_checkpointing True  2>&1 | tee $log_file

ERROR MESSAGE:
09/03/2024 01:15:45 - INFO - llamafactory.model.model_utils.checkpointing - Gradient checkpointing enabled.
09/03/2024 01:15:45 - INFO - llamafactory.model.model_utils.attention - Using vanilla attention implementation.
09/03/2024 01:15:45 - INFO - llamafactory.model.adapter - ZeRO3 / FSDP detected, remaining trainable params in float32.
09/03/2024 01:15:45 - INFO - llamafactory.model.adapter - Fine-tuning method: Full
09/03/2024 01:15:45 - INFO - llamafactory.model.loader - trainable params: 7,615,616,512 || all params: 7,615,616,512 || trainable%: 100.0000
Traceback (most recent call last):
  File "src/train.py", line 28, in <module>
    main()
  File "src/train.py", line 19, in main
    run_exp()
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/tuner.py", line 56, in run_exp
    run_dpo(model_args, data_args, training_args, finetuning_args, callbacks)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/dpo/workflow.py", line 58, in run_dpo
    ref_model = create_ref_model(model_args, finetuning_args)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/trainer_utils.py", line 121, in create_ref_model
    ref_model_args = ModelArguments.copyfrom(model_args)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/hparams/model_args.py", line 266, in copyfrom
    new_arg = cls(**arg_dict)
TypeError: __init__() got an unexpected keyword argument 'compute_dtype'
[2024-09-03 01:15:49,372] torch.distributed.elastic.multiprocessing.api: [ERROR] failed (exitcode: 1) local_rank: 0 (pid: 418107) of binary: /opt/conda/bin/python
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/opt/conda/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/run.py", line 810, in <module>
    main()
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/elastic/multiprocessing/errors/__init__.py", line 346, in wrapper
    return f(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/run.py", line 806, in main
    run(args)
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/run.py", line 797, in run
    elastic_launch(
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 134, in __call__
    return launch_agent(self._config, self._entrypoint, list(args))
  File "/opt/conda/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 264, in launch_agent
    raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

Expected behavior
No response
Others
No response

lora is ok. full parameter training has some bugs.

btw, when training on lora 63%, get some error exit. I tried to train on dpo_zh_demo dataset.
{'loss': 0.0, 'grad_norm': 0.0, 'learning_rate': 0.0, 'rewards/chosen': nan, 'rewards/rejected': nan, 'rewards/accuracies': 0.0, 'rewards/margins': nan, 'logps/rejected': nan, 'logps/chosen': nan, 'logits/rejected': nan, 'logits/chosen': nan, 'epoch': 1.79}
 63%|██████▎   | 17/27 [02:26<01:21,  8.13s/it]Traceback (most recent call last):
Traceback (most recent call last):
  File "src/train.py", line 28, in <module>
  File "src/train.py", line 28, in <module>
Traceback (most recent call last):
  File "src/train.py", line 28, in <module>
Traceback (most recent call last):
  File "src/train.py", line 28, in <module>
    main()
  File "src/train.py", line 19, in main
    main()
  File "src/train.py", line 19, in main
    main()
  File "src/train.py", line 19, in main
    main()
  File "src/train.py", line 19, in main
    run_exp()
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/tuner.py", line 56, in run_exp
    run_exp()
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/tuner.py", line 56, in run_exp
    run_exp()
    run_exp()
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/tuner.py", line 56, in run_exp
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/tuner.py", line 56, in run_exp
    run_dpo(model_args, data_args, training_args, finetuning_args, callbacks)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/dpo/workflow.py", line 79, in run_dpo
    run_dpo(model_args, data_args, training_args, finetuning_args, callbacks)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/dpo/workflow.py", line 79, in run_dpo
    run_dpo(model_args, data_args, training_args, finetuning_args, callbacks)
run_dpo(model_args, data_args, training_args, finetuning_args, callbacks)
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/dpo/workflow.py", line 79, in run_dpo
  File "/ossfs/workspace/workspace/LLaMA-Factory-for-DPO/src/llamafactory/train/dpo/workflow.py", line 79, in run_dpo
    train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 1885, in train
    train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 1885, in train
    train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 1885, in train
    train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 1885, in train
    return inner_training_loop(
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 2216, in _inner_training_loop
    return inner_training_loop(
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 2216, in _inner_training_loop
    return inner_training_loop(
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 2216, in _inner_training_loop
    return inner_training_loop(
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 2216, in _inner_training_loop
    tr_loss_step = self.training_step(model, inputs)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 3250, in training_step
    tr_loss_step = self.training_step(model, inputs)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 3250, in training_step
    tr_loss_step = self.training_step(model, inputs)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 3250, in training_step
    tr_loss_step = self.training_step(model, inputs)
  File "/opt/conda/lib/python3.8/site-packages/transformers/trainer.py", line 3250, in training_step
    self.accelerator.backward(loss)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/accelerator.py", line 2151, in backward
    self.accelerator.backward(loss)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/accelerator.py", line 2151, in backward
    self.accelerator.backward(loss)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/accelerator.py", line 2151, in backward
    self.accelerator.backward(loss)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/accelerator.py", line 2151, in backward
    self.deepspeed_engine_wrapped.backward(loss, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/utils/deepspeed.py", line 175, in backward
    self.engine.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2157, in step
    self.deepspeed_engine_wrapped.backward(loss, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/accelerate/utils/deepspeed.py", line 175, in backward
    self.engine.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2157, in step
        self.deepspeed_engine_wrapped.backward(loss, **kwargs)self.deepspeed_engine_wrapped.backward(loss, **kwargs)

  File "/opt/conda/lib/python3.8/site-packages/accelerate/utils/deepspeed.py", line 175, in backward
  File "/opt/conda/lib/python3.8/site-packages/accelerate/utils/deepspeed.py", line 175, in backward
    self.engine.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2157, in step
    self.engine.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2157, in step
    self._take_model_step(lr_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2063, in _take_model_step
    self._take_model_step(lr_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2063, in _take_model_step
    self._take_model_step(lr_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2063, in _take_model_step
    self._take_model_step(lr_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/engine.py", line 2063, in _take_model_step
    self.optimizer.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1963, in step
    self.optimizer.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1963, in step
    self.optimizer.step()
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
        ret_val = func(*args, **kwargs)self.optimizer.step()

  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1963, in step
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1963, in step
    if self._overflow_check_and_loss_scale_update():
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
    if self._overflow_check_and_loss_scale_update():
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1911, in _overflow_check_and_loss_scale_update
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1911, in _overflow_check_and_loss_scale_update
    if self._overflow_check_and_loss_scale_update():
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1911, in _overflow_check_and_loss_scale_update
    if self._overflow_check_and_loss_scale_update():
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/utils/nvtx.py", line 15, in wrapped_fn
    ret_val = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 1911, in _overflow_check_and_loss_scale_update
    self._update_scale(self.overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 2298, in _update_scale
    self._update_scale(self.overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 2298, in _update_scale
    self._update_scale(self.overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 2298, in _update_scale
    self._update_scale(self.overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/zero/stage3.py", line 2298, in _update_scale
    self.loss_scaler.update_scale(has_overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 175, in update_scale
    self.loss_scaler.update_scale(has_overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 175, in update_scale
    raise Exception(
    raise Exception(
Exception: Current loss scale already at minimum - cannot decrease scale anymore. Exiting run.
    self.loss_scaler.update_scale(has_overflow)
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 175, in update_scale
Exception: Current loss scale already at minimum - cannot decrease scale anymore. Exiting run.
    raise Exception(
    self.loss_scaler.update_scale(has_overflow)
Exception: Current loss scale already at minimum - cannot decrease scale anymore. Exiting run.
  File "/opt/conda/lib/python3.8/site-packages/deepspeed/runtime/fp16/loss_scaler.py", line 175, in update_scale
    raise Exception(
Exception: Current loss scale already at minimum - cannot decrease scale anymore. Exiting run.
 63%|██████▎   | 17/27 [02:33<01:30,  9.04s/it]
[2024-09-03 01:58:58,537] torch.distributed.elastic.multiprocessing.api: [WARNING] Sending process 448150 closing signal SIGTERM
[2024-09-03 01:58:58,538] torch.distributed.elastic.multiprocessing.api: [WARNING] Sending process 448152 closing signal SIGTERM
[2024-09-03 01:58:58,538] torch.distributed.elastic.multiprocessing.api: [WARNING] Sending process 448153 closing signal SIGTERM
[2024-09-03 01:58:59,152] torch.distributed.elastic.multiprocessing.api: [ERROR] failed (exitcode: 1) local_rank: 1 (pid: 448151) of binary: /opt/conda/bin/python

I had the same problem, but I rolled back the deepspeed=0.13.5 and fixed the problem.
When you encounter a torch.*. api（deepspeed/elasticity/elastic_agent.py） import error after rolling back the version, manually modify the source code as follows to resolve the error.

fixed


refactor GitStorage with FileBased trait

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

24 of 24 (100.0%)  changed or added relevant lines in 10 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.001%) to 98.385%

Totals

Change from base Build<PHONE_NUMBER>2:
-0.001%

Covered Lines:
55573

Relevant Lines:
56485

💛  - Coveralls


Add ActionCommentPull action

Adds ActionCommentPull action to distinguish between a comment on an issue and on a pull request
Before when commenting on a pull:

After this PR:

I believe this could also fix links in the case where issues redirect elsewhere by using /pulls directly

Codecov Report

Merging #9456 into master will decrease coverage by 0.01%.
The diff coverage is 36.36%.

@@            Coverage Diff             @@
##           master    #9456      +/-   ##
==========================================
- Coverage   41.52%   41.51%   -0.02%
==========================================
  Files         570      570
  Lines       74642    74644       +2
==========================================
- Hits        30996    30988       -8
- Misses      39806    39811       +5
- Partials     3840     3845       +5

Impacted Files
Coverage Δ

models/action.go
57.95% <ø> (ø)
:arrow_up:

modules/notification/mail/mail.go
22.38% <0%> (ø)
:arrow_up:

modules/templates/helper.go
39.95% <0%> (ø)
:arrow_up:

services/mailer/mail.go
46.28% <100%> (ø)
:arrow_up:

models/repo_watch.go
65.86% <100%> (ø)
:arrow_up:

modules/notification/action/action.go
35.65% <28.57%> (-0.71%)
:arrow_down:

services/pull/check.go
48.59% <0%> (-5.64%)
:arrow_down:

models/repo_list.go
73.14% <0%> (-0.93%)
:arrow_down:

models/webhook.go
70.46% <0%> (+1.06%)
: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 8149ed7...4e0f521. Read the comment docs.


Location on CHR2 for translocations

Hello,
Thanks for your tool. I was wondering if there is any way for translocations to get the location on both chromosomes. At the moment I don't see this information in the VCF file (only CHR2). Thank you.
P.S. I think the VCF format would encode these with SVTYPE=BND for each breakend. For my case I don't need the breakend information, but it would be great to get the location.

Hi,
There should be an END column in the INFO field, in the example below END=119401195:
1	119401194	623	C	<TRA>	.	PASS	SVMETHOD=DYSGUv1.3.5;SVTYPE=TRA;END=119401195;CHR2=2;GRP=11456;NGRP=1;CT=3to3;CIPOS95=0;CIEND95=0;CONTIGA=CTAGATGACACGTTAGTGGGTGCAGCGCACCAGCATGGCACATGTATACATATGTAACTAACCTGCACAATGTGCACATGTACCCTAAAGCTTAGAGTATAATAAAAAAAAAAAatTAAAAAAAAAAAAAATGATACATGTATACAATGTGGTATGATTAAATTAGGCTAATTAACATATCCTTCGCCTCACATACTTATCATTACGTTGTAATATATTTTCATATTGGGTAAAATTAAATGTATTACTAAATTGACTTATTCTTTTTTTACTTTTTTAATGCAGCTATTAAAATATTTAAGATCAaaaaaaaaaaaaaataaaaaaaaaaaaaaaaaaa;KIND=extra-regional;GC=25.29;NEXP=32;STRIDE=1;EXPSEQ=aaaaaaaaaaaaaataaaaaaaaaaaaaaaaa;RPOLY=50;OL=0;SU=87;WR=0;PE=87;SR=0;SC=41;BND=0;LPREC=1;RT=pe	GT:GQ:MAPQP:SU:WR:PE:SR:SC:BND:COV:NEIGH10:PS:MS:RMS:RED:BCC:FCC:ICN:OCN:PROB	1/1:200:58.14:87:0:87:0:41:0:2.13:0:142:32:0:0:332:0.0:0.75:0.5:0.547
Not sure if that answers your question.

There is now an extra column in the INFO field called CHR2_POS. I will upload a release to pypi over the weekend. Thanks again for raising this.


Add Metadata SDK , Set storage function

Proposed changes

When uploading Asset, Metadata, user can be set storage to krn

caver.kas.metaData.uploadAsset(file [ , krn ])
caver.kas.metaData.uploadMetadata(metadata [ , krn ])
caver.kas.metaData.uploadMetadataWithAsset(metadata [ , krn ])

uploadKIPMetadataWithAsset If you put an image file in metadata json, upload asset and save url to metadata.

Types of changes
Please put an x in the boxes related to your change.

[ ] Bugfix
[x] New feature or enhancement
[ ] Others

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING GUIDELINES doc
[x] I have signed the CLA
[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)
[x] Any dependent changes have been merged and published in downstream modules

cc @luffy-choi


Cannot load balance multiple instances of the same Docker container image

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
I am running a Docker container that uses labels and the Traefik 2 Docker provider to set up the router and services. My build service generates the container image and sets the labels:
"traefik.enable": "true",
"traefik.http.middlewares.prefix-main-app-2.stripprefix.forceSlash": "false",
"traefik.http.middlewares.prefix-main-app-2.stripprefix.prefixes": "/app",
"traefik.http.routers.router-main-app-2.middlewares": "prefix-main-app-2",
"traefik.http.routers.router-main-app-2.priority": "2",
"traefik.http.routers.router-main-app-2.rule": "Host(\"www.example.com\") && PathPrefix(\"/app/\")",
"traefik.http.routers.router-main-app-2.tls": "true",
"traefik.http.routers.router-main-app-2.tls.certresolver": "lets-encrypt",
"traefik.http.routers.router-main-app-2.tls.domains[0].main": "www.example.com"

On my server I run a single instance of the container image, and that works great. I then tried to run multiple instances of the same container image, expecting Traefik 2 to notice that the same image was running and then load balance using the standard round robin load balancer strategy.
What did you see instead?
The moment I run a second instance of the same container, I get the error:
Jan 12 07:21:42 fleet-1 traefik[568271]: time="2022-01-12T07:21:42Z" level=error msg="Router defined multiple times with different configurations in [main-app-web-1-6f8022a0b0630fd49b6001c1d66b0902c6024033acab8c8b56f818bb8c53ee05 main-app-web-1-upcoming-29925-990b74d5717d780c2246567bb59b31ab887f992cde3c3b38d78eb59aa531a578]" providerName=docker routerName=router-main-app-2

If I was using the file providers, I'd use the loadbalancer.servers option, as documented at https://doc.traefik.io/traefik/v2.0/routing/services/: unfortunately that documentation ONLY covers the File provider, and there are NO Docker provider examples for load balancing. That option clearly doesn't work when using labels.
Is load balancing not possible using the Docker provider and labels? Would I need to use one of the KV providers?
What version of Traefik are you using?
Version:      2.5.6
Codename:     brie
Go version:   go1.17.5
Built:        2021-12-22T16:30:52Z
OS/Arch:      linux/amd64
What is your environment & configuration?
[entryPoints]
  [entryPoints.web]
    address = ":80"
    [entryPoints.web.http.redirections.entryPoint]
      to = "websecure"
      scheme = "https"

  [entryPoints.websecure]
    address = ":443"

  [entryPoints.internal]
    address = "<IP_ADDRESS>:8888"

[log]
  level = "WARN"

[accessLog]

[metrics]
  [metrics.prometheus]
    addEntryPointsLabels = true
    addServicesLabels = true
    addRoutersLabels = true

[certificatesResolvers.lets-encrypt.acme]
  email =<EMAIL_ADDRESS>  storage = "/etc/traefik/acme/acme.json"
  [certificatesResolvers.lets-encrypt.acme.tlsChallenge]

[providers]
  [providers.docker]
    endpoint = "unix:///var/run/docker.sock"
    watch = true
    exposedByDefault = false

Add more configuration information here.
If applicable, please paste the log output in DEBUG level
No response

I did look at https://iximiuz.com/en/posts/traefik-canary-deployments-with-weighted-load-balancing/: it requires the use of the file provider. I can attach a different label to each instance when it is launched: is there a way to use the equivalent of http.services.my-service.loadBalancer.servers as documented at https://doc.traefik.io/traefik/v2.0/routing/services/ when using Docker container labels?

Hello @fomojola,
Thanks for your interest in Traefik!
Traefik tries to detect when 2 (or more) services have the same configuration in order to make a loadbalancer between those services (e.g. when scaling up deployments on docker-compose).
Also, when building a router with no user defined service, Traefik will generate the service name using values from the context(i.e. the service name and the docker compose project for docker-compose).
For example, given this service:
services:
  whoami:
    image: traefik/whoami
    labels:
      traefik.http.routers.whoami.rule: Host(`whoami.localhost`)

Traefik will generate the service name whoami-example if running docker compose like: docker-compose -p example up.
In the example below, there are 2 definition of the same router but with different services.
In this case, I get the error described in the issue:
version: '3.6'
services:
  traefik:
    image: traefik:v2.6
    command:
      - --providers.docker
      - --log.level=DEBUG
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  whoami: # service name: whoami-example
    image: traefik/whoami
    labels:
      traefik.http.routers.whoami.rule: Host(`whoami.localhost`)
  not-whoami: # service name: not-whoami-example
    image: traefik/whoami
    labels:
      traefik.http.routers.whoami.rule: Host(`whoami.localhost`)

> docker-compose up
...
example-traefik-1     | time="2022-00-00T00:00:00Z" level=error msg="Router defined multiple times with different configurations in [not-whoami-example-5d0d871caa159531c32c84ad43d06b73996f133f595faf4b5e8c03e2c83dedfd whoami-example-991695a2af818413afe9eefbfbdcb96203adc9a669554ba9bfb6b8cb3d1afab8]" routerName=whoami providerName=docker
...

To fix this, each docker services should to specify the same service name.
This allows Traefik to match routers with one another and load balance between them.
Here is a fixed version of the example above:
services:
  whoami:
    image: traefik/whoami
    labels:
      traefik.http.routers.whoami.rule: Host(`whoami.localhost`)
      traefik.http.services.whoami-service.loadbalancer.server.port: 80 # set the service name to whoami-service
  not-whoami:
    image: traefik/whoami
    labels:
      traefik.http.routers.whoami.rule: Host(`whoami.localhost`)
      traefik.http.services.whoami-service.loadbalancer.server.port: 80 # set the service name to whoami-service


Tooltip styled with position initial will fail on touch devices

This is a bit complex issue, so I created a plunker to demonstrate it. The main culprit of this behavior is the position: initial applied by me to the tooltip.
The only solution I have found so far, is not to immediately remove the tooltip in removeTooltip function but instead to $timeout the removal after say 10 milliseconds.
http://embed.plnkr.co/0XjQ5dKkJcv5eQXlZAn4/preview

A pull request against my fork is at
https://github.com/nadersoliman/angular-foundation/pull/1
If you like the solution I can open a pull request for the main repo


HTTP 500 when using search api

Hi, I use the api to get some useful information for my images.
A few chance, I got the error.
POST https://trace.moe/api/search
ResponseError (Code 500 - "Error reading image from URL: http://<IP_ADDRESS>/pic/1556121770.7361.jpg: null"):

Want to know how did it happen or how can I detect my images to find out problem images.

The image I post

What API call are you making that returns this error?

What API call are you making that returns this error?

Sorry, I lost it. It happen when I use the search api.
POST https://trace.moe/api/search

This is not an API specific error, using the same image with webpage I've also got the same error.
From server side, the temp image for this is empty (0 file size).
It seems something is wrong when cropping black border, resulting an image with 0 width height

Thank you!


The highlight icons are out of High Contrast area when High Contrast is on

Repro steps:
•	Navigate to https://pxt.microbit.org/beta
•	Drag the "show icons" into "forever"
•	Right More…->High Contrast On
Expected result: The highlight icons should be in Whiter area
Actual result: The highlight icons are out of Whiter area

Won't fix. This is very minor issue and we don't intend to fix this.


Top score getting added twice on first play.

Uninstall app. Clear data. Install v0.3 APK. Play game. Top score is displayed twice. Second game play is showing properly. Find screenshot attached.

Not replicating! Closed.


CHLAUTH(DEV.ADMIN.SVRCONN) map 'admin' to 'mqm' and 'mqm' doesn't exist in container

Container run under user '1001' instead of mqm, so chlauth needs to be mapped to user '1001', this way it works


ignore autogenerated .jscs files

When adding Broccoli-JSCS to our Ember project, Ember-data-factory-guy breaks our app because it doesn't filter the auto generated JSCS files. This only occurred with the following setting for broccoli-jscs in the broccoli.js.
jscsOptions: {
  enabled: true,
  disableTestGenerator: false
}

With this PR the Ember app also ignores the auto generated files made by Broccoli-JSCS.

Your reminding me that I did not like that setup in the first place .. need to find a better way to import the factory files and only the factory files.  Can you think of a better way to do it ( off the top of your head ) before I merge this?

No not right now but I'll think about it, maybe I'll come up with something.

Ok .. I am going to ponder it again too .. want me to merge this and make new patch version in the meantime?

Yes please.

new version 1.0.8 is ready

Thanks


Does this work on iOS web?

Tried to use https://composegears.github.io/Tiamat/ from an iPad using 17.4.1 and Safari.
The screen shows up blank.
Works fine on my mac.

@realityexpander
As far as i know - safaris have bad WASM support, as for now it works good on Chrome
We will perform some tests later on after finishing 1.1.0 release

• Added message in case browser is not supported

example from Safari


Implement basic Semi-Graphics 4 mode

This PR implements a simple semi-graphics 4 mode for the emulator. The semi-graphics 4 mode is tied to the emulator memory at address $0200. Refresh is tied to fire at the rate of 60 Hz.

Codecov Report

Merging #3 into master will decrease coverage by 5.23%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master       #3      +/-   ##
============================================
- Coverage     93.76%   88.52%   -5.24%
  Complexity      603      603
============================================
  Files             9       14       +5
  Lines          2164     2292     +128
  Branches        146      154       +8
============================================
  Hits           2029     2029
- Misses          106      234     +128
  Partials         29       29

Impacted Files
Coverage Δ
Complexity Δ

...ava/ca/craigthomas/yacoco3e/components/Memory.java
39.2% <ø> (ø)
16 <0> (ø)
:arrow_down:

...yacoco3e/listeners/QuitMenuItemActionListener.java
0% <0%> (ø)
0 <0> (?)

...n/java/ca/craigthomas/yacoco3e/components/CPU.java
97.83% <0%> (-0.22%)
480 <0> (ø)

...in/java/ca/craigthomas/yacoco3e/runner/Runner.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...java/ca/craigthomas/yacoco3e/runner/Arguments.java
0% <0%> (ø)
0 <0> (?)

...ava/ca/craigthomas/yacoco3e/components/Screen.java
0% <0%> (ø)
0 <0> (?)

.../ca/craigthomas/yacoco3e/datatypes/ScreenMode.java
0% <0%> (ø)
0 <0> (?)

...a/ca/craigthomas/yacoco3e/components/Emulator.java
0% <0%> (ø)
0 <0> (?)

... and 3 more

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 7870036...2fa1280. Read the comment docs.


documentation missing equals signs

The example in the top level readme says:
chartVersion '1.2.3'

But that should be
chartVersion = '1.2.3'

There are three or four variables that make this mistake.

Thanks @jaybuff, the change has been merged to master.


HHH-18480 ClassCastException when updating a Blob with Oracle

https://hibernate.atlassian.net/browse/HHH-18480

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license
and can be relicensed under the terms of the LGPL v2.1 license in the future at the maintainers' discretion.
For more information on licensing, please check here.

https://hibernate.atlassian.net/browse/HHH-18480

I think we have the same issue with ClobJavaType and NClobJavaType.

Thanks @beikov, ClobJavaType and NClobJavaType should be fixed


Implement code to generate employment accessibility

inputs:

vector of job totals per lad
OD matrix of generalised travel costs
output:
vector of accessibilities

NB this commit has broken something, offending line of code is simim.py.:189 (or possibly simim.py:66)

Its the od geographies - CM LAD codes not LAD codes, merge deletes all but Scotland data


Fix #2605: Wording of no notification message

Description (required)
Fixes #2605
Tests performed (required)
Tested 2.10.1-debug-fix-2605~82bb45226
Screenshots showing what changed (optional - for UI changes)

Before
After

Codecov Report

Merging #2606 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #2606   +/-   ##
======================================
  Coverage    2.69%   2.69%
======================================
  Files         258     258
  Lines       12315   12315
  Branches     1115    1115
======================================
  Hits          332     332
  Misses      11957   11957
  Partials       26      26

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 5c4278b...82bb452. Read the comment docs.


Sema: (Mostly) check conformance availability

If a conformance is defined in an extension, we now look for
references to the conformance in types and expressions and
respect's the extension's availability (or deprecation, etc).
The conformance checker itself still needs to check conformance
availability of associated conformances and the like; that will
be a separate change.
Note that conformances defined on types don't require any
special handling, since they are as available as the
intersection of the conforming type and the protocol.
Progress on rdar://problem/35158274.

@swift-ci Please test

@swift-ci Please test source compatibility

@xymus Source compatibility picked up a problem where Alamofire has a usage of a conditionally-unavailable conformance. I'm pretty convinced this is a bug in Alamofire, but I've decided to downgrade these violations to warnings. I added a new -enable-conformance-availability-errors flag to treat these as errors; I hope we can make it the default in the future.

@swift-ci Please smoke test

@swift-ci Please test source compatibility


modules: add heatshrink as external module

Origin
Name of project hosting the original open source code
heatshrink: data compression/decompression library.
Issue
#61822
Purpose
Heatshrink is a data compression/decompression library for embedded/real-time systems.
Mode of integration
As external module, as described in heatshrink: zephyr-integration.
Maintainership
@RomainPelletant
@ClovisCorde
Pull Request
this PR
Description
See the heatshrink API.
The primary functionality of heatshrink is to compress and decompress data.
Heatshrink is chosen because it has a small footprint memory (unlinke LZ4).
Dependencies
No dependencies.
Revision
bce543f477fa50cb1af5375f0c4271fd0ec83a93
(https://github.com/kickmaker/heatshrink contains modification for zephyr)
License
Please use an SPDX identifier (https://spdx.org/licenses/), such as
BSD-3-Clause
ISC License

What is the purpose of adding g this module? Will there be any in-tree usage of this library?

What is the purpose of adding g this module? Will there be any in-tree usage of this library?

I would assume it to be an alternative/replacement to lz4, so at a minimum adding a code sample (I don't think lz4 has more than a single sample as in-tree usage?)

What is the purpose of adding g this module? Will there be any in-tree usage of this library?

I would assume it to be an alternative/replacement to lz4, so at a minimum adding a code sample (I don't think lz4 has more than a single sample as in-tree usage?)

The purpose of adding heatshrink as a module is indeed to have an alternative to lz4 because lz4 is heavy for memory footprint and is not suitable for embedded systems with really constraint memory.
There is a sample in our heatshrink repository that is inspired by lz4.

Hi guys, I pushed the sample for heatshrink compression

Please address the failed CI checks if you would like to bring this module to the TSC for review

Hi @MaureenHelm since I'm pushing heatshrink as an external module the Kconfig for heatshrink is not defined inside zephyr so when the CI will run it won't know configs like "CONFIG_HEATSHRINK" because it's defined in the external project : https://github.com/kickmaker/heatshrink
How can I fix that problem? thanks

IMHO, I see two options:

removing the sample to avoid adding CI tests (as external modules, Heatshrink's KConfig is not imported/not in west.yml)
adding heatshrink module as extra_args in sample.yml

Someone could help us taking the right decision please? :)

Given https://github.com/zephyrproject-rtos/zephyr/issues/61822#issuecomment-1770459150, can this be closed?

The comment suggested to provide it as external module and this is done in this PR so I see no reason to close this.
We are waiting for an answer about external module process integration.
Thanks


Allow disabling default livebook theme

By default the look is the same as before:

With theme disabled:

With default theme and tucan dark theme (the axes labels are not visible since they are overridden by the default theme):

With theme disabled and tucan dark theme:

Closes #55

I have not pushed the bundle, let me know if you want me to do it. Also it is an opportunity to bump vega-lite versions 😄

@jonatanklosko updated and force-pushed

🚀

Released in v0.1.12.


Fix test suite bug for redefined quotes

Describe your changes :

I worked on the ..... because ...

Type of change :

[x] Bug fix
[x] Improvement
[x] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Frontend Preview (Screenshots) :
For frontend related change, please link screenshots of your changes preview! Optional for backend related changes.

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

When we convert table to orm object we use the same MetaData store by default. So if two tables in 2 different database are created as orm object then it will try to replace that existing object. It is a similar issue we had back then with the profiler.
Let me know if that makes sense.

@pmbrull When we convert table to orm object we use the same MetaData store by default. So if two tables in 2 different database are created as orm object then it will try to replace that existing object. It is a similar issue we had back then with the profiler.
Let me know if that makes sense.

ooh oki got it, thanks for explaining!


Move crds to config/crd/

Generate CRDs in the standard path config/crd and use it as the source of truth.

I'm assuming this is for manifests? And where does this standard come from. The helm chart is currently the source of truth, since it generates the manifests.


Simple Java connection fails with "No Suitable Driver"

To reproduce:
Have working KSQLDB:
http://<IP_ADDRESS>:8088/info
with page response:
KsqlServerInfo |
version | "0.9.0"
kafkaClusterId | "0q27dVhgTmKdsdKyO3u28Q"
ksqlServiceId | "default_"
Java Code (myapp.java, simplest code, trying just to connect):
...
Class.forName("com.github.mmolimar.ksql.jdbc.KsqlDriver");
conn = DriverManager.getConnection(DB_URL);
...
Java app run:
java -cp ".:./seed-project-assembly-1.2.0.jar" myapp
Fails with Exception:
java.sql.SQLException: No suitable driver found for jdbc:ksql://<IP_ADDRESS>:8088
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
at KSQLSample.main(KSQLSample.java:18)

I was able to build driver with suggested Oracle JDK8 version (while build fails with Oracle JDK14). However when running simple Java code above (in either Oracle JDK8, 14 or OpenJDK11 and 13), trying to connect to SQLDB with new built driver, I still see the same error java.sql.SQLException: No suitable driver found at DriverManager.java:689), as with old driver (built with OpenJDK 13).
I do not quite understand suggestion to match KSQL versions. What I see in driver built.sbt is
val ksqlVersion = "5.4.0", but no ksqldb version.
There is no matching settings in the reference confluent docker compose file, only:
image: confluentinc/ksqldb-server:0.9.0
Some more help would be appreciated.

This works with JDK8. Try register the driver in this another way java.sql.DriverManager.registerDriver(new com.github.mmolimar.ksql.jdbc.KsqlDriver).
For this version, you should use ksqldb 0.7.0.

Thanks, a lot. Yes, I have now simple Java app running with successful ksqldb query, under Oracle Java 8, with driver compiled also using Oracle Java 8, and having ksldb version = 0.7 in docker (changing ksqldb version in docker-compose.yaml was the key).
Driver dependency on Oracle JDK 8 is fine, but could you maybe suggest any workaround (or is there any planned updates) to support apps that require higher JDK version?

Yes, there will a new version in a month or so.


The package is being compiled, please try again in 3-5 minutes

> Task :publishHuaweiAppGalleryHuaweiRelease
Huawei AppGallery Publishing API: Generate Config
Huawei AppGallery Publishing API: Found build file: `OrganicMaps-21090106-huawei-release.aab`
Huawei AppGallery Publishing API: Get Access Token
Huawei AppGallery Publishing API: Get App ID
Huawei AppGallery Publishing API: Get Upload Url
Huawei AppGallery Publishing API: Upload build file '/home/runner/work/organicmaps/organicmaps/android/build/outputs/bundle/huaweiRelease/OrganicMaps-21090106-huawei-release.aab'
Huawei AppGallery Publishing API: Update App File Info
Huawei AppGallery Publishing API: Submit Review

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':publishHuaweiAppGalleryHuaweiRelease'.
> SubmitResponse(ret=Ret(code=204144727, msg=[AppGalleryConnectPublishService]The package is being compiled, please try again in 3-5 minutes))

Plugin: 1.3.0 (latest)
Gradle: 7.0.2
ADP: 7.0.1

I have the same issue, had posted it here: https://github.com/cianru/huawei-publish-gradle-plugin/issues/24
But I forgot to reply to @cosic so he closed it 😄
It was the case for me with plugin version 1.2.4, also tried with 1.2.5 and still the same.
Gradle tried 7.0 and 7.2, same.
AGP 4.2.2.

@rtsisyk Hi! Have you tried using the 1.3.1-SNAPSHOT version?

Fixed at v1.3.1


Add support for image pull secrets and headless services

What this PR does / why we need it:
Adds support for image pull secrets and the ability for the end user to run headless service
Special notes for your reviewer:
@thomasliddledba
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/lgtm
/approve

/retest

@thomasliddledba can we try again, seems that between my PR and now there was a release and the version test is failing

/lgtm
/approve

Yaaay finally passed all the checks :)


Please invite me to the GitHub Community Organization

Name
Christopher Martindale
Discord Username (if applicable)
No response
Additional Context
improved tools for project management, including issue tracking, milestones, and project boards, to help teams manage their work more effectively and ensure that project goals are achieved on time

It's great having you contribute to this project
If you would like to continue contributing to open source and would like to do it with an awesome inclusive community, you should join our Discord Server and our GitHub Organisation - we help and encourage each other to contribute to open source little and often 🤓 . Any questions let us know.

Invitation sent for the GitHub Organisation. Welcome to the community 🎉#
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see, you can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/jaidevstudio/people
Like this

Tips for practising:
Remember contributing to open source is not just about code, its about collaboration, communication and adding value
I hope that helps

Please check your email or organisation page 🙏


Added NavX and CTRE Vendordeps

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #1

PR #2   👈

This stack of pull requests is managed by Graphite.

Merge activity

Feb 13, 2:58 PM EST: @BruceMcRooster started a stack merge that includes this pull request via Graphite.