Playback of recordings without events doesn't work, while playback of events works. Due to mismatch between browser timezone and HASS timezone

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

Release with the issue:
5.2.0
Last working release (if known):
unknown
Browser and Operating System:
Doesn't work on Firefox for Arch Linux (117.0)
Works on Firefox for Android 107.0
Works on Home Assistant App for Android (2023.8.2-minimal.10992)

Description of problem:

card yaml:
type: custom:frigate-card
cameras:
  - camera_entity: camera.saladeespera
    live_provider: go2rtc
    icon: mdi:sofa-single
menu:
  buttons:
    recordings:
      enabled: true
    clips:
      enabled: true
    snapshots:
      enabled: false
timeline:
  style: ribbon
  media: all
  show_recordings: true

the yaml is processed as valid and doesn't error out.
However, if you navigate to the recordings tab and click on a recording, the playback never starts, and the same goes for if you click on the thick light blue stripe that highlights the position of a recording in the timeline

If instead navigate to the "clips" tab and click on a clip that is associated with that same recording, then the clip plays normally. Same goes for clicking on the thin colored stripe in the timeline that signals an event.
These recordings and clips can both be accessed through Home Assistant's media tab and through Frigade's equivalent.
I noticed 3 identical 502s followed by this error in my browser's console when the playback fails:
the 502:
XHRGET
http://[REDACTED]:8123/api/frigate/frigate/vod/2023-09/13/04/saladeespera/utc/index.m3u8?authSig=[REDACTED]
[HTTP/1.1 502 Bad Gateway 19ms]

GET
	http://[REDACTED]:8123/api/frigate/frigate/vod/2023-09/13/04/saladeespera/utc/index.m3u8?authSig=[REDACTED]
Status
502
Bad Gateway
VersionHTTP/1.1
Transferred314 B (157 B size)
Referrer Policysame-origin
DNS ResolutionSystem

    Connection
    	keep-alive
    Content-Length
    	157
    Content-Type
    	text/html
    Date
    	Wed, 13 Sep 2023 01:15:17 GMT
    Server
    	nginx/1.22.1

    Accept
    	*/*
    Accept-Encoding
    	gzip, deflate
    Accept-Language
    	en-US,en;q=0.5
    Connection
    	keep-alive
    DNT
    	1
    Host
    	<IP_ADDRESS>:8123
    Referer
    	http://[REDACTED]:8123/lovelace/0
    Sec-GPC
    	1
    User-Agent
    	Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/117.0

the error
Error starting stream, see logs for details (Server failure) ha-hls-player-aef987da.js:11:1284
    render ha-hls-player-aef987da.js:11
    update lit-element.ts:160
    performUpdate reactive-element.ts:1329
    scheduleUpdate reactive-element.ts:1261
    _$Ej reactive-element.ts:1233
    requestUpdate reactive-element.ts:1208
    set reactive-element.ts:726
    value ha-hls-player.ts:319
    value ha-hls-player.ts:265
    emit index.js:203
    emit hls.ts:287
    trigger hls.ts:298
    handleNetworkError playlist-loader.ts:605
    onError playlist-loader.ts:326
    readystatechange xhr-loader.ts:240
    (Async: EventHandlerNonNull)
    openAndSendXhr xhr-loader.ts:145
    loadInternal xhr-loader.ts:117
    (Async: setTimeout handler)
    retry xhr-loader.ts:283
    readystatechange xhr-loader.ts:237
    (Async: EventHandlerNonNull)
    openAndSendXhr xhr-loader.ts:145
    loadInternal xhr-loader.ts:117
    load xhr-loader.ts:76
    load playlist-loader.ts:347
    onManifestLoading playlist-loader.ts:154
    emit index.js:203
    emit hls.ts:287
    trigger hls.ts:298
    loadSource hls.ts:389
    value ha-hls-player.ts:237
    emit index.js:203
    emit hls.ts:287
    trigger hls.ts:298
    _onMediaSourceOpen buffer-controller.ts:804
    (Async: EventListener.handleEvent)
    onMediaAttaching buffer-controller.ts:161
    emit index.js:203
    emit hls.ts:287
    trigger hls.ts:298
    attachMedia hls.ts:353
    value ha-hls-player.ts:234
    value ha-hls-player.ts:162
    value ha-hls-player.ts:106
    _$AE reactive-element.ts:1378
    performUpdate reactive-element.ts:1343
    scheduleUpdate reactive-element.ts:1261
    _$Ej reactive-element.ts:1233

I noticed that it was searching the API in UTC, while I was supposed to be using UTC -03:00. This made me review my timezone settings on the containers and on HASS and I noticed that Frigate's container was UTC -03:00, HASS container was UTC, HASS configuration was UTC -03:00 and the main host system was UTC -03:00.
I tried setting everything to UTC -03:00 but the problem didn't change.
Then I noticed that the particular system was using to to browse the interface had it's timezone set to UTC and by changing it to UTC -03:00, i was able to solve the problem
Frigate card diagnostic information

I was not able to find this information, will update if I do find out
Javascript errors shown in the web inspector (if applicable):
see above
Additional information:
Frigate is at the latest stable release
Thank you for your work and for this amazing software

These recordings and clips can both be accessed through Home Assistant's media tab and through Frigade's equivalent.

To clarify, the same recording works correct in HA media browser, and in Frigate -- but not in the card?
And to reproduce I should set my browser timezone to be different from my Home Assistant timezone?

These recordings and clips can both be accessed through Home Assistant's media tab and through Frigade's equivalent.

To clarify, the same recording works correct in HA media browser, and in Frigate -- but not in the card?
And to reproduce I should set my browser timezone to be different from my Home Assistant timezone?

yes, that's correct. I was experiencing the issue, and when I set the timezone of the device I was using to view Home Assistant to be the same as the one from the Home Assistant host the issue was solved. I will try to reproduce the issue in other browsers in a few hours.

@dermotduffy I'm so sorry if I wasn't able to make this clear because English is not my first language, here are the 3 configurations that were tested:
Configuration 1:
Frigate Container ->UTC -3:00
HASS Container -> UTC
HASS Config -> UTC -3:00
Device used to access the HASS interface -> UTC
Result: Bug as described
Configuration 2:
Frigate Container ->UTC -3:00
HASS Container -> UTC -3:00
HASS Config -> UTC -3:00
Device used to access the HASS interface -> UTC
Result: Bug as described
Configuration 3:
Frigate Container ->UTC -3:00
HASS Container -> UTC -3:00
HASS Config -> UTC -3:00
Device used to access the HASS interface -> UTC -3:00
Result: Fixed
Therefore, I think that the accurate title would be "Playback of recordings doesn't work when HA timezone != Browser timezone"


Increased Limit On Queries

Increased query limit to 1000000 by default.

Coverage remained the same at 51.85% when pulling 3262f9860a074266af86775a4168b84a0a68ff79 on sethdenner:increase_row_limit into 04f14ff2a0384866fed344475675bb919a078909 on Knotis:master.

Coverage remained the same at 51.85% when pulling 3262f9860a074266af86775a4168b84a0a68ff79 on sethdenner:increase_row_limit into 04f14ff2a0384866fed344475675bb919a078909 on Knotis:master.


pdf is created but blank

Thanks for your project that works fine, except for pdf. I tried with success png and svg backends (from Zetcode cairo graphics tutorial), but didn't manage to make pdf backend work, it only creates a blank file that has 0 pages. Is there something that need to be added to have pdf support ?

Not sure. One way to get an idea of what could be wrong is to try building cairo from sources on Linux, keeping an eye on the configuration options it exposes...

I didn't try cairo-windows on linux because I already have it working there, but I will try. I'mporting to windows a linux c console program that creates a multipage pdf file.

Not sure. One way to get an idea of what could be wrong is to try building cairo from sources on Linux, keeping an eye on the configuration options it exposes...

I just made the same on Ubuntu, and it was ok for the pdf backend. As I used latest cairo-version on it, I also update my windows version, thinking it could make it work, but if didn't. I'm not experienced enough to be able to trace configuration options that it exposes, it might be into the built directory.
Here is the output I had on Ubuntu :

(base) gilb-r@gilboone:/mnt/GIGI/docu2/CairoSample/build$ make
Consolidate compiler generated dependencies of target CairoSample
[ 50%] Linking C executable CairoSample
[100%] Built target CairoSample
(base) gilb-r@gilboone:/mnt/GIGI/docu2/CairoSample/build$ cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/GIGI/docu2/CairoSample/build

I attach a file called 'CMakeOutput.log'
CMakeOutput.log

What's happening is that as soon as I run "cairo_show_page(..)" an "out of memory" error occurs even if i didn't do anything on the pdf surface., so it's not an error from cairo_windows but a memory leak from cairo with PDF surfaces.


Add support for marking down Smart Chips

Enhance the tool to handle Google Smart Chips such as dates and email addresses. These items are currently ignored by gd2md leaving blank spaces where any Smart Chips are in the document.

This is especially useful given the new Google Calendar → Google Doc auto doc generation that fills in a meeting name and attendees as chips.

Yes, I use smart chips in my Google Doc headings all the time for people and dates. I'd love to vote to get this updated!


Calling the 'trashed()' method on a soft deleted model where the deleted_at column wasn't part of the select query returns false

Laravel Version: 7.4.0
PHP Version: 7.4.3
Database Driver & Version: Mysql Windows 8.0

Description:
When querying a model with the SoftDeletes trait with select columns that don't include the 'deleted_at' column, the trashed() method returns false even if that model has been soft deleted.
If this is default behaviour, it should be explicitly explained in the SoftDelete section of the Laravel Eloquent ORM documentation.
Steps To Reproduce:

Add a model with SoftDeletes trait;
Seed the database with one or two items;
Soft delete the items
Have a query builder line such as $model1 = Model::withTrashed()->select('id', 'col_1', 'col_2')->first();;
Have a query builder line such as $model2 = Model::withTrashed()->first();;
$model1->trashed() returns false and $model2->trashed() returns true

If you don't select the deleted_at column I have on idea how the framework would know if the item is currently trashed or not?


remove const from xml_node_iterator ++/--

This prevents usage with C++20 ranges since it does not satisfy
std::weakly_incrementable.
Signed-off-by: Rosen Penev<EMAIL_ADDRESS>

wonder if the other operators should get the same treatment.

Did you mean iterators? If so yeah, this should also be changed for xml_attribute_iterator and xml_named_node_iterator.

Yes I did. Removed.

Thanks!


Different images

It should be nice to have the opportunity to get different images with the same sizes.

It's your browser caching the images, since two images with the same size will share the same URL.
You can workaround that (and make placephant's servers overheat) by appending a random salt to the URLs.
For example, in my code, I do:
sprintf('http://placephant.com/%d/%d?%s', $width, $height, md5(uniqid()));


Enabling SSL: Does MARATHON_JKS_PASSWORD need to be equal to MARATHON_PKCS_PASSWORD?

I followed this procedure to enable SSL:
https://github.com/mesosphere/marathon/blob/master/docs/docs/ssl-basic-access-authentication.md
Actually for me it was slightly different as I already have a certificate, so I created the pkcs12 file this way:
openssl pkcs12 -export -out mydomain.p12 -inkey private.key -in certificate.crt -certfile CACert.crt -name marathon
and provided the MARATHON_PKCS_PASSWORD password.
and then I imported the entry as mentioned in the documentation:
keytool -importkeystore  -srckeystore mydomain.p12 -srcstoretype PKCS12 -srcstorepass $MARATHON_PKCS_PASSWORD -alias marathon -deststorepass $MARATHON_JKS_PASSWORD -destkeystore marathon.jks
Then I started marathon providing the path to marathon.jks and the MARATHON_JKS_PASSWORD password as mentioned in the documentation.
But Marathon was starting with the error java.security.UnrecoverableKeyException: Cannot recover key and I couldn't access https://localhost:8443/v2/apps
After some research, I recreated the keystore with this time MARATHON_JKS_PASSWORD = MARATHON_PKCS_PASSWORD. Basically, using the same password. And this time it worked. Also it makes sense to me as we are providing MARATHON_JKS_PASSWORD to Marathon but not MARATHON_PKCS_PASSWORD... so, how does it know about it? So I'm wondering if it can actually work with the keystore password different for the pkcs12 password as the documentation is suggesting.

Hi @caussourd and thanks for reporting this.
We will take a closer look and get back to you as soon as we can.

Just one question: could you please provide which Marathon, Mesos and ZooKeeper versions you are running?

@pierlo-upitup
Marathon  0.10.1
Mesos 0.23.0
Zookeeper 3.4.6

Note that I was running into the same problem and making them the same fixed it.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-3631. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


fast-chess and compilers

just tried older compilers
gcc 7.3.0:
third_party/chess.hpp:862:10: fatal error: charconv: No such file or directory
 #include <charconv>
          ^~~~~~~~~~
compilation terminated.

clang 8.0.0 compiles

fixed by https://github.com/Disservin/fast-chess/commit/e36440c4900b99af8517c34dbaf6bdda8c5258cd


Getting Not Authenticated when accounts try to log in.

It was all working fine, but all of a sudden all my accounts need to login and er giving me the not authenticated error. I tried using a fresh installation or using new accounts. None of these things helps.

I had the same problem.
pip install --upgrade -r requirements.txt
resolved it


Test consuming and assigning a variable in one branch of an if-else

This is different to cases 003-005 because the variable is replaced after being consumed - which makes it legal to only reference the variable in a single branch.
Happy to add more combinations here if you want the test to be more comprehensive!

Thanks for adding a test!

Happy to add more combinations here if you want the test to be more comprehensive!

If you have the time I'm willingness I'd be delighted to add any more tests :100: :100: :100:

Actually I'll have to revert this, and add it back in a PR, because currently the linearity checker doesn't allow this. But it probably should be allowed.
I'll make the changes later but revert for now to clean up master.

Oh, I ran the test suites locally and they seemed to pass - maybe I misunderstood how to correctly set up the test?

Oh. I think it's because literally after merging your PR (which passed CI) I merged a fairly sizeable rewrite of part of the compiler, which probably introduced a regression :cry:

Namely  #515 and #514

currently the linearity checker doesn't allow this. But it probably should be allowed.

Interestingly, I decided to play around with this after your changes to allow consume/replace in loops. That sounded to me like it would be similar to consume/replace in any sub scope, like an if.
I don't think the current linearity rules in the spec actually permit consume/replace in loops or ifs. It looks like in the compiler code, there is a "pending" state. However, I wonder if "pending" needs to make its way into the spec, or if there is a simpler/general set of rules.
E.g. "loop condition" is currently a special case in the rules, but I wonder if it would make sense to say "while condition is syntax sugar for a while true and an if condition, and therefore the linearity rules apply without special cases. There still needs to be a special case for if, but that may be unavoidable.
Sorry this isn't extremely coherent, I will take the time to write up some thoughts properly in a Discussion. I just wanted to give the context that this test was inspired by the addition of consume/replace in loops :).

No, it is coherent, actually I drew up a sketch of a more general call graph-based linearity checker (as opposed to one that walks the code in depth-first order).
The thing is the rules can be phrased in different ways, for different people. The depth-first-walk description of the linearity checker is arguably more intuitive, since it's what people probably do in their heads while reading code.
The graph-based version is simpler and more general (no need to special case loops and if statements) but may be more abstract.
But you are correct. On second thoughts, yes the compiler should allow this.
The graph-based description is basically: all edges going into a particular node have to have the same set of variable states. This generalizes to if, case, for, while etc.

Merged a fix in #519

Being mathematically elegant, and being easy for a human to read and implement, are goals that have some tension between then 😅


datastore: GetAll is terminated by RST_STREAM

Good afternoon,
When trying to use datastore.Client.GetAll in production (ie communicating with Google Datastore rather than an emulator), I receive this message:
rpc error: code = 13 desc = stream terminated by RST_STREAM with error code: 2
The context in which I'm using the function is simple: return a list of entities that are stored under a known parent, and sort them by an integer. Here's my code:
History struct {
    Id string
}

Entry struct {
	Position    float64
	State       string
	PatchTime   float64
}

func dbGetChatHistory(id string, ctx context.Context, client *datastore.Client) ([]*Entry, AppErr) {

	historyKey := datastore.NewKey(ctx, "History", id, 0, nil)

	entries := []*Entry{}

	q := datastore.NewQuery("Entry").
		Ancestor(historyKey).
		Order("-PatchTime")

	_, err := client.GetAll(ctx, q, &entries)
	if err != nil {
		log.Panicf("Error has occured while getting history: %s", err)
		return []*Entry{}, AppErr {
			Code: 500,
			Msg: "Error has occured while getting history",
		}
	}

	return entries, AppErr{}
}

I've tried running this query within a transaction (which I don't think is necessary, as this is an ancestor query), as well as setting up the entries array a few different ways (ie using make to allocate space, using `var entires []*Entry', etc).
The weirdest part about this whole thing is that it works with the provided emulator; while on my machine, I'm able to use GetAll freely. However, while running this on Google Container Engine, communicating with Datastore, it fails.
What could I be missing? Is this a problem with DataStore?

In HTTP/2, error code 2 is an INTERNAL_ERROR (http://httpwg.org/specs/rfc7540.html#rfc.section.7). It'd be nice if we got more details, though.

There isn't much else to give; that function is directly hooked up an endpoint in my API, and when it's called, it breaks. After some prying, I was able to get it to print a stack trace:
[PANIC RECOVER] Error has occured while getting history: rpc error: code = 13 desc = stream terminated by RST_STREAM with error code: 2 goroutine 188 [running]:
github.com/labstack/echo/middleware.RecoverWithConfig.func1.1.1(0xa00380, 0x1000, 0xf440000, 0xc54be0, 0xc4201ca380)
	/go/src/github.com/labstack/echo/middleware/recover.go:75 +0x147
panic(0x8e72a0, 0xc42044d730)
	/usr/local/go/src/runtime/panic.go:458 +0x243
log.Panicf(0x9cc9eb, 0x2b, 0xc4204b7728, 0x1, 0x1)
	/usr/local/go/src/log/log.go:327 +0xe3
main.dbGetChatHistory(0xc4203b34ce, 0x24, 0x7f5fb6b53068, 0xc420141ce0, 0xc420179180, 0x44d724, 0xc42043a1d7, 0x9b3f7c, 0x1, 0x18, ...)
	/go/src/app/meshdata.go:204 +0x2fa
main.getChatHistory(0xc54be0, 0xc4201ca380, 0x7f5fb6b53068, 0xc420141ce0, 0xc420179180, 0xc42043a1c0, 0xc4200378b0, 0x0, 0x0, 0xc420037868, ...)
	/go/src/app/meshcontroller.go:160 +0x99
main.api.func4(0xc54be0, 0xc4201ca380, 0xc4200378d0, 0x5461f3)
	/go/src/app/api.go:59 +0x68
github.com/labstack/echo.(*Echo).add.func1(0xc54be0, 0xc4201ca380, 0xa00380, 0x1000)
	/go/src/github.com/labstack/echo/echo.go:474 +0x96
github.com/labstack/echo/middleware.RecoverWithConfig.func1.1(0xc54be0, 0xc4201ca380, 0x0, 0x0)
	/go/src/github.com/labstack/echo/middleware/recover.go:82 +0x124
github.com/labstack/echo/middleware.LoggerWithConfig.func2.1(0xc54be0, 0xc4201ca380, 0x0, 0x0)
	/go/src/github.com/labstack/echo/middleware/logger.go:107 +0x194
main.auth.func1(0xc54be0, 0xc4201ca380, 0x3, 0xc4203b34c0)
	/go/src/app/server.go:92 +0x54
github.com/labstack/echo.(*Echo).ServeHTTP.func1(0xc54be0, 0xc4201ca380, 0x0, 0x28)
	/go/src/github.com/labstack/echo/echo.go:555 +0x154
github.com/labstack/echo/middleware.RemoveTrailingSlashWithConfig.func1.1(0xc54be0, 0xc4201ca380, 0xc42000c418, 0x7f5fb6b63340)
	/go/src/github.com/labstack/echo/middleware/slash.go:116 +0x27b
github.com/labstack/echo.(*Echo).ServeHTTP(0xc4201c00a0, 0xc514a0, 0xc4203b2740, 0xc4f980, 0xc420440000)
	/go/src/github.com/labstack/echo/echo.go:564 +0x1e5
github.com/labstack/echo/engine/fasthttp.(*Server).ServeHTTP(0xc420055e80, 0xc420496480)
	/go/src/github.com/labstack/echo/engine/fasthttp/server.go:143 +0x29a
github.com/labstack/echo/engine/fasthttp.(*Server).ServeHTTP-fm(0xc420496480)
	/go/src/github.com/labstack/echo/engine/fasthttp/server.go:89 +0x34
github.com/valyala/fasthttp.(*Server).serveConn(0xc420079180, 0xc4f6e0, 0xc420026438, 0x8e0201, 0xc420280101)
	/go/src/github.com/valyala/fasthttp/server.go:1528 +0x573
github.com/valyala/fasthttp.(*Server).(github.com/valyala/fasthttp.serveConn)-fm(0xc4f6e0, 0xc420026438, 0xc42013ff58, 0xc42044f601)
	/go/src/github.com/valyala/fasthttp/server.go:1245 +0x3e
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc420055f80, 0xc4201d4660)
	/go/src/github.com/valyala/fasthttp/workerpool.go:210 +0xde
github.com/valyala/fasthttp.(*workerPool).getCh.func1(0xc420055f80, 0xc4201d4660, 0x8ca680, 0xc4201d4660)
	/go/src/github.com/valyala/fasthttp/workerpool.go:182 +0x35
created by github.com/valyala/fasthttp.(*workerPool).getCh
	/go/src/github.com/valyala/fasthttp/workerpool.go:184 +0x111

goroutine 1 [IO wait]:
net.runtime_pollWait(0x7f5fb6b53fe8, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420185cd0, 0x72, 0xc420049880, 0xc42000c1a8)
	/usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420185cd0, 0xc476e0, 0xc42000c1a8)
	/usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).accept(0xc420185c70, 0x0, 0xc457a0, 0xc420445700)
	/usr/local/go/src/net/fd_unix.go:419 +0x238
net.(*TCPListener).accept(0xc420026698, 0x436f5e, 0xa01318, 0xc420028800)
	/usr/local/go/src/net/tcpsock_posix.go:132 +0x2e
net.(*TCPListener).Accept(0xc420026698, 0x9, 0x43da16, 0x3, 0x72a941)
	/usr/local/go/src/net/tcpsock.go:222 +0x49
github.com/valyala/fasthttp.acceptConn(0xc420079180, 0xc4c2e0, 0xc420026698, 0xc420049b30, 0xc4f6e0, 0xc420026438, 0x0, 0x0)
	/go/src/github.com/valyala/fasthttp/server.go:1284 +0x49
github.com/valyala/fasthttp.(*Server).Serve(0xc420079180, 0xc4c2e0, 0xc420026698, 0x5, 0xc4c2e0)
	/go/src/github.com/valyala/fasthttp/server.go:1253 +0x1e3
github.com/valyala/fasthttp.(*Server).ListenAndServe(0xc420079180, 0xc42019ed88, 0x5, 0xc420055

Any ideas?

I guess I could outline what router/middleware I'm using.
Echo framework, with the fasthttp backend: https://github.com/labstack/echo
Middleware: Logger,  Recover,  RemoveTrailingSlash.
The endpoint I'm hitting where it fails is:
endpoints.GET("/:id/history", func(req echo.Context) error {
		res, err := getChatHistory(req, ctx, client)
		if err.Code != 0 {
			return &echo.HTTPError{
				Code:  err.Code,
				Message: err.Msg,
			}
		}
		return req.JSON(http.StatusOK, res)
	})

getChatHistory calls dbGetChatHistory after parsing the req object.

To add, I receive this error periodically:
http2Client.notifyError got notified that the client transport was broken EOF.

Sorry, I meant more details from Google's server.

I'm not sure what info I could provide. Am I able to see datastore's logs? Do you mean how my personal server is configured?

Are you seeing http2Client.notifyError got notified that the client transport was broken EOF. every 4 minutes? I believe that's unnecessary gRPC logging that happens on an idle connection and unrelated to RST_STREAM.

@garye Yeah, I am. I just figured I'd mention as it looks related, but I guess not! Thanks for the info.

@andrewladd, are you able to share how you're setting up the *datastore.Client?
Is there any other difference between environments when you try emulator vs. prod datastore?

@okdave Yep! Here's where I set up the context and client objects, where env is gathered as an environment variable and projId is just a placeholder:
ctx := context.Background()
ctx = datastore.WithNamespace(ctx, env)
client, err := datastore.NewClient(ctx, projId)

These get passed down into my router, and in turn into the functions that communicate with the database.
The only difference should be the env variable; everything else is consistent.

This is very confusing – I can't see what's happening at all. @pcostell @zombiezen, do you have any idea how we might be able to find internal logs to match?
@andrewladd how many entities are you expecting to match the query? If you artificially limit the number do you see the HTTP error? Does it happen reliably? (Sorry for the 20 questions, still trying to get my head around this)

@okdave
As many entries are stored in the database under the parent entity. It's meant as a log of previous actions. I also use GetAll in one other case, for a different entity type, but it's a KeysOnly query. Same behaviour.
I'll try to limit it to something manageable and get back to you. I'll also set up a simple test case too, to see if there's anything else in my code that's causing this.
No problem! This is really weirding me out, too...

/cc @eddavisson since I'm out starting next week.
We'll need the project ID and the rough time when you see this to try to get any logs from the servers.

@okdave I've tried imposing an arbitrary limit, and I still see the same HTTP error.
The errors I see happen reliably; in every context I use the GetAll function, I see the same failure. I've tried:

using it inside of a transaction (ie with the .Transaction(tx)) function appended to the query
using different interface set ups

var entries []*Entry
entries := make([]*Entry, 0)
entries := []*Entry{}

using a .KeysOnly() query versus not.

Also, here's a little more information about how I'm setting up my emulator:
/opt/google-cloud-sdk/platform/cloud-datastore-emulator/cloud_datastore_emulator start --host=localhost --port=8832 --store_on_disk=False --consistency=0.9 --allow_remote_shutdown

@pcostell I'm not too comfortable posting our project Id publicly. Would it be okay to send it to your (and @eddavisson's) posted email accounts?

@andrewladd, yep, you can send your project ID to those email accounts.
Are you running these requests against the emulator or against a production datastore?

@eddavisson I've run them against both: everything runs perfectly against the emulator, but I get this error when against production:
rpc error: code = 13 desc = stream terminated by RST_STREAM with error code: 2

@andrewladd, thanks for the additional info in the email. I believe you're running into https://github.com/GoogleCloudPlatform/google-cloud-datastore/issues/132.
Your query requires an index:
- kind: Entry
  ancestor: yes
  properties:
  - name: PatchTime

The API attempts to return this recommended index in the error message, but a bug causes the RST_STREAM error instead.

@eddavisson The solution works! Kind of an unexpected turn of events. I'll make sure to use the on-site GQL tester for my queries from now on, and hope to avoid these in the future.
Thanks for the support, everyone! :smiley:


Write an RFC5545 (iCalendar) parser and store

We need to ingest all lecture events into the vmp server in order to automatically backup the livestream.

Run loop integration:

Periodic retrieval of schedule from server
Periodic scheduling check, and dispatch


Update workflow progress notification

All OS install tasks progress are implemented, documents is update to reflect this feature.
Detailed description for milestones and progress are provided in new document for installation of all OSes

@linlynn @lanchongyizu @sunnyqianzhang @iceiilin

@yyscamper @pengz1 Is this PR still valid?


WinAppDriver behavior different in local Windows machines and Azure cloud Virtual machines

We use a set of virtual machines on Azure cloud to test our windows WPF application. We noticed some buttons can be clicked in all our 10 developers machines but can not be clicked in Azure cloud. Any one experiences the same issue?

@james-miami I suppose Windows versions are not the same.
Per my experience, WinAppDriver often returns different App controls tree for a different version of the window.
Could you save the page source on Azure Cloud and check that button control really presents (use driver.PageSource) and then check that XPath working using http://xpather.com/?

Thank you for the suggestion. I will log the PageSource to figure out what
the difference is between those two systems.
James
On Sat, Aug 7, 2021 at 9:39 AM Shakevg @.***> wrote:

@james-miami https://github.com/james-miami I suppose Windows versions
are not the same.
Per my experience, WinAppDriver often returns different App controls tree
for a different version of the window.
Could you save the page source on Azure Cloud and check that button
control really presents (use driver.PageSource) and then check that XPath
working using http://xpather.com/?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/WinAppDriver/issues/1572#issuecomment-894656400,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVD2ZZBJQ7CTA6WXUJIJONLT3UZRRANCNFSM5BXLTNJA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

By comparing PageSources from Azure cloud CIT machine and local development machine, they are identical. This is not a WinAppDriver issue, the application itself behaviors different in those two different environment.


Update DomApi.scala

This change avoids null as a namespace in setAttributeNS when setting an SVG attribute. This is unsupported in at least Firefox and Edge. The error can easily be triggered by using render(...,svg.svg(svg.xmlns:="...")) in a ScalaFiddle.

Hi, thanks for taking the time to review this. Yes, it's with the xmlns attribute. See https://scalafiddle.io/sf/vU2SK24/1 ; this outputs
ERROR: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces
setSvgAttribute__Lcom_raquo_laminar_nodes_ReactiveSvgElement__Lcom_raquo_domtypes_generic_keys_SvgAttr__O__V@https://scalafiddle.io/resultframe?theme=light line 58 > eval:1383:12
$colon$eq__O__Lcom_raquo_laminar_modifiers_Setter/ eval:3796:39
...

on FireFox 87 on Windows and fails on Edge on Windows with a comparable error in setSvgAttribute.
The next version (https://scalafiddle.io/sf/vU2SK24/2) shows the code working with a setAttribute call and failing with a  setAttributeNS(null, call.

It turns out that xmlns attribute is actually part of the http://www.w3.org/2000/xmlns/ namespace, so the correct invocation is:
el.ref.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", "http://www.w3.org/2000/svg")

Which is... weird, but understandable I guess.
Looks like every UI library runs into this eventually...
I will specify the correct namespace for this attribute in Scala DOM Types, and the upcoming version of Laminar will use that. If you need an urgent fix, you can create an instance of ReactiveSvgAttr manually with the correct namespace and use that. But, if you wanted to specify the svg namespace with the xmlns attribute, I'm pretty sure it's optional when creating SVGs from scripts (as opposed to downloading them as images).

Fixed in 0.12.2, just released. Cheers


Use cursor to slide across charts

Focus could be captured only from circular markers earlier. Added code for capturing focus from any part in the charts.

@jeremyphilemon this is a very much required feature. Seems to be working well. Please review the code once and merge.


[Core] Docs Changes Needed from dbt-core Issue #10867

At a minimum, update body to include a link to the page on docs.getdbt.com requiring updates and what part(s) of the page you would like to see updated.
Originating from this issue: https://github.com/dbt-labs/dbt-core/issues/10867

addressed here: https://github.com/dbt-labs/docs.getdbt.com/pull/6351


Relicense as MIT

I have approval from @chimeric to relicense under a more liberal MIT license. Any objections @foosel @kaie @yvesf @meteopascal?

None at all

Hello Florian,
No objection at all.
Thanks for taking the project over.
Pascal
Le 1 oct. 2016 à 18:39, Florian Rathgeber<EMAIL_ADDRESS>a écrit :

I have approval from @chimeric to relicense under a more liberal MIT license. Any objections @foosel @kaie @yvesf @meteopascal?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

No objections

No objections

Thanks for confirming, I'll go ahead then!


[RMP] Subgraph capabilities across Merlin

Enable the division and retrieval of sub portions of the graph. Incorporate Subgraph usage throughout all of the merlin framework. The multi stage example needs to be refactored to correctly use subgraph workflows.

[ ] Update the multi-stage example to include NVTabular workflows for user and item towers

[ ]         Update feast feature store values to use non processed values
[ ]         create subgraphs for nvtabular workflow for feature processing in notebook 1
[ ]         load workflow from notebook 1 into notebook 2 and pull subgraphs from workflow
[ ]         use subgraph workflows to process features in systems graph in notebook 2

[x] Create Support for usage of subgraphs in NVTabular
[x] Create support for usage of subgraphs in Systems
[ ] Ensure loading and execution of full notebooks with subgraphs

https://github.com/NVIDIA-Merlin/Merlin/pull/1022

I don't think this is actually done, since the notebook still needs updates to the text and diagrams.


[Removal]: Hotspot in the real location but purchased second hand and still in the deny-list

Hotspot Name
Sneaky Indigo Robin
Hotspot b58 Address
11UvxMuUXRmCKbrrhztMT26VRsxhp1KryJxDtXBNCJDYxABQB1u
Discord Handle
No response
Hotspot Manufacturer
Bobcat
Removal Reason
Hello, I purchased 5 Sensecap miners from a secondhand seller thru Alibaba. it's a real deploy. Could you please remove it from denylist? Thank you in advance. Regards
Modifications
No
Extra forwarders
No
Extra antennas
Yes
Additional Information
There's no first hand devices in my country can be purchased right now, so I bought one bobcat miner on the secondary market but it is in the deny-list.
I have already bought, and actual arrangement，But there's no way to complete the transfer.

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


no main manifest attribute error on running spring boot service image built using nixpacks

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
I am able to build a spring boot application using nixpacks and able to push the image to docker. But when I run the docker image I get no main manifest attribute error.
To reproduce

Create a project with https://start.spring.io/ using Gradle.
Build it using nixpacks build . --name "IMAGE_NAME"
Push the image to docker.
Run the docker image
The image fails to run with no main manifest attribute error

Expected behavior
The application should run at port 5000 with an active hello/world api endpoint.
Environment
Linux EC2 VM

Solved it by removing the *-plain.jar from the build folder which started happening after version 2.5.
Add this to the Gradle file
tasks.jar { enabled = false }

Interesting issue. Nixpacks should work even if *-plain.jar is present in the build folder.


System.MissingMethodException: Method not found: 'System.Threading.Tasks.ValueTask1<!0> System.Threading.Tasks.ValueTask1.op_Implicit(System.Threading.Tasks.Task`1<!0>)'.

I try to communicate with my service wcf and I obtain this error since I have upgrade to aspnet core 1.0 and Update 3 of visual studio community 2015.

warn: Microsoft.AspNetCore.Server.Kestrel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60[0]
Connection processing ended abnormally
System.MissingMethodException: Method not found: 'System.Threading.Tasks.ValueTask1<!0> System.Threading.Tasks.ValueTask1.op_Implicit(System.Threading.Tasks.Task1<!0>)'.    at Microsoft.AspNetCore.Server.Kestrel.Http.MessageBody.ForContentLength.ReadAsyncImplementation(ArraySegment1 buffer, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Http.MessageBody.Consume(CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Http.Frame`1.d__2.MoveNext()

@ybarbaria There was recently a breaking change to ValueTask in System.Threading.Task.Extensions, and it looks like you are getting mismatched dependencies. You can see previous reports of this issue here and here.
Guessing based on your error, you've correctly updated your System.Threading.Task.Extensions dependency to 4.0.0, but you're using an older version of Microsoft.AspnetCore.Server.Kestrel.
Since you're only using release packages, make sure you don't have any myget sources in your NuGet.Config files. Then clear all you nuget package caches and restore.
If that doesn't fix things, please include a link to a gist with your project.lock.json.

Same problem, I have clear cache and verify mismatch dependancies.
I create a gist :
https://gist.github.com/ybarbaria/91c7aefff3fb9c7a44f4517b920570d2

I also try this configuration same result ...
https://gist.github.com/ybarbaria/439b805b9a84c931814b1b7fb679b696

Can you take a look at the exact Microsoft.AspNetCore.Server.Kestrel.dll loaded by your application at runtime? I would use Process Explorer to be sure you get the right one. Then take a look at the dll's detailed properties in file explorer. It should look like this:

For anyone still having problems with this, a temporary fix is to include this in your dependencies:
"System.Threading.Tasks.Extensions": "4.0.0-rc2-24027"

@nbahramzad Or upgrade your dependencies instead of downgrading one of them.

I should elaborate, my old project.json looked like this:
{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview2-final"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

and after updating everything to look like this:
{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview2-final"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

I got this error message on restore:
Package Microsoft.AspNetCore.Mvc 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNetCore.Mvc 1.0.0 supports:
      - net451 (.NETFramework,Version=v4.5.1)
      - netstandard1.6 (.NETStandard,Version=v1.6)
    One or more packages are incompatible with .NETCoreApp,Version=v1.0.
NuGet Config files used:
    C:\Users\nbahramzad\AppData\Roaming\NuGet\NuGet.Config
    C:\ProgramData\nuget\Config\Microsoft.VisualStudio.Offline.config
Feeds used:
    https://api.nuget.org/v3/index.json

Just downgrading System.Threading.Tasks.Extensions was a quick and easy solution for getting things working with the non-upgraded project.json.
Finally, I figured out my problem. I updated the "frameworks" section from:
"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

to this:
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "netstandard1.6"
      ]
    }
  },

and now everything works with the 1.0.0 RTM versions! Sorry for giving the bad advice and thank you @davidfowl for the tip. I hope this helps someone having the same problems I was having.


menu is broken on the site

Go to https://www.objectionary.com/eo-phi-normalizer/docs/atoms.html. Click on 8.1 in the menu on the left. Then, click on "Introduction".

@deemp please, check this one

@yegor256, reproduced, thanks. Working on it.

Seems to be relevant https://github.com/rust-lang/mdBook/issues/2488

@yegor256, the issue should be resolved. Please check the site

@deemp works now, thanks!

@yegor256 Hey there! 👋 Sorry to hear your ticket wasn't accepted this time. As per our policy, that's a -16 point deduction. Don't let it get you down though! Your bug reports and enhancement ideas are super valuable for improving our project. Just aim for a bit more precision next time, okay? Keep those bug reports coming - they're always welcome! Your current balance is -66. Keep up the great work!

@deemp next time, in order to avoid such penalties, please attach "bug" label to tickets that you believe are bugs.


[BUG] Cannot detach volume

Describe the bug (🐛 if you encounter this issue)
No pod is using the volume, but it cannot be detached because it immediately gets reattached automatically.
From what I can see, the corresponding VolumeAttachment object has an attachment ticket that cannot be deleted (if deleted, it's immediately recreated):
spec:
  attachmentTickets:
    volume-rebuilding-controller-pvc-150c0bbc-25d6-4fe2-b76b-6bce680d6975:
      generation: 0
      id: volume-rebuilding-controller-pvc-150c0bbc-25d6-4fe2-b76b-6bce680d6975
      nodeID: rkemetal1
      parameters:
        disableFrontend: 'true'
      type: volume-rebuilding-controller
  volume: pvc-150c0bbc-25d6-4fe2-b76b-6bce680d6975

To Reproduce
Don't know.
Expected behavior
The volume should stay in the "detached" state.
Support bundle for troubleshooting
supportbundle_c4bfb03c-3e6b-4b5c-8658-d577d2711941_2023-09-13T21-25-55Z.zip
Please remove the bundle once you've downloaded it.
Environment
Longhorn 1.5.1.

Notes from the Slack thread:
This is a part of the v2 engine operation, where the replica must be attached to rebuild.  From the enhancement document, the sequence is:

A volume-controller sets 'Volume.Status.OfflineReplicaRequired' to 'true' when it realizes a v2 data engine is degraded.
If a volume's Volume.Status.OfflineReplicaRebuildingRequired is true, volume-rebuilding-controller creates a volume-rebuilding-controller attachment ticket with frontend disabled and lower priority than tickets with workloads.
When the volume is detached, volume-attachment-controller attaches the volume with a volume-rebuilding-controller attachment ticket in maintenance mode.
volume-controller triggers replica rebuilding.
After finishing the replica rebuilding, the volume-controller sets Volume.Status.OfflineReplicaRebuildingRequired to false if a number of healthy replicas is expected.
volume-rebuilding-controller deletes the 'volume-rebuilding-controller' attachment ticket.
volume-attachment-controller is aware of the deletion of the volume-rebuilding-controller attachment ticket, which causes volume detachment.
So it appears that the options are to wait for rebuild to finish, or reduce the number of replicas.

Filer points out:

there's no rebuild going on AFAICT, and I'm not using v2 engine either.
the volume is shown as healthy in the dashboard.
replicas reduced from 3 to 1, but the behavior upon detach is the same (ie, immediately reattached).

It looks like 21 volumes in this cluster have volume.status.offLineReplicaRebuildingRequired == true, and that has caused most (all?) of them to gain similar attachmentTickets.
From a quick check of the code, we should not ever set volume.status.offLineReplicaRebuildingRequired = true unless a volume is using the v2 engine. There is no evidence that any volumes are using the v2 engine, so further investigation is required.

There is only one place that volume.status.offLineReplicaRebuildingRequired can be set to true.
Before setting the value, we also check the volume.spec.backendStoreDriver (code), is it possible that the volume.spec.backendStoreDriver was somehow not v1? However, the backendStoreDriver looks quite normal.

One thing that had happened some time before this, is that suddenly all three nodes had become unschedulable, with an error of "unknown disk"; explicitly disabling scheduling plus re-enabling it on each node from the UI made them schedulable again. Don't know why that happened, but after that everything seemed to be working. It's only when I tried to detach a volume later that I discovered what we're discussing here.
On a related note, while this is being investigated, is there some workaround or hack that would allow me to detach these volumes?

One thing that had happened some time before this, is that suddenly all three nodes had become unschedulable, with an error of "unknown disk"; explicitly disabling scheduling plus re-enabling it on each node from the UI made them schedulable again. Don't know why that happened, but after that everything seemed to be working. It's only when I tried to detach a volume later that I discovered what we're discussing here.
On a related note, while this is being investigated, is there some workaround or hack that would allow me to detach these volumes?

There is no better workaround. I can build a special image for helping the problematic volumes escape from the situation if you want.

That would be appreciated. Thanks.

Ok I've found that using:
kubectl patch lhv -n longhorn-system pvc-150c0bbc-25d6-4fe2-b76b-6bce680d6975 --type=merge --subresource status --patch 'status: {offlineReplicaRebuildingRequired: false}'

allows me to set the offlineReplicaRebuildingRequired status to false and I'm able to detach the volume afterwards.

kubectl patch lhv -n longhorn-system pvc-150c0bbc-25d6-4fe2-b76b-6bce680d6975 --type=merge --subresource status --patch 'status: {offlineReplicaRebuildingRequired: false}'

allows me to set the offlineReplicaRebuildingRequired status to false and I'm able to detach the volume afterwards.

Cool! Didn't notice the status can be updated by the kubectl command.
BTW, please help observe if the issue happens again. Thank you.

Just in case, I've disabled the Offline Replica Rebuilding option, which for some reason was enabled, as it seems to be used/related only to v2 engine.

Just in case, I've disabled the Offline Replica Rebuilding option, which for some reason was enabled, as it seems to be used/related only to v2 engine.

Yeah, feel free to disable it.

Could this have happened during an upgrade? Since these checks only return IF they find a particular condition (e.g. if backendStoreDriver == v1 or offlineReplicaRebuilding == ignored, maybe a longhorn-manager reconciled these volumes before these volumes were reconfigured (e.g. when backendStoreDriver == "" and offlineReplicaRebuilding == "")? I think we have safeguards to prevent that, but need to confirm.

Could this have happened during an upgrade? Since these checks only return IF they find a particular condition (e.g. if backendStoreDriver == v1 or offlineReplicaRebuilding == ignored), maybe a longhorn-manager reconciled these volumes before they were reconfigured (e.g. when backendStoreDriver == "" and offlineReplicaRebuilding == "")? I think we have safeguards to prevent that, but need to confirm.

longhorn-manager daemonset's updateStrategy is rollingUpdate. Before upgrading, all old longhorn-manager pods should be terminated. Longhorn adopts the leader election mechanism, so one of the new longhorn-manager pods will execute the upgrade path. From the volume.spec.backendStoreDriver, the value is correctly set to v1, so status.offlineReplicaRebuildingRequired == true  seems impossible.
The upgrade seems not solid enough. Except for the issue, there are some issues reporting the resources are not completely updated yet, but the upgrade is successful.

Could this have happened during an upgrade? Since these checks only return IF they find a particular condition (e.g. if backendStoreDriver == v1 or offlineReplicaRebuilding == ignored), maybe a longhorn-manager reconciled these volumes before they were reconfigured (e.g. when backendStoreDriver == "" and offlineReplicaRebuilding == "")? I think we have safeguards to prevent that, but need to confirm.

longhorn-manager daemonset's updateStrategy is rollingUpdate. Before upgrading, all old longhorn-manager pods should be terminated. Longhorn adopts the leader election mechanism, so one of the new longhorn-manager pods will execute the upgrade path. From the volume.spec.backendStoreDriver, the value is correctly set to v1, so status.offlineReplicaRebuildingRequired == true  seems impossible. Is it possible that the upgrade is on-going, but the controllers start reconciliation?
It seems the upgrade is not solid enough. Except for the issue, there are some issues reporting the resources are not completely updated yet, but the upgrade is successful.

We did a live code analysis with @ejweber and @james-munson and have a theory of what could have gone wrong. I am trying to reproduce that theory

In the meantime, I think we get all the data we possibly got from the user so we should proceed to the user out of this stuck situation. You can try this workaround @h-e-l-o:
Workaround:

Get all problematic volumes by kubectl get volumes.longhorn.io -o json -n longhorn-system | jq -r '.items[] | select(.status.offlineReplicaRebuildingRequired == true) | .metadata.name'
Update each volume by kubectl patch volumes.longhorn.io <VOLUME-NAME> --type=merge --subresource status --patch 'status: {offlineReplicaRebuildingRequired: false}' -n longhorn-system

That worked fine, thanks!

The fixes for this issue are in the upgrade path and are addressed in #6294.  Since the workaround has solved the customer issue, this ticket can be closed and the backport label transferred to that ticket.

Let's add duplicated label, but rather tackle this in #6294.


Fail more gracefully when invalid OSM id passed in querystring

Example

Obviously there is something wrong with the MapRoulette challenge that produced this link in the first place... But perhaps iD could fail more gracefully by just ignoring the invalid OSM id?

Hi @mvexel, I believe that's an issue with openstreetmap-website. The part before the # in the URL is handled by the container page which passes the parameters into iD.

Thanks, @quincylvania for your response.


Add non-GENIE protein alteration data

Wrote a script to add only required columns for samples with only protein modification information to data_mutations_extended.txt and tested with validation.  Validation failed:

python $HOME/cbioportal/core/src/main/scripts/importer/validateData.py -s erbb2/ -v -n | grep ERROR
ERROR: data_mutations_extended.txt: lines [658, 659]: column 5: The start position of this variant is not an integer; value encountered: ''
ERROR: data_mutations_extended.txt: lines [658, 659]: column 6: The end position of this variant is not an integer; value encountered: ''
ERROR: data_mutations_extended.txt: lines [658, 659]: column 9: Value in column 'Variant_Classification' is invalid; value encountered: ''


[bug] Publisher memroy will leak when close one of the subscribers

I test HelloWorldExample  for one publisher and two subscribers,then close one of the subscribers,I found the publisher memory will increase.
use  vs2013 and win7
I modify the code like this:
switch(type)
{
case 1:
{
HelloWorldPublisher mypub;
if(mypub.init())
{
mypub.run(1000000);
}
break;
}
case 2:
{
HelloWorldSubscriber mysub;
if(mysub.init())
{
mysub.run();
}
break;
}
}

I have tested with the 1.6.0 release using vs2013 on win10 and couldn't reproduce this.
Could you try on your side?

Closed as unreproducible


Can we improve MMapDir's exceptions for invalid offsets?

Description
For #11905 bug, as an example, the user may get a generic exception "Seek Past EOF".
Can we improve it to include the bogus position? For example, If you can see that offset is negative, it is faster to debug. I think the new MMapDir already has some improvements here. Better error messages would help not just people debugging real world problems, but also developers making new stuff and debugging tests.
cc: @uschindler

Maybe include that in 9.4.3 ?

Will do that tomorrow, PR will come. We can decide to add it to 9.4 branch to make later debugging.of broken code with recent vectors easier.


Prevent network connect/disconnect on swarm scoped networks

Swarm handles service updates quite differently and also it doesnt
support worker driven manager operations (especially that results in resource manipulation). Hence we must prevent containers from connecting to swarm scoped networks
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

ping @tiborvass @thaJeztah @vdemeester

is this something that will / can be supported in future?

@thaJeztah we can support it when we support docker run on swarm-scoped networks.

LGTM 🐸

we can support it when we support docker run on swarm-scoped networks.

Thanks! I thought something changed in that respect, so wanted to check

LGTM


Adapt to python3

python3 is now default on many platforms. I suggest upgrading. Backward compatibility with python2 would be also possible utilizing the six module, but that would add a dependency that's not worth it on such a small script imo.
@ikreymer please review.

Superseded by other changes, support added via #10, should work in both python 2 and 3.


Require taking self as argument for contract methods that interact with self

Proposed Change
Currently methods on contracts have implicit access to self as seen in the following snippet.
contract Something:
    x: u256 = 1
    pub def read_x() -> u256:
        return self.x

This issue proposes to explicitly require self as method argument when a method wants access to self:
contract Something:
    x: u256 = 1
    pub def read_x(self) -> u256:
        return self.x

Motivation
One of the core motivations is to make self less magical (where does it come from?, Why is it a special case?).
However there are other compelling reasons why such a change would be beneficial.
Self-less methods as class methods
If a method does not interact with self, it can leave out self and becomes a static method of the contract.
contract Something:
    x: u256 = 1
    pub def does_not_read() -> u256:
        return 1 + 1

This is good for readability and auditing as it becomes easy to spot which methods do and do not interact with contract storage.
Open Question: Would such a method still be callable as self.does_not_read() or only as Something.does_not_read() ?
Making mutability explicit
We can go one step further and say that self becomes immutable by default. If one wants to have a method that updates a storage variable, one has to explicitly take self with the mut keyword as shown below.
contract Something:
    x: u256 = 1
    pub def update_x(mut self) -> u256:
        self.x = 2

This again is great for readability and auditability. We can compare that to the inverse of view in solidity but I would argue that the nice aspect here is that immutability is the default and one has to add a keyword to make things mutable rather than to add a keyword to declare a method as being view only or pure.

I REALLY like mut self and that entire mechanism for preventing state mutability.
I think it's worth exploring whether this can serve as re-entrancy protection as well.  If you went the rust route and were able to enforce there only ever being one mutable handle to self then it at least seems like that provides strong re-entrancy protection since a call frame holding the mutable handle to self would make any re-entrant calls fail as soon as they attempted to modify storage.

I think it's worth exploring whether this can serve as re-entrancy protection as well. If you went the rust route and were able to enforce there only ever being one mutable handle to self then it at least seems like that provides strong re-entrancy protection since a call frame holding the mutable handle to self would make any re-entrant calls fail as soon as they attempted to modify storage.

Yep, in rust a method that takes mut self can not even be called recursively (Because the second call would try get a mutable handle which isn't possible because the first call is still holding it). But if I understand correctly, this is a zero cost compile time guarantee that the compiler can make because it is in total control. In the Ethereum re-entrency case, other potentially unknown code can call into us which is something we can not prevent free of cost at compile time. We could still compile mut self down to something that enforces re-entrency protection, but it wouldn't be a zero cost abstraction. But maybe that is fine. E.g. the compiler can be smart enough to only add re-entrency protection to public methods that need it and leave it out for any other private methods that take mut self (it will still enforce the basic rules e.g. wouldn't be callable recursively).
I personally think that this is a very interesting idea.

@g-r-a-n-t
I have a question about this example:
contract Foo:
  my_array: u256[100]

  def bar(self, mut mem_array: u256[100]):
    mem_array[26] = 42

  pub def baz(self):
    self.bar(self.my_array) # my_array is copied to memory

I would expect the compiler to throw an error on self.bar(self.my_array) because self should be immutable in that context, and thus, I would expect self.my_array to also be immutable, and since the function signature of bar specifies that it expects a mutable array type, that the type system would complain.  What does rust do in a case like this?

Ah, yeah good point. This is tricky.
In Rust, you would get the error you've described (assuming you don't have ownership issues).
We could enforce the same rules as Rust, but it is of course unnecessary since there is an implicit copy happening. I suppose we could consider adding some sort of copy method so it's more clear that you're not actually passing an immutable storage value.
contract Foo:
  my_array: u256[100]

  def bar(self, mut mem_array: u256[100]):
    mem_array[26] = 42

  pub def baz(self):
    self.bar(self.my_array.to_mem()) # my_array is copied to memory

Also, I'm thinking in terms of ownership here, so self.my_array.to_mem() would be moved into bar where mutability is set by the parameter declaration.
This on the other hand would fail:
pub def baz(self):
  mem_array: u256[100] = self.my_array.to_mem()
  self.bar(mem_array) # error: bar would mutate an immutable reference
  do_something(mem_array)

Are there instances where reentrance is desirable?

Good question. I have a hard time thinking of any but it's probably worth reaching out to people that regularly write smart contract code.
As a comparision, in Vyper one would use the @nonreentrant(<unique_key>) decorator to protect against reentrancy.
But, I like the fact that we wouldn't need something like a special decorator for this because it would keep the language simpler and safer after all.

If so, how should we allow it in the language (assuming it's disabled by default)?

One idea would be to introduce something like RefCell which could give more fine grained mutability via something like borrow_mut. But honestly, that's a route of complexity that I'd rather like to avoid.
Another idea would be something like a decorator @allow_reentrancy but I'm still skeptical about any valid use cases. I would like to see a case that would really need a state mutating function to be reentrant and couldn't be rewritten another way.

For now, I think the simplest thing we can do is require that all parameters be passed by value or memory pointer

Yeah, I think I'm on board :+1:

Here's a case from Aragon: https://mobile.twitter.com/izqui9/status/1317826431527886849

Ignoring all the mutability stuff for now but I think we should prioritize making self mandatory for non-static functions sooner than later. The reason for that is that it may proof very useful related to struct support which is coming with #203.
One of the planned features for structs is to allow functions on structs (just like in Rust). Now, functions on structs could be very useful for both as instance methods or static functions as demonstrated with the following example.
struct Rectangle:
    width: u256
    height: u256

# Static method to create a rectangle that happens to be a square
def square(size: u256) -> Rectangle:
    Rectangle(width=size, height: size)

# An instance method to check if the rectangle can hold another rectangle
def can_hold(self, other: Rectangle) -> bool:
    return self.width > other.width and self.height > other.height

Taking self as the first parameter is what would decide whether something is a static method or an instance method (just like in Rust)
Usage:
big = Rectangle(width=10, height=20)
square = Rectangle::square(5)


email field is to short

Hi,
When creating a new user or editing an existing one, the email field is too short. It's actually limited to 51, and RFC says email can be 254 caracters long.
http://www.rfc-editor.org/errata_search.php?rfc=3696
Best regards,
Edouard

I think this issue is a UI issue, so I'm moving this over to the UI repo
@miq-bot move_issue manageiq-ui-classic


Federation weirdness -- posts totally unrelated to articles showing up in the comments feed

So..
This might be an edge case, but my domain name used to be a Mastodon server. I shut that down later on, then re-used the domain for a WP server. But for some reason its acting like its following people. So there are literally thousands of "comments" that show up that aren't attached to an article, all waiting for approval. My wordpress account isn't mentioned in their posts at all, its pretty strange. Like.. its acting as if my wordpress is following their accounts.

Oh! This is really an edge case. It seems that you still receive Posts that other AP plattforms sees as relevant for your server. I never thought about that case, so my plugin is accepting all of these, without checking if they are really relevant. :(

I have a knack for finding all the best edge cases, haha!


Remove Mutagen because file mount combined with Orbstack is fast!

@lewisvoncken This is the wrong approach to take. Warden is not locked to OrbStack as the underlying container platform. It's only locked to docker and docker compose, be that Docker Desktop, OrbStack, Containerd, Lima, Colima, etc.
I believe the proper way to handle this is to make Mutagen an optional service that can be turned on or off per environment, and potentially globally, using the .env file like we can do with ElasticSearch, Varnish or Blackfire. This way we're still backwards compatible with all of the existing Warden releases while allowing those using different Docker platforms to choose to use bind mounts or Mutagen.
Cc. @navarr

@bap14, In my experience, Mutagen is no longer necessary in Docker Desktop, in fact, it is counterproductive, I have been using Warden without Mutagen on my Mac m2 for several months and it works much better, I no longer have file desynchronization problems and a notable decrease in memory consumption.
Since Docker Desktop made VirtioFS as the default file sharing implementation, Mutagen is not needed.
On the other hand, I think that the .env file is not the best place to add the Mutagen configuration since this is a preference of your machine and not of the project.

@joseluisi4 I'm not against deprecating Mutagen; however, we have to keep legacy projects and environments in mind. VirtioFS is still not the default in Docker Desktop and so may not be enabled in every environment. If we go down this path, which I'm not against, we should mark it as deprecated in the next release and target the next, or one after next, minor release.
So for example the current release is 0.14.2. In 0.14.3 we implement the ability to disable Mutagen via the .env config. We'll also need to add a notice every time Mutagen sync starts via the warden env up command to inform that Mutagen is being deprecated. The default is still to use Mutagen. In 0.15 we can swap the default of using Mutagen to default to off while still having the ability to enable it if wanted.

Closing this as work proceeds in the replacement PR.


Incomplete type definition for oauth2.requestToken() return value.

Context
When working with a developer sandbox, the instanceUrl must be in the form of {yourSandbox}.sandbox.my.salesforce.com instead of {yourSandbox}.sandbox.lightning.force.com (otherwise, any API calls will result in an INVALID_SESSION_ID 401 error).
To avoid this mistake, the /oauth/token endpoint returns the access token, but also the instance_url property.
Issue
The oauth2.requestToken()'s return type is TokenResponse, an interface with the following properties :
export interface TokenResponse {
    access_token: string;
    refresh_token: string;
}

However, it differs to what Salesforce is really returning.
Possible fix
I suggest changing the TokenResponse definition type to this :
export interface TokenResponse {
    access_token: string;
    refresh_token?: string;
    id_token?: string;
    signature: string;
    scope: string;
    instance_url: string;
    id: string;
    token_type: string;
    issued_at: string;
}

It's based on this help article (https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm&type=5), but I couldn't find the real API reference.
Workaround
Create a custom type, and cast the return value to that type.

Ooh, I see.
@cristiand391  Should I keep this issue open then ?

let's leave it open in case anyone wants to fix it in @types/jsforce, I'll close in once jsforce v3 is GA since you'll no longer need @types/jsforce 👍🏼

This should be fixed in v3, see: https://github.com/jsforce/jsforce/discussions/1529


[bug]: cqlsh basic console not working

Do I have the most recent version of AxonOps Workbench installed?

[X] I am using the most recent beta release

AxonOps Workbench Version
v0.1.1-internal-20240912-05
Is there an existing issue for this?

[X] I have searched the existing issues

Operating System
MacOS
Operating System Version
14.6.1 (23G93)
Apache Cassandra Version(s)
4.1.6
Bug Description
cqlsh basic console seems to be broken now

Steps to Reproduce
N/A
Expected Behavior
N/A
Actual Behavior
N/A
Severity
High
Further Information
No response

I am connectd to a local 5.0 and cluster and a remote 4.1 cluster at the same time and it works find on the local cluster but breaks on the remote connection

I am unable to reproduce this bug


COD 483 - Missing permissions

Hello,
is it possible to extent permissions in COD 483 to all protected tables?
We added global dimensions in table 254 VAT Entry and the Job now breaks down because of missing Permissions for table 254.
In past we added the missing permission…
Also possible are new handled Events before modifying the records, in function ChangeDimsOnRecord, ChangeDependentRecords and TestDirectModifyPermission.
I’m looking forward to your reply.

Thanks for submitting this issue. We will publish a fix for it in the next minor update for release 15.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Use ShortByteString and cryptonite for hashes

Must set network before using constants (Prodnet no longer default).
Reduce memory fragmentation by using ShortByteString for hashes.
Use cryptonite instead of deprecated cryptohash for hashes.
Add Regtest network support.
Bump secp256k1 library version.
Improve encodeCompact and decodeCompact functions.
Refactor visited files.
Add extra data to network constants.
Change serialisation functions.
Add sendheaders message.
Remove transaction and block hash from type.
Additional minor changes.

Are you able to separate the changes introduced by hlint from the rest of the changes? As far as I can see, a lot of the changes are suggestions by hlint, which don’t seem necessary to check manually.


Local video - MediaPlayer Error: Unknown (1) -2147483648

The plugin is not playing local files on android. I am gettting error MediaPlayer Error: Unknown (1) -2147483648. The file path is file:///android_asset/www/assets/media/video.mp4 .  It is working with com.moust.cordova.videoplayer 1.0.1 "Video Player" but I would like to use this cordova plugin streaming media.
info :

android:  4.4.2
com.hutchind.cordova.plugins.streamingmedia 0.1.4 "StreamingMedia"
cordova (Cordova CLI) : 8.0.0
Cordova Platforms  : android 7.0.0
Ionic Framework    : ionic-angular 3.9.2
Android SDK Tools : 25.2.5

Thanks you for help.

@matodrobec
Did you find any solution so far regarding this?

@matodrobec
Have you got any solution so far?

@Topiya I am able to play local files just fine stored on the actual android file system. try getting the reath path of the file with the file api

proposed enhancement: handle local file:/// path elegantly and normalize the URL for users


Use 'kubectl' instead of 'tkn' for tree, some minor refactoring

This PR increase Tekton tree loading speed. Also now Tekton tree use only kubectl to get data for nodes.
Also it add better update tree when pipelinerun is running.
Demo:

Fix: #240
Fix: #239

Codecov Report

Merging #255 into master will decrease coverage by 1.18%.
The diff coverage is 77.41%.

@@            Coverage Diff             @@
##           master     #255      +/-   ##
==========================================
- Coverage   71.18%   69.99%   -1.19%
==========================================
  Files          38       38
  Lines        2391     2353      -38
  Branches      405      400       -5
==========================================
- Hits         1702     1647      -55
- Misses        689      706      +17

Impacted Files
Coverage Δ

src/tekton/pipelinerun.ts
100.00% <ø> (ø)

src/kubectl.ts
12.82% <33.33%> (ø)

src/util/tektonresources.virtualfs.ts
83.67% <50.00%> (-0.17%)
:arrow_down:

src/cli.ts
67.21% <65.00%> (-9.35%)
:arrow_down:

src/tkn.ts
75.43% <79.62%> (-3.79%)
:arrow_down:

src/kubernetes.ts
100.00% <100.00%> (ø)

src/pipeline/pipelineExplorer.ts
64.28% <100.00%> (+0.64%)
:arrow_up:

src/tekton/pipeline.ts
35.60% <100.00%> (ø)

src/tekton/tektonitem.ts
91.30% <100.00%> (ø)

src/tools.ts
94.56% <100.00%> (ø)

... and 3 more

Continue to review full report at Codecov.

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

And also I get the error while automatic refreshing the tree

And also I get the error while automatic refreshing the tree

@sudhirverma  I don't see that error, can you share the pipeline?

I think we should refresh the separate node of taskRun as we are refreshing the taskRun under pipelineRun.


[suggestion] Change API to be more build-system agnostic.

For example, instead of having us do
// index.js
var glslify = require('glslify')
var src = glslify('/path/to/shader.glsl')
console.log(src)

we should be able to write
// index.js
var src = require('/path/to/shader.glsl')
console.log(src)

and then we can let Browserify handle that with glslify behind the scenes. It's also just cleaner to read. And it's easier to make it work in other build systems. And it's not vendor-locked to glslify.

Sadly changing the API isn't trivial, there's a number of active projects relying on what we have currently. There's other tradeoffs to consider: there's no practical way to get the above API working in Node, for example.
The API you're referring to is only for the browserify transform – we also have a CLI, Node API and Webpack Loader (the latter uses your suggested approach, as it's more conventional to do so in that community). With more context I'm sure we can help you get glslify working with your chosen build system though :)

only for the browserify transform

That's what I'd like to have fixed. That's not the same syntax as for the glslify-loader for Webpack, which makes it harder to write platform-agnostic code.

we can help you get glslify working with your chosen build-system though

I'd like to write one syntax for any build system. For example, if I'm writing a library (not an application), I want that library to be build-system agnostic.

there's a number of active projects relying on what we have currently

Breaking APIs in the name of progress is fine IMHO. Change the semver version appropriately. Make note of it in the docs. Programmers are smart people. I'm sure they can adapt.

Check out this file in Famous Engine: https://github.com/Famous/engine/blob/master/webgl-shaders/index.js#L27
It doesn't work in Webpack. It'd be so much nicer to rewrite it as
var VertexShader = require('./VertexShader.glsl')
var FragmentShader = require('./FragmentShader.glsl')

var shaders = {
    vertex: VertexShader,
    fragment: FragmentShader
};

module.exports = shaders;

and for that to work in both browserify and webpack build systems.

there's no practical way to get the above API working in Node

The key here is a single syntax for build systems. If you want to get a shader in Node, then by all means require('glslify') and use the API programmatically. But for browserify and webpack (and any other build systems) we should do things the conventional way, which is requiring/importing the file that is needed, and letting the build system handle it entirely behind the scenes, with conventional module syntax:
let shader = require('./path/to/shader.glsl')

impot shader from './path/to/shader.glsl'

I'd rather change the API for glslify-loader to match the transform's, as:

It's closer in line to what we have with glslify-promise and the Node API.
There's no way to pass in options to individual shaders when using require. It's very important we keep this feature, so there's no way we can use your suggested API.

The consideration of Node is actually for developing with Plask, see #8.
If you're really concerned about making your library work with any build system you should be preprocessing the file on publish, e.g. with browserify --standalone.
Webpack has a problem for cross-platform development in that it ignores browserify.transform in package.json files.

I am :-1: on this change.
I really disagree with webpack's require overloading. Aside from breaking node, it muddles the meaning of the function, makes static analysis harder, couples file extensions too tightly with transforms, encourages obscure syntax like query parameters and ! prefixes, and does not allow you to pass options as @hughsk mentioned.
A good approach for modules/libraries would be to transpile source on pre-publish. This way you aren't bundling your dependencies (as you might with webpack/browserify). A babel-glslify plugin could enable this.

I'd rather change the API for glslify-loader to match the transform

I can live with that. :+1:
Does glslify('X/foo.glsl') resolve to the foo.glsl file from the X module?

Yup! It should behave like node require algorithm. Being used here: https://github.com/mattdesl/glsl-shader-basic/blob/master/README.md

I made an issue for glslify-loader: https://github.com/stackgl/glslify-loader/issues/4

@mattdesl @hughsk Does the glslify browserify transform work on source files that have an import statement to import glslify? f.e.
import glslify from 'glslify'

glslify(...)

Or do we have to convert that to CommonJS syntax before it'll work with the glslify transform, so that glslify can properly get rid of the require('glslify') call?

I still think require('foo.glsl') is the best syntax. It's a common way to do things. For example, browserify-css for css files, one of many. There's gotta be another way to satisfy the configuration requirement. Perhaps #pragma lines in the shaders, etc, etc. IMHO. That makes things more easily cross-build-system compatible because basically every major build system supports requiring/importing custom file types; it's normal and it's not a bad thing.
There's a way to do it, I know there is, and it'll make glslify spread to other reaches of the build-system universe. Glslify can have a smaller scope: compiling glsl files. And configuration for that can be placed in the glsl files directly, or in json files in the filesystem, etc. Shoot, you could even make it so GLSL files can import json configuration files before any code, or something, so that coponents can be augmented with configuration from users. There's lots of ways to solve this problem to make syntax simple and common for all build systems while still maintaining the Node.js API for non-build systems for those who want that.
Parsing for glslify() calls in code, IMHO, is asking for complexity because there will inevitably be some structure that we haven't accounted for. We all know require/import syntax, and it's simple and hard to mangle.
#pragma glslify-config: { "foo":"foo", "bar": "bar" }
...

#pragma glslify-config: './config.json'
...

So many ways to make it happen.

Well, anyways, let me know about that previous require question. I'll have time to PR the glslify-loader repo this weekend. I don't know what staticModule does: does it also remove the matching glslify require call?

Regarding import -- there is a blocker in static-module
https://github.com/babel/babelify/issues/81

It's a common way to do things. For example, browserify-css for css files, one of many.

It's not really that common in browserify; Substack and plenty of others have voiced their concerns with overloading require statements and it's one of the reasons static-module is encouraged for browserify transforms of this nature, rather than taking the browserify-css approach.
If you want code that works in many environments (read: node, browser) then you should petition Webpack and its users to stop require overloading in their libraries and modules. :smile:
Keep in mind:

require('./foo.glsl') does not work in Node
require('./foo.glsl') does not allow you to pass an options object to the glslify parser
require('./foo.glsl') tightly couples extensions to a single transform

require('./foo.glsl') does not work in Node

But it can be pre-processed in a prepublish script easily. I agree 100% on not publishing it in that form to npm (actually, I would suggest publishing the built files in the root of the package, and in the src folder leave all the files in that form, giving end users ultimate control). For example:
foo.js // pre-processed
bar.js // pre-processed
src/
  foo.js // original
  bar.js // original

people who use node CommonJS directly can require('packageName/foo'), and it'll work. People who use Webpack, JSPM, etc, can use either the root files, or the src files, configurable in their build system. JSPM, for example, will take the root folder that you specify and install that at the root in the installed package. For example, if I set the root to src, then the installed package will look like this:
foo.js // original
bar.js // original

and the JSPM user can decide how to handle require('foo.glsl') calls. If the JSPM user doesn't want to handle those, he can choose to use the package's original root. Webpack and JSPM (and browserify, but not as easily) will compile only code that's used, and leave out unused code, so the final bundle will be lean, regardless of the filestructure.

require('./foo.glsl') does not allow you to pass an options object to the glslify parser

Hence the #pragma suggestion.

require('./foo.glsl') tightly couples extensions to a single transform

It doesn't couple it to any transform at all. I could go and make something called webglify (for lack of a better name) and now that can be an alternative to glslify (not that I want to do that). That seems to actually give the user more options to choose from for the transform.

But anyway, maybe we can get the glslify browserify transform working nicely in Webpack with transform-loader, which could eliminate the need for glslify-loader altogether, and users can at least write code in a single way across Browserify and Webpack. :)

But it can be pre-processed in a prepublish script easily.

For this, it would need to use a transpiler (Babel) rather than a bundler (webpack, browserify). Otherwise you end up duplicating dependencies.
Regardless; there is no need to transform Node code if it already works out of the box. We are only transforming client-side because we don't have access to the file system. This is why we use require('fs').readFileSync in Node, and brfs in browserify.
Using require('foo/src/blah') is generally not a good idea. You don't want your users accessing the internals of your module, since they may change without an associated semantic version change.

Hence the #pragma suggestion which I'm sure can work. I'm sure there are other ways too.

The parser/tokenizer is already running by the time it hits pragma statements:
#version 300 es

// blah blah
#pragma glslify-options: ./options

It doesn't couple it to any transform at all.

The following example shows what I mean about coupling extensions to transforms. Two transforms which both work independently in the same application, even though they use the same extension.
var shader1 = require('glslify')('./foo.glsl')
var shader2 = require('webglify')('./bar.glsl')

In the above situation, you can no longer use require('./foo.glsl'), and instead need to change the syntax of the require statement.
--
Sorry, but using require('./foo.glsl') seems like an incredulous amount of complexity for very little gain, except for doing things "the webpack way" (which many people would say is wrong).
I would say the best solution is to have a babel-glslify plugin so that modules/libraries can inline shaders on pre-publish. You lose features like glslify-optimize, but it works in node/browserify/webpack/etc.

it would need to use a transpiler (Babel) rather than a bundler (webpack, browserify). Otherwise you end up duplicating dependencies.

Yes, of course.

Using require('foo/src/blah') is generally not a good idea. You don't want your users accessing the internals of your module, since they may change without an associated semantic version change.

Any change that doesn't change the API of a package should always result in an increment of patch number. If a semantic version change hasn't happened and we've changed internals of a package, then that package isn't semantically versioned.

The parser/tokenizer is already running by the time it hits pragma statements:

Those are implementation details, details that can be modified.

var shader2 = require('webglify')('./bar.glsl')

webglify (if it ever existed) would not have an API like that. Webglify would be strictly a browserify transform with API that is not intended to be used programmatically as in that example (except for occasions where the user is hacking the browserify build system, and in that case knows what he/she is doing because that usage won't be part of the publicly documented API). Webglify would be doing it's job: being a browserify transform. As far as the webglify docs would be concerned, the usage would specify that require('./bar.glsl') is the syntax to use. Webglify would be a wrapper to another package that can be used the way you describe, in Node.js, without modification.

require('./foo.glsl') seems silly. I think it's a very bad idea to overload require, regardless if webpack is already doing that or not.
@trusktr I agree with the sentiment in this thread. Feel free to build your module if you think it's a good idea. Keep in mind however that everyone in this thread is advising you against it.

@hughsk @mattdesl @yoshuawuyts I've had no luck with transform-loader to apply glslify as a browserify transform in Webpack. I'm having this issue: https://github.com/webpack/webpack/issues/1373
Any ideas what might be wrong?

I have no idea. Looking at the stack trace it's webpack's custom resolver that's complaining. Maybe the webpack team can help.


Encoded uris

There is an issue with passing params, this lops off params rather than tries to add them again
resolves #787

This seems to work. The application route is where userToken is interpreted. The details routes don't matter. But there is a TransitionAborted error caused by the replaceWith to fix the route id. I am not sure if it is innocuous or not.


Added routes for navbar

This PR was not merged to master branch. @KushalBhanot can you merge it so that I can fetch from there and implement the register page, as discussed here in #41

Sure, can you please guide me on how to do that?


Use local llbuid sources if requested in swift ci

If SWIFTCI_USE_LOCAL_DEPS is set, and we are not bootstrapping, get the
llbuild sources from ../llbuild. This allows packages that import
swiftpm in swift-ci, such as sourcekit-lsp, to get all the sources from
the local checkouts created by update-checkout.

@swift-ci please smoke test


Unable to deploy with latest

With cd550703cfbaeed148a67d2c7a15ed3674de1e04 (15-Feb-2021), I'm unable to deploy. It puts up an error dialog reporting circular references (though I can't find any) and the deployment progress dialog has a line reporting that the ImageStripper hierarchy does not define #developmentMethodCategoryNames.

Also unable to deploy with 7.2.8.

Please see the emboldened note at the top of the readme - I would not expect application deployment to work in master at present. Much of it is not covered by automated tests, so it is bound to be broken while the 7.2 development is in progress. It should work in release/7.1 (which is currently the default github branch). I did start fixing some basic problems with it in master last night while testing deployment of the MVP examples, having renamed them into namespaces, so will keep the issue open to associate with that.
BTW, the only reason that I am tagging 7.2 versions is so that there are downloadable VM binaries for the fetchvm script. Each of the tags corresponds to an incompatible VM change. None of them will ever be anything other than pre-release versions.

You should find that most issues blocking deployment are fixed by a8bfa279, although I expect there will be further issues in the deployed application.


restructured api and added docs

Codecov Report

Merging #6 (c785640) into main (2208124) will increase coverage by 7.3%.
The diff coverage is 8.4%.

Additional details and impacted files

Files
Coverage Δ

src/bin/test.rs
0.0% <0.0%> (ø)

src/bin/LiveFrameMode.rs
0.0% <0.0%> (ø)

src/bin/SingleFrameMode.rs
0.0% <0.0%> (ø)

src/lib.rs
10.1% <10.4%> (+10.1%)
:arrow_up:


CI VM's don't support EPOLLEXCLUSIVE

https://sponge.corp.google.com/target?id=2c4477e6-cbe3-4ce3-b223-16317391ae52&target=github/grpc/c_linux_asan_native&searchFor=&show=ALL&sortBy=STATUS
We need to be running kernel 4.5+ - I know we did some work here, so I expect some misconfiguration somewhere.
If it's useful, the following incantation can verify:
make check_epollexclusive -j
bins/opt/check_epollexclusive

If the kernel has EPOLLEXCLUSIVE, this program will silently succeed. If not, it will fail with:
E1005 08:26:46.442884281    1835 is_epollexclusive_available.c:82] epoll_ctl with EPOLLEXCLUSIVE | EPOLLONESHOT succeeded. This is evidence of no EPOLLEXCLUSIVE support. Not using epollex polling engine.

Setting to P0 since we urgently need to land EPOLLEXCLUSIVE to make progress on our performance targets.

I think the current situation is we support epollex on our performance workers that are using a custom VM image. @matt-kwong knows more.

Switching to using an Ubuntu 17.04 image with kernel 4.10. The following works:
make check_epollexclusive -j
bins/opt/check_epollexclusive

I'm setting up some stuff, and will test it before enabling it for pull requests. This should be done today, if not within a few hours.
Is there a PR I can trigger tests for to make sure epollexclusive works on Kokoro?

https://github.com/grpc/grpc/pull/12789
On Thu, Oct 5, 2017 at 12:00 PM Matt Kwong<EMAIL_ADDRESS>wrote:

Switching to using an Ubuntu 17.04 image with kernel 4.10. The following
works:
make check_epollexclusive -j
bins/opt/check_epollexclusive
I'm setting up some stuff, and will test it before enabling it for pull
requests. This should be done today, if not within a few hours.
Is there a PR I can trigger tests for to make sure epollexclusive works on
Kokoro?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/issues/12840#issuecomment-334560397, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJpudYwjv99S-2Mu-34ZxK_Zefw-9kqNks5spSc0gaJpZM4PvRXA
.

The sanitizers and C/C++ Linux tests should all run on an Ubuntu 17.04 image with kernel 4.10 now.
#12789 is failing because of an unrelated compilation issue.

Thanks Matt!


error parse -port.readonly

Enter the command
'SeaweedFS filer -port 9335 -port.readonly 9336'
but throws an error
'Invalid '.readonly' value for the -port flag: strconv. ParseInt: parsing '.readonly': invalid syntax'
seaweedfs version 'Version 30GB 3.65 0edc5aad9a489d0c99213a45e27654703fa5da70 windows amd64'
system Windows 11

Have you seen this?
https://stackoverflow.com/questions/66794981/how-to-disable-override-powershell-dot-notation
Probably filer -port 9335 '-port.readonly 9336' works

Have you seen this? https://stackoverflow.com/questions/66794981/how-to-disable-override-powershell-dot-notation Probably filer -port 9335 '-port.readonly 9336' works
Looks like a powershell bug PowerShell/PowerShell#6291

No, I haven't. Thank you for your help


Frontend UI/ux experiments

Add interaction panel and moving existing buttons to the panel: zoom in, reset, zoom out, download json, screenshot (yet to be implemented, taxonomy view, toggle to expand/fold all

merge conflict resolved


Is it possible to get market cap data?

Just wondering if this is built in or if there is some way to do this. What are the possible options for data.current? I know you can get OHLC and volume but is there anything else?

Hi @lucasgadams ,
Catalyst uses pricing data (OHLCV candles) for both backtest and live trading. In backtest, this data should be ingested before trying to run a strategy.
Catalyst is also integrated with the marketplace which allows users to contribute data, that other users of the system can then subscribe to and consume. Please refer to the list of the current available data sets on the marketplace, there are several which hold coinmarketcap information.
Lena