ci: use install-go.pl v3.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.852%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9438

Relevant Lines:
9452

💛  - Coveralls


[ObjC] Support use frameworks!

add swift example configured with use_frameworks!.

fix unable to find C++ headers by renaming .m files to .mm.
/Volumes/BuildData/tmpfs/altsrc/github/grpc/workspace_objc_macos_opt_native/src/objective-c/examples/SwiftUseFrameworks/Build/Build/Build/Products/Debug-iphoneos/gRPC-Core/grpc.framework/Headers/grpc_audit_logging.h:24:10: fatal error: 'memory' file not found #include <memory>

fix cyclic dependency errors by making openssl/time.h private.
/Applications/Xcode_14.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/usr/include/dispatch/dispatch.h:25:10: error: cyclic dependency in module 'Darwin': Darwin -> openssl_grpc -> UIKit -> Foundation -> CoreFoundation -> Dispatch -> Darwin

"Basic Tests ObjC Examples" succeeds with this PR:
https://source.cloud.google.com/results/invocations/cff74ec0-43ca-43b9-a2ff-12edabc02896/targets

@wu-hui FYI :)

@wu-hui FYI :)

Wonderful!

Basically with use_frameworks!, headers can be found with both #include <openssl/time.h> (openssl_grpc/time.h actually) and #include <time.h> due to how cocoapods put those files and generate compiler flags. I tried several ways but it turned out the most simple solution is just make the time.h file private as it's not used anyways outside of boringssl itself.

aha nice! Good to note! Thanks for explaining!

When do we plan to release this?

When do we plan to release this?

The github workflow has changed!
@wu-hui Now we have to review and merge this PR on google3 first! I'm working on it now and will keep you updated!
@HannahShiSFB FYI!


Save messages in append-StorageFile

Implements #1460

No special case for music (yet), but I think that would probably be best combined with autostart-for-music
Right now it writes a fresh StorageFile when exiting the app, and randomly when "modify"/"remove" lines are written and the app is not open. Not sure if that is the best way to go and/or if these are reasonable values.

Thanks! There's a lot there so I'll have to go through this later. It looks good but it's a surprising amount of extra code needed.
I think it's probably worth not rewriting it in the messages app (as I imagine that'll be opened for most notifications anyway), but maybe reallocate if the size would grow above 40k (which is the point where storagefile would create a new file)

it's a surprising amount of extra code needed.

Well, "needed"...
The two main bulks are

exports.load(): it keeps a list of ids while reading messages, so removing/modifying only needs to look at that list, instead of filtering the whole array every time.
exports.haveNew(): basically the same as load(), except it only keeps a list of new ids. This might be over-optimized, we could just replace it with exports.load().some(e=>e.new). (But I was happily coding away, so I figured I'd optimize a bit for the widget while I had the thing in my mind)

maybe reallocate if the size would grow above 40k

I thought about looking at the size, but the docs  says "This requires Espruino to read the file from scratch, which is not a fast operation.". So I figured checking that every time we append a message would kind of defeat the purpose. Unless most of the delay comes from parsing JSON?
Also I wasn't sure if every event definitely has an id set, if so It would probably simplify some things.

I rebased it onto master, and got rid of separate exports.haveNew() code: we don't check for new messages often enough that it needs special optimized parsing.

Thanks! I will get on this, I'm just pretty busy at the moment

Sure, there's no rush, and I definitely want you take a good look at changes like this before merging.

Still TODO: look into the numbers, come up with a sensible value to compare to StorageFile.getLength to determine whether to compact the messages file (and maybe make it smart enough to check if compacting will help at all)

Rebased it onto master, and got rid of compact(): it already rewrites the entire file every time we close the app anyway, so I figured that keeps it small enough for now.
But we can probably do better:

Instead of saving an updated MESSAGES, just append changes to the file, and only rewrite it when it gets too large
Make it even smarter: keep track of changes, and only write messages that need updating when leaving the app. (Alternatively: compare the in-memory MESSAGES with the saved file.)

Looks great - thanks! I'll have a play with this branch on mine and see how it's working :)

If you've got some time now that's great, but note that I really meant the untested bit for my last changes: I think it should work, but haven't gotten round to actually testing it, at all.

I tested it a bit in the emulator and fixed a few bugs, seems to work OK now:

I uploaded messages/lib.js as messages, loaded android/boot.js into RAM, and pasted gbridge/sample_messages.js into the REPL. After that I checked require('messages').load(), and it looked good.
After pasting in enough copies of the sample messages for messages.jsonl to grow over 40000bytes, it erased the file and started a fresh one without losing any messages.
Doing  M = require('messages').load();
  /* modify M: delete/modify messages */
  require('messages').write(M);

only added lines for the deleted/modified messages.

Ok, great! Maybe it's best to hold off on merging this just a little more then until you've been running with it on the watch itself for at least a few days.
Just thinking aloud here but the actual file size is ~40930 bytes I think? So if you do a check at 40000 and then you add another 930 bytes of messages, a new file would get created anyway. I think it's unlikely but I guess we could drop the check to 38000, in which case it would be hugely unlikely that any one message would push it into a second file.
I'd also be interested to see if you notice any slowness when exiting the messages app. While I like the idea of the .write function, I guess in a lot of cases (marking read/deleting/etc) it'd be pretty easy to just write the extra line directly into the messages file without having to parse the entire thing. It also avoids having to read the whole file on exit even if nothing has changed, and potentially opens the way for not actually ever having to load all messages into RAM (we could just parse the file and read the single message out as and when it was needed).
... but maybe that's one for later when we've got this merged ;)

if you do a check at 40000 and then you add another 930 bytes of messages, a new file would get created anyway.
we could drop the check to 38000

Good point, I'll adjust that.

in a lot of cases (marking read/deleting/etc) it'd be pretty easy to just write the extra line directly into the messages file

Sure, but in most cases you probably open the app, open a message (marking it as read), and then delete it, so you end up writing a copy of the message except with new=false, and then delete it anyway.
But we could do this:

write deletions to the file right away
keep track of changed messages, only write those on exit

That way we don't need to parse the file on exit.

Could do, but probably not worth the extra effort just yet. Let's set your this PR goes.
Taking of which I used this branch and put in on my bangle and something is very wrong - short buzz and no notifications at all. But I'll have to look into it on Monday

Turns out it wasn't that much effort, so I added it before reading your comment.
I guess somewhere along the line something broke during some merge/rebase :-(
I just rebased onto master, figured the easiest way forward was to just fix merge conflicts in the rebase as best as I can, and now try to stamp out the bugs. (Merging in half a dozen options every now and then probably wasn't great for the code)

I gave it a try on my Bangle.js 1, but didn't have time to properly debug stuff yet.
Apart from other issues, I just noticed my messages.jsonl now contains exactly this line:
{"t":"modify","track":"\u0000\u0012\u0015\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000F\u0000\u0003\u00F0\u0000\u00FF\u0000?\u00F0\u000F\u00F8\u0003\u00F8\u0000\u00F8\u00008\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 Body Machine | Priest","dur":-1,"c":-1,"n":-1,"id":"music","title":"Music","new":true,"state":"play"}

That's from Firefox playing media being forwarded to my phone, so the "Body Machine | Priest" bit is fine, but all the \u0000 and the fact that there is exactly one line worries me.

Ahh, that'd do it! Although if you're not in a clock, do message icons still appear? That didn't work for me either.
Do you not get out of memory errors with the current latest messages app? I've noticed the newish message icon code appears to keep the entire messages list in RAM, which is pretty wasteful.
How many messages did you have? It doesn't look to be like your code should use that much extra memory.

if you're not in a clock, do message icons still appear? That didn't work for me either.

Whoops, only tested it from the clock.

Do you not get out of memory errors with the current latest messages app?

I don't know, I've been using my own version. I didn't get round to merging in either these changes or the icon update yet though.
But it happened with just a few messages, so I'll at least look at it a bit harder.
(Also: it looks like I broke music messages...)

Just tried the messages app from master, and getting LOW_MEMORY there as well, so I'm going to assume it isn't because of these changes :wink:
(Looks like drawing the scroller with all messages is what pushes it over the edge, loading a single message works fine)

Interesting - thanks! Might have to have a look at that - although I guess for most users you probably have 5 messages max

I didn't mean that the scroller uses excessive memory, just that creating it was the tipping point when the memory ran out. (I didn't test it on an empty watch, so there were already widgets eating up memory)
Anyway, it didn't run out of memory since the widget was fixed, and this PR should help a bit more.
Apart from that, it has worked fine for me the last couple of days.

Whoops, fixed another small bug, and rebased onto master.

TODO: I just noticed that 7x7dotsclock and hcclock load messages.json directly, so those will need fixing.

Thanks - I'll file an issue for that as there should really be a way to just query the messages library/widget

Strange, I know I tested filling up the storage file before, and it worked fine. But today I finally filled up my watch "naturally",and it broke :-(
Fixed now:
Turns out you can't do this (simplified a bit):
    const file = require("Storage").open("messages.jsonl", "a");
    if (file.getLength()>38000) {
      file.erase();
      file.write(JSON.stringify(e)+"\n"); // throws "Can't write in this mode"

So I changed it to
    let file = require("Storage").open("messages.jsonl", "a");
    if (file.getLength()>38000) {
      file.erase();
      file = require("Storage").open("messages.jsonl", "a");
      file.write(JSON.stringify(e)+"\n");

and now it works again.
(I'm not surprised that writing to an erased file throws, just that it used to work before, maybe I broke it during some merge/rebase...)

Ahh, interesting, thanks! It's good it fails though - that could have led to storage corruption before.
I'm pretty sure you don't actually need an erase. You can just use w and it'll erase as part of creating the new file:
file = require("Storage").open("messages.jsonl", "w");

Rebased it onto master.
I notice this PR has accumulated quite a bit of formatting cruft, I'll see about cleaning that up.

Rebased onto master (i.e. message events).

Set it back to draft, as it will need a bit of work(+more testing) to apply onto #2205
Some good news: now that the messages library can be extended, I am using this code as daily driver for my smessages custom messages app, so the chance of me running into any lurking bugs is higher :-)

I am using this code as daily driver for my smessages custom messages app, so the chance of me running into any lurking bugs is higher :-)

You mean you're using append-storagefile?
Thanks! and sorry It's taken so long for me to test/merge this one in - it just feels like quite a big one :)

You mean you're using append-storagefile?

I have been for quite a while now, just not this exact code:
My own (still WIP) fork already uses the storage file. The difference is that now the message events PR landed, it uses require("message") (the version in this PR) instead of duplicating a bunch of code.

Thanks! and sorry It's taken so long for me to test/merge this one in - it just feels like quite a big one :)

I totally understand, it's a big change and we definitely don't want the messages app to break.
And waiting a bit doesn't really bother me: I can just load this code onto my watch anyway ;-)

Putting this on hold for a bit, at least until we have a stable require("messages") API.

I guess we do now have a more stable API - and I think we could in fact just create a separate messages_sf app now that would allow both the old and new to coexist?
However, do you think there's a need for this now? I've made a few changes to storage in the last 6 months that has made slowdowns from lots of file writes basically disappear completely - even completely uncompacted it should be basically as fast as right after a compact.
By contrast I'm a bit concerned that reading the messages line by line from a StorageFile may actually end up being slower than the current solution.
With your recent changes to the library it seems we have the option to not save messages too, and we already fast-load the messagesgui, so with a little more work I think we could probably avoid saving the messages to Storage in 90% of cases (eg. when getting a message when on the clock, dismissing it, and going back to the clock).


Delete unnecessary arg setting

how does the webui handle this ? Would it always assume it can tune ? What if there tuning is not available for a model ?


Add Voting App in Android Projects

Requirements for the App:-

User can see a list of items he can vote on
These items must have a button that the user can click on to vote
After the user clicked a button, the user should see all the votes

Requirements for the README.md file

Concepts Learned
Official Use of the Android Document
Future Aspects of the app

hello again))
voting buttons should be a RadioButtons?
where to store votes?
votes results should looks like a ProgressBar or just in TextView?

@AlxGration Yes, you can make use of Radio Buttons. You can store the votes in any database that you want. Results can be shown in a TextView.


lfs_dir_commit() hits LFS_ASSERT()

Hi,
The call to lfs_mkdir() results in LFS_ASSERT being called in the lfs_dir_commit(), line 1746:
} else if (lfs_tag_type3(attrs[i].tag) == LFS_TYPE_DELETE) {
    LFS_ASSERT(dir->count > 0);
    dir->count -= 1;
    hasdelete = true;
}

The trace:
lfs.c:3795:debug: Found pending gstate 0x4ff00000000006c7000006c6
lfs.c:4122:debug: Fixing move {0x6c7, 0x6c6} 0x0

The stack trace was as follows:
lfs_fs_demove()
lfs_fs_forceconsistency()

What can be the reason for this? Is there any other way of getting out of this issue other than reformat?
I don't understand why ASSERT is used here... Is it possible to remove the ASSERT and change it to this:
if (dir->count > 0) {
    dir->count -= 1;
}

hasdelete = true;

Hi @ptahpeteh, thanks for creating an issue. Unfortunately I probably won't be able to dig into what's going on for a while so I can only offer some pointers. This is in a particularly complicated state of littlefs.

lfs.c:3795:debug: Found pending gstate 0x4ff00000000006c7000006c6
lfs.c:4122:debug: Fixing move {0x6c7, 0x6c6} 0x0

littlefs found a move in the metadata-pair contained in the two blocks 0x6c7 and 0x6c6. At some point power was lost in the middle of a move (lfs_rename) operation.
Because littlefs contains a traditional filesystem tree (great for performance), when you move between different directories it can't actually do that atomically. Instead it will create the file reference in the destination while atomically updating a small bit of "distributed global state" (gstate) to indicate that a move is occurring. Then delete the source while atomically updating the gstate to indicate the move has been taken care of.
If power is lost, littlefs should see the "pending gstate" and fix the move by deleting the file that was moved. That's what should have happened.

The assert triggers because, while trying to delete the file that was moved, littlefs found no file. This shouldn't happen.
It may be more correct to return LFS_ERR_CORRUPT in this situation, as the filesystem has become corrupted, but I don't know if continuing as though nothing happened is ok. If implemented as suggested, a power loss could cause a lfs_rename to result in two files. This could cause problems for dependent applications that expect lfs_rename to be atomic.
Unfortunately I don't know why this could be happening. Keep in mind the update to remove the old file atomically clears the move gstate, and runs prior to the first write to the filesystem. It shouldn't be possible for littlefs to remove the file without also clearing the gstate and likely something worse has gone wrong in the internals of littlefs's logic.

Hi @geky. Thank you for your response.
I think a better idea would be to allow client code (application) to decide what to do with such errors. Instead of calling assert it would call the fault handler provided by the application. And the application could for example reformat the flash and reboot the device. This could bring the device back to life. What do you think about it? Because in my case file system corruption resulted in a blocked device. Assert stopped the program and then it was restarted by watchdog. After restart again assert, and so on ad infinitum.
And I have another question. As I was reading through lfs code I found  this LFS_ASSERT():
int err = lfs->cfg->prog(lfs->cfg, pcache->block, pcache->off, pcache->buffer, diff);
LFS_ASSERT(err <= 0);

This is line 146 of lfs.c, lfs_bd_flush() function. Why assert here instead of returning an error?

You're right, this should be an error :+1: Especially since it can result from a corrupted filesystem image.
The assert itself is actually in the lfs_dir_commit function, which shouldn't be called with a delete command unless there is a valid ID to delete. So this is actually a failure that comes from a different part of littlefs's logic.
What should be done is the lfs_dir_demove function should check the directory size when it fetches the directory pair, and return an error there:
https://github.com/ARMmbed/littlefs/blob/master/lfs.c#L4126

This is line 146 of lfs.c, lfs_bd_flush() function. Why assert here instead of returning an error?

Ah, this is to protect against block device operations returning positive error codes. They should only return 0 for success, LFS_ERR_CORRUPT to indicate a block is not valid, or a negative error code on failure, which is propagated to the user.
littlefs doesn't handle partial writes, so a returned size would always need to be the same as the requested size. The option was either int err = min(0, err) or assert on positive error codes.

Thanks for your comment. What about the other two calls to lfs_dir_commit with LFS_TYPE_DELETE, one in lfs_rename() and another in lfs_remove()? Should there also be the check for the directory size?
I was going through all the LFS_ASSERTs in the code and I don't know what to do with the following ones. They look like they could be changed into returning error code (they assert on data read from flash) but I'm not sure:
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L142 (lfs_bd_flush)
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L191 (lfs_bd_prog)
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L221 (lfs_bd_prog)
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L233 (lfs_bd_erase)
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L1667 (lfs_dir_compact)
https://github.com/littlefs-project/littlefs/blob/master/lfs.c#L1840 (lfs_dir_commit)

Sorry for the late response

one in lfs_rename() and another in lfs_remove()? Should there also be the check for the directory size?

Ah, so these actually look up a file id to remove, which errors with NOENT if the directory is empty:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/lfs.c#L3182

I was going through all the LFS_ASSERTs in the code and I don't know what to do with the following ones. They look like they could be changed into returning error code (they assert on data read from flash) but I'm not sure:

These look like they are mostly in writing functions (prog/erase/flush/compact/commit). The conditions being asserted shouldn't be dependent on disk data, if they are that is a mistake.


Code gen for NEST to support backporting APIs

Mostly seems to include format changes which is at least consistent with the other branches.

Rebased onto master after Transport PR merged. Waiting for CI as a double check before merging.

Rebased onto master after Transport PR merged. Waiting for CI as a double check before merging.


bandit may not be available

i can not use bandit.
dose anyone have available sample code?

Have a look to this notebook:
https://github.com/SheffieldML/GPyOpt/blob/master/manual/GPyOpt_bandits_optimization.ipynb


Karla rubiano refactor mvvm

What does this PR do?
Refactor MVC to MVVM.
Where should the reviewer start?
ViewModels files and ViewControllers files.
Code review checklist Code Review Rubric

DRY Principle (Don’t repeat yourself)

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Yagni Principle (You Aren't Gonna Need It)

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

KISS Principle (Keep It Simple, St...d)

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Remove unused code

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Hard-coded values

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Language style guide & coding conventions

Wizeline Style Guide

RayWenderlich Style Guide

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Architecture / Design Pattern

[ ] MVC
[ ] MVP
[x] MVVM
[ ] VIPER

Architecture Implementation

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

SOLID

Single Responsibility Principle

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Open Closed Principle

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Liskov substitutability principle

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Interface segregation

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Dependency Inversion principle

[x] Excellent
[ ] Good
[ ] Adequate
[ ] Developing

Testing

[ ] Excellent
[ ] Good
[ ] Adequate
[x] Developing

Force unwrapping !

[ ] Excellent
[ ] Good
[x] Adequate
[ ] Developing

Mutable vs immutable property (Right use of let  and var)

[ ] Excellent
[ ] Good
[x] Adequate
[ ] Developing

Retain cycles (Capture list)

[ ] Excellent
[ ] Good
[ ] Adequate
[x] Developing

Code Documentation

[ ] Excellent
[ ] Good
[ ] Adequate
[x] Developing

LGTM! Nice approach! How do you feel changing from MVC to MVVM Architecture ?

In the beginning, it was a challenge but when I saw the session, articles, and videos with the explanation, it was not that complicated in the end.


chore: Upgrade to eslint v9

All of our eslint plugins support v9 now so moving forward with updating. Biggest change was to the config. .eslintrc.js and .eslintignore are no longer supported. They provided a migrator that I used to convert to the new format.

Duplicate of https://github.com/mbta/screenplay/pull/525 😅


bug:  process getting aborted on raspberrypi-5

Summary
I am getting below error while using api-server llama-api-server.wasm both downloading from curl and after building on raspberry-pi5 with raspberrypi-os. It works. well on my mac.
free(): invalid pointer
Aborted
Reproduction steps
I have followed alls steps in api-server readme.
Screenshots

Any logs you want to share for showing the specific issue
No response
Model Information
Tinylllam-4bit, dolphin-phi-4bit
Operating system information
raspberry-pi os
ARCH
arm64
CPU Information
64-bit quad-core Arm Cortex-A76 processor
Memory Size
8GB
GPU Information
none
VRAM Size
0

@hydai Could you please help with this issue? Thanks a lot!

Hi @singhaki
Please share the detailed rpi OS version so we can find a docker image to reproduce this issue.

Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-rpi8-rpi-2712
Architecture: arm64

Hi @singhaki
Could you please use curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --dist ubuntu20.04 --plugins wasi_nn-ggml wasmedge_rustls to install the wasmedge+ggml manually, and try to run the model with this?
Or you can use run-llm.sh with modifying this line with the above command: https://github.com/LlamaEdge/LlamaEdge/blob/main/run-llm.sh#L249

working now. Thanks.

Working now. Thanks!! What was the reason? build was for older kernel/OS?

Working now. Thanks!! What was the reason? build was for older kernel/OS?

The installer cannot recognize the RPI OS, so it tried to install the version for the manylinux2014(which is based on centos 7, a very legacy system). And this seems not compatible with RPI OS.


Navbar overflow

At some sizes, the navbar overflows the rest of the page. Chances are this is because the sum of the insides (width + padding + margin + any interior content poking out) exceeds 100% of the screen.
Steps to reproduce issue:
Step 1: On chrome, change the width to 806 px
Step 2: You can see the navbar is width 810 px
This problem definitely exists at more sizes than the example listed above, and we need to fix it for all of them by figuring out what is causing the overflow. Firefox is very good for debugging this kind of thing.

Some of the rules I added to fix overflowing Blobbies appear to have fixed this issue, or at least made it so that it has no visual impact on the user.


(WIP) Add more detailed Pebble docs on LSMs, etc

Fixes DOC-1501
Summary of changes:

XXX

This change is

@itsbilal are you still ok to review this?  totes happy to ask someone else on the team if bandwidth

Yep it looks good save for a very minor comment about another use of ingested - thanks!

Thanks Bilal and Eric for your reviews!  FYI I have ported the changes to v22.1 docs as well


Remove contact form

Please let's remove this contact form. The amount of spam (and their content) is unbearable. If we need a form, we're better off using a Google Form or trying to have a form element with reCAPTCHA.

LGTM


private->public vars

Looks good. Ideally we'd expose the fee via a getter, but that's unimportant for now.

solidity public variables automatically create getters :)


large_metadata_bad_client_test flake due to server validator not completing

This has been seen on Mac and Windows:
E0707 20:12:51.131000000 57308 bad_client.c:150] assertion failed: gpr_event_wait(&a.done_thd, grpc_timeout_seconds_to_deadline(5))

Started seeing this with pretty high frequency on linux too:
https://sponge.corp.google.com/target?id=b703fb1d-a103-464a-ba4f-8722c11177b4&target=github/grpc/c_linux_dbg_native&searchFor=&show=FAILED&sortBy=STATUS

I've finally found time to look into this, and it looks like it's a timing problem.  Basically, the chttp2 code uses the acked settings to impose limits on what it will accept from the client -- if the server has sent a settings frame setting SETTINGS_MAX_HEADER_LIST_SIZE to 8KiB but the client has not yet acked those settings, then the server will not enforce them yet.  This is correct behavior for HTTP/2, but it causes problems for our test.
What our test is doing is sending a whole bunch of HTTP/2 data, including the settings frame, acking the server's settings frame, and sending a request with too much metadata, all in a single write.  In most runs of this test, the server sends its own settings frame and acks the client's settings frame before reading the client's request.  However, sometimes the server reads everything the client has sent before sending its own settings frame, which means that it does not consider the client's ack to have acknowledged its own settings frame by the time it receives the request with too much metadata, with the result that it does not impose the right metadata limit in the test.
This is unfortunately not trivial to fix.  @ctiller suggests that the best thing to do would be to use a more sophisticated framework that understands more of the HTTP/2 semantics.  One possible way of doing this will be to add a submodule of an OSS HTTP/2 library (maybe nghttp2) that we can use in tests, so that we can have more understanding of the communication with the server.  That will allow us to change write a client that will wait to receive the server's settings frame, send an ack, and then send a request with too much metadata, thus avoiding the flakiness of the current test.  It will also allow us to write some other, better tests in the future.
Yash has agreed to take this on, but he's got some other work in his queue ahead of this, so it's not clear when this will actually get done.

Not seen in >2months.

This hasn't been seen because Yash temporarily disabled the test until we have time to fix it.  It still does need to be fixed.


Landing page customization

Description
Hi @eddiejaoude! I did some more research on Linkfree and noticed that a common complaint is that free users can’t customize their landing page . Maybe we could add this feature to stand out?
Screenshots
No response
Additional information
No response

Thanks Chrissy! What sort of customisations do you think would be a good idea?

Themes can be added as well for customization.

I think themes might be the best way to go, as with colour clashes it could make their pages unusable
I will close this general issue for now and we can make some more specific ones later on


renamed and refactored getCoordinatesFromString function

Renamed and refactored the function getCoordinatesFromString. Its not used any where in the code so, just changed only the function definitions.

Hey @TalAter The function is not currently being used anywhere, might be used in future. I just happened to notice it and fixed it.
Right now, its returning just { lat: 0, long: 23.123 } on 0,23.123.
Should it return { lat: 0.0, long: 23.123 } or is it fine ?

I will look into it! 🙂


docs: Alloy Tutorial Sandbox

PR Description
This PR adds the Interactive sandbox metadata to the Sending Logs to Loki tutorial. This tutorial can be tested here: https://killercoda.com/grafana-dev-testing/course/alloy/send-logs-to-loki
We bumped into a few transformation roadblocks but managed to bypass them for now using some preprocessing regex.
Here are the docs for the annotations I added: https://github.com/grafana/killercoda/blob/staging/docs/transformer.md
Which issue(s) this PR fixes
N/A

Notes to the Reviewer
PR Checklist

[ ] CHANGELOG.md updated
[x] Documentation added
[ ] Tests updated
[ ] Config converters updated

I'm guessing it should be OK to backport this PR to Alloy 1.0, 1.1, and 1.2 (in addition to the current 1.3 release)?

Hi @clayton-cornell, thank you for all the review changes! That should be them all added and the sandbox updated for a second round. I belive the only one I couldn't change was
   > This step uses the {{< param "PRODUCT_NAME" >}} UI on `localhost` port `12345`. If you chose to run {{< param "PRODUCT_NAME" >}} in a Docker container, make sure you use the `--server.http.listen-addr=` argument. If you don’t use this argument, the [debugging UI](../../troubleshoot/debug/#alloy-ui) won’t be available outside of the Docker container.

As it seems the double square brackets within an indentation do not currently work within our transformer yet!

the double square brackets within an indentation do not currently work within our transformer yet!

That's was line 337(now line 340 with the correction)? That looks like the original line was a typo. We use double square brackets in the markdown, but not like it was in line 337.
For clarity... the double square bracket syntax is [link text][link definition] (and the link is defined elsewhere in the topic).  You can't use a relative URL or qualified URL in the double square bracket syntax.  So the correction on line 340 is correct.

Hi @clayton-cornell,
That should be those suggestions added and ready for your next review :)
https://killercoda.com/grafana-dev-testing/course/alloy/send-logs-to-loki


Sending messages from background script or popup not working in Chrome or Firefox

Messaging sending is not working for me
Link to related repo
Firefox version: 95.0.2
Chrome version: 96.0.4664.110
Explanation
I tried to follow the docs, but the onMessage and sendMessage do no appear to be working for me in either browser.
The main error I saw when installing was this, but I am unclear from the docs how to pass a tab id.
You can see how I pass the tab ID in the background script code below.

Code
You can also clone and check out the related repo
Manifest:
{
  "name": "webext test",
  "version": "1.0",
  "manifest_version": 2,
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content_script.js"]
    }
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_popup": "popup.html"
  },
  "permissions": [
    "storage",
    "activeTab"
  ]
}

Popup
import { sendMessage } from 'webext-bridge'

const button = document.getElementsByTagName('button')[0]

button.addEventListener('click', async() => {
  const res = await sendMessage('from-popup', {message: 'Hello World'}, 'content-script');
  console.log('popup result: ', { res })
})

Content Script
import { sendMessage, onMessage } from 'webext-bridge'
console.log('content script loaded');

onMessage('from-popup', async(message) => {
  console.log(message)
})

onMessage('from-background', async(message) => {
  console.log(message)
})

Background script
import 'webext-bridge';
import { sendMessage } from 'webext-bridge'

console.log('hello from background script');
const currentTab = browser.tabs.query({active: true, currentWindow: true}).then(tabs => tabs[0])
sendMessage('from-background', {message: 'Hello World from background script'}, {context: 'content-script', tabId: currentTab.id });

Expected result
All console log messages in the content script should appear when the extension is loaded into Firefox or Chrome.
When I click the popup button, I should see a console.log of {message: "Hello World"}
Actual result
The only console message I see is 'content script loaded'
Urgency
Not urgent. I ended up using webextension-polyfill with browser.runtime.sendMessage and browser.tabs.sendMessage

I'm also having the same issue. Any ETA on this?

Old issue + the reproduction repo is a 404 but according to the readme, you specify the tab id with content-script@tabId :

Example : devtools or content-script or background or content-script@133 or devtools@453.

The author might have another problem inside the backgrouns script. The currentTab variable looks like a Promise and not an id. (need to be awaited)

Looks like sending message from popup to all pages (content-script) is not supported by this library. As sendMessage always expects id to be specified as content-script@id


demo problem

when i run:
python demo/image_demo.py demo/demo.JPEG configs/resnet/resnet18_b16x8_cifar10.py checkpoints/resnet18_b16x8_cifar10_20210528-bd6371c8.pth
this problem happen:
Use load_from_local loader
Traceback (most recent call last):
File "demo/image_demo.py", line 24, in
main()
File "demo/image_demo.py", line 18, in main
result = inference_model(model, args.img)
File "/home/bingo/anaconda3/envs/pytorch/lib/python3.7/site-packages/mmcls/apis/inference.py", line 85, in inference_model
pred_score = np.max(scores, axis=1)[0]
File "<array_function internals>", line 6, in amax
File "/home/bingo/anaconda3/envs/pytorch/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 2734, in amax
keepdims=keepdims, initial=initial, where=where)
File "/home/bingo/anaconda3/envs/pytorch/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 85, in _wrapreduction
return reduction(axis=axis, out=out, **passkwargs)
TypeError: max() received an invalid combination of arguments - got (out=NoneType, axis=int, ), but expected one of:

()
(name dim, bool keepdim)
didn't match because some of the keywords were incorrect: out, axis
(Tensor other)
(int dim, bool keepdim)
didn't match because some of the keywords were incorrect: out, axis

Sorry, but I cannot reproduce this problem. Can you provide the entire installation information by
pip list | grep "mmcv\|mmcls"

it print like below:
mmcls              0.13.0
mmcv-full          1.3.9
and my code have change to tag v0.13.0

Sorry, but I cannot reproduce this problem. Can you provide the entire installation information by
pip list | grep "mmcv\|mmcls"

it print like below:
mmcls 0.13.0
mmcv-full 1.3.9
and my code have change to tag v0.13.0


XS✔ ◾ remove params from task

❌ Add a description.

@AsfaMumtaz Image is available for testing. docker pull stakater/workshop-exercise:SNAPSHOT-PR-93-77613811


nocache query param not removed if URL contains fragment and then is published.

:tada: This issue has been resolved in version 6.45.3 :tada:
The release is available on:

GitHub release
v6.45.3

Your semantic-release bot :package::rocket:


[FEATURE] move connector config to a separate file

Feature Description
Currently all the connector configuration is present in the development.toml file. But this configuration is not developer specific, this remains the same whoever uses it, this configuration is based on the application and it should not be tweaked by the developer or else it would cause some features to not work.
Possible Implementation
Move the configuration to a separate file and if possible in a better format ( the layout and keys can be changed as per the needs, but file format has to be TOML only ) so that the application can read it easily. After making this change, all the places where this config is read has to be changed to read from a single file.
Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Have you read the Contributing Guidelines?

[X] I have read the Contributing Guidelines

Are you willing to submit a PR?
No, but I'm happy to collaborate on a PR with someone else

i can take it

I have assigned this issue to you. Let me know if you need more clarifications on this.

We use this file to store all the developer related configuration like, the database password, log level etc. There is also connector ( you can treat connector as a payment gateway going forward ) configuration present in it. This connector configuration tells about the base url that should be used when calling the connector, List of countries and currencies supported by a connector etc. The connector configuration is developer independent and remains the same whoever uses it. It should not be changed unless you know what you are dealing with.
So it is better to move these connector related configuration to a separate file and make necessary changes to read this file at the start of application.
Few examples of connnector configuration keys are
[connectors.supported]
[connectors]
[connectors.zen]
[bank_config.eps]
[bank_config.ideal]

[pm_filters.stripe]
[pm_filters.worldpay]

[pm_filters.forte]
[connector_customer]

[tokenization]

hey @Narayanbhat166 can I take this issue up as there has not been any updates?

Hey @subhajit20, Thanks for showing interest. since I have not heard back from the pervious contributor, you can take this up. Feel free to reach out to me if you have any doubts.


Popup window for downloading SVG

Share: Link to share
Download: download image
Embed: text for adding to other document


Add some options to control "chattiness" of the plugin

I added two options to your plugin:

Skip acknowledge dialogue completely (I believe it is have not too much of useful information, because just after it another dialog started which actually duplicates information from first one. In fact, I'd suggest to get rid of it completely). Option disabled by default.
Skip confirmation dialogue in actions for certain entities. Usecase: control lights in the same room as Mycroft. I don't need additional confirmation that lights are turned on if they are turned on.

Settings file example with new params:
{
    "verbose": false,
    "silent_entities": [
        "hallway lamp"
    ],
    "__mycroft_skill_firstrun": false,
    "connected": true
}

Fixes #34

Makes sense, thank you for feedback! Now it will be phrase or log entry.
BTW, I changed and force-pushed commits, is it ok or is it better to add new commits with fixes?

Makes sense, thank you for feedback! Now it will be phrase or log entry. BTW, I changed and force-pushed commits, is it ok or is it better to add new commits with fixes?

Generally, I prefer new commits, as it makes it more clear what the history of the PR was. We squash commits on merge so there's no need to force-push anything


remove redundant "self" in a method

Current coverage is 61.35%

Merging #10 into master will not affect coverage as of dcd5e34

@@            master     #10   diff @@
======================================
  Files           55      55
  Stmts         2797    2797
  Branches         0       0
  Methods          0       0
======================================
  Hit           1716    1716
  Partial          0       0
  Missed        1081    1081

Review entire Coverage Diff as of dcd5e34

Powered by Codecov. Updated on successful CI builds.


Images won't load when plugin activated

Hello,
I've made sure that image resize is enabled, but when I enable the plugin my images on my site no longer load, they're just blank.
The end URL on them appears like this cdn-cgi/image/width=1000
Hope you can help

Hello,
It sounds like you have not enabled Image Resizing in your Cloudflare account?

It's 100% enabled. Images are still disappearing.

Hi, I am also facing the same issue but I think I got the services mixed up. Is Image Resizing a feature of the pro plan ($20 per month)? if yes, is there a way to use your plugin with just Cloudflare Images ($5 per month)?

It's 100% enabled. Images are still disappearing.

Hi, Try setting a dot . inside the Site URL setting instead of full site URL in the plugin setting.

I and nobody else can help without more information. You might have some HTML caching plugin or similar that prevents the changes from being visible.
From now on I will automatically close all similar threads without more information.


Support for multiple responses

It would be nice to be able to provide a list of responses for a given path so that you can call the same endpoint many times and have different results.
It would allow you to mock an e2e flow
e.g.
MockService.addMock('getEventsMock', {
    path: '/some/api',
    response: [    // Config becomes an array
        {
            status: 200,
            date: { "name": "first event", "hasBeenCalled": false }
        },
        {
            status: 200,
            date: { "name": "first-event", "hasBeenCalled": true }
        }
    ]
});

I'll see if I can put a pr together for this. maybe a separate add function like addMocks might work better

@tomcully, man sorry for the late responses, i was a little busy lately. Also thanks for contributing.
I like your suggestion. Just keep in mind that we should keep the function signature backward compatible, so i would suggest response to be a Response | Response[], where Response is an interface.

@krisboit no problems!
Cool, i agreed on backward compatibility. I’ll knock something together and see what you think 👍🏻

solved in 1.4.0


Mina Daemon crashed

Preliminary Checks

[X] This issue is not a duplicate. Before opening a new issue, please search existing issues: https://github.com/MinaProtocol/mina/issues
[X] This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/MinaProtocol/mina/discussions

Description
Hello,
I'm actually trying to run my block producer node on "Berkeley Testnet Release 2.0.0rampup5".
The latest release given here => https://github.com/MinaProtocol/mina/releases/tag/2.0.0rampup5
And here is the latest lines of crash report.
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:54.414332Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 559, characters 8-19"},"message":"Mina daemon is booting up; built with commit $commit on branch $branch","metadata":{"branch":"rampup","commit":"55b78189c46e1811b8bdb78864cfa95409aeb96a","commit_date":"2023-10-11T18:26:29+02:00","marlin_commit":"fd7c19d4c5dbb6826d1d5ce6bc24796a44087f70"}}
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:54.414913Z","level":"Info","source":{"module":"Mina_lib__Conf_dir","location":"File \"src/lib/mina_lib/conf_dir.ml\", line 70, characters 18-29"},"message":"Removing lockfile for terminated process","metadata":{"lockfile":"/root/.mina-config/.mina-lock","pid":1854}}
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:54.415056Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 567, characters 10-21"},"message":"Daemon will expire at $exp","metadata":{"exp":"2024-12-10 14:00:00-07:00"}}
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:54.415094Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 580, characters 8-19"},"message":"Booting may take several seconds, please wait","metadata":{}}
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: Using libp2p keypair private-key password from environment variable MINA_LIBP2P_PASS
Nov 11 14:25:54 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:54.634743Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 700, characters 12-23"},"message":"Reading configuration files $config_files","metadata":{"config_files":["/var/lib/coda/config_55b78189.json","/root/.mina-config/daemon.json"]}}
Nov 11 14:25:55 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:55.154128Z","level":"Warn","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 721, characters 24-35"},"message":"Could not read configuration from $config_file","metadata":{"config_file":"/root/.mina-config/daemon.json","error":{"commit_id":"55b78189c46e1811b8bdb78864cfa95409aeb96a","exn_name":"Async_kernel__Monitor.Error_","exn":["monitor.ml.Error",["Yojson.Json_error(\"Blank input data\")"],["Raised at Yojson.json_error in file \"common.ml\", line 5, characters 19-39","Called from Async_kernel__Deferred1.M.map.(fun) in file \"src/deferred1.ml\", line 17, characters 40-45","Called from Async_kernel__Job_queue.run_job in file \"src/job_queue.ml\" (inlined), line 128, characters 2-5","Called from Async_kernel__Job_queue.run_jobs in file \"src/job_queue.ml\", line 169, characters 6-47","Caught by monitor try_with_or_error at file \"src/lib/genesis_ledger_helper/genesis_ledger_helper.ml\", line 815, characters 34-34"]]}}}
Nov 11 14:25:55 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:55.353093Z","level":"Info","source":{"module":"Genesis_ledger_helper","location":"File \"src/lib/genesis_ledger_helper/genesis_ledger_helper.ml\", line 840, characters 2-13"},"message":"Initializing with runtime configuration. Ledger name: $name","metadata":{"accounts_omitted":200000,"config":{"genesis":{"genesis_state_timestamp":"2023-10-17T16:01:01Z"},"ledger":{"name":"berkeley-ITN"}},"name":"berkeley-ITN"}}
Nov 11 14:25:55 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:55.353151Z","level":"Info","source":{"module":"Genesis_ledger_helper","location":"File \"src/lib/genesis_ledger_helper/genesis_ledger_helper.ml\", line 868, characters 8-19"},"message":"Using the compiled constraint constants","metadata":{}}
Nov 11 14:25:56 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:25:56.307493Z","level":"Info","source":{"module":"Genesis_ledger_helper","location":"File \"src/lib/genesis_ledger_helper/genesis_ledger_helper.ml\", line 916, characters 2-13"},"message":"Loaded genesis ledger from $ledger_file","metadata":{"ledger_file":"/root/.mina-config/genesis/genesis_ledger_accounts_3e16f7ed32d2507ceea1f11d6fc1443e82bce2d3b061218501c2c45fe047100f.tar.gz"}}
Nov 11 14:26:03 m23636.contaboserver.net mina[1975]: Using block producer keypair private-key password from environment variable MINA_PRIVKEY_PASS
Nov 11 14:26:03 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:03.908644Z","level":"Debug","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1059, characters 14-26"},"message":"Long async job, $long_async_job seconds, $monitors, $o1trace","metadata":{"long_async_job":7.375592418,"monitors":[[{"name":"coda","here":[],"id":"33","has_seen_error":"false","is_detached":"true"},{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}],[{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}]],"most_recent_2_backtrace":"","o1trace":["mina"]}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.054225Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1226, characters 10-21"},"message":"Daemon will use chain id 332c8cc05ba8de9efc23a011f57015d8c9ec96fac81d5d3f7a06969faf4bce92","metadata":{}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.054291Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1227, characters 10-21"},"message":"Daemon running protocol version 3.1.0","metadata":{}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: Using uptime submitter keypair private-key password from environment variable UPTIME_PRIVKEY_PASS
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.054464Z","level":"Debug","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1040, characters 14-26"},"message":"Long async cycle, $long_async_cycle seconds, $monitors, $o1trace","metadata":{"long_async_cycle":33.145957445,"monitors":[[{"name":"","here":[],"id":"1505","has_seen_error":"false","is_detached":"true"}]],"o1trace":["mina"]}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.054529Z","level":"Debug","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1059, characters 14-26"},"message":"Long async job, $long_async_job seconds, $monitors, $o1trace","metadata":{"long_async_job":30.863257878,"monitors":[[{"name":"coda","here":[],"id":"33","has_seen_error":"false","is_detached":"true"},{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}],[{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}]],"most_recent_2_backtrace":"","o1trace":["mina"]}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.054582Z","level":"Debug","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 1059, characters 14-26"},"message":"Long async job, $long_async_job seconds, $monitors, $o1trace","metadata":{"long_async_job":2.282347915,"monitors":[[{"name":"coda","here":[],"id":"33","has_seen_error":"false","is_detached":"true"},{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}],[{"name":"","here":[],"id":"2","has_seen_error":"false","is_detached":"true"}]],"most_recent_2_backtrace":"","o1trace":["mina"]}}
Nov 11 14:26:37 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:26:37.271738Z","level":"Info","source":{"module":"Prover","location":"File \"src/lib/prover/prover.ml\", line 367, characters 2-13"},"message":"Starting a new prover process","metadata":{}}
Nov 11 14:27:10 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:10.878550Z","level":"Info","source":{"module":"Prover","location":"File \"src/lib/prover/prover.ml\", line 385, characters 2-13"},"message":"Daemon started process of kind $process_kind with pid $prover_pid","metadata":{"process_kind":"Prover","prover_pid":2035}}
Nov 11 14:27:10 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:10.878700Z","level":"Info","source":{"module":"Verifier__Prod","location":"File \"src/lib/verifier/prod.ml\", line 410, characters 4-15"},"message":"Starting a new verifier process","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.481613Z","level":"Info","source":{"module":"Verifier__Prod","location":"File \"src/lib/verifier/prod.ml\", line 450, characters 4-15"},"message":"Daemon started process of kind $process_kind with pid $verifier_pid","metadata":{"process_kind":"Verifier","verifier_pid":2083}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.481750Z","level":"Info","source":{"module":"Vrf_evaluator","location":"File \"src/lib/vrf_evaluator/vrf_evaluator.ml\", line 416, characters 2-13"},"message":"Starting a new vrf-evaluator process","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.592332Z","level":"Info","source":{"module":"Vrf_evaluator","location":"File \"src/lib/vrf_evaluator/vrf_evaluator.ml\", line 422, characters 2-13"},"message":"Daemon started process of kind $process_kind with pid $vrf_evaluator_pid","metadata":{"process_kind":"Vrf_evaluator","vrf_evaluator_pid":2142}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.592455Z","level":"Info","source":{"module":"Uptime_service__Uptime_snark_worker","location":"File \"src/lib/uptime_service/uptime_snark_worker.ml\", line 104, characters 2-13"},"message":"Starting a new uptime service SNARK worker process","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718440Z","level":"Info","source":{"module":"Uptime_service__Uptime_snark_worker","location":"File \"src/lib/uptime_service/uptime_snark_worker.ml\", line 110, characters 2-13"},"message":"Daemon started process of kind $process_kind with pid $uptime_snark_worker_pid","metadata":{"process_kind":"Uptime_snark_worker","uptime_snark_worker_pid":2147}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718507Z","level":"Info","source":{"module":"Exit_handlers","location":"File \"src/lib/exit_handlers/exit_handlers.ml\", line 28, characters 2-13"},"message":"Registering async shutdown handler: $description","metadata":{"description":"Close transition frontier, if exists"}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: Environment variable MINA_TIME_OFFSET not found, using default of 0
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718606Z","level":"Debug","source":{"module":"Network_pool__Transaction_pool","location":"File \"src/lib/network_pool/transaction_pool.ml\", line 801, characters 17-29"},"message":"no frontier","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718620Z","level":"Debug","source":{"module":"Network_pool__Network_pool_base","location":"File \"src/lib/network_pool/network_pool_base.ml\", line 160, characters 8-30"},"message":"transaction_pool $rate_limiter","metadata":{"rate_limiter":{"by_ip":[],"by_peer_id":[]}}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718645Z","level":"Debug","source":{"module":"Network_pool__Network_pool_base","location":"File \"src/lib/network_pool/network_pool_base.ml\", line 160, characters 8-30"},"message":"snark_pool $rate_limiter","metadata":{"rate_limiter":{"by_ip":[],"by_peer_id":[]}}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718658Z","level":"Debug","source":{"module":"Transition_handler__Block_sink","location":"File \"src/lib/transition_handler/block_sink.ml\", line 197, characters 6-18"},"message":"new_block $rate_limiter","metadata":{"rate_limiter":{"by_ip":[],"by_peer_id":[]}}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.718720Z","level":"Debug","source":{"module":"Uptime_service__Uptime_snark_worker","location":"File \"src/lib/uptime_service/uptime_snark_worker.ml\", line 133, characters 12-24"},"message":"Uptime SNARK worker stdout: $stdout","metadata":{"stdout":"{\"timestamp\":\"2023-11-11 13:27:41.718113Z\",\"level\":\"Info\",\"source\":{\"module\":\"Uptime_service__Uptime_snark_worker\",\"location\":\"File \\\"src/lib/uptime_service/uptime_snark_worker.ml\\\", line 82, characters 8-19\"},\"message\":\"Uptime SNARK worker started\",\"metadata\":{}}\n"}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.789940Z","level":"Debug","source":{"module":"Child_processes","location":"File \"src/lib/child_processes/child_processes.ml\", line 119, characters 6-18"},"message":"Found PID file for libp2p_helper /root/.mina-config/mina_net2/libp2p_helper.lock with contents 1954","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.789990Z","level":"Debug","source":{"module":"Child_processes","location":"File \"src/lib/child_processes/child_processes.ml\", line 124, characters 12-24"},"message":"Couldn't kill libp2p_helper with PID 1954, does not exist","metadata":{}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.790103Z","level":"Debug","source":{"module":"Child_processes","location":"File \"src/lib/child_processes/child_processes.ml\", line 217, characters 2-14"},"message":"Starting custom child process $name with args $args","metadata":{"args":[],"name":"libp2p_helper"}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.791116Z","level":"Info","source":{"module":"Child_processes","location":"File \"src/lib/child_processes/child_processes.ml\", line 239, characters 2-13"},"message":"Custom child process $name started with pid $pid","metadata":{"args":[],"name":"libp2p_helper","pid":2154}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.791531Z","level":"Info","source":{"module":"Gossip_net__Libp2p","location":"File \"src/lib/gossip_net/libp2p.ml\", line 266, characters 10-36"},"message":"libp2p peer ID this session is $peer_id","metadata":{"host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.791560Z","level":"Debug","source":{"module":"Gossip_net__Libp2p","location":"File \"src/lib/gossip_net/libp2p.ml\", line 269, characters 12-39"},"message":"(Re)initializing libp2p result","metadata":{"host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.791984Z","level":"Info","source":{"module":"Node_error_service","location":"File \"src/lib/node_error_service/node_error_service.ml\", line 111, characters 10-21"},"message":"Could not send error report: mina instance has not been created yet.","metadata":{"host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.792112Z","level":"Fatal","source":{"module":"Init__Mina_run","location":"File \"src/app/cli/src/init/mina_run.ml\", line 670, characters 2-26"},"message":"Unhandled top-level exception: $exn\nGenerating crash report","metadata":{"exn":{"commit_id":"55b78189c46e1811b8bdb78864cfa95409aeb96a","sexp":["monitor.ml.Error",["src/common.ml.Read_error","Option_code","16"],["Raised at Bin_prot__Common.raise_read_error in file \"src/common.ml\", line 74, characters 31-60","Called from Core_kernel__Option.bin_read_t in file \"src/option.ml\" (inlined), line 4, characters 0-50","Called from Core_kernel__Std_internal.bin_read_option in file \"src/std_internal.ml\" (inlined), line 137, characters 2-103","Called from Trust_system__Record.Stable.V1.bin_read_t in file \"src/lib/trust_system/record.ml\", line 9, characters 8-55","Called from Core_kernel__Binable0.of_bigstring in file \"src/binable0.ml\", line 169, characters 10-41","Called from Rocksdb__Serializable.Make.to_alist.(fun) in file \"src/lib/rocksdb/serializable.ml\", line 49, characters 10-51","Called from Base__List.count_map in file \"src/list.ml\", line 405, characters 13-17","Called from Trust_system__Peer_trust.Make0.peer_statuses.(fun) in file \"src/lib/trust_system/peer_trust.ml\", line 132, characters 8-23","Called from Gossip_net__Libp2p.Make.T.create_libp2p.(fun) in file \"src/lib/gossip_net/libp2p.ml\", line 311, characters 24-70","Called from Async_kernel__Deferred0.bind.(fun) in file \"src/deferred0.ml\", line 54, characters 64-69","Called from Async_kernel__Job_queue.run_job in file \"src/job_queue.ml\" (inlined), line 128, characters 2-5","Called from Async_kernel__Job_queue.run_jobs in file \"src/job_queue.ml\", line 169, characters 6-47","Caught by monitor coda"]],"backtrace":["Raised at Bin_prot__Common.raise_read_error in file \"src/common.ml\", line 74, characters 31-60","Called from Core_kernel__Option.bin_read_t in file \"src/option.ml\" (inlined), line 4, characters 0-50","Called from Core_kernel__Std_internal.bin_read_option in file \"src/std_internal.ml\" (inlined), line 137, characters 2-103","Called from Trust_system__Record.Stable.V1.bin_read_t in file \"src/lib/trust_system/record.ml\", line 9, characters 8-55","Called from Core_kernel__Binable0.of_bigstring in file \"src/binable0.ml\", line 169, characters 10-41","Called from Rocksdb__Serializable.Make.to_alist.(fun) in file \"src/lib/rocksdb/serializable.ml\", line 49, characters 10-51","Called from Base__List.count_map in file \"src/list.ml\", line 405, characters 13-17","Called from Trust_system__Peer_trust.Make0.peer_statuses.(fun) in file \"src/lib/trust_system/peer_trust.ml\", line 132, characters 8-23","Called from Gossip_net__Libp2p.Make.T.create_libp2p.(fun) in file \"src/lib/gossip_net/libp2p.ml\", line 311, characters 24-70","Called from Async_kernel__Deferred0.bind.(fun) in file \"src/deferred0.ml\", line 54, characters 64-69","Called from Async_kernel__Job_queue.run_job in file \"src/job_queue.ml\" (inlined), line 128, characters 2-5","Called from Async_kernel__Job_queue.run_jobs in file \"src/job_queue.ml\", line 169, characters 6-47"]},"host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:41 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:41.800403Z","level":"Debug","source":{"module":"Init__Mina_run","location":"File \"src/app/cli/src/init/mina_run.ml\", line 99, characters 2-14"},"message":"Successfully wrote the visualization of the registered masks at location: /root/.mina-config/coda_crash_report_2023-11-11_13-27-41.793284/registered_masks.dot.","metadata":{"coda_run":"Logging state before program ends","host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]: {"timestamp":"2023-11-11 13:27:43.002353Z","level":"Warn","source":{"module":"Init__Mina_run","location":"File \"src/app/cli/src/init/mina_run.ml\", line 103, characters 6-17"},"message":"Shutdown before Coda instance was created, not saving a visualization","metadata":{"coda_run":"Logging state before program ends","host":"<IP_ADDRESS>","peer_id":"12D3KooWBRzYmZ1i94WV4zWNNXDA6enGJp3qnSsR7nPtfeFFj54p","port":8302}}
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:   ☠  Mina Daemon crashed.
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:    The Mina Protocol developers would like to know why!
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:     Please:
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:       Open an issue:
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:         <https://github.com/MinaProtocol/mina/issues/new>
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:       Briefly describe what you were doing and attach the crash report /root/.mina-config/coda_crash_report_2023-11-11_13-27-41.793284.tar.gz
Nov 11 14:27:43 m23636.contaboserver.net mina[1975]:
Nov 11 14:27:43 m23636.contaboserver.net systemd[663]: mina.service: Main process exited, code=exited, status=1/FAILURE
Nov 11 14:27:43 m23636.contaboserver.net systemd[663]: mina.service: Failed with result 'exit-code'.

I've successfully completed every steps to connect Main-Net and synced completely but i can't achieve same thing on Berkeley Test-Net.
Steps to Reproduce
I've completed the below steps carefully after installing the latest berkeley-testnet mina branch.

Created the ~/.mina-env file.
To produce blocks, added the required configuration:

PEER_LIST_URL=https://storage.googleapis.com/seed-lists/testworld-2-0_seeds.txt
MINA_PRIVKEY_PASS="My_V3ry_S3cure_Password"
UPTIME_PRIVKEY_PASS="My_V3ry_S3cure_Password"
MINA_LIBP2P_PASS="My_V3ry_S3cure_Password"
RAYON_NUM_THREADS=6
LOG_LEVEL=Debug
FILE_LOG_LEVEL=Debug
EXTRA_FLAGS=" "

EXTRA_FLAGS parameters have been updated as on the 3rd step.

Configured the block producer node with the following flags:

--log-json
--log-snark-work-gossip true
--internal-tracing
--insecure-rest-server
--config-directory <path to the mina configuration directory>
--external-ip  <external server IP>
--itn-keys  f1F38+W3zLcc45fGZcAf9gsZ7o9Rh3ckqZQw6yOJiS4=,6GmWmMYv5oPwQd2xr6YArmU1YXYCAxQAxKH7aYnBdrk=,ZJDkF9EZlhcAU1jyvP3m9GbkhfYa0yPV+UdAqSamr1Q=,NW2Vis7S5G1B9g2l9cKh3shy9qkI1lvhid38763vZDU=,Cg/8l+JleVH8yNwXkoLawbfLHD93Do4KbttyBS7m9hQ=
--itn-graphql-port 3089
--uptime-submitter-key  <uptime-keyfile path> (**same key as block producer key**)
--uptime-url https://block-producers-uptime-itn.minaprotocol.tools/v1/submit
--enable-peer-exchange  true
--libp2p-keypair <keyfile path> (**libp2p keypair pre-generated by the Node Operator**)
--log-precomputed-blocks true
--generate-genesis-proof  true
--block-producer-key <keyfile path> (**keys will be distributed prior to launch**)
--node-status-url https://nodestats-itn.minaprotocol.tools/submit/stats
--node-error-url https://nodestats-itn.minaprotocol.tools/submit/stats
--file-log-rotations 500

and the following environment variables:
RAYON_NUM_THREADS=6
UPTIME_PRIVKEY_PASS
MINA_LIBP2P_PASS
MINA_PRIVKEY_PASS

Generated Libp2p Keypair into /root/keys/libp2p-key file
mina libp2p generate-keypair /root/keys/my-wallet /root/keys/libp2p-key

Monitor the mina process that's running in the background and auto-restarting.

Checked if mina had any trouble getting started:
systemctl --user status mina
Stop mina gracefully and stop automatically restarting the service:
systemctl --user stop mina
Manually restart the mina process:
systemctl --user restart mina
Look at logs that show the last 1000 lines, and follow from there:
journalctl --user-unit mina -n 1000 -f
Expected Result

Successfully connecting other peers
Syncing with the network
Starting validation process
Validating successfully
Recieving confirmations from other peers

Actual Result

Successfully connecting some peers but the application crashes suddenly.

How frequently do you see this issue?
Always
What is the impact of this issue on your ability to run a node?
Blocker
Status
Cannot having a daemon status since it is crashing.

Error: Unable to connect to Mina daemon.
- The daemon might not be running. See logs (in `~/.mina-config/mina.log`) for details under the host:<IP_ADDRESS>.
  Run `mina daemon -help` to see how to start daemon.
- If you just started the daemon, wait a minute for the RPC server to start.
- Alternatively, the daemon may not be running the RPC server on (<IP_ADDRESS> 8301).
  If so, add flag `---daemon-port` with correct port when running this command.

Additional information
Here you can find the detailed crash report which was logged.
coda_crash_report_2023-11-11_13-27-41.793284.tar.gz =>
Log File

@Atikocak , we are currently running the latest testworld release, rampup6. Could you please update your node and see you still face the same issue?
https://github.com/MinaProtocol/mina/releases/tag/2.0.0rampup6

@Atikocak , we are currently running the latest testworld release, rampup6. Could you please update your node and see you still face the same issue? https://github.com/MinaProtocol/mina/releases/tag/2.0.0rampup6

Hello,
I've updated the Mina Daemon to the latest release (rampup6) that you have given.
Here is my latest issue;
Nov 16 20:50:02 m23636.contaboserver.net systemd[687]: Started Mina Daemon Service.
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.796837Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 559, characters 8-19"},"message":"Mina daemon is booting up; built with commit $commit on branch $branch","metadata":{"branch":"rampup","commit":"4061884b18137c1182c7fcfa80f52804008a2509","commit_date":"2023-10-20T16:15:24+02:00","marlin_commit":"fd7c19d4c5dbb6826d1d5ce6bc24796a44087f70"}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.797488Z","level":"Info","source":{"module":"Mina_lib__Conf_dir","location":"File \"src/lib/mina_lib/conf_dir.ml\", line 21, characters 10-21"},"message":"Created daemon lockfile $lockfile","metadata":{"lockfile":"/root/.mina-config/.mina-lock"}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.797534Z","level":"Info","source":{"module":"Exit_handlers","location":"File \"src/lib/exit_handlers/exit_handlers.ml\", line 28, characters 2-13"},"message":"Registering async shutdown handler: $description","metadata":{"description":"Remove daemon lockfile"}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.797560Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 567, characters 10-21"},"message":"Daemon will expire at $exp","metadata":{"exp":"2024-12-10 14:00:00-07:00"}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.797588Z","level":"Info","source":{"module":"Mina_cli_entrypoint","location":"File \"src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml\", line 580, characters 8-19"},"message":"Booting may take several seconds, please wait","metadata":{}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: Using libp2p keypair private-key password from environment variable MINA_LIBP2P_PASS
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: {"timestamp":"2023-11-16 19:50:02.798018Z","level":"Info","source":{"module":"Exit_handlers","location":"File \"src/lib/exit_handlers/exit_handlers.ml\", line 31, characters 4-15"},"message":"Running async shutdown handler: $description","metadata":{"description":"Remove daemon lockfile"}}
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]: (monitor.ml.Error
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:  ("Yojson.Json_error(\"Line 1, bytes 0-33:\\nInvalid token 'CAESQDwCBkrmPROgwtEiqEwyCxgyk4zUn'\")")
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:  ("Raised at Yojson.json_error in file \"common.ml\", line 5, characters 19-39"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Yojson.Safe.read_json in file \"lib/read.ml\" (inlined), line 1025, characters 3-39"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Yojson.Safe.from_lexbuf in file \"lib/read.mll\", line 1109, characters 8-26"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Yojson.Safe.from_string in file \"lib/read.mll\", line 1122, characters 6-26"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Secrets__Secret_file.read.(fun) in file \"src/lib/secrets/secret_file.ml\", line 130, characters 31-70"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Async_kernel__Deferred0.bind.(fun) in file \"src/deferred0.ml\", line 54, characters 64-69"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Async_kernel__Job_queue.run_job in file \"src/job_queue.ml\" (inlined), line 128, characters 2-5"
Nov 16 20:50:02 m23636.contaboserver.net mina[33755]:   "Called from Async_kernel__Job_queue.run_jobs in file \"src/job_queue.ml\", line 169, characters 6-47"))
Nov 16 20:50:02 m23636.contaboserver.net systemd[687]: mina.service: Main process exited, code=exited, status=1/FAILURE
Nov 16 20:50:02 m23636.contaboserver.net systemd[687]: mina.service: Failed with result 'exit-code'.

OS: Ubuntu 22.04 (Bullseye)

@Atikocak have you found a fix? Looking at the logs it seems a problem with an invalid Token.
May we close the issue?


Optimize lookup of certain child ids

For GraphQL queries that only retrieve the id of children where the parents store the child ids, we should change query generation to optimize that query away entirely.
Those are queries of the form
parent(..) {
  children { id }
}

where the children in the parent type are not derived.

This is actually not possible because of a subtlety of how we store relationships and don't enforce foreign key constraints: with a schema like
type Thing {
  id Bytes!
  stuff Stuff
}

type Stuff {
  id Bytes!
}

it is possible to store a Thing whose stuff field points to Stuff that doesn't actually exist. That issue is only detected at query time where we'd either return stuff: null or, if the stuff field is actually of type Stuff! fail the query with an error null value resolved for non-null field
Because of that, we can't just return the content of Thing.stuff as the id for the related Stuff field - we do have to go to the database and check whether there is Stuff with that id, making it impossible to optimize that part of the query away.


Roll Engine from 40451453ab11 to ad18a306c10e (1 revision)

https://github.com/flutter/engine/compare/40451453ab11...ad18a306c10e
2021-07-29<EMAIL_ADDRESS>Roll Skia from 8cd8e27c2ceb to ef721154a758 (1 revision) (flutter/engine#27784)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Check for serveroutdir on dev loader

Added check loader.isSsrReady() or with the middleware enhanced request req.mendel.isSsrReady()

👍


search-definition: ignore fields

is there some way to indicate vespa-deloy to ignore fields not mapped in search-definition file?
e.g. (in an arbitrary dataset)
{
  "ignore_field": null,
  "usable_field_1": "sd_fl_1"
}

and in search-definition
arbitdataset.sd

search simplex {
    document simplex {
        field usable_field_1 type string {
            indexing: summary
        }
    ....
    }
}

throws
Detail resultType=FATAL_ERRORexception='Could not get field "ignore_field" in the structure of type "simplex"
please point me to any document explaining this
ref:
http://docs.vespa.ai/documentation/reference/search-definitions-reference.html#match

-- please excuse. can someone create few SO tags for vespa so i can take it up there. or point it out if any already exist and just couldn't find.

Hi @shwetanks,
Thank you for interest in Vespa.ai. There is currently no support for ignoring fields not found in the document schema(s).
We have https://stackoverflow.com/questions/tagged/vespa but no questions yet.

@jobergum thanks for answering. i'll put it up there and if i can, will raise a PR. might take me some time though to sift through the source and find appropriate handlers.

you might want to look at the SO tag though. seems unavailable

Vespa is strongly-typed and ignoring fields we don't know could lead to issues. If we accept unknown fields we also gonna see people complaining after feeding 1B documents and figuring out some fields where not spelled correctly :)


Need to use SignomialsEnabled to formulate a GP

This might seem like a strange example, but in the interest of representing a real constraint as verbatim as possible, I would like to have two fixed variables on the "greater than" side of a constraint. To achieve this I have to use the third of the options below, whereas I would like to use the first.
Is this a reasonable request?
In [2]: from gpkit import Variable, Model, SignomialsEnabled

In [3]: x = Variable('x')
   ...: y = Variable('y', 1)
   ...: z = Variable('z', 2)
   ...:

In [4]: m = Model(1/x, [x <= y + z])
   ...: sol = m.solve()
   ...:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-1acbfacf9f64> in <module>()
----> 1 m = Model(1/x, [x <= y + z])
      2 sol = m.solve()

/Users/philippe.kirschen/Documents/Optimization/gpkit/gpkit/nomials/nomial_math.py in __ge__(self, other)
    234         if isinstance(other, (Numbers, Signomial)):
    235             # by default all constraints take the form left >= right
--> 236             return SignomialInequality(self, ">=", other)
    237         else:
    238             return NotImplemented

/Users/philippe.kirschen/Documents/Optimization/gpkit/gpkit/nomials/nomial_math.py in __init__(self, left, oper, right)
    635         from .. import SIGNOMIALS_ENABLED
    636         if not SIGNOMIALS_ENABLED:
--> 637             raise TypeError("Cannot initialize SignomialInequality"
    638                             " outside of a SignomialsEnabled environment.")
    639         if self.oper == "<=":

TypeError: Cannot initialize SignomialInequality outside of a SignomialsEnabled environment.

In [5]: with SignomialsEnabled():
   ...:     m = Model(1/x, [x <= y + z])
   ...: sol = m.localsolve()
   ...:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-e30665bd3241> in <module>()
      1 with SignomialsEnabled():
      2     m = Model(1/x, [x <= y + z])
----> 3 sol = m.localsolve()

/Users/philippe.kirschen/Documents/Optimization/gpkit/gpkit/constraints/prog_factories.py in solvefn(self, solver, verbosity, skipsweepfailures, *args, **kwargs)
     81                       solver, verbosity, *args, **kwargs)
     82         else:
---> 83             self.program, solvefn = genfunction(self, verbosity)
     84             result = solvefn(solver, verbosity, *args, **kwargs)
     85             solution.append(result)

/Users/philippe.kirschen/Documents/Optimization/gpkit/gpkit/constraints/prog_factories.py in programify(self, verbosity, constants, **kwargs)
     36                 kdc = KeyDict(constants)
     37                 constants.update({v: f(kdc) for v, f in linkedsweep.items()})
---> 38         prog = program(self.cost, self, constants, verbosity, **kwargs)
     39         if return_attr:
     40             return prog, getattr(prog, return_attr)

/Users/philippe.kirschen/Documents/Optimization/gpkit/gpkit/constraints/signomial_program.py in __init__(self, cost, constraints, substitutions, verbosity)
     61     SignomialPrograms should only be created with Models containing Signomial
     62     Constraints, since Models without Signomials have global solutions and can
---> 63     be solved with 'Model.solve()'.""")
     64         self.gps = []
     65         self.result = None

ValueError: Model valid as a Geometric Program.

    SignomialPrograms should only be created with Models containing Signomial
    Constraints, since Models without Signomials have global solutions and can
    be solved with 'Model.solve()'.

In [6]: with SignomialsEnabled():
   ...:     m = Model(1/x, [x <= y + z])
   ...: sol = m.solve()
   ...:
Using solver 'cvxopt'
Solving for 1 variables.
Solving took 0.00551 seconds.

This is working as intended, although we could re-open the design discussion.
Although it's documented more in error messages than in the documentation, if you want to create something that could turn into an SP (whether or not the variables currently have substitutions), then you need to do so in an SignomialsEnabled environment.


How to use default browser's Webfonts and disable mathjax ??

Checklist

[x] I have read the newlest tutorials and know the correct effect of the functional design.
[x] There is no similar question on existing issues (including closed ones).
[x] I have tried to find the answer on Jekyll Forum and StackOverflow.
[x] My question is based on the latest code of the master branch.

Description
From https://pagespeed.web.dev report I have seen disabling the fonts.googleapis.com and mathjax  could save almost 1 second of  mobile loading time. I want to use the default OS and browser's front.

@cotes2020 @NichtsHsu Could you please help in this regard?

You may try disabling loading webfont from google. One way to do that is commenting out the webfont entry in /_data/assets/cross_origin.yml. See an example in this commit

You are right, comment that out does not work. And, I find that setting its value to hashtag will work. See this commit
Alternatively, you can enable non-blocking webfonts loads using this commit. I learnt this method here.

@cotes2020 @NichtsHsu

You are right, comment that out does not work. And, I find that setting its value to hashtag will work. See this commit
Alternatively, you can enable non-blocking webfonts loads using this commit. I learnt this method here.

Thanks!


Alpine 3.19 + Java 8: Symbol not found: __xstat64

steps
Running sbt with java 8 on alpine 3.19 fails due to java.lang.UnsatisfiedLinkError.
Try to invoke sbt when running on alpine 3.19, e.g. using docker:
docker run --rm -it alpine:3.19
# inside the container:
apk add openjdk8 bash
cd $(mktemp -d)
# download sbt
wget https://github.com/sbt/sbt/releases/download/v1.9.7/sbt-1.9.7.tgz
tar -xzf sbt-1.9.7.tgz
# create example project (crash)
yes "" | sbt/bin/sbt new scala/hello-world.g8

problem
sbt can't be run when using java 8 and latest musl libc. All invocations fail with the following stacktrace:
/tmp/tmp.aJhdoP # yes "" | sbt/bin/sbt new scala/hello-world.g8
[info] [launcher] getting org.scala-sbt sbt 1.9.7  (this may take some time)...
[info] [launcher] getting Scala 2.12.18 (for sbt)...
java.lang.UnsatisfiedLinkError: Error looking up function '__xstat64': Symbol not found: __xstat64
        at com.sun.jna.Function.<init>(Function.java:252)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:620)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:596)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:582)
        at com.sun.jna.Library$Handler.invoke(Library.java:248)
        at com.sun.proxy.$Proxy0.__xstat64(Unknown Source)
        at sbt.internal.io.Linux64Milli$.$anonfun$getModifiedTimeNative$1(Milli.scala:215)
        at sbt.internal.io.MilliPosixBase.checkedIO(Milli.scala:100)
        at sbt.internal.io.Linux64Milli$.getModifiedTimeNative(Milli.scala:215)
        at sbt.internal.io.Linux64Milli$.getModifiedTimeNative(Milli.scala:210)
        at sbt.internal.io.MilliNative.getModifiedTime(Milli.scala:65)
        at sbt.internal.io.Milli$.getModifiedTime(Milli.scala:387)
        at sbt.io.IO$.$anonfun$getModifiedTimeOrZero$1(IO.scala:1436)
        at sbt.internal.io.Retry$.apply$mJc$sp(Retry.scala:47)
        at sbt.internal.io.Retry$.apply$mJc$sp(Retry.scala:29)
        at sbt.internal.io.Retry$.apply$mJc$sp(Retry.scala:24)
        at sbt.io.IO$.getModifiedTimeOrZero(IO.scala:1436)
        at sbt.internal.classpath.ClassLoaderCache$Key$$anonfun$$lessinit$greater$3.apply(ClassLoaderCache.scala:59)
        at sbt.internal.classpath.ClassLoaderCache$Key$$anonfun$$lessinit$greater$3.apply(ClassLoaderCache.scala:59)
        at scala.collection.immutable.List.map(List.scala:293)
        at sbt.internal.classpath.ClassLoaderCache$Key.<init>(ClassLoaderCache.scala:59)
        at sbt.internal.classpath.ClassLoaderCache$Key.<init>(ClassLoaderCache.scala:60)
        at sbt.internal.classpath.ClassLoaderCache.cachedCustomClassloader(ClassLoaderCache.scala:195)
        at sbt.State$StateOpsImpl$.initializeClassLoaderCache$extension(State.scala:417)
        at sbt.StandardMain$.initialState(Main.scala:286)
        at sbt.xMain$.$anonfun$run$9(Main.scala:112)
        at sbt.io.IO$.withTemporaryDirectory(IO.scala:496)
        at sbt.io.IO$.withTemporaryDirectory(IO.scala:506)
        at sbt.xMain$.run(Main.scala:102)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:59)
        at sbt.xMain.run(Main.scala:47)
        at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
        at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
        at xsbt.boot.Launch$.run(Launch.scala:149)
        at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
        at xsbt.boot.Launch$.launch(Launch.scala:159)
        at xsbt.boot.Launch$.apply(Launch.scala:44)
        at xsbt.boot.Launch$.apply(Launch.scala:21)
        at xsbt.boot.Boot$.runImpl(Boot.scala:78)
        at xsbt.boot.Boot$.run(Boot.scala:73)
        at xsbt.boot.Boot$.main(Boot.scala:21)
        at xsbt.boot.Boot.main(Boot.scala)
[error] [launcher] error during sbt launcher: java.lang.UnsatisfiedLinkError: Error looking up function '__xstat64': Symbol not found: __xstat64

expectation
Builds using java 8 on latest alpine release should be possible.
notes
When using Java 11 (openjdk11-jdk) / Java 17 (openjdk17-jdk) / Java 21 (openjdk21-jdk), everything is fine.
When using alpine:3.18, everything is fine too.

Thanks for the report. I think a workaround would be setting -Dsbt.io.jdktimestamps=true - https://github.com/sbt/io/blob/2cc96a8295be4ae2086d34ed89c735adf6b27dbb/io/src/main/scala/sbt/internal/io/Milli.scala#L356-L360, but doing so would likely break incremental compilation because part of the code uses time as invalidation, and time increment isn't granular enough for incremental compilation.

In my case this is workaround is fine as the build is running on a cicd server, so incremental compilation is no issue there. My local environment is already running on java 21, so this is also no problem.
But, as far as I can see from the source, the usage of _xstat64() is not correct?
LSB 5.0 (https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib---xstat64.html) states that "The behavior of these functions for values of ver other than _STAT_VER is undefined.", but you call it with a "1" for Linux32 (https://github.com/sbt/io/blob/2cc96a8295be4ae2086d34ed89c735adf6b27dbb/io/src/main/scala/sbt/internal/io/Milli.scala#L215) or "3" for Linux64 (https://github.com/sbt/io/blob/2cc96a8295be4ae2086d34ed89c735adf6b27dbb/io/src/main/scala/sbt/internal/io/Milli.scala#L229)
So depending on the system, the value of _STAT_VER might be different, leading to undefined behaviour.
Why don't you use stat64() instead?

Why don't you use stat64() instead?

Honestly I'm not sure since I did review the change at the time, but did not catch the nuance of the native call that was chosen. If I were to venture a guess this was an attempt to have a stable runtime behavior on Ubuntu by hardcoding to a specific version? I'm also a bit confused since as far as I know sbt has been used inside Alpine before.

The difference is in the different musl libc.
Before alpine:3.19:
/ # apk add binutils
/ # readelf -s /lib/ld-musl-x86_64.so.1 | grep xstat
   241:<PHONE_NUMBER>0495e3    16 FUNC    WEAK   DEFAULT    9 __fxstatat64
   331:<PHONE_NUMBER>0495f3    11 FUNC    GLOBAL DEFAULT    9 __lxstat
   735:<PHONE_NUMBER>0495d9    10 FUNC    WEAK   DEFAULT    9 __fxstat64
   933:<PHONE_NUMBER>0495f3    11 FUNC    WEAK   DEFAULT    9 __lxstat64
   969:<PHONE_NUMBER>0495fe    11 FUNC    WEAK   DEFAULT    9 __xstat64
  1137:<PHONE_NUMBER>0495d9    10 FUNC    GLOBAL DEFAULT    9 __fxstat
  1496:<PHONE_NUMBER>0495fe    11 FUNC    GLOBAL DEFAULT    9 __xstat
  1564:<PHONE_NUMBER>0495e3    16 FUNC    GLOBAL DEFAULT    9 __fxstatat

Starting with alpine:3.19:
/ # apk add binutils
/ # readelf -s /lib/ld-musl-x86_64.so.1 | grep xstat
   321:<PHONE_NUMBER>04def4    11 FUNC    GLOBAL DEFAULT   11 __lxstat
  1099:<PHONE_NUMBER>04deda    10 FUNC    GLOBAL DEFAULT   11 __fxstat
  1442:<PHONE_NUMBER>04deff    11 FUNC    GLOBAL DEFAULT   11 __xstat
  1508:<PHONE_NUMBER>04dee4    16 FUNC    GLOBAL DEFAULT   11 __fxstatat

I've found some commits mentioning LFS64 specific changes in the musl-libc at alpine, but I don't really understand why it was removed. I'll ask at the irc and post the response here.

After reading the thread at the musl mailinglist I come to the conclusion that using a non standard-abi like the lfs64 stuff is the root cause of the problem here. So stat64() wouldn't be a solution as it's also missing in newer alpine musl libc. Can't you just use stat() instead? The stat struct defines the st_ctime (which is the relevant part here) as a struct timespec.
Test application:
#include <stdio.h>
#include <sys/stat.h>

int main(void) {
        struct stat statbuf;
        printf("stat() = %i\n", stat("/etc/os-release", &statbuf));
        printf("sizeof(st_ctim) = %zu\n", sizeof(statbuf.st_ctim));
        printf("st_ctim.tv_nsec = %li\n", statbuf.st_ctim.tv_nsec);
        printf("st_ctim.tv_sec = %li\n", statbuf.st_ctim.tv_sec);
}

On alpine x86_64:
stat() = 0
sizeof(st_ctim) = 16
st_ctim.tv_nsec = 387540266
st_ctim.tv_sec =<PHONE_NUMBER>

On alpine x86:
stat() = 0
sizeof(st_ctim) = 16
st_ctim.tv_nsec = 249564841
st_ctim.tv_sec =<PHONE_NUMBER>

On alpine armhf:
stat() = 0
sizeof(st_ctim) = 16
st_ctim.tv_nsec = 831276549
st_ctim.tv_sec =<PHONE_NUMBER>

On Ubuntu 22.04 armv7:
stat() = 0
sizeof(st_ctim) = 8
st_ctim.tv_nsec = 747936871
st_ctim.tv_sec =<PHONE_NUMBER>

On Ubuntu 18.04 x86:
stat() = 0
sizeof(st_ctim) = 8
st_ctim.tv_nsec = 36894514
st_ctim.tv_sec =<PHONE_NUMBER>

So using just stat() should be fine as it provides timestamps with nanoseconds precision

Sounds good to me. Would you like to send a pull request for this?

PR is open. If you could build me a version of sbt including this fix, I can test it on the various architectures / systems I've mentioned in https://github.com/sbt/sbt/issues/7455#issuecomment-1853980873

https://github.com/sbt/sbt/releases/tag/v1.9.8 is out


hover labels must stay within chart

related to #552

Actually assigned to @sergey-filipenko, he's working on it :+1:

fixed in https://github.com/Gapminder/vizabi/pull/557


Fix compilation of nightly tests module

What does this PR do?
This PR fixes the compilation of nightly-tests module, some SDK instance was either missing in some places or was redundant.
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Already addressed in https://github.com/DataDog/dd-sdk-android/pull/1347


[Solved] TypeError — yarn start stopped working

I’m posting this to try to help anyone who may find themselves stuck.
I am on macOS 10.14.6 / Yarn 1.22.
I started experiencing an error today — I don’t know why it started happening, all I know is several attempts to clean-wipe Node/NPM/Yarn/clone from GitHub, etc. nothing worked. I kept getting this stack trace whenever I tried to run yarn start:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at validateString (internal/validators.js:118:11)
    at Object.join (path.js:1039:7)
    at noopServiceWorkerMiddleware (/Users/zaydek/github/codex-app/node_modules/react-dev-utils/noopServiceWorkerMiddleware.js:14:26)
    at Layer.handle [as handle_request] (/Users/zaydek/github/codex-app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:317:13)
    at /Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:275:10)
    at launchEditorMiddleware (/Users/zaydek/github/codex-app/node_modules/react-dev-utils/errorOverlayMiddleware.js:20:7)
    at Layer.handle [as handle_request] (/Users/zaydek/github/codex-app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:317:13)
    at /Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/zaydek/github/codex-app/node_modules/express/lib/router/index.js:275:10)
    at handleWebpackInternalMiddleware (/Users/zaydek/github/codex-app/node_modules/react-dev-utils/evalSourceMapMiddleware.js:42:7)
    at Layer.handle [as handle_request] (/Users/zaydek/github/codex-app/node_modules/express/lib/router/layer.js:95:5)

What ended up fixing it (at least for now) is updating to the latest CRA version e.g. yarn add --exact<EMAIL_ADDRESS>Something react scripts was calling was breaking. Anyway, this is fixed — I hope this helps someone.

Interestingly this happened again once I ran yarn serve --single ... on a build on my site, then went back to yarn start. Same error. Fortunately I was able to quickly fix it this time adding the latest react-scripts again. 😅

I also have this issue:

Were you able to fix it? I tried a couple of things — only yarn add --exact<EMAIL_ADDRESS>repeatedly worked for me.

Has anyone an idea which changes in<EMAIL_ADDRESS>resolved the issue?
I've got the same error, but don't have a react app, but a nestjs app.

Try running yarn cache list to print out your cached packages, then you can compare with the version in your package.json to make sure they match. If you still get errors, run yarn cache clean to clear your entire cache and run yarn install to repopulate them.

i got the same issues

I’m posting this to try to help anyone who may find themselves stuck.

Thank you for being so thoughtful.  You certainly helped me, and I'm glad to say that it's something I try to remember to do when I find an answer no one else seems to have done.


podvm: fix podvm_mkosi_image build and some links issues

fix podvm mkosi build
and some bad links

Passed x86 mkosi build is here
https://github.com/liudalibj/cloud-api-adaptor/actions/runs/8387562059/job/22970523884


Mobile Device URL Method Broke

The mobile device method described in the installation and setup instructions required a mobile type url to be displayed along with a confirmation code. Tried via IOS devices and different browsers that include Firefox, Chrome, Safari. All URL redirects are now associated with 'https://tsv.prd.platform.simplisafe.com/v1'
Propose that we move away from the mobile site url code to crawl for code generation and entire token manually in the setup instructions to copy and paste into a form area in the Config UX section and or during the CLI utility authentication.
Currently Running oznu/homebridge:latest-data-1 - Have tried both CLI utility and also the Config UX options both responses to get that URL is not a valid URL both from the email redirect being opened on MAC os and an IOS device without the SimpliSafe App.

Hi @meowcrunch2287 As noted in the docs, you cant do this on an iOS device, the URL youre getting is not the final one but on iOS theres no way to get it.
And unfortunately there are a limited number of choices for which URLs to use, they have it setup to only allow certain URLs, either the mobile one "com.simplisafe.mobile..." or "webapp.simplisafe.com..." which wouldn't work because it would just take you there.
On macOS, depending on which browser (and apparently even which version of Safari) you may need to look in the console output for the URL.

Hi @meowcrunch2287 , if you are interested please check out https://github.com/homebridge-simplisafe3/homebridge-simplisafe3/releases/tag/v1.10.0-beta.1
As its a beta, if you install make sure you backup everything first just in case!


Invalid IPv6 handling

Hi guys,
i have found a bug.
It is allowed to use dot notation in ipv6. The following address is not a mapped ipv6 address.
IPAddress.parse('abcd:9234::<IP_ADDRESS>/96').to_string
I got a wrong output
=> ::ffff:<IP_ADDRESS>/96
But the correct output must be:
=> abcd:9234::102:304/96
Same problem here:
IPAddress.parse('::<IP_ADDRESS>/120').to_string
=> "::ffff:<IP_ADDRESS>/120"
Correct output is
=> ::102:304/120
Only
IPAddress.parse('::ffff:<IP_ADDRESS>/120') is a mapped ipv6 value!
Only here it is allowed to handle it as an Mapped IPv6 Object with the following output:
=> "::ffff:<IP_ADDRESS>/120"

I have create a workaround for me
    if value =~ /\:/       converted = value.gsub(/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/) { |a| IPAddr.new("::#{a}").to_string.slice(-9, 9) }     else       converted = value     end     IPAddress.parse(converted)