lustre_exporter crash after query from cURL

Just started lustre_exporter from the command line:
/usr/local/bin# ./lustre_exporter
INFO[0000] Starting lustre_exporter (version=1.0.0-rc.1, branch=master, revision=35894131aa5bef1d01a94c8a0c64c37cdc5ffaaf)  source="lustre_exporter.go:129"
INFO[0000] Build context (go=go1.8.3, user=myuser@myhost, date=20170724-10:21:35)  source="lustre_exporter.go:130"
INFO[0000] Enabled sources:                              source="lustre_exporter.go:140"
INFO[0000]  - procfs                                     source="lustre_exporter.go:142"
INFO[0000]  - procsys                                    source="lustre_exporter.go:142"
INFO[0000] Listening on :9169                            source="lustre_exporter.go:163"

Executed cURL from another host to get a list of available metrics:
curl http://myhost.mydomain:9169/metrics

On the client, I got curl: (52) Empty reply from server while on the host running the exporter I got the following errors:
panic: runtime error: slice bounds out of range [recovered]
        panic: runtime error: slice bounds out of range

goroutine 26 [running]:
io/ioutil.readAll.func1(0xc42031ba38)
        /data.local1/go/src/io/ioutil/ioutil.go:30 +0x119
panic(0x7c0fa0, 0xa15ff0)
        /data.local1/go/src/runtime/panic.go:489 +0x2cf
bytes.(*Buffer).ReadFrom(0xc42031b990, 0x9ece00, 0xc42018d020, 0xc4206cf800, 0x0, 0x200)
        /data.local1/go/src/bytes/buffer.go:180 +0x25c
io/ioutil.readAll(0x9ece00, 0xc42018d020, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0)
        /data.local1/go/src/io/ioutil/ioutil.go:33 +0x150
io/ioutil.ReadFile(0xc42028cab0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0)
        /data.local1/go/src/io/ioutil/ioutil.go:70 +0xf7
github.com/HewlettPackard/lustre_exporter/sources.parseStatsFile(0x83771a, 0x1c, 0x830f81, 0xe, 0xc42028cab0, 0x2a, 0x0, 0x0, 0x0, 0x410ad8, ...)
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/sources/procfs.go:551 +0x42
github.com/HewlettPackard/lustre_exporter/sources.(*lustreProcfsSource).parseFile(0xc42010c270, 0x82de6f, 0x7, 0x832a75, 0x12, 0xc42028cab0, 0x2a, 0x0, 0x83771a, 0x1c, ...)
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/sources/procfs.go:806 +0x14e
github.com/HewlettPackard/lustre_exporter/sources.(*lustreProcfsSource).Update(0xc42010c270, 0xc420086ae0, 0xa206c0, 0xffffffffffffffff)
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/sources/procfs.go:408 +0x381
main.collectFromSource(0x82dc02, 0x6, 0x9ec180, 0xc42010c270, 0xc420086ae0)
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/lustre_exporter.go:70 +0x79
main.LustreSource.Collect.func1(0xc420086ae0, 0xc420114cf0, 0x82dc02, 0x6, 0x9ec180, 0xc42010c270)
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/lustre_exporter.go:59 +0x53
created by main.LustreSource.Collect
        /data.local1/src/golang_work/src/github.com/HewlettPackard/lustre_exporter/lustre_exporter.go:61 +0x111

I am running the exporter on Debian GNU/Linux 7.11 (wheezy) while I have compiled the binary with Golang 1.8.3 on Debian GNU/Linux 8.8 (jessie).

Hey @mtds, I'm looking into this one but it seems like the error is coming outside of the scope of our code (we're panicking inside the ReadFile call here: https://github.com/HewlettPackard/lustre_exporter/blob/master/sources/procfs.go#L551)
Are you by any chance running on a 32 bit version of Debian?

Just another thing: if I launch cURL on the command line like this
curl http://myhost.mydomain:9169/

I wil get the following output (and the exporter does not crash):

      <title>Lustre Exporter</title>

Lustre Exporter

Metrics

which I believe is consistent on what is declared in the main function on lustre_exporter.go,
with the http.HandleFunc although I was expecting the exporter of making full use of the
promhttp package to present the list of metrics available not just a short HTML message.

Hi joehandzik.
Sorry, I did not see your comment until I posted mine.
No, I am running Debian 64 bit on all machines used in my test. On my host, where I have compiled
the exporter, I have an Intel Xeon W3505 CPU while one of the Lustre file server I have used
there's an Intel Xeon E5-2650 CPU.

@mtds, that second bit is expected behavior, definitely. The node_exporter behaves the same way (https://github.com/prometheus/node_exporter), just tested it myself. You should need to target the /metrics endpoint to get the actual metrics themselves, that's also expected behavior (and it works on my machine for the node_exporter, so the issue you've found is legitimate).

@mtds Not sure what to make of the fact that you're on a 64 bit box. I can't see any legitimate reason why that ReadFile operation should be overwhelmed by a memory allocation. I'll keep looking, may end up filing a bug against Golang itself.

@mtds This continues to look like a problem we can't solve within the lustre_exporter, so we need to narrow down the problem to be able to get a fix more effectively. What sort of node were you running this on (client, mds, oss, etc)? Depending on your answer, we'll want to investigate specific procfs files.

@joehandzik, I think the problem may be related to a difference in the platform we are using.
The lustre_exporter crashed in the following cases:

MDS (Debian Wheezy / kernel 2.6.32 backported from CentOS / lustre: <IP_ADDRESS>)
OSS (Debian Wheezy / kernel 3.2.88-1 / lustre: <IP_ADDRESS>)

but it's working correctly on one of our client, which is mounting Lustre.
The client is still a 64 bit machine but the most important thing is that is running Debian Jessie
(the same Linux distribution where I have built the binary) and here are the details:

Client (Debian Jessie / kernel 3.16.43-2+deb8u1 / lustre: 2.6.92)

I can try to build the exporter on a Debian Wheezy machine and see if I got the same problem.
By the way, you are absolutely right: I never tested it before but (as you wrote) a simple curl http://myhost.domain:port/ reports an HTML message. I tested it right now with node_exporter
but you get the same output also with the ipmi_exporter.

Well, actually (as you wrote) it could be also a problem in how the lustre_exporter is accessing those
procfs files.
I can also make a test with a Lustre file system I have built on top of KVM based virtual machines,
using CentOS and Lustre version 2.8, just to see if this issue is not directly related to the type of
nodes involved.

@mtds It's worth a shot to build on Wheezy just to eliminate that variable, but that shouldn't matter based on everything I (think I) understand about how Go works. We're more interested by the version differences in your MDS/OSS Lustre version compared to the client Lustre version (we've done most of our testing on Lustre 2.7 and up).
Can you possibly get us the sizes of all file underneath /proc/fs/lustre/ ? Primarily, I think we need sizes for files named "stats", "md_stats", and "encrypt_page_pools". Those are the only files that I think we'd be touching. @roclark, let me know if I'm off.

Yup, those are the appropriate files. The full paths would be:
# On OSS nodes:
/proc/fs/lustre/obdfilter/<OST>/stats
# On MDS nodes:
/proc/fs/lustre/mdt/<MDT>/md_stats
# On all Lustre nodes:
/proc/fs/lustre/sptlrpc/encrypt_page_pools

I am curious as to whether or not a bug was fixed in Lustre 2.6 with one of these files. I am not too fluent on the bug reports for pre-2.8, but might be we are experiencing something like that. Regardless, looking at those files would be a good next step in debugging this further.

Sorry but just to clarify: if you are referring exactly to the size of the files and not the number of lines,
the closest trick I know in order to get a meaningful number is to use wc -c and get the measure
in bytes.

OSS stats: We have 7 OSTs on every OSS, so I got the more or less the same number: 932 bytes (for each of them).
MDS: md_stats is reported to be 858 bytes;
Lustre client: encrypt_page_pools is reported to be 18 bytes.

Hmm, those are tiny...I did some research, and the ReadFile implementation shouldn't run into any sort of trouble unless the files are multiple Gigabytes in size. Since the MDS is crashing and it only has the one md_stats file, could you send us that file? Feel free to use the email address I have on my GitHub profile.

@joehandzik just sent you the email containing our latest md_stats (I am not sure it will be really
helpful though).
The test with the lustre_exporter built on Wheezy gave exactly the same error message I reported
at the beginning of this thread. Needless to say, it crashes too. I have used Golang 1.8.3 and a Wheezy
64 bit VM to build the binary.
I still have to test it with a CentOS deployment, which uses Lustre 2.8.

Just another test: I have compiled the lustre_exporter on a VM with CentOS 6.8, using Golang
1.8.3.
The Lustre test filesystem I am using is based on version 2.8.0, installed directly from RPMs
from CentOS repos. All the VMs I have used in this test are installed with CentOS 6.8 (64 bit).
Here is a summary:

MDS / OSS: cURL works as expected, no crashes.
Lustre client: cURL works as expected but lustre_exporter reports the following error (although it
did not crash):

ERRO[0037] ERROR: "procfs" source failed after 0.004039 seconds: strconv.ParseUint: parsing "15.31": invalid syntax  source="lustre_exporter.go:73"

So, it looks like the problem is definitely related to MDS and OSS running Debian Wheezy with Lustre 2.5 and 2.6.
In the client case, I don't think the problem is related to the size of encrypt_page_pools since it's
just 539 bytes. Anyway, for the sake of completeness of my report I will copy&paste it here:
physical pages:          125490
pages per pool:          512
max pages:               15686
max pools:               31
total pages:             0
total free:              0
idle index:              0/100
last shrink:             661s
last access:             661s
max pages reached:       0
grows:                   0
grows failure:           0
shrinks:                 0
cache access:            0
cache missing:           0
low free mark:           0
max waitqueue depth:     0
max wait time:           0/1000
out of mem:              0

@mtds Thank you very much for the thorough investigation! I did get your email last night, btw, noticed an unexpected newline at the end of the file but nothing else out of the ordinary.
The client issue appears to be us trying to parse an unsigned integer out of a number that needs to be parsed as a floating point. We've known that we probably should remove integer operations internally simply because Prometheus operates on floats and we convert to floats eventually anyway, but this is a good reason to move more quickly on that.

@mtds FYI, your parsing issue should be solved in current master. I'll take a look at integrating the file you emailed me into our functional testing code, to see if we can replicate the behavior you saw.

Thanks @joehandzik! I have just recompiled lustre_exporter on CentOS from the updated master and
I can confirm that the procfs error is gone.
Just for the sake of trying I have also recompiled the latest master branch on Wheezy and tried it again:
same error, the binary crashed again unfortunately.

@mtds Great, thanks for taking a look. Though of course not so great that there's still a problem with Wheezy or older Lustre. I'll keep thinking of ways to figure out what the root cause is here.

@joehandzik it would be really nice if you manage to find the root cause.
I was thinking on trying to run lustre_exporter through a debugger like GDB but I don't think I'll ended up finding something useful.

I get into same issue.

Lustre Version: 2.5.3
OS / Kernel Version: RHEL 6.2 / 2.6.32-431

Debug to find that the os.File.Read /proc/fs/lustre/sptlrpc/encrypt_page_pools return n greater than buf length, this cause panic.
Try to  write a c program, read function have same issue (return size greater than buf size).
The test buf size is  512,  because ioutil.ReadFile use buf is file_size+512 in go library, and in the /proc file size always is 0.
If i try to use a big enough buf size (e.g 1024) to read or os.File.Read, the issue disappear.

@wutaizeng I think the right answer here is just to disable the generic collector by using the flag setting '--collector.generic=core'. You'll still get the lustre_health metric, but you'll only lose the metrics from encrypt_page_pools. As far as I can tell from the issues that the two of your have run into, it only happens on older versions of Lustre anyway, so we're covered in 2.10+ (which is what we're targeting master at right now). @wutaizeng and @mtds, is that an acceptable workaround (setting the core flag for generic metrics)?

accept

Hi @joehandzik
Thanks for the suggestion: starting the exporter with this flag and querying  it over cURL works perfectly now! :-)
I have just tested the exporter on one of our OSS (with Debian Wheezy):
lustre_exporter --collector.generic=core
INFO[0000] Starting lustre_exporter (version=, branch=, revision=)  source="lustre_exporter.go:116"
INFO[0000] Build context (go=go1.9.2, user=, date=)      source="lustre_exporter.go:117"
INFO[0000] Collector status:                             source="lustre_exporter.go:119"
INFO[0000]  - OST State: extended                        source="lustre_exporter.go:121"
INFO[0000]  - MDT State: extended                        source="lustre_exporter.go:123"
INFO[0000]  - MGS State: extended                        source="lustre_exporter.go:125"
INFO[0000]  - MDS State: extended                        source="lustre_exporter.go:127"
INFO[0000]  - Client State: extended                     source="lustre_exporter.go:129"
INFO[0000]  - Generic State: core                        source="lustre_exporter.go:131"
INFO[0000]  - Lnet State: extended                       source="lustre_exporter.go:133"
INFO[0000] Available sources:                            source="lustre_exporter.go:142"
INFO[0000]  - procfs                                     source="lustre_exporter.go:144"
INFO[0000]  - procsys                                    source="lustre_exporter.go:144"
INFO[0000] Listening on :9169                            source="lustre_exporter.go:165"

Given the fact that we are using a quite old Lustre version (<IP_ADDRESS>) I believe it does not make
sense to modify the code in order to avoid this problem. Eventually we'll reach a point where we
will switch to Lustre 2.10+ too (hopefully :-))
If possible, I would propose to amend the README to reflect the fact that similar crashes
(with old Lustre version) should be tested with this flag before reporting a bug.

@mtds, that seems reasonable. We'll add a "Troubleshooting" headline into the README and suggest toggling the flag categories as a viable workaround. Really appreciate your thoughts!


Not all users have large avatars

e.g. https://pbs.twimg.com/profile_images/1173758523/hoodie2_normal.JPG
404s on https://pbs.twimg.com/profile_images/1173758523/hoodie2.JPG
From https://twitter.com/Jade_Puppy
Also breaks https://avatars.io/twitter/Jade_Puppy

As per http://web.archive.org/web/20130321181155/https://dev.twitter.com/docs/user-profile-images-and-banners
Try in this order:

example.jpg
example_bigger.jpg
example_normal.jpg


Modified SpeechInputSource and KeywordManager so that keybindings are usable when in Editor

Using voice commands inside Editor ends up with an error "Speech recognition is not supported on this machine. " and as there are no fallbacks nor exception handling regarding that both SpeechInputHandler and KeywordManager fail and eventually voice can't be tested inside Editor at all. The code here fixes it so a developer would have at least key bindinngs working for voice commands while in Editor.

Just FYI there is a PR that will mark the KeywordManager obsolete.

Also, could you give me more details about what kind of environment you're using for development?
Thanks

@rafek, did you fix the issues with your environment setup?

@rafek any update on this?

Closed due to lack of activity.


Update managed-policies.md

The criteria of having users in the scope of the CA policy is not clear enough as we have in our internal doc. Hence suggesting this update in the public doc to avoid any misunderstandings.

@MicrosoftGuyJFlo
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


pipes-rs: 1.4.7->1.6.0

Description of changes
They added rainbow support. Clearly this is very important (not really). :)
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

This is important business after all, so, a screenshot.


update1.footer.html

issue no#143
added enhancements such as hover effects, a smoother layout, and better spacing.

name: Pull Request Template
description: Template for submitting a pull request
title: "[PR] - "
labels: ''
assignees: ''

Description
Please include a summary of the changes made and the motivation behind the changes.
Related Issue
If applicable, please reference any related issue (e.g., #123).
Type of Change

[ ] Bug fix
[ ] New feature
[ ] Enhancement
[ ] Documentation update

Checklist

[ ] I have read the contributing guidelines.
[ ] My code follows the code style of this project.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] I have updated the documentation (if applicable).

Additional Context
Add any other context about the pull request here.

please mention the pr @Aasthaa10

https://github.com/andoriyaprashant/DevDocsHub/issues/143
this is the issue link
https://github.com/andoriyaprashant/DevDocsHub/pull/149
this is the pr

@andoriyaprashant kindly merge this pr you have only added the labels


found no layout file for "HTML" for "taxonomy"/"page"/"taxonomyTerm"

Hello,
I am trying to use your theme but I got the following errors:
hugo server
Building sites … WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "taxonomy": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "taxonomyTerm": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "taxonomy": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "taxonomy": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/01/11 17:17:46 found no layout file for "HTML" for "taxonomyTerm": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

What I did:
hugo new site hugotest
cd hugotest/content
cp ~/using_org_mode_in_hugo -av .
cd ../themes
git clone https://github.com/dashdashzako/paperback.git
hugo server

I am using:
hugo version
Jan 2020 08:52:08 PM -03
Hugo Static Site Generator v0.62.2/extended linux/amd64 BuildDate: unknown

I know almost nothing of Hugo, in fact I just installed it. Any idea on how to solve this?
Thanks!

I'm getting a very similar issue. I see 404 page for posts.
System info:
OS: Arch Linux
Go version: go version go1.14.1 linux/amd64
Hugo version: Hugo Static Site Generator v0.68.3/extended linux/amd64 BuildDate: unknown
Steps to reproduce:

Create site: hugo new site paperback
Go to new site directory: cd paperback
Download theme:
git init
git submodule add https://github.com/dashdashzako/paperback.git themes/paperback
Add theme to config file: echo 'theme = "paperback"' >> config.toml
Add a post: hugo new posts/hello.md

---
title: "Hello"
date: 2020-04-01T23:13:27Z
draft: true
---
Hello, world!

Start server: hugo server -D

Output of the command above:
Building sites â¦ WARN 2020/04/01 23:15:08 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/04/01 23:15:08 found no layout file for "HTML" for kind "section": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/04/01 23:15:08 found no layout file for "HTML" for kind "taxonomyTerm": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2020/04/01 23:15:08 found no layout file for "HTML" for kind "taxonomyTerm": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

                   | EN
-------------------+-----
  Pages            |  6
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  3
  Processed images |  0
  Aliases          |  0
  Sitemaps         |  1
  Cleaned          |  0

Built in 5 ms
Watching for changes in /path/paperback/{archetypes,content,data,layouts,static,themes}
Watching for config changes in /path/paperback/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address <IP_ADDRESS>)
Press Ctrl+C to stop

Click on the "All posts" link on the home page.

Then I get redirected to url http://localhost:1313/post/ and get the page 404 page not found.

Ok, I'm a year late.
@vonpupp the error is due to the config disableKinds = ["taxonomyTerm"] being missing in your hugo config file. This theme doesn't handle them at all.
@smadurange this is the same issue, but you also have written your md file to posts instead of post.

I'm still seeing the warning:
WARN 2021/04/02 06:57:25 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

along with the 404 after creating the content in post instead of posts.

The theme doesn't provide layout for the kind "page", only for "post".
Check the demo repository, it provides the exact directory tree and content type to run the theme.

Thanks for your help. Very nice theme, loving it.

@dashdashzako I tried cloning your demo project and running it.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "home": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
WARN 2021/04/04 21:55:31 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.


Push state and updating URLs with Turbo Frames

Hi,
Let's say I wanted tabs on a page to be loaded in frames but I wanted each tab to have its own distinct URL. Currently it doesn't seem like this is possible out of the box because switching between frames doesn't update the URL.
Here's a real world use case of where I wanted to use Turbo Frames but ended up aborting the idea of it and going back to making a raw ajax request and then not rendering the layout of the page at the controller level when I detected it was an ajax request.
We all remember Railscasts right? Here's one of its pages: http://railscasts.com/episodes/416-form-objects?autoplay=true
The neat thing about this page is if you're playing a video, you can navigate between the show notes, comments and the other tabs without the video player stopping. Each tab also has its own unique URL so you can bookmark it and share it with others.
In Railscast's case I believe just using Turbo Drive and the permanent attribute would have been good enough to make this work because Ryan is using a native video player.
However, a lot of video services like Vimeo expect you to embed an iframe and iframes have a very unique characteristic in that as part of the spec if the underlying DOM of the iframe changes then the iframe gets reloaded which means the video watching experience gets interrupted (even when using the permanent attribute).
So that leaves us with at least 2 choices to get an uninterrupted video playback experience:

Have each tab as its own controller but then manually set up some JS to make each link an ajax request and have Rails not render the layout at the controller level unless someone is directly accessing the URL.

Use the new Turbo Frames feature (which works), but then the URL doesn't get updated.

Is there a way forward where push state could be added to Turbo Frames, or would that not make sense for the use case that frames is trying to tackle, and in the above case we should wire up a manual ajax call to have that desired effect?

Considering the example of a video player whose playback is uninterrupted during navigation:
Would marking the <iframe> or an ancestor with an [id] attribute and  data-turbo-permanent help? If the player were permanent, the "tabs" wouldn't need to be frames, and could be full-on page navigations, and Turbo would manage the extraction and injection of the player element across visitations.

Would marking the  or an ancestor with an [id] attribute and data-turbo-permanent help?

It doesn't. The iframe visibly refreshes in the dom and the video loses its progress.
The end result is the same with the following 3 combinations when using drive without frames:

data-turbo-permanent on the iframe
data-turbo-permanent and putting an id="helloworlduniqueid" on the iframe
data-turbo-permanent and putting an id="helloworlduniqueid" on a div that surrounds the iframe

@nickjj I just ran into this use case as well.
I’m currently wiring up a list -> details view (consisting of a sidebar and a main content area) and I’d love to change the URL from the index view /notes to /note/:id when the user clicks a note in the sidebar and it’s rendered into the details view (main content area).
I would be great if we could specify that a link with a data-turbo-frame attribute should update the URL.

I would also be interested in having Turbo Frames work similar to the "Target" feature of htmx or unpoly .
With Turbo always replacing the complete body the "illusion" of using a SPA will sometimes be lost, especially if there are images on a page that do not change between sites but will flicker due to Turbo replacing the HTML.

FWIW I accomplished it with the following stimulus controller using Mutation Observer.
https://gist.github.com/Intrepidd/ac68cb7dfd17d422374807efb6bf2f42

I would be great if we could specify that a link with a data-turbo-frame attribute should update the URL.

I was thinking about this recently and I think that would be the way to go too. Because if you had a drop down menu loading in a frame you wouldn't want a URL change for that, so the URL likely needs to be an optional attribute.
Even in the hotwire example screencast it would be reasonable to want to set the URL when you edit a resource. This is seen at the 3 minute mark https://www.youtube.com/watch?t=180&v=eKY-QES1XQQ. Notice how the URL doesn't get updated when clicking edit, but a few seconds before when the content wasn't loading in a frame it did.

FWIW I accomplished it with the following stimulus controller using Mutation Observer.

@Intrepidd do you have a usage example to go with the controller? Or is it only a matter of attaching a data-src to the frame?

You need to connect the controller directly on the frame and it should
work.
On December 30, 2020, Github<EMAIL_ADDRESS>wrote:

I would be great if we could specify that a link with a data-turbo-

frame attribute should update the URL.

I was thinking about this recently and I think that would be the way

to go too. Because if you had a drop down menu loading in a frame you

wouldn't want a URL change for that, so the URL likely needs to be an

optional attribute.
Even in the hotwire example screencast it would be reasonable to want

to set the URL when you edit a resource. This is seen at the 3 minute

mark https://www.youtube.com/watch?t=180&v=eKY-QES1XQQ. Notice how
the URL doesn't get updated when clicking edit, but a few seconds
before when the content wasn't loading in a frame it did.

FWIW I accomplished it with the following stimulus controller using

Mutation Observer.

@Intrepidd https://github.com/Intrepidd do you have a usage example

to go with the controller? Or is it only a matter of attaching a data-

src to the frame?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hotwired/turbo/issues/50#issuecomment-752489374, or
unsubscribe <https://github.com/notifications/unsubscribe-
auth/AAGEHNMAD2XXDZ4PU22NOQTSXMJVZANCNFSM4VMHEWRQ>.

Hi all, I've successfully implemented @intrepidd's Turbo Frames Navigation Controller in a Shopify embedded proxy app. So that's great and the whole principle work. Would be awesome to have this as some kind of data-attribute in Turbo itself.
One other thought I had. I basically have used this method now to embed a Turbo app inside another website. Essentially I only have the need for a single top level Turbo Frame. So another way of solving my use case would be to set a top level container other than body with just Turbo Drive.

Hi all, I've successfully implemented @intrepidd's Turbo Frames Navigation Controller in a Shopify embedded proxy app. So that's great and the whole principle work. Would be awesome to have this as some kind of data-attribute in Turbo itself.
One other thought I had. I basically have used this method now to embed a Turbo app inside another website. Essentially I only have the need for a single top level Turbo Frame. So another way of solving my use case would be to set a top level container other than body with just Turbo Drive.

I would love this also. We have a, sort of, "wizard" on the main content part of the page. On the sidebar, we have a lazy-loaded frame. If we do nothing, each time we click through the wizard, the whole page reloads (including the lazy frame, which is annoying). We thought to add a frame around the wizard... which works, except that we want the option to change the URL on links inside that frame :).
Thanks!

I would love this also. We have a, sort of, "wizard" on the main content part of the page. On the sidebar, we have a lazy-loaded frame. If we do nothing, each time we click through the wizard, the whole page reloads (including the lazy frame, which is annoying). We thought to add a frame around the wizard... which works, except that we want the option to change the URL on links inside that frame :).
Thanks!

Maybe we could have a concept of "main frame" or "navigation frame" that would be behaving like target _top navigation-wise but would not refresh the whole page

Maybe we could have a concept of "main frame" or "navigation frame" that would be behaving like target _top navigation-wise but would not refresh the whole page

I think having the ability to mark a Frame as main would solve the issue indeed: a unique frame in the page that sync its URL with the top URL. I don't think a navigation one is needed with that idea as every other frame except the main one would behave as they already do.

I think having the ability to mark a Frame as main would solve the issue indeed: a unique frame in the page that sync its URL with the top URL. I don't think a navigation one is needed with that idea as every other frame except the main one would behave as they already do.

I was also able to get the @Intrepidd Turbo Frames Navigation Controller working. It works nicely to push/pop state. The challenge for me is when I load into a targeted Turbo frame (e.g. Frame A) content from url 1 and then content from url 2, hitting back should load url 1 into Frame A, not load the url as an entire page load. We also need a way to maintain knowledge of what the original target was and then load into that frame. I could capture the frame id in the event state, but don't have a way to target the url into the frame.

I was also able to get the @Intrepidd Turbo Frames Navigation Controller working. It works nicely to push/pop state. The challenge for me is when I load into a targeted Turbo frame (e.g. Frame A) content from url 1 and then content from url 2, hitting back should load url 1 into Frame A, not load the url as an entire page load. We also need a way to maintain knowledge of what the original target was and then load into that frame. I could capture the frame id in the event state, but don't have a way to target the url into the frame.

Without built-in support, is it possible to achieve this behavior without using a turbo-frame at all by using Turbo events:
https://turbo.hotwire.dev/reference/events
let mainFrame = null

addEventListener("turbo:click", ({ target }) => {
  // [data-main-frame] is an arbitrary attribute name
  mainFrame = target.closest("[data-main-frame][id]")
})

addEventListener("turbo:before-render", ({ detail }) => {
  if (mainFrame?.id) {
    const newMainFrame = detail.newBody.querySelector("#" + mainFrame.id)

    if (newMainFrame) {
      mainFrame.innerHTML = newMainFrame.innerHTML       // replace the NEW frame's HTML with the OLD frame's HTML
      detail.newBody.innerHTML = document.body.innerHTML // replace the NEW page's HTML with the OLD page's HTML
    }
  }

  mainFrame = null
})

This will carry forward the rest of the page's HTML into a new Visit, while preserving the NEW content served within the "main frame".
This is pseudo code, but the concept itself might be viable.

Without built-in support, is it possible to achieve this behavior without using a turbo-frame at all by using Turbo events:
https://turbo.hotwire.dev/reference/events
let mainFrame = null

addEventListener("turbo:click", ({ target }) => {
  // [data-main-frame] is an arbitrary attribute name
  mainFrame = target.closest("[data-main-frame][id]")
})

addEventListener("turbo:before-render", ({ detail }) => {
  if (mainFrame?.id) {
    const newMainFrame = detail.newBody.querySelector("#" + mainFrame.id)

    if (newMainFrame) {
      mainFrame.innerHTML = newMainFrame.innerHTML       // replace the NEW frame's HTML with the OLD frame's HTML
      detail.newBody.innerHTML = document.body.innerHTML // replace the NEW page's HTML with the OLD page's HTML
    }
  }

  mainFrame = null
})

This will carry forward the rest of the page's HTML into a new Visit, while preserving the NEW content served within the "main frame".
This is pseudo code, but the concept itself might be viable.

This is pseudo code, but the concept itself might be viable.

Would you mind giving it a whirl with an iframe on the page (such as embedding a YouTube video)? Only asking because I'm not quite sure how to implement your pseudo code into a working example.

This is pseudo code, but the concept itself might be viable.

Would you mind giving it a whirl with an iframe on the page (such as embedding a YouTube video)? Only asking because I'm not quite sure how to implement your pseudo code into a working example.

Here's a reimplementation of my controller to reproduce this behaviour with turbo beta 4
Now that the Location API is being used rather than the previous internal API, we can use the turbo navigator and have a much smaller controller :
https://gist.github.com/Intrepidd/bb1ffc5944a5c1ec3a9f5582753c4b67

Here's a reimplementation of my controller to reproduce this behaviour with turbo beta 4
Now that the Location API is being used rather than the previous internal API, we can use the turbo navigator and have a much smaller controller :
https://gist.github.com/Intrepidd/bb1ffc5944a5c1ec3a9f5582753c4b67

@Intrepidd Works like a charm, thank you! 🙏🏻  It would definitely be useful if this was part of Turbo.

A gotcha with @Intrepidd solution:
It works perfectly if your server responds with the full page.
In my case, I tried to optimise and respond just with the turbo-frame if I detect the appropriate header set by Hotwire. For faster user experience, I also set a short expiration header:
expires_in 20.minutes
if request.headers["turbo-frame"] == "movie_feed"
  render "movies_feed_turbo_frame"
else
  render :index
end

Navigating into the frame works perfectly, but once you navigate to another page and hit the back button, Hotwire will replace the whole <body> just with the contents of the cached <turbo-frame>, as well as clear any classes previously set on the <body>.
Even if you optimisation is simpler than mine (e.g. just layout: false), Hotwire will clear out any classes you might have on the <body> when you navigate back.
This doesn't happen if you don't set expiration headers of course.
Agree with @janko it would be great to have the whole use case supported by Turbo out of the box, as it allows you to efficiently patch the page with smaller updates while updating user's history for greater usability.
Example use case: a feed with filters that just updates the feed results and URL, while keeping the rest of the page untouched as you apply various filters.

I believe the best way to fix the back button problem with @Intrepidd's controller lies in this line:
if (src != null) { navigator.history.push(new URL(src)) }

We should push not only the URL to the state but the frame as well. And Turbo should respect that param as well as respects the data-turbo-frame attribute on links and buttons
Having something like this would be cool:
if (src != null) { navigator.history.push(new URL(src), { turboFrame: this.element.id }) }

I tried to hack an updated controller that handles history itself, and have the Back button working: https://gist.github.com/Kukunin/5033345db6da9d2edc002dc3f39702ac.
I was surprised how isolated turbo frames are implemented in Turbo, there is no way to pass turbo-frame to Turbo.visit nor to Navigator, and how turbo-frame works is via LinkInterceptor that just changes frame's src attribute.

The solution from @seanpdoyle is interesting too. I believe it won't work because of this line: detail.newBody.innerHTML = document.body.innerHTML which will not only reload but rebuild iframes. But I wonder if we can do detail.newBody = document.body and have Turbo not replace the body.
Just checked, document.body.replaceWith(document.body) reloads iframes so replacement body with itself still won't fit. There should be a way to tell Turbo to not replace the body at all

+1 this feature would be invaluable

@Kukunin, I've tried your solution, and it works ok, but just for one history back, if I try to back twice, it does not change the page.

@michelson you're right, thanks for the reporting. I'll update my gist with the fix soon

@michelson found a bug, where the observer pushed a new state every time the back button clicked. Fixed in my gist

@Kukunin thanks for let me know, I can confirm that is working flawlessly :)

@Kukunin it seems that the solution has an issue when navigating from history.
to reproduce:

navigate from a page with a history-frame controller, then back to a page without the history frame or with a different frame

result:

it changes the browser but it does not refresh or update the page.

I think it should make a navigator.history.push as a fallback , what you think ?

@michelson oh, that might be complicated since the controller needs to mount/demount itself.
It's out of the scope of my usage (I have the frame on every page), but I could take a look if you can create a reproducible case for me (as a Github repo).
Thank you for testing, it's valuable for community

Hi @Kukunin, thanks for taking your time to take a look, here is the example repo https://github.com/michelson/history-turbo-rails-example, let me know if that's what you need, I hope you find it useful to debug the problem.
demo:
https://user-images.githubusercontent.com/11976/124841325-f4ad9780-df5a-11eb-91b6-62b1b1890818.mp4
I've tried the following, kinda works, but after the Turbo.visit the history is gone
  popStateListener(event) {
    if ( event.state.turbo_frame_history){
      if(event.state.turbo_frame === this.element.id){
        this.element.src = window.location.href;
      }else{
        console.log("HISTORY NOT HANDLED FALLBACK REQUEST TO TURBO VISIT")
        window.Turbo.visit(window.location.href)
      }
    }
  }

@dhh Is there a plan on solving these url and history issues out of the box? To me the idea of providing a parameters to the link or form to define if it should replace the url and/or push to history sound promissing. Would be great to know your plans on this. So we know if we should build our own workaround or wait (and if needed/wanted help) for an implementation in turbo.

I'd like to see Turbo offer more direct controls, but there's not a final proposal ready to go. There won't be anything in the box for 7.0.
So I'd say go right ahead and experiment in your own apps. That's a better way to figure out what an official version should look like anyway.

What's the current state of this? I really like the idea of a more generic approach that's baked in already, similar to how we can opt-in/out of using turbo for individual links/blocks.

@xpopov data-turbo-action="advance" does solves the forward navigation issue, but its showing weird behavior when I click back button in the browser. I am new to the rails ecosystem, honestly these little things are pretty annoying and it's really hard to figure out what's happening. I wish these would work out of box @dhh just like rails.


Show descriptive hover/tooltips for keywords in IDEs

final a = '';
const b = '';

I often see questions posted on Reddit/etc. about the difference between final/const. It would be nice if hovering over their keywords here provided some description that explains the difference (perhaps the text from https://dart.dev/guides/language/language-tour#final-and-const).
Similarly, some users may be less familiar with sync*, async*, yield* so when browsing package/SDK code, being able to hover over those for descriptions (and/or links out to docs) would probably also provide some benefit.
I don't know if many other languages do this. I know Rust does, though I don't have any experience with it.

We've talked a little bit about introducing a sort of language construct reference similar to this Kotlin Keywords and operators page. The original thinking was to have a page to search for constructs easier now that we split up the language tour, but this could be a second use for it.

The Glossary page! @parlough and I have been talking about implementing a hover-over within the docs itself (like, "something, something, refutable pattern...", and hovering over the keyword shows the glossary definition in a little pop up, and clicking takes you to the glossary page.
So just explaining that to say that the definitions could live there and be used across the site and the tips. And if this implementation is relatively straight forward, we can start filling out the glossary right away

We should store the data in a way that the server can parse it ...

Yes, I think that's key to making this work.
I don't know whether we'd want to display the full content of the entry or whether we'd want to display a subset with a link to the longer text. That might depend on whether we can include links in the hover text. It looks like we can, but I haven't verified that.

I don't know whether we'd want to display the full content of the entry or whether we'd want to display a subset with a link to the longer text...

Yeah I guess before we determine what can (or should) be shared or where to put that documentation, we need a more clear idea of what and how much information we want to show in the tooltip.
I just checked out Rust Analyzer and it shows a lot more information than I expected, multiple paragraphs and code samples, and then links to the reference material for the keyword or operator as well as a related entry in the Rust Book.
Personally, it didn't seem like a tooltip was a great place to learn all of that though, so maybe a sentence or two to provide that context with links is enough, I'm not sure.

I don't know whether we'd want to display the full content of the entry or whether we'd want to display a subset with a link to the longer text. That might depend on whether we can include links in the hover text. It looks like we can, but I haven't verified that.

Yep, links work fine:

We do have this user preference that we use to decide whether to show full or summary docs in hovers:

But we default to "full" and I'm not sure we want to put too much here. I think having a reasonable summary and a link to website (which could have expanded docs) would probably be better. We'd need to ensure the data in the website can contain both summary + detailed data in that case (so the website can render it all, but the server scripts can just pull the summaries). We'd also need to ensure server can compute a link to the expanded docs.
I think even having only summaries on the website initially would still be useful. Users clicking the links might not get any additional info than what was in the tooltip, but they might be interested in seeing information about the other operators all in one place without having to discover/hover them in the editor.
Do we have an easily available list of all keywords/operators that we might want to include, or do we need to compile one?

We'd also need to ensure server can compute a link to the expanded docs.

A hardcoded link in the doc text might be just as good here (because users can't add new operators, so we know everything we need to know in advance). Either way server will produce a predetermined link.
We will, of course, need to be careful about breaking links if we ever want to change the location of the docs.

I'll also note that we don't strictly need to have links before we can have some kind of hover text. We could add some initial text and then update the text later, including adding links. One advantage of this approach is that we could find out whether the feature is worth spending more effort on before we actually spend a lot on it.

This came up recently at https://github.com/Dart-Code/Dart-Code/issues/4864.
Perhaps we can start with a JSON file in the server that contains some snippets and links for keywords/modifiers and show them where they exist. For example:
{
  "sealed: {
    // Documentation tagged onto the hover
    "documentation": "The [sealed](https://dart.dev/language/class-modifiers#sealed) modifier prevents a class from being extended or implemented outside its own library. Sealed classes are implicitly [abstract](https://dart.dev/language/class-modifiers#abstract)."
    // an object so we could add additional fields in future, for example a specific URI that isn't
    // just inside the text
    // "documentationUrl": "https://dart.dev/language/class-modifiers#sealed"
  }
}

We could have an integration test to verify the URLs are all still valid (and there are matching anchors in the page), and in the future (or now, if the website developers are happy to add it) we could move this JSON to the website and/or pull data from the website and generate this file in the server (committed to the repo, so we're not reliant on an internet connection and we version with the SDK).

@MaryaBelanger For doc team input.

I'm glad you brought this up again, it crossed my mind the other day.
I'm personally all for starting with something in the SDK, but either way, I think we need to determine a link structure we can support long-term on the website, so old SDKs don't link to missing fragments.
Perhaps dart.dev/go/keyword/<keyword> and dart.dev/go/operator/<operator> or something similar, then we can make sure those work and stay updated on the website.

class modifiers brought me here -- I always try to hover over them to see what a modifier mean 😅
I think this feature would really be helpful as the number of keywords in Dart seems to be increasing with each new language feature.

@DanTup Can we start with just docs sourced from a YAML file in the analyzer and hold off on the links to elsewhere?

It could - though if we might ultimately pull the content from somewhere else (like the website), maybe just using a constant map would be easier (it would give us some safety around identifiers, since I think the raw keywords alone won't be enough because of context - for example final in classes vs variables):
enum DocumentationKeyword {
  abstract,
  as,
  /// `final` keyword used in a variable declaration
  final_var,
  /// `final` keyword used in a class declaration
  final_class,
}

const keywordDocumentation = <DocumentationKeyword, String>{
  DocumentationKeyword.abstract: '...',
  DocumentationKeyword.as: '...',
  DocumentationKeyword.final_var: '...',
  DocumentationKeyword.final_class: '...',
};

If we implemented this, do we have existing content we can use (or someone that could provide it)? Should we just use the description taken from each page linked to from https://dart.dev/language/keywords and adjust the wording as necessary?


Mention "flatten" in docs for std.algorithm.iteration.joiner

Might help searchability.

LGTM, thanks!

Auto-merge toggled on


preloader

#486
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/assets/158484284/173659f0-d234-40e9-b15b-b79d3de2d6bc

Resolve the conflicts of branch. Pull changes from origin.


CloudFront looks like wordpress

Several references to wp-*.
This should be cleaned up.

Can you elaborate the issue a bit more?

https://github.com/aws-samples/aws-refarch-drupal/blob/master/templates/aws-refarch-drupal-04-cloudfront.yaml#L59
Starting here.  CloudFront caching behaviour configured for wordpress paths.


Add this Web dev Project random quote machine

This project created using html,css and js , Random quote Generator machine.

@Ash-KODES Please have a look.

@Ash-KODES Please have a look.

Please add a readme to your project and a live hosted link of the same.

@Ash-KODES Please have a look , I have added deployed link  and readme.

Please let me know if this is included in Hacktoberfest 2022. because this year numerous comparable repos are not accepted

Yes this is included.
On Sat, 15 Oct, 2022, 8:55 pm noobshubham, @.***> wrote:

Please let me know if this is included in Hacktoberfest 2022. because this
year numerous comparable repos are not accepted
—
Reply to this email directly, view it on GitHub
https://github.com/GDSC-IET-LUCKNOW/Showcase-Hacktoberfest-2022/pull/4#issuecomment-1279766528,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AV5A3PRGA3EHG5DHJEKKMH3WDLEGTANCNFSM6AAAAAAQ7VEPFI
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

Thanks Buddy!
On Sat, Oct 15, 2022, 11:26 PM CHAYANDEV BERA @.***>
wrote:

Yes this is included.
On Sat, 15 Oct, 2022, 8:55 pm noobshubham, @.***> wrote:

Please let me know if this is included in Hacktoberfest 2022. because
this
year numerous comparable repos are not accepted
—
Reply to this email directly, view it on GitHub
<
https://github.com/GDSC-IET-LUCKNOW/Showcase-Hacktoberfest-2022/pull/4#issuecomment-1279766528
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AV5A3PRGA3EHG5DHJEKKMH3WDLEGTANCNFSM6AAAAAAQ7VEPFI
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

—
Reply to this email directly, view it on GitHub
https://github.com/GDSC-IET-LUCKNOW/Showcase-Hacktoberfest-2022/pull/4#issuecomment-1279794410,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANI4GARYRDD2XESHJ2IEHETWDLV3ZANCNFSM6AAAAAAQ7VEPFI
.
You are receiving this because you commented.Message ID:
@.***
com>


space[@type="descender"] for tfaPallava091

Dear @manufrancis,
As discussed, the value descender for space[@type] is no longer available. It is use once in your repository for tfaPallava091, can I let you change it and move the information into the apparatus?
Thanks

Done!
Thanks for spotting it.


character limit is only 10 for all masks

i can't set a number like 9,999,999,999.00
the currency mask limit me to 999.999.00
or 99.999.999
just 10 chars on the input

No solution to this problem?

@naitsir ,
Sorry for the late response, but I couldn't spend much time on the inputmask currently.
Can you provide some more info.  Do you use some extra options?  A specific browser?  platform?

@naitsir,
In the current version there is no such limit


Adding a Timeout if the Serial Port does not respond

Could this be added to the implementation? I would need a Timeout message after writing bytes to the opened serial port where I can specify after a certain FiniteDuration, the read should Timeout? I have a scenario where I have two devices and I try to connect to these two devices one after the other. If the first one does not respond after a certain time (which I currently have in my Actor), I try the next one. Could this be added to the IO(Serial) actor such that it handles this internally in the library itself, rather than me controlling it from outside?
I can post you an example tomorrow.

Could you elaborate on the protocol in this case, i.e. what messages should the serial manager send back to the client when a timeout occurs?
It seems to me that this can easily be implemented in client code, when required:

schedule a timeout message when opening the connection
when the message arrives do one of the following

if no data has arrived, handle the timeout scenario
else ignore the timeout

I'm reluctant to include this into the project since it adds extra complexity and I don't think this timeout feature is required by most use-cases


Optimize alluxio.resource.DynamicResourcePool

Optimize DynamicResourcePool by using ConcurrentLinkedDeque instead of (ArrayDeque + Lock)
JMH benchmark result shows about 4 times faster when simply calling acquire and release methods.
JMH test case:
https://gist.github.com/gengxin/4296a4c43b3cff9339df4b8100d5f1ee
Result before optimization:

Benchmark                                              Mode  Cnt  Score   Error  Units
DynamicResourcePoolBenchmark.acquireAndRelease         avgt   20  4.936 ± 0.429  us/op
....[Thread state distributions]....................................................................
58.2%         RUNNABLE
22.5%         WAITING
19.3%         TIMED_WAITING

Result after optimization:

Benchmark                                              Mode  Cnt  Score   Error  Units
DynamicResourcePoolBenchmark.acquireAndRelease         avgt   20  1.378 ± 0.052  us/op
....[Thread state distributions]....................................................................
77.2%         RUNNABLE
18.7%         TIMED_WAITING
4.2%         WAITING

Benchmark hardware:
Intel i5 (6 core)

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/6040/
Test PASSed.

@gpang  are you good with this PR? shall I take a closer look at it ?

@apc999 I haven't had a chance to look at it carefully yet...

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/9432/
Test FAILed.


HTML

HTML
User Story
As a boot camp student
I want a Prework Study Guide website,
so that I can review all the information I learned throughout Prework.
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CDD, Git, and JavaScipt with associated notes listed

completed HTML


add getNetworks to n3 dapi

We have getNetworks in extension/dapi/index.ts, but it's missing in extension/dapi/neo3.ts
So right now getNetworks method is injected into window.NEOLine but not in window.NEOLineN3, meanwhile it's documented as it should be there

@worlddeleteRin Hello, We have improved it in v3.6.1, just waiting for the review now. if you need it now, you can get it here


Can't exclude @ctix-declaration file

ctix-demo.zip
Please check the project:

exclulde: ["**check**"]
file check.ts not excluded
file check2.ts has excluded

@smallmain Hi,
I believe the glob pattern needs to be changed. The **check** glob pattern does not work as intended. Please refer to the link below and update the glob pattern accordingly.

Hi, I clicked the link below, but I still don't understand what's wrong with glob pattern.

The exclude configuration now runs before the comment directive. In version 2.6.1, the comment directive had higher priority than the exclude option. This was changed in version 2.6.2.


Example code breaks due to missing dep: requests

just need to add the requests library into deps, maybe: PR1?

I am also getting an error running the example code even after adding the dep. See below:
Traceback (most recent call last):
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 449, in _make_request
six.raise_from(e, None)
File "", line 3, in raise_from
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 444, in _make_request
httplib_response = conn.getresponse()
File<EMAIL_ADDRESS>line 1374, in getresponse
response.begin()
File<EMAIL_ADDRESS>line 318, in begin
version, status, reason = self._read_status()
File<EMAIL_ADDRESS>line 287, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/util/retry.py", line 550, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/packages/six.py", line 769, in reraise
raise value.with_traceback(tb)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 449, in _make_request
six.raise_from(e, None)
File "", line 3, in raise_from
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 444, in _make_request
httplib_response = conn.getresponse()
File<EMAIL_ADDRESS>line 1374, in getresponse
response.begin()
File<EMAIL_ADDRESS>line 318, in begin
version, status, reason = self._read_status()
File<EMAIL_ADDRESS>line 287, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/lsrc/hyperliquid/test.py", line 16, in
user_state = info.user_state("0xcd5051944f780a621ee62e39e493c489668acf4d")
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/hyperliquid/info.py", line 56, in user_state
return self.post("/info", {"type": "clearinghouseState", "user": address})
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/hyperliquid/api.py", line 36, in post
response = self.session.post(url, json=payload)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/requests/sessions.py", line 635, in post
return self.request("POST", url, data=data, json=json, **kwargs)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/Users/lsrc/hyperliquid/venv/lib/python3.10/site-packages/requests/adapters.py", line 547, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

@lasource18 this looks like an issue with the hyperliquid API, not the SDK. Could be an outage since the platform is still on early alpha.. Did you try on testnet?

@lasource18 this looks like an issue with the hyperliquid API, not the SDK. Could be an outage since the platform is still on early alpha.. Did you try on testnet?

You were correct it seems like the issue was with the API. I was actually trying to run the code on testnet which seemed to be lagging/down at the time. The API is working now and the code is running thank you.

Thanks for the bug report, I'm going to close this issue as the PR was merged


Debian url source in vmTools yields 404

Issue description
The download urls for debian packages in vmTools.diskImageFuns.debian9i386 are dead.
Steps to reproduce
nix-build nixos/tests/os-prober.nix

Output excerpt:
trying http://ftp.debian.org/debian/pool/main/b/base-files/base-files_9.9+deb9u9_i386.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found

trying http://archive.debian.org/debian-archive/debian/pool/main/b/base-files/base-files_9.9+deb9u9_i386.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found

trying ftp://ftp.funet.fi/pub/mirrors/ftp.debian.org/debian/pool/main/b/base-files/base-files_9.9+deb9u9_i386.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (28) Timeout was reached

trying ftp://ftp.nl.debian.org/debian/pool/main/g/gettext/gettext-base_<IP_ADDRESS>-2_i386.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (78) RETR response: 550

trying ftp://ftp.ru.debian.org/debian/pool/main/g/gettext/gettext-base_<IP_ADDRESS>-2_i386.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0

Happens on nixpkgs e0470e11c7a02f9e6e70f5ec5e1d9470c742b396 (nixos-unstable)

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/89


Image 404 in footer

Not sure why but:

This is obviously extremely low priority.

This was because ckan.site_logo was set to /uploads/admin/logo.png in the system_info table, so that overrode the config option at runtime. Fixed now.

Dang, my only guess can be that I did this accidentally when modifying the status that now lives in the same live config? I'll be more careful next time!


Use requests

This change is

Coverage decreased (-2.0%) to 58.38% when pulling 993d02594e5838b58a9e279866a90af587162629 on bubanoid:use_requests into ef4c2eacbbbe2a4c73be6039ee9d6ebe64431734 on openprocurement:use_requests.


Tweaking for Java 9+

I know this project is deprecated. Is there any chance we can add a config or tweak the generated code to work on Java 9+?
Basically:
import javax.annotion.Generated;
Needs to become:
import javax.annotion.processing.Generated;
In the generated code. Then it should work for Java 9+, but would break Java 8-. Need a way to check which jdk is being used.

Oh wow, it's been a while. I guess I would migrate everything to gradle first.
Does it have to be zerobuilder itself, or can you use one of the other projects mentioned in the readme "crate", "readable", "bean standard"?
It seems easier to do with these.

OK I'll try to convert it to gradle, then it should be easy to do this.

Done, had to change the groupId though.
Try with these coordinates:
implementation('io.github.jbock-java:zerobuilder:1.645')
annotationProcessor('io.github.jbock-java:zerobuilder-compiler:1.645')

That is awesome. Thank you!
Been trying to revive an old project with a decades worth of code in it and get it on a new version of java, and there was 100s of classes all using zerobuilder.
On Java 8 my old project takes over 60 minutes to compile. But on the newer JDK its takes 2 minutes. (Performance regression in Java 8 compiler)


Point out that the tutorial is for octa.com

It looked like the tutorial about a common way to implement authentication. But it is for octa.com web service only.

You are right, thank you very much.


installPackage or pip doesn't work with 2.1.5

installPackage or pip doesn't work with 2.1.5. It is jot possible to install new packages in this distribution!

Version 2.1.6 should fix this


Error starting frog on Fedora 36 - No provider of glGetShaderiv found.

Hello. I installed From from Flatpak in a recently updated Fedora 36 install, but when I start the application, it crashes with the following error:
libEGL warning: MESA-LOADER: failed to retrieve device information

libEGL warning: DRI2: could not open /dev/dri/card0 (No such file or directory)
libGL error: MESA-LOADER: failed to retrieve device information
Cache downloaded codes: ['eng']
No provider of glGetShaderiv found.  Requires one of:
    Desktop OpenGL 2.0
    OpenGL ES 2.0

I found out some Reddit thread of a similar problem regarding GTK4 apps and they said to run with GSK_RENDERER=cairo environment variable and it works.
This error only apps in Frog and not other GTK4 apps.
I seem to have OpenGL installed:
❯ glxinfo | grep OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (WHL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.0.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.0.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
``

I'm on Fedora 36 from beta and still have no issues like these. Do you use an Intel card? Please look at #53.

Yes, I have an Intel card.
I found a user with exactly the same problem on Reddit - https://www.reddit.com/r/archlinux/comments/v2qrjf/mesaloader_problem_to_run_flatpak_app/  and the solution worked.
I needed to give dri permission to the Flatpak for it to work.

I'll add it to the next release. But for now, I'm glad you found a solution.


Your sample JSON input file is VASTLY simplified. Can you maybe show one that has multiple arrays inside multiple arrays?

The sample JSON data you show is ONE element of data, NOT an array. Typical JSON files are arrays within arrays. You do not show how to grab an element from the top array and all the details from the lower level array. Like suppose your JSON data contained multiple Sales Orders, and each Sales Order (header) contained multiple Sales Order Lines.
Your sample is simple, not relatable to the real world.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 75402f01-c53e-25e0-6f1c-bc94d797dda1
Version Independent ID: a3dfb190-a12d-37cf-2dfe-034becd60e39
Content: Schema and data type mapping in copy activity - Azure Data Factory & Azure Synapse
Content Source: articles/data-factory/copy-activity-schema-and-type-mapping.md
Service: data-factory
Sub-service: data-movement
GitHub Login: @jianleishen
Microsoft Alias: jianleishen

@ToddChitt
Thanks for your feedback! We will investigate and update as appropriate.

@jianleishen
Please review it.

@ToddChitt
Thank you for bringing this to our attention.
I've delegated this to content author @jianleishen, who will review it and offer their insightful opinions.

Thank you @ToddChitt for contributing to help us improve the docs. I apologize that we haven't gotten to your issue that has been open so long. I've created an internal work item for me to track it though, and I'm following up with the owning Product Manager for this area, so we will track it and address it as soon as possible. I will close this issue out now, but if necessary, we can continue the discussion in this thread, even after the issue is closed.
#please-close


Update azure-stack-managed-disk-considerations.md

Standard SSD already became GA.

@kongou-ae : Thanks for your contribution! The author, @sethmanheim, has been notified to review your proposed change.

@kongou-ae Looks fine, thank you for your contribution!
#sign-off


operator [N] [CI] kubecost (1.97.0)

Add new Kubecost operator 1.97.0
New Submissions

[X] Are you familiar with our contribution guidelines?
[X] Have you packaged and deployed your Operator for Operator Framework?

[X]Have you tested your Operator in all supported installation modes?
[X] Have you considered whether you want to use semantic versioning order?
[X] Is your submission signed?
[X] Is operator icon set?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[X] Description of the managed Application and where to find more information
[X] Features and capabilities of your Operator and how to use it
[X] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[X] Human readable name and 1-liner description about your Operator
[X] Valid category name1
[X] One of the pre-defined capability levels2
[X] Links to the maintainer, source code and documentation
[X] Example templates for all Custom Resource Definitions intended to be used
[X] A quadratic logo

/merge possible

@linhlam-kc, value of 'metadata.annotations.containerImage' not used in any container, please check.
The operator is using some image which must have exactly the same value as 'metadata.annotations.containerImage'.
Please check both values and make them the same.

metadata.annotations.containerImage'

@J0zi Thank you for your review. Does that mean the other images are going to be used by the Operator need to be in the same path ? E.g: My bundle image is gcr.io/kubecost1/operator/kubecost-bundle:v1.97.0, so the other image must be under  gcr.io/kubecost1/operator/ isn't it? I have the operator image defined at link

/merge possible

/retest

/merge possible

/merge possible

/merge possible

/merge possible


Allow task creation timeout to be configurable with mesos.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "mesos_task_timeout" git@github.com:tnachen/swarm.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Just realized this is a dup, closing for now.


Can't create 3D joints anymore

Godot master 63c9b218db3c85842ca7b6297c22624edb9b7f37
Windows 7, 64 bit
Assigning nodes to a joint (I was using a HingeJoint) results in a weird string in the scene file and has the symptoms that:
The joint is not created when the game is run
There is no warning or error, it just quietly doesn't create it
The .tscn file should contain:
nodes/node_a = NodePath("..")
nodes/node_b = NodePath("../../Foot")
and in my case actually ended up containing:
nodes/node_a = NodePath("/root/EditorNode/@@5/@@6/@@14/@@16/@@20/@@24/@@25/@@26/@@42/@@43/@@50/@@51/@@6631/@@6498/@@6499/@@6500/@@6501/@@6502/Humanoid/Body")
nodes/node_b = NodePath("/root/EditorNode/@@5/@@6/@@14/@@16/@@20/@@24/@@25/@@26/@@42/@@43/@@50/@@51/@@6631/@@6498/@@6499/@@6500/@@6501/@@6502/Humanoid/Foot")
It's something that used to work - it's broken very recently. Probably the UI changes.
I think that's probably two bugs but it's hard to describe the lack of an error message in isolation.
Steps to reproduce:
New scene. Rigid body. Another rigid body. Hinge Joint. Assign nodes to the bodies. Read .tscn file (or try to run it as a game or something).

Probably unintended fallout from #19124 cc @volzhs

@Zireael07 #19124 fixed this issue.
@Skwint the commit hash seems yours. can't find it github.
would you try to compile the latest master?

Wrong hash is very believable I don't really get git yet. Very latest master seems not to have the problem. Will close issue.


I only want to use Auto Aim

I only want to use Auto Aim, is there any way?
How to use it

Only enable auto aim in the menu


chore: upgrade dumi@2

Codecov Report
Base: 92.18% // Head: 92.18% // No change to project coverage :thumbsup:

Coverage data is based on head (a5f74c1) compared to base (9f2a6c7).
 Consider uploading reports for the commit e0cd733 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #90   +/-   ##
=======================================
  Coverage   92.18%   92.18%
=======================================
  Files          18       18
  Lines         576      576
  Branches      192      192
=======================================
  Hits          531      531
  Misses         45       45

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

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


Trying to handle camera initialization errors

I'm having a lot of errors trying to start and stop/start my Grasshopper 3 as mentioned in https://github.com/samuelpowell/Spinnaker.jl/issues/36. I'm sure I'm stressing the issue by testing on an Ubuntu VM, but it would be good to be able to handle initialization errors, so I'm setting that as the bar for success.
@samuelpowell Once we've fixed the framerate!() issue for your camera, it would be great if you could try this branch, and see if @info "Camera Issue: Reinitializing camera" ever occurs.
It may be faulty hardware at my end..
About 50% of the times I try to load the gui, or start/stop the camera, either start!(cam) errors or the getimage(cam,timeout=2000) check times-out, and then the reinitialization hits maxattempts. Sometimes the reinit process does work though. Physically rebooting the camera does seem to help, but it's not 100% effective
julia> start()
[ Info: Checking for cameras
[ Info: Selecting camera 0
[ Info: Reading settings from camera
[ Info: Camera ready
[ Info: Starting GUI (async)
[ Info: Starting Camera Settings Updater (async)
[ Info: Starting recording listener (async)
[ Info: Starting Camera Acquisition (async)
[ Info: Camera Issue: Reinitializing camera
┌ Warning: @async error from @async runCamera()
└ @ SpinnakerGUI /media/psf/Home/Documents/Leuko/GitHub/SpinnakerGUI.jl/src/utils.jl:22
Camera couldn't be reinitialized (tried 5 times)

Oh, and master does have some earlier attempts at catching this in it. I didn't branch out at first

and.. It would also be good to compile a list of things to try to fix this on the camera settings. Any low hanging fruit?

I don't have this problem.
It is a bit hit and miss as to if Spinnaker succesfully enumerates my camera though! I put that down to the library. Sometimes a bit of unplug replug required.
All I can suggest is that I put a small delay in the code after it stops the camera. Perhaps there is some asynchronous USB action going on which needs to complete before one can restart the camera....
On the occasions that getimage would have hung, does isrunning return true? E.g. is the problem simply that starting the camera didn't work, or is it more pernicious?

Okay I've stress tested my camera to try and recreate this, but I cannot. If enumeration is okay then I can start and stop the camera, including intermediate getimage, without any problems.


Remove broker.spec.config defaulting magic

Proposed Changes

Remove broker.spec.config defaulting magic
Add webhook validation (i think we're better off rejecting invalid Brokers from the start)

Release Note

`broker.spec.config` is now required.

Docs

I'll check if docs mentions this feature (I don't thing it does)

/assign @aliok

broker.spec.config is now required.

Isn't that quiet some implication? Or are we generally sure our users do specifiy that ? And don't default on any "defaulting" ?

broker.spec.config is now required.

Isn't that quiet some implication? Or are we generally sure our users do specifiy that ? And don't default on any "defaulting" ?

I'm removing the magic defaulting meaning that if users don't specify any config and there is no defaulting provided by the eventing (core) webhook (cluster or namespace defaults), then it will fail.

Isn't that quiet some implication? Or are we generally sure our users do specifiy that ? And don't default on any "defaulting" ?

There was a mechanism that auto-creates the broker, using the defaults in the configmap. Is this still the case? Do we care?

This feature will still provide the defaulting mechanism https://knative.dev/docs/eventing/broker/kafka-broker/#set-as-default-broker-implementation

lgtm
Leaving final approval to @matzew

/lgtm
/approve


python312Packages.tencentcloud-sdk-python: 3.0.1140 -> 3.0.1141

Diff: https://github.com/TencentCloud/tencentcloud-sdk-python/compare/refs/tags/3.0.1140...3.0.1141
Changelog: https://github.com/TencentCloud/tencentcloud-sdk-python/blob/3.0.1141/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

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

4 packages built:

python311Packages.tencentcloud-sdk-python
python311Packages.tencentcloud-sdk-python.dist
python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist


fix marshalling of LogpushJob with no filter

Description
A LogpushJob with no filter incorrectly marshals the filter as "{\"where\":{}}" instead of omitting it.
Changing the field to a pointer allows us to test for presence and omit it entirely.
Has your change been tested?
I've added a marshalling test that initially tests the valid and not present cases.
Types of changes
What sort of change does your code introduce/modify?

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Warning this is technically a breaking change and will require changes in the terraform provider to use the pointer instead of the value as has been done in other updates.

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[ ] This change is using publicly documented (api.cloudflare.com or developers.cloudflare.com) and stable APIs.

thanks a bunch!


Fix paste

This should be a reasonably working state for copy and paste.
Known Issues are:

If only parts of an element are marked (e.g., only a participant band and its message), copied and then pasted, an error occurs and the diagram can no longer be edited, however, it can be saved with a download.

How to fix: It should be possible to fix this by implementing some logic in ChoreoRules allowing only copying or pasting "complete" diagram parts

The Di positions for the participant bands are 0, because when they are created the final location of the bands is not known, yet. In our editor this has no visual consequences because they are ignored.

How to fix: No idea. Perhaps, it is possible to copy the bounds from shape after it has been created.

Labels of messages, events, gateways sometimes appear outside of surrounding collapsables (e.g., SubChoreos) after a paste.

How to fix: This is a bug in bpmn.js. It would be easier if it is fixe there. see issue


Adding a node to existing workflow is freezing IDE for a second

Discord username
No response
What type of issue is this?
Permanent – Occurring repeatably
Is this issue blocking you from using Enso?

[ ] Yes, I can't use Enso because of this issue.

Is this a regression?

[ ] Yes, previous version of Enso did not have this issue.

What issue are you facing?
Adding a new node to the bigger workflow is making the IDE unresponsive - the project is attached below
Expected behaviour
Adding a node should not freeze the cursor and IDE
How we can reproduce it?
No response
Screenshots or screencasts
https://github.com/enso-org/enso/assets/12892578/802a0e24-fd69-41ef-9181-adea03410e7b
Unnamed_7.enso-project.zip
Enso Version
nightly 10.05.2023
Browser or standalone distribution
Standalone distribution
Browser Version or standalone distribution
standalone
Operating System
MacOS
Operating System Version
No response
Hardware you are using
No response

Tried reproducing it on Fedora 38, with NVIDIA RTX A2000 GPU, Nouveau drivers, Wayland, on Chromium. I experience similar lag as you, although not after adding the node, but just after dragging the connection and clicking -right before CB is shown. The FPS is stable 60 but before CB was shown, dropped to 5 for a second or so. I didn't want to screen record it as that might affect the observations.
Assigning this to the GUI team

can't repro on package from 05.07


ViewChild not find element when using AoT

I found a wonderful decorator who wanted to use in my project. But when using AoT, ViewChild does not work correctly. An old problem, dozens of open tickets and things are there.
import { ElementRef, ViewChild } from '@angular/core';

/**
 * To get the native element instead of ElementRef.nativeElement
 * Caveats: it won’t work with AOT
 * @param selector Selector. Example: <div #selector></div>
 */
export function NativeElement(selector: string): PropertyDecorator {
  // Create the viewchild decorator with read: ElementRef
  const propDecoratorFn: Function = ViewChild(selector, { read: ElementRef });

  // Target is the component object
  // Property key is the name of the property
  return function(target: Object, propertyKey: string | symbol): void {
    // Somehow this will execute the viewchild process to attach a new property called tempViewChildFor_
    // to the target (component object instance)
    propDecoratorFn(target, `tempViewChildFor_${propertyKey}`);

    // Redefined the property with getter. It will return the tempViewChildFor_ with nativeElement
    Object.defineProperty(target, propertyKey, {
      get: function(): HTMLElement {
        const property = this[`tempViewChildFor_${propertyKey}`];
        if (!property) {
          throw Error(
            'Can not get ElementRef using selector, please check your component view again.'
          );
        }

        return property.nativeElement;
      }
    });
  };
}

Code source
Is there a workaround when AoT is enabled?

Hello, we reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular-cli.
If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.


[BUG] fastparquet test fails with DATAGEN_SEED=1700171382 on Databricks (Spark 3.4.1)

From a Databricks premerge build:
[2023-11-17T00:19:56.484Z] FAILED ../../src/main/python/fastparquet_compatibility_test.py::test_reading_file_written_by_spark_cpu[Float(not_null)][DATAGEN_SEED=1700171382] - AssertionError: GPU and CPU are not both null at [76, 'a']

[2023-11-17T00:19:56.484Z] FAILED ../../src/main/python/fastparquet_compatibility_test.py::test_reading_file_written_by_spark_cpu[Double(not_null)][DATAGEN_SEED=1700171382] - AssertionError: GPU and CPU are not both null at [12, 'a']

[2023-11-17T00:19:56.484Z] Starting with datagen test seed:<PHONE_NUMBER>. Set env variable SPARK_RAPIDS_TEST_DATAGEN_SEED to override.
[2023-11-17T00:19:56.484Z] Starting with OOM injection seed:<PHONE_NUMBER>. Set env variable SPARK_RAPIDS_TEST_INJECT_OOM_SEED to override.
[2023-11-17T00:19:56.484Z] 2023-11-16 21:49:42 INFO     Executing global initialization tasks before test launches
[2023-11-17T00:19:56.484Z] 2023-11-16 21:49:42 INFO     Creating directory /home/ubuntu/spark-rapids/integration_tests/target/run_dir-20231116214942-eeD8/hive with permissions 0o777
[2023-11-17T00:19:56.484Z] 2023-11-16 21:49:42 INFO     Skipping findspark init because on xdist master
[2023-11-17T00:19:56.484Z] FAILED ../../src/main/python/fastparquet_compatibility_test.py::test_reading_file_written_by_spark_cpu[Struct(not_null)(('first', Integer(not_null)),('second', Float(not_null)))][DATAGEN_SEED=1700171382, INJECT_OOM] - AssertionError: GPU and CPU are not both null at [37, 'a.second']
[2023-11-17T00:19:56.484Z] FAILED ../../src/main/python/fastparquet_compatibility_test.py::test_reading_file_written_with_gpu[Float(not_null)][DATAGEN_SEED=1700171382] - AssertionError: GPU and CPU are not both null at [38, 'a']
[2023-11-17T00:19:56.484Z] FAILED ../../src/main/python/fastparquet_compatibility_test.py::test_reading_file_written_with_gpu[Double(not_null)][DATAGEN_SEED=1700171382, INJECT_OOM] - AssertionError: GPU and CPU are not both null at [57, 'a']
[2023-11-17T00:19:56.484Z] = 5 failed, 19923 passed, 1045 skipped, 624 xfailed, 302 xpassed, 414 warnings in 9013.84s (2:30:13) =

This seems similar to the other DATAGEN_SEED related failures in the pytests.

Duplicated by #9778 which has some details on why this fails.

Thank you, @jlowe. Looks like another xfail case. There are similar xfails in the tests already, pertaining to dataframe conversions through Pandas.

The xfail is being handled in #9677.  From Issue #9778 , Jason pointed out:

On Databricks 13.3, nulls in the Pandas DataFrame (represented as NaNs) are being honored as nulls in the resulting Spark DataFrame when converting a Pandas DataFrame to a Spark DataFrame. Pandas thinks there are nulls in the data, and those nulls are propagating to the Spark DataFrame.
fastparquet loads the NaNs properly, but then when converting the data to pandas, pandas thinks the NaN values are null. This, in turn, causes spark.createDataFrame to produce corresponding nulls. When comparing this to the GPU direct load of the data that contains NaNs (not nulls), the test fails. The problem is not in the way the GPU loads the data, it's the way the NaNs get converted into nulls due to sending the data through pandas before converting to a Spark DataFrame.

Basically he is asking to fix the test case so NaNs do not become nulls when passing through Pandas.

The xfail is being handled in #9677.

Do we mean #9776?  Then, no, it's not. #9776 is a different xfail case, for timestamps.  This current issue was for floating-point failures.

so NaNs do not become nulls when passing through Pandas...

I cannot do that in the short term.  The shortest path to constructing a Spark dataframe from what's read by fastparquet is to route it through Pandas.  And Pandas does not distinguish between NaN and null values.
This will go into the already long list of fastparquet/Pandas/Spark incompatible xfail conditions.  We can revisit routing around Pandas when the higher priority tasks are sorted.

Do we mean #9776? Then, no, it's not. #9776 is a different xfail case, for timestamps. This current issue was for floating-point failures.

Ah, I just spoke with @jlowe, and looked more closely at #9677.  I understand now: @jlowe has that xfailed out already.


Retrieve a localized string without parameters substitution

Hello, I would like to know if there is any way to get the value of a localized string with parameters without the parameters substitution (eg: returning "Today i ate %@ icescreems").

Reasons: One of the few reasons is I am developing a functionality involving attributed strings, and i would like to feed them directly a Rswift StringResource from the generated localizable strings or an analogue solution.
My goal is to add attributes to the parameters, for this i need the ranges of the placeholers for these

Currently R.swift doesn't have an API that does this. How would you fetch the localized strings without parameters substitution just using Apples Foundation APIs? If there is an API from Apple for it we could make R.swift support that. I'm not aware of such an API, but also never looked into it.
Note that I would probably just chop up the localized string in part 1, 2, 3 etc and apply attributes like bold and italic to the parts as a workaround.

Yes, i guessed it wasn't provided at all, since the way to do it directly is very much not clean, but i tried to ask anyway in case i wasn't aware of something.
As for the hint, that is sadly not optimal for localization, since not all languages split sentences in the same way, but i will workaround this in other ways, no problem, would have just been cleaner if there was an API.
Thank you anyway.

You can use the plain old NSLocalizedString to get the localized string without substitutions:
NSLocalizedString(R.string.localizable.welcomeWithName.key,
  tableName: R.string.localizable.welcomeWithName.tableName,
  bundle: R.string.localizable.welcomeWithName.bundle,
  value: "default value",
  comment: "no comment")

You can use the plain old NSLocalizedString to get the localized string without substitutions:
NSLocalizedString(R.string.localizable.welcomeWithName.key,
       tableName: R.string.localizable.welcomeWithName.tableName,
          bundle: R.string.localizable.welcomeWithName.bundle,
           value: "default value",
         comment: "no comment")

Ah, this is actually a very valid solution! I didn't think about it, thank you!