Cannot make OpenTelemetry work with GCP PubSub: how to seperate traces for different events in an EventEmitter listener?

I'm using OpenTelemetry to create traces for messages I get from a PubSub subscription. I found two ways to do this:

call tracer.startActiveSpan to wrap my actual message handler function,
start span using tracer.startSpan in my message handler.

Using the first approach, subsequent messages may get assigned as children of previously processed messages. I say may because it depends on the workload of a PubSub, I guess, but I reproduced the problem without using an actual PubSub:
fake-queue.js
'use strict'

import { tracer, enableConsoleSpanExporter } from './trace.js'
import { EventEmitter } from 'events'
import * as otel from '@opentelemetry/api'
import * as winston from 'winston'
import * as assert from 'assert'

async function sleep(amount) {
    await new Promise((resolve, reject) => {
        setTimeout(resolve, amount)
    })
}

function createLogger({ logLevel = 'info' } = {}) {
    return winston.createLogger({
        level: logLevel,
        exitOnError: false,
        format: winston.format.combine(winston.format.timestamp(), winston.format.json(), winston.format.colorize()),
        transports: [
            new winston.transports.Console()
        ]
    })
}

export class FakeQueue {
    constructor() {
        this.logger = createLogger({ logLevel: 'debug' })
        this.subscription = new EventEmitter()
    }

    async run(channel) {
        // First approach
        this.subscription.on('message', async(message) => {
             await tracer.startActiveSpan('consumeMessage', { kind: otel.SpanKind.CONSUMER }, async(span) => {
                 await this.consumeMessage(message, { span })
                 // Q1: can I do something so that the next function call don't use the same span context?
             })
         })

        // This is the second approach. comment the previous lines
        // this.subscription.on('message', this.consumeMessageInDetachedSpan.bind(this))

        channel.emit('subscribed')
    }

    async publishMessage(message, id, retryCount = 0) {
        this.subscription.emit('message', {
            ack: () => { },
            nack: () => {
                if (retryCount < 2) {
                    process.nextTick(() => this.publishMessage(message, id, retryCount + 1))
                }
            },
            id,
            retryCount,
            data: JSON.stringify(message)
        })
    }

    async consumeMessage(message, { span = tracer.startSpan() } = {}) {
        let payload
        const logger = this.logger
        span.setAttribute('messageId', message.id)
        try {
            payload = JSON.parse(message.data)
            logger.info('received message', { payload })
            span.setAttributes({ pageURL: payload.url })
            const { response } = await tracer.startActiveSpan('fakeDownload', async(childSpan) => this.fakeDownload(payload.url, { span: childSpan }))
            span.setAttribute('responseStatus', response.status)
            if (response.status < 400) {
                message.ack()
                span.setStatus({ code: otel.SpanStatusCode.OK })
            } else {
                message.nack()
                span.setStatus({ code: otel.SpanStatusCode.ERROR })
            }
        } catch (e) {
            span.recordException(e)
            span.setStatus({ code: otel.SpanStatusCode.ERROR })
        } finally {
            span.end()
        }
    }

    async consumeMessageInDetachedSpan(message) {
        let payload
        const logger = this.logger
        const span = tracer.startSpan('consumeMessage', { kind: otel.SpanKind.CONSUMER })
        const contextWithSpan = otel.trace.setSpan(otel.context.active(), span)
        span.setAttribute('messageId', message.id)
        try {
            payload = JSON.parse(message.data)
            logger.info('received message', { payload })
            span.setAttributes({ pageURL: payload.url })
            const { response } = await tracer.startActiveSpan('fakeDownload', undefined, contextWithSpan, async(childSpan) => await this.fakeDownload(payload.url, { span: childSpan }))
            span.setAttribute('responseStatus', response.status)
            if (response.status < 400) {
                message.ack()
                span.setStatus({ code: otel.SpanStatusCode.OK })
            } else {
                message.nack()
                span.setStatus({ code: otel.SpanStatusCode.ERROR })
            }
        } catch (e) {
            span.recordException(e)
            span.setStatus({ code: otel.SpanStatusCode.ERROR })
        } finally {
            span.end()
        }
    }

    async fakeDownload(urlStr, { span = tracer.startSpan() } = {}) {
        await sleep(Math.random() * 2000)
        try {
            const url = new URL(urlStr)
            assert.ok(['http', 'https'].indexOf(url.protocol.split(':')[0]) > -1)
            span.setStatus({ code: otel.SpanStatusCode.OK })
            return { response: { status: 200 } }
        } catch (e) {
            span.recordException(e)
            span.setStatus({ code: otel.SpanStatusCode.ERROR })
            return { response: { status: 500 } }
        } finally {
            span.end()
        }
    }
}

enableConsoleSpanExporter()
const processor = new FakeQueue()
const runChannel = new EventEmitter()
runChannel.on('subscribed', () => {
    processor.publishMessage({ url: 'http://google.com', id: 1 })
    processor.publishMessage({ url: 'httpXX://google.com', id: 3 })
})
await processor.run(runChannel)

trace.js
'use strict'

import { NodeTracerProvider, SimpleSpanProcessor, ConsoleSpanExporter} from '@opentelemetry/sdk-trace-node'
import { WinstonInstrumentation } from '@opentelemetry/instrumentation-winston'
import { registerInstrumentations } from '@opentelemetry/instrumentation'
import { Resource } from '@opentelemetry/resources'
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
import { diag, DiagConsoleLogger, DiagLogLevel } from '@opentelemetry/api'

const resource = new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: 'fake-queue' })
export const provider = new NodeTracerProvider({ resource })
export const tracer = provider.getTracer('root')

diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)
provider.register()

registerInstrumentations({
    instrumentations: [
        new WinstonInstrumentation()
    ]
})

export function enableConsoleSpanExporter() {
    const exporter = new ConsoleSpanExporter()
    provider.addSpanProcessor(new SimpleSpanProcessor(exporter))
}

The above code mimics the behavior of a node-js client for PubSub, at least for the nack() part. Notice that when I run the code, using consumeMessage as message handler, I see only two traces are created. The second trace, f5732dff30bc02790c75c793852abb73 in my logs, is repeated three times. I'm looking for a way to make open-telemetry create different spans for each message processing. Does open-telemetry happen to provide a function that I can use in the line I commented with Q1 label?
The other approach, using consumeMessageInDetachedSpan as message handler, creates four traces for me. That's what I expect. There are two problems though. It won't be able to extract context from a PubSub message, but that's not a big deal since the PubSub client doesn't actually propagate context yet, as far as I know. The other problem is instrumentation for external libraries doesn't work anymore. For example, using the second approach I see logs like this:
{"level":"info","message":"received message","payload":{"id":1,"url":"http://google.com"},"timestamp":"2023-07-14T00:11:55.921Z"}
While using the first approach, span and trace ID are injected into the logs:
{"level":"info","message":"received message","payload":{"id":1,"url":"http://google.com"},"span_id":"3a98357837d3bd61","timestamp":"2023-07-14T00:09:53.677Z","trace_flags":"01","trace_id":"dff9d9a5a08f06911b8328c9d82d3ec6"}
Since my code calls other HTTP endpoints, I need HTTP instrumentation which doesn't work in the second approach.
Logs for first approach:
fake-1.log
and second approach:
fake-2.log
Dependencies versions:
{
  "dependencies": {
    "@google-cloud/pubsub": "^3.1.1",
    "@opentelemetry/instrumentation-dns": "^0.31.5",
    "@opentelemetry/instrumentation-http": "^0.40.0",
    "@opentelemetry/instrumentation-net": "^0.31.4",
    "@opentelemetry/instrumentation-winston": "^0.31.4",
    "@opentelemetry/sdk-node": "^0.40.0",
    "winston": "^3.8.2"
  }
}

[x] This only affects the JavaScript OpenTelemetry library
[ ] This may affect other libraries, but I would like to get opinions here first

This is a context propagation topic.
For a real message queue the producer has to inject the span to be used as parent via OTel propagation API into the outgoing message.
The consumer extracts this parent span context and uses it as parent for the consumer span.
This explicit propagation inject/extract is not done above. Therefore the node.js built in context propagation via AsyncLocalStore context manager kicks in. because everything is in a single process the context propagation is completely different then between two separate node processes communicating via some Queue/TCP/...
In your sample the messages/message operations are not encapsulated in an AsyncResource therefore AsyncLocalStore can't track them instead it tracks the underlying code flow via promises, setTimeout,... which is completely different.
You could take a look into one of the instrumenations in https://github.com/open-telemetry/opentelemetry-js-contrib/ to get a better insight into these details.
regarding the difference between startSpan and startActiveSpan: actually startActiveSpan is just a small helper on top of startSpan, it starts a span, puts it into a context and runs a callback with this new context set as active (see here for details)

This is a context propagation topic. For a real message queue the producer has to inject the span to be used as parent via OTel propagation API into the outgoing message. The consumer extracts this parent span context and uses it as parent for the consumer span.
Let's say I don't care about producer side context; I just want each call of the event emitter handler get a separate trace, not nested from any previous message. (e.g. separate span context)
In your sample the messages/message operations are not encapsulated in an AsyncResource therefore AsyncLocalStore can't track them instead it tracks the underlying code flow via promises, setTimeout,... which is completely different.
Thanks for pointing that out. This the new code:

    async run(channel) {
        this.subscription.on('message', async(message) => {
            const asyncResource = new AsyncResource('consumeMessage', { triggerAsyncId: message.id * 1000 + Math.trunc(Math.random() * 1000) })
            await asyncResource.runInAsyncScope(tracer.startActiveSpan, tracer, { kind: otel.SpanKind.CONSUMER }, async(span) => {
                console.log('executionId', executionAsyncId(), 'triggerId', triggerAsyncId())
                await this.consumeMessage(message, { span })
            })
            asyncResource.emitDestroy()
        channel.emit('subscribed')
    }

(I also had a bug passing message IDs, so processor.publishMessage({ url: 'http://google.com' , id: 1 }) should get replaced with processor.publishMessage({ url: 'http://google.com' }, 1) in original post.
While each process gets a separate executionAsyncId and triggerAsyncId, I still get a single trace for all spans created for second message:
executionId 18 triggerId 1017
{"level":"info","message":"received message","payload":{"url":"http://google.com"},"span_id":"6de9af4545838659","timestamp":"2023-07-14T18:13:11.288Z","trace_flags":"01","trace_id":"75adc0bb524342c48381bf484a144337"}
executionId 38 triggerId 2817
{"level":"info","message":"received message","payload":{"url":"httpXX://google.com"},"span_id":"6f016ee3c8bf40ed","timestamp":"2023-07-14T18:13:11.290Z","trace_flags":"01","trace_id":"46a0a7c2ad56904675a6ef3cc141d433"}
executionId 73 triggerId 2473
{"level":"info","message":"received message","payload":{"url":"httpXX://google.com"},"span_id":"e235a5518988a225","timestamp":"2023-07-14T18:13:11.706Z","trace_flags":"01","trace_id":"46a0a7c2ad56904675a6ef3cc141d433"}
executionId 102 triggerId 2561
{"level":"info","message":"received message","payload":{"url":"httpXX://google.com"},"span_id":"8ed9f0bfa443794a","timestamp":"2023-07-14T18:13:12.450Z","trace_flags":"01","trace_id":"46a0a7c2ad56904675a6ef3cc141d433"}

You could take a look into one of the instrumenations in https://github.com/open-telemetry/opentelemetry-js-contrib/ to get a better insight into these details.
I couldn't find any code directly using async_hook in that repo...
regarding the difference between startSpan and startActiveSpan: actually startActiveSpan is just a small helper on top of startSpan, it starts a span, puts it into a context and runs a callback with this new context set as active (see here for details)
Yes, and I tried to mimic that in my second approach but external libraries won't get instrumented...

My questions:

do I need explicit span.end() in previous code? I couldn't find context.with code.
if I keep message.ack() or message.nack() inside consumeMessage, and I call span.end() before message.ack() or message.nack(), I still get the previous behavior that would instrument only one trace for EventEmitter listener calls for the same nacked message. Does Open-Telemetry have an API to say don't consider rest of code in this function as part of current span ?
This is not about OpenTelemetry, but I ask :) I'm not using AsyncResource in previous code but I get expected behavior. Can I assure everytime my EventEmitter listener gets called I'll get a fresh execution context ?

@reith Can I ask you to +1 the PR in the pubsub repo? https://github.com/googleapis/nodejs-pubsub/pull/1659

Let's say I don't care about producer side context; I just want each call of the event emitter handler get a separate trace, not nested from any previous message. (e.g. separate span context)

You can use the ROOT_CONTEXT exported by OTel API as parent context (either explicit by directly passing it to tracer.startSpan() or implicit by setting it as active via context.with()).

2. if I keep message.ack() or message.nack() inside consumeMessage, and I call span.end() before message.ack() or message.nack(), I still get the previous behavior that would instrument only one trace for EventEmitter listener calls for the same nacked message. Does Open-Telemetry have an API to say don't consider rest of code in this function as part of current span ?

I haven't followed all your code because I think the in process messaging system is a bit of topic here. As long as you are in one process AsyncLocalStore will track. This is a major difference to two processes where context propagation needs to happen by inject/extract which serializes the span context into the message/deserializes from message.
There is no dedicated API to don't consider rest of code in this function as part of current span - There is only context.with() which let you set a context for the provided callback. You could use context.with(ROOT_CONTEXT, cb) to explicit run some function with an empty active context. I guess if you place this at the right places in your single process message queue sample it would be possible to break the autopropagation happening via AsyncLocalStore.

3. This is not about OpenTelemetry, but I ask :) I'm not using AsyncResource in previous code but I get expected behavior. Can I assure everytime my EventEmitter listener gets called I'll get a fresh execution context ?

No, EventEmitter is a sync thing so the callback are run in the context of caller of emit. There is EventEmitterAsyncResource which is an EventEmitter using an AsyncResource internally.

I couldn't find any code directly using async_hook in that repo, can you please share any instance of code using them?

That's not used here, it should be used by e.g. database drivers,.. to encapsulated individual operations (e.g. a DB request) sent over a shared/reused resource (e.g. a network connection).
I found this place in node core. HTTP agent uses it to give each request a dedicated resource because the underlying socket (which is also an AsyncResource) may get reused but HTTP requests should be seperated.


feat(solc): improve error diagnostic

Motivation
Closes https://github.com/foundry-rs/foundry/issues/4594
checks if the file's version is valid
cc @aathan

Solution
add check that the requirement is satisfied by at least one known version

PR Checklist

[ ] Added Tests
[ ] Added Documentation
[ ] Updated the changelog
[ ] Breaking changes

clippy false positive


segfault when trying to access netifaces.ifaddresses

Observed a segfault when trying to ifaddresses when large number of interfaces are in the process of being created. This patch fixes the segfault.
Signed-off-by: Rajendra Dendukuri<EMAIL_ADDRESS>

Any plans to roll in this fix?


Ad Links

The following Links must be added:

Cake Dashbaord
Cake Ref-Link

menu entries are missing, rest is working fine


[Authenticator] Replace task with onAppear

While recently reviewing nearby code @philium suggested this should use onAppear as no asynchronous work is performed within.
This change can be tested on branch "ryan2" by opening the regular toolkit sample app, GeoView -> Authentication -> Multiple token secured resources

does that still work? The timing of the task vs onAppear is different. As long as it still works

does that still work? The timing of the task vs onAppear is different. As long as it still works

I tried the change on your ryan2 branch with the "Multiple token secured resources" button and it still worked as expected.


backup process for /home

resolution_fixed   |    by<EMAIL_ADDRESS>
A backup process is required for /home to ensure no loss of user files due to error by user or system.
Suggested mechanism is cron job that creates snapshot or rsyncs to /g/data1 or other volume, runs nightly incremental and full weekly or monthly (?) backup. From the backup volume a process then copies to mdss.
cheers
Robin

Issue migrated from trac:75 at 2024-01-31 17:59:34 +1100

<EMAIL_ADDRESS>changed component from accessdev server to NCI Puppet

<EMAIL_ADDRESS>changed reviews which not transferred by tractive

<EMAIL_ADDRESS>changed owner from `` to cma900

<EMAIL_ADDRESS>commented

I ran across http://www.amanda.org/ in my travels, it's a tool for having a central backup server, takes care of incremental backups etc. There's a puppet module too - http://puppetlabs.com/blog/module-of-the-week-pdxcat-amanda-advanced-network-backup
Is there a simple way to do incremental backups with rsync? (I'm not too familiar with that side of things). Chris, is the NCI module going to cover backups?

<EMAIL_ADDRESS>changed status from new to accepted

<EMAIL_ADDRESS>changed priority from blocker to major

<EMAIL_ADDRESS>commented

Not an issue until Cinder migration

<EMAIL_ADDRESS>commented

Yep, and there are other options such as Bacula etc.  However one downside is that they usually require an agent running on the clients which introduces additional complications.
rsync only transfers files (or parts thereof) that have actually changed so in that manner it is always an incremental backup, although the result is a full mirror of the source.  I tend to use "rdiff-backup" (based on rsync) where I want to able to refer to previous backups.
In any case, right now "/home" on "accessdev" is being backed up.  This issue will only arise when we move to using Cinder at which point we'll provide a solution for this.

<EMAIL_ADDRESS>removed milestone (was accessdev v1.0)

<EMAIL_ADDRESS>changed resolution from `` to fixed

<EMAIL_ADDRESS>commented

Milestone accessdev v1.0 deleted

<EMAIL_ADDRESS>changed status from accepted to closed

<EMAIL_ADDRESS>commented

NCI is backing up /home


Lock solidity version and update deployment scripts

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

#285  👈 (View in Graphite)
#284
#283
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Adding repo links for RMarkdown and Jupyter+R

This updates the documentation for binder examples to include repo links for the R examples.

Thank you :)


⚠ Spryr has degraded performance

In ae7e940, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 3357 ms

Resolved: Spryr performance has improved in 90dde8f after 10 minutes.


Keras version 2.1.2 bump

Due to the error introduced in https://github.com/fchollet/keras/pull/8056 , custom loss functions with mismatching shapes for y_true and y_pred resulted in an exception being thrown. This issue is fixed in https://github.com/fchollet/keras/pull/8514 . However this fix is not present in the latest Keras release, so I'm forced to use master or 2.0.9.
Eventhough it is in the README.md and a clear issue is open for this, I see roughly every day someone asking about this error on https://github.com/fizyr/keras-retinanet . My request is if there can be a bump in Keras version so that we can tell people to update to the latest Keras.

Yes, in fact 2.1.2 is planned for today. We'll typically release every 2 weeks going forward.

Good news, thanks!

Now released.

Thanks for the heads up! I'll update our readme.
On Dec 1, 2017 7:32 PM, "François Chollet"<EMAIL_ADDRESS>wrote:
Now released.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fchollet/keras/issues/8650#issuecomment-348572242, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AArtarlgZBWXxHW56yumeUDLJpMm_RUlks5s8EZMgaJpZM4Qx-Wn
.


Multiple ImageListViews on Same Form

I'm submitting a ...

[X] bug report
[ ] feature request
[ ] support request

What is the current behavior?
When there is more than one ImageListView on the same form displaying thumbnails does not work correctly (reloading thumbnails all the time (flickering) and displaying them in wrong size).

What is the expected behavior?
You can have multiple ImageListView on the same form without problems (like any other Windows Forms control, too).

If you are submitting a bug report, please provide the steps to reproduce
Just test with attached example project with two ImageListViews on one form:
ImageListViewTest.zip

Thanks in advance for your support!

It's unfortunate, but the ImageListViewItem is tied to its "owning" ImageListView. In your project, you take the selected ImageListViewItem from the first view and add them to the second view; you now have two views trying to cache / track / render the thumbnails, and thus the flickering / wrong size issues.
What you need to do is break the view connection for the items, before adding them to the second view. The following change to your imageListView1_SelectionChanged method did the trick for me:
                imageListView2.Items.Add(selectedItem.Clone() as ImageListViewItem);

As a result, the two views now have separate copies of the ImageListViewItem, and each view can now render/cache as desired.
Seems kinda clunky, I know, but the "view association" seems to be fundamental to the control architecture and rather difficult to redesign.

I can confirm this works very well as you suggested and your explanation makes absolute sense, too.
Thanks a lot, appreciating your really quick reply!
Best regards
Andreas


Challenge 4 dex

Changes

A handful of ReadMe wording updates and some additions/deletions. Feel free to discuss.
Slight wording change in DEX.sol comments since we are not including a solutions file with this challenge.

Other thoughts

It is unclear to me what this line is saying and what exactly to do.  Any ideas on how to clean this up?
💡 Hints: See this link, solve for the change in the Output Reserve. See the section in that link up to the uniswap v3 title.

Do we still need this line?  It is kind of a bummer that if they are seeing this, they likely did a copy/paste job in the challenge.
It is okay if it says your contract is already verified. Copy the addresses of BAL.sol and DEX.sol and search them on sepolia Etherscan to find the correct URL you need to submit this challenge.

A handful of ReadMe wording updates and some additions/deletions. Feel free to discuss.
Slight wording change in DEX.sol comments since we are not including a solutions file with this challenge.

Nice improvements on the explanations @ZakGriffith, much clearer. I like the Goals/Checks additions too.
You also catched that Challenge closing section was not there, I totally missed it!. Good job !! 🙌
Added a nitpicky review, can just ignore if you feel is not necesary.

It is unclear to me what this line is saying and what exactly to do. Any ideas on how to clean this up?
💡 Hints: See this link, solve for the change in the Output Reserve. See the section in that link up to the uniswap v3 title.

I don't understand that either. What I tend to think (but can be very wrong since I lack the context on this) is we can make use of that article to understand more about how the Output Reserve works.
If my assumption is correct, we could change it to:

💡 Hints: See this link, to dive more on how Uniswap V2 Output Reserve is calculated. See the first section in that link up to the uniswap v3 title.

Do we still need this line? It is kind of a bummer that if they are seeing this, they likely did a copy/paste job in the challenge.
It is okay if it says your contract is already verified. Copy the addresses of BAL.sol and DEX.sol and search them on sepolia Etherscan to find the correct URL you need to submit this challenge.

Didn't know about that feature, is Etherescan checking if there are other contracts 100% equal and displaying this message? I would probably delete it, yep!

I don't understand that either. What I tend to think (but can be very wrong since I lack the context on this) is we can make use of that article to understand more about how the Output Reserve works.
If my assumption is correct, we could change it to:

💡 Hints: See this link, to dive more on how Uniswap V2 Output Reserve is calculated. See the first section in that link up to the uniswap v3 title.

Totally agree that we need to use the article.
Does this "See the first section in that link up to the Uniswap v3 title" mean read this article from the top (The V2 recap) until you get to the first V3 section?  Just want to be super clear about where to lead them.  We need to get the wording right because there is a hell of a lot going on in that article.

Didn't know about that feature, is Etherescan checking if there are other contracts 100% equal and displaying this message? I would probably delete it, yep!

Yup, it sure does.  Happened 100% of the time in Challenge-0 where they do not have to edit the contract code to submit the challenge.  We do have this wording in challenge 0, so it should be safe to remove it here, will do.  Thank you!

Looks good to me!

💡 Hints: See this link, to dive more on how Uniswap V2 Output Reserve is calculated. See the first section in that link up to the uniswap v3 title.

Agree. We can probably change to the exact section title but I'm not sure. Something like See the first section in that link up to "Concentrated Liquidity of Uniswap V3 title" or See the first section "A Brief Revisit of Uniswap V2" in that link

Does this "See the first section in that link up to the Uniswap v3 title" mean read this article from the top (The V2 recap) until you get to the first V3 section?

I think, yes. We don't need other parts of the article for this challenge.

Agree. We can probably change to the exact section title but I'm not sure. Something like See the first section in that link up to "Concentrated Liquidity of Uniswap V3 title" or See the first section "A Brief Revisit of Uniswap V2" in that link

I like the 2nd one! See the first section "A Brief Revisit of Uniswap V2" in that link. It's concise.
We could also add at the end of it: , you can skip Uniswap V3 explanations for this challenge. But maybe it would be babysitting our speedrunners too much?

We could also add at the end of it: , you can skip Uniswap V3 explanations for this challenge. But maybe it would be babysitting our speedrunners too much?

Yes, I think it's redundant


Detect dragout

Is it possible to detect when an element that was being dragged is dragged out of valid area? For use to execute a function on this "dragout" example would be dragging a tab in chrome out of its container and it opening a new window.

Hi @buffet-time,
Yes, it's possible to detect when element is dropped out valid area (droptargets). You have 3 callbacks available (onDrop, onDragstart, onDragend), but for this you can use onDragend and you can check event.droptarget. If event.droptarget is null you can be sure that element is dropped outside valid area. I've updated demo with code below so you can check this out.
      onDragend(event) {
        // to detect if draggable element is dropped out
        if (!event.droptarget) {
          console.log('event is dropped out');
        }
      }


linux: mkDefault over the common config

Otherwise the default merging strategy favors enabling options, which
can be detrimental in the hardened case for instance.
Partially addresses https://github.com/NixOS/nixpkgs/pull/90065
Before this PR nix-build -A linux_hardened.configfile has INET_DIAG enabled (it shouldn't) while with this PR it is indeed disabled.
Ideally I would like to have tests for this, maybe with https://github.com/NixOS/nixpkgs/pull/69013
@wizeman interested in writing one ?

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Please target staging.

I rebased on staging sry for the notifications. This has the potential to break some custom kernel configs or change the behavior of the system (like IDIAG not being enabled anymore etc). So if you see this, adjust your kernel config to the new (better) behavior.

dont merge yet it breaks boot :(

The merging strategy should probably complain about conflicts, not favour enabling options, so that any conflicts have to be resolved explicitly (and IMHO the best way to do that would then be to sprinkle mkDefaults on the individual relevant settings in common-config.nix).

Ah sorry, just saw the PR mentioned at the beginning. So basically I agree with that approach :)

At the very least we can test for something like this:
      with subtest("Check CONFIG_INET_DIAG is disabled"):
          machine.succeed("zcat /proc/config.gz | grep CONFIG_INET_DIAG=n")
          machine.fail("${pkgs.iproute2}/bin/ss")

And we'll need latestKernel.hardened to pass.
Looks like virtio_scsi is missing, I think that's what you meant by "it breaks boot"?

@NeQuissimus I'd favour the approach in https://github.com/NixOS/nixpkgs/pull/90065, what do you think?

@lheckemann That approach is a bit more targeted. We can prefer that, sure.


[1pt] PR: 'Branch zero' that utilizes the full stream network

'Branch zero' is a new branch that runs the HUCs full stream network to make up for stream orders 1 & 2 being skipped by the GMS solution and is similar to the FR extent in FIM v3. This new branch is created during run_by_unit.sh and the processed DEM is used by the other GMS branches during run_by_branch.sh to improve efficiency.
Addresses #610
Additions

src/gms/delineate_hydros_and_produce_HAND.sh: Runs all of the modules associated with delineating stream lines and catchments and building the HAND relative elevation model. This file is called once during gms_run_unit to produce the branch zero files and is also run for every GMS branch in gms_run_branch.
config/deny_gms_branch_zero.lst: A list specifically for branch zero that helps with cleanup (removing unneeded files after processing).

Changes

src/

output_cleanup.py: Fixed bug for viz flag.
gms/

run_by_unit.sh: Added creation of "branch zero", DEM pre-processing, and now calls.
delineate_hydros_and_produce_HAND.sh to produce HAND outputs for the entire stream network.
run_by_branch.sh: Removed DEM processing steps (now done in run_by_unit.sh), moved stream network delineation and HAND generation to delineate_hydros_and_produce_HAND.sh.
generate_branch_list.py: Added argument and parameter to sure that the branch zero entry was added to the branch list.

config/

params_template.env: Added zero_branch_id variable.
deny_gms_unit_default.lst: small changes for files that need to remain for branch zero.

tools

run_test_case.py: Some styling / readability upgrades plus some enhanced outputs.  Also changed the verbose flag to gms_verbose being passed into Mosaic_inundation function.
synthesize_test_cases.py: arguments being passed into the alpha_test_args from being hardcoded from flags to verbose (effectively turning on verbose outputs when applicable. Note: Progress bar was not affected.
tools_shared_functions.py: Some styling / readability upgrades.

gms_run_unit.sh: Added export of extent variable.
gms_run_branch.sh: Fixed bug when using overwrite flag saying branch errors folder already exists.

Removals

tests/: Redundant
tools/shared_variables: Redundant

Testing
/foss_fim/gms_run_unit.sh -u "12090301 12040101 02020005" -n branch_zero_test -d /foss_fim/config/deny_gms_unit_default.lst -c /foss_fim/config/params_template.env -o -s -j 3 && /foss_fim/gms_run_branch.sh -u "12090301 12040101 02020005" -n branch_zero_test -d /foss_fim/config/deny_gms_branches_default.lst -c /foss_fim/config/params_template.env -o -s -j 7

Screenshots
Diagram showing the new workflow where both run_by_unit.sh and run_by_branch.sh produce HAND outputs

Where "branch zero" fits into the file structure

Branch zero catchments (similar to FR in FIM v3)

Branch zero catchments (in red) under GMS catchments (color varies by branch) for stream orders 3+

Notes

Todos

After doing a test set of 5 hucs that have nws data and testing it in two permutations:  One with all stream orders and the other with S03+ (filtering with stream orders 3 and higher), I am comfortable with fully approving this pull request.  These tests were doing including the latest crosswalk tests.


Code Request for Instance Matching

In section 4.2, the paper mentions:

if the clip length is less than the video length, instance matching in overlapping frames is used for associating them from different clips.

Code for instance matching is crucial for running VisTR on GPUs with smaller VRAM. Could you kindly provide the corresponding code for this part? :smiley:

Hi @zyayoung, please refer to https://github.com/Epiphqny/VisTR/blob/445c9e4e787a1fb3c959d7e7bb6ecf809bdac155/models/matcher.py#L49.


link type_description_interfaces__rosidl

type_description_interfaces__rosidl_typesupport_c and type_description_interfaces__rosidl_generator_c are not linked, which causes compile error occurs in the ROS2 Iron environment.
This pull request resolves the error by linking them.

Thank you!
I will push the updated version to crates.io later.


Add stream_id propertity when trigger "on_publish" and "on_unpublish" event

Let business application could store the stream id and use HTTP API to get  stream info directly.

Dup to https://github.com/ossrs/srs/issues/2837
This issues will be eliminated.


fix dispatch event name

Description

References

#0000

Codecov Report

Merging #1126 (4bd48f4) into main (62f7e69) will increase coverage by 9.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1126      +/-   ##
==========================================
+ Coverage   66.66%   75.82%   +9.15%
==========================================
  Files          18       30      +12
  Lines         276      484     +208
  Branches       25        0      -25
==========================================
+ Hits          184      367     +183
- Misses         82       97      +15
- Partials       10       20      +10

Impacted Files
Coverage Δ

...stration/JwtTokenSecurityRegistrationExtensions.cs
46.66% <0.00%> (-53.34%)
:arrow_down:

...gistration/HealthEndpointRegistrationExtensions.cs
36.84% <0.00%> (-42.11%)
:arrow_down:

...WebApi/RequireNonNullablePropertiesSchemaFilter.cs
80.00% <0.00%> (-8.00%)
:arrow_down:

apps/dh/api-dh/source/DataHub.WebApi/Startup.cs
93.90% <0.00%> (ø)

.../DataHub.WebApi.Tests/Integration/EndpointTests.cs
100.00% <0.00%> (ø)

...ce/DataHub.WebApi.Tests/Fixtures/WebApiTestBase.cs
100.00% <0.00%> (ø)

...ration/Controllers/MeteringPointControllerTests.cs
100.00% <0.00%> (ø)

...taHub.WebApi.Tests/Integration/HealthCheckTests.cs
100.00% <0.00%> (ø)

...rce/DataHub.WebApi.Tests/Fixtures/WebApiFixture.cs
92.30% <0.00%> (ø)

...sts/Integration/Controllers/ControllerTestsBase.cs
100.00% <0.00%> (ø)

... and 6 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Set object in Android

There is not support for setting objects in android?

According to the test script, storing and fetching objects on android is supported: https://github.com/apla/me.apla.cordova.app-preferences/blob/master/src/test.js


single page viewer's currentScaleValue = "page-width" creates too small canvas

I use PDFSinglePageViewer from pdfjs 2.4.456. It works well until I want the wrapper div to be filled entirely by the PDF page:
   eventBus.on("pagesinit", function () {
      pdfSinglePageViewer.currentScaleValue = "page-width";
    });

as suggested by the tutorial. In the case of a div which is 1000px wide this creates a canvas of dimensions (805px, 20900px) scaled up to the screen size of (960px, 24992px) with its own, inline style. Together with LCD optimizations, this creates colorful 2x2 pixel blocks, in practice too ugly to be usable.
Without changing the scale value, the canvas has instead the size (612, 15940) without any upscaling. So, "page-width" makes the canvas bigger in fact, but not big enough. It might be that is is an imprecision caused by the page proportions.

When opening an issue, please provide all of the information requested in https://github.com/mozilla/pdf.js/blob/master/.github/ISSUE_TEMPLATE.md; as-is this issue unfortunately contains no actionable information.
Also, please see https://github.com/mozilla/pdf.js/blob/master/.github/CONTRIBUTING.md (emphasis mine):

If you are developing a custom solution, first check the examples at https://github.com/mozilla/pdf.js#learning and search existing issues. If this does not help, please prepare a short well-documented example that demonstrates the problem and make it accessible online on your website, JS Bin, GitHub, etc. before opening a new issue or contacting us in the Matrix room -- keep in mind that just code snippets won't help us troubleshoot the problem.

I initially used singlepageviewer from https://github.com/mozilla/pdf.js/blob/master/examples/components. Then I modified it only in the sense of the placement of files and I suppose that it is still functionally identical and that the scaling problem was there from the beginning. I might be wrong, though. Do you have this example running anywhere on the network, so that I can replace the PDF url with another?

Alternately, I could provide you with the test PDF file.

The problems happens only with the "long page" PDF. Width other PDFs, including your example PDF, it works perfectly.
typical A4 PDF: no upscaling problems with or without page-width, canvas size is well adjusted and stable
the "long page" PDF:
without page-width: canvas size is unstable: it is too small from the beginning, then it changes somewhat when a link is clicked
with page-width: the canvas is upscaled, giving blocky artefacts
So I suggest that you take my PDF for tests, because it is only with it, when the canvas size becomes wrong/unstable.

It's really quite difficult to understand exactly what the problem is without any screen-shots, which is why the ISSUE_TEMPLATE.md ask for those to be provided (among other information).
If I were to guess: The problem is most likely related to CSS zooming, which is necessary in order to prevent browser errors with huge canvases, and this would thus be (for all intents and purposes) a duplicate of issue #6419.

Snuffleupagus, the screenshot looks simply like an upscaled bitmap. As of the limits, I guess that you are right and I added a comment to the other issue, with the test pdf included.


Group By All

Which issue does this PR close?

Closes #.
Closes https://github.com/apache/arrow-datafusion/pull/7619
Rationale for this change

There exists a GROUP BY usage with ALL keyword in some platforms (https://docs.snowflake.com/en/sql-reference/constructs/group-by#label-group-by-all-columns, https://duckdb.org/docs/sql/query_syntax/groupby.html).
It groups together all the columns in the SELECT statement that aren't enclosed within aggregate functions. This streamlines the syntax by keeping the list of columns in one place and helps avoid errors by ensuring that the level of detail in your SELECT matches the grouping in your GROUP BY clause.
sqlparser part supports it now with the 0.38.0 release.
What changes are included in this PR?

sqlparser is updated from 0.37.0 to 0.38.0.

select_to_plan() can handle ALL option of GroupByExpr, by grouping all select expressions except aggregate functions.

.slt tests added.

Are these changes tested?
Yes, with groupby.slt tests extended.

Are there any user-facing changes?

Users can make use of GROUP BY ALL syntax for large grouping sets.

I think this is a pretty small code change so I am just going to merge it in. Thanks again @berkaysynnada


fix: mysql test connection error (#128)

In the file pkg/queryengines/mysqlqueryengine/queryengine.go, an error occurred in MySQL TestConnection.
I don't know the exact reason, but it doesn't work while comparing the test variable with 1.
Since the role of the function in MySQL TestConnection is to test the connection, I changed the code to check for the presence or absence of a value rather than validating the exact value.

@dr-coton! Will be making a release very soon.


what happens in ember 2.0 with the login controller?

As I'm sure you've heard, the controllers  are going away in Ember 2.0, does that mean you'll be switching Ember Simple Auth to use a component instead? I'm trying to code future proof...

Yes, the login controller will probably be replaced by a login component then (which simply means renaming the LoginControllerMixin to LoginComponentMixin).
This isn't really an issue yet though...


Add contributing guidance and CLA

This adds contributing guidance and a contributor licence agreement (CLA). This allows external contributors to contribute code under our open-source licence.
It adds all contributors who have made non-merge commits to master as of this date.
Future and upcoming new contributors must add their names to the file as part of their first pull request.

Merging.


L_PREFER_CANVAS support

Hi,
when i set L_PREFER_CANVAS to true, the fillpattern doesn't work.
Do you have a workaround for that problem?
Best regards,
Matthias

This is pure SVG plugin, that has no canvas support. There is no workaround because this is how this plugin was designed.


Concept wrappers

As discussed during today's Tuura meeting, we need a way to compose two concepts by matching some of their interface signals. As a simple example, consider connecting two buffers together in sequence:
data S1 = A | B | C | ...
b1 :: CircuitConcept S1
b1 = buffer A B

data S2 = X | Y | ...
b2 :: CircuitConcept S2
b2 = buffer X Y

-- This won't compile due to type mismatch
composition = b1 <> b2

How do we tell that we want to connect b1's output B to b2's input X?
A good solution seems to rely on wrappers:

wrap :: (a -> b) -> CircuitConcept a -> CircuitConcept b
wrap = ...

map21 :: S2 -> S1
map21 X = B
map21 Y = C

composition :: CircuitConcept S1
composition = b1 <> wrap map21 b2

An alert reader will spot that wrap is just an fmap! Indeed, all we need to do is to write a Functor instance for CircuitConcept, and then we will be able to wrap simply by fmap map21 b2 or map21 <$> b2 using a fancy standard operator.
I'll give this a try.

As soon as I started on a test implementation I realised that we actually need isomorphism between the original type of signals and the wrapper interface. Indeed, if we only have a one-way mapping a -> b then we can map two two previously distinct signals into one, which would be a mess. Haskell spots this and doesn't allow me to implement a Functor instance :)
So, the right direction seems to be towards an Iso typeclass, and while we are at it, why not give a try to the revered Control.Lens library: https://hackage.haskell.org/package/lens.

I've added a draft implementation for wrappers in #27:
wrap :: (a -> b) -> (b -> a) -> CircuitConcept a -> CircuitConcept b
wrap to from c = Concept
                 {
                     initial   = wrapSpace $ initial c,
                     excited   = \e -> wrapSpace $ excited c (fmap from e),
                     invariant = wrapSpace $ invariant c
                 }
  where
    wrapSpace p = \s -> p (State $ getState s . to)

My previous comment about isomorphism was misguided: I mixed up isomorphisms with invariant functors. The wrap function actually implements the Invariant class from Data.Functor.Invariant.


Adding service account for pod's execution

Why are these changes needed?
Currently, both head (with the exception of autoscaling) and worker pods are running using the default server account. As explained here https://loft.sh/blog/kubernetes-service-account-what-it-is-and-how-to-use-it/, CI/CD access to the cluster, pods-to-pods communication, or pods to Kubernetes API authentication all typically require a service account. The service account is also quite important for security reasons.
In the case of autoscaling, this service account will have additional permissions, required for autoscaling
Related issue number
closes https://github.com/ray-project/kuberay/issues/1088
Checks

[ x] I've made sure the tests are passing.
Testing Strategy

[ x] Unit tests
[ ] Manual tests
[ ] This PR is not tested :(

@kevin85421 For some reason make manifests fails on my box. Can you try to run it in your environment? This is the reason we see failures

Hi @blublinsky, thank you for your PR! However, I'd like to mention that users have the ability to configure the Service Account for both head and worker Pods using the serviceAccountName field. For more details, you can refer to this gist. Note that you need to create a Service Account raycluster-autoscaler before creating the RayCluster CR.

@kevin85421 right, I know that. I think there is a couple of issues with the current implementation:

It's not really well documented
As you you write correctly, a service account has to be created before the cluster is created, which can cause errors.
Service account has to be specified in both the head node template and each of the worker nodes templates, which can also lead to errors.

It's not really well documented

I agree. How about creating an faq.md file to document the configuration steps?

As you you write correctly, a service account has to be created before the cluster is created, which can cause errors. Service account has to be specified in both the head node template and each of the worker nodes templates, which can also lead to errors.

It would be risky if KubeRay creates ServiceAccounts for users with names specified by the users themselves. Such a bug could be difficult for users to troubleshoot on their own. You can refer to #1128 as an example.
My suggestions are: (1) document it (2) improve the observability (e.g. add more log messages in KubeRay)

After discussion with @kevin85421 this is closed


loadRequest() doesn't support headers / body / post / update / delete

I need to change the method and add a body of  loadRequest.
How can I do this?

This package doesn't support these.
I have no plan to support.

Since there are  some news about web phishing by webview2 cookies,
so I try not to provide some functions if I think they can be used in some illegal purpose,
even though I know the webview_flutter provide them.
Hmm... so far I only see news about the cookies can be used to phishing,
however I think (guess) there may have the same issue with headers / httpMethod related functions?
That's why I said I have no plan to implement them.
Of course maybe there are some legal usage but I just don't know it.
Currently I think most of the cases can be done without these functions.
If anyone can tell me why these functions are so important and for which use cases,
then maybe I can consider to implement them (if possible).

I think headers are a common thing many of the sites are not publicly accessed in our case web-view URL is only accessed by people login the app using the token


Add CI action for publishing to PyPI

I usually publish when a new tag is created.
So we need two actions:

test: when push
publish to PyPI when tag

does it make sense to you?

Yes, that makes sense. But we probably need to keep version in pyproject.toml in sync with git tags.
Ideally I'd like to have an action for release that will do several things atomically to avoid human errors:

bump version in pyproject.toml (by running poetry version)
add a git tag with that version
publish to PyPI

I'll close this one for now. We have a basic pipeline at the moment to publish to PyPI we can think to improve it on a next step of the development but for now it does what we need.


build: upload release packages as job artifacts for PRs

Upload release packages as job artifacts for PRs. This allows
us to easily check out changes from a PR locally, without having
to manually check-out the branch, and building the release output.

Example. Artifacts have been uploaded for this PR here. Credits for this idea go to @gkalpak. This has been implemented in angular/angular too. We should add some docs for this too, if we decide to merge it.
I'm unsure about costs for CircleCI. Maybe @josephperrott knows more?

🚀
FYI, we have some docs about it here.
FWIW, here is the original discussion about cost (internal link)

Thanks @gkalpak. I've used the docs you wrote on framework (with adjustments for this repo). Also thanks for linking the discussion about the costs of using job artifacts.
I think in the future we can have the scripts and docs shared in the dev-infra package. Created DEV-62

@devversion can to file an issue for devinfra to share a single script for all repos for this?

@jelbourn Yeah, already did this. See: DEV-62


Documentation for Aggregate Queries

Initial commit with documentation for aggregate queries, fixes #29

Gonna get to this one in the evening. I want to try out the aggregate queries itself and see what my own learning pains were and what I think could be added to the README because of that.
First hand experience!

No rush!

@jamessimone There we go. I added some recipes on a new Aggregate SOQL Datatable tab in the LWC Utils app.
If you get a chance, feel free to play with it - otherwise can you do a sanity check for me and rebuild branch into a new scratch org to see if everything works?

@tsalb nice, really loving those changes!

@tsalb spun up a fresh scratch org and deployed with no issues. Took a look through, the new recipe flexipage for the Aggregate SOQL Datatable looks good and is a nice touch. LGTM!


CORE-5458 Catch Throwable instead of Exception

Catch Throwable instead of Exception when Flows are invoked.
Tests for Flow invocation for innocuous and throwing Flow.

Change seems fine.
General question, why do we need to run a real fiber to test this, rather than having a unit test for FlowFiberImpl?
Then looking forward, what other scenarios would we want to write tests like this?

This is a unit test already in the context of how I would use that term. Fibers are just an implementation of coroutines when it comes down to it. If the code was using Kotlin coroutines I doubt it would raise eyebrows that the test was coroutine aware, you probably wouldn't even consciously acknowledge it was doing that.
An alternative way of looking at it is that this class is inherently based around being a Fiber and that it makes no sense to try and test it by making it not behave like a Fiber, because that doesn't really test it at all. In fact the class doesn't work if you try and do that, its behaviour is encapsulated by the run method, which is executed by the Quasar framework, not from the api. You possibly could fudge it all and get it working eventually, but would that offer any benefits? All I had to do here is "turn Quasar on" and now it's working exactly like in the real world and I can test with a few lines of code.
On the last question, I think everything that is Fiber related, where the behaviour is "coroutine-like" sensitive can be tested like this and probably should.

What on Earth is going on here? This looks like an absolutely terrible idea on every level - not least you applying the quasar-utils plugin and catching Throwable.

We've always had to catch Throwable somewhere, that's saying we don't want any error to fully escape (turns out otherwise the fiber can hang forever and bring the flow worker down).
The intent here is to unit test our fiber code, which is going to require Quasar at some level (unless we do some pretty significant refactoring). It's fine to say there's a problem with doing that, but I'd like to understand what the problems are going to be.

The catch (Throwable: t) needs changing to exclude Error, but my plan is to convert the Quasar Java agent into an OSGi WeavingHook, at which point quasar-utils will become obsolete - and will be removed.

I take this point. It's not quite so simple though, NotImplementedError is an Error as well, so excluding it would not fix the underlying bug. A more fine grained approach to which Errors should not be propagated might be required. However as @JamesHR3 alludes to in another comment, we cannot stop user code throwing Errors or any other Throwable, and we cannot simply let the FlowWorker crash in those cases.

The catch (Throwable: t) needs changing to exclude Error, but my plan is to convert the Quasar Java agent into an OSGi WeavingHook, at which point quasar-utils will become obsolete - and will be removed.

I take this point. It's not quite so simple though, NotImplementedError is an Error as well, so excluding it would not fix the underlying bug. A more fine grained approach to which Errors should not be propagated might be required. However as @JamesHR3 alludes to in another comment, we cannot stop user code throwing Errors or any other Throwable, and we cannot simply let the FlowWorker crash in those cases.

That being said, things like out of memory errors can be thrown which make the worker unresponsive, but won't always terminate the application itself (I might be wrong with how OOMs exit java processes).

Indeed. There's no type in between OutOfMemoryError and Error, nor NotImplementedError and Error, so apart from their exact types there's nothing to distinguish them. We could have a whitelist of Errors to catch instead? I would then suggest that anything not on the whitelist would be a candidate for immediate termination of the process, if that's the requirement of those other kinds of errors.

That being said, things like out of memory errors can be thrown which make the worker unresponsive, but won't always terminate the application itself (I might be wrong with how OOMs exit java processes).

I am thinking "core dump" when things go really wrong. There's really nothing you can do when the JVM throws StackOverflowError or OutOfMemoryError. And if some CorDapps decide that throwing those is a Good Idea then that sounds like the Corda equivalent of shouting "FIRE!" in a crowded theatre.

That being said, things like out of memory errors can be thrown which make the worker unresponsive, but won't always terminate the application itself (I might be wrong with how OOMs exit java processes).

I am thinking "core dump" when things go really wrong. There's really nothing you can do when the JVM throws StackOverflowError or OutOfMemoryError. And if some CorDapps decide that throwing those is a Good Idea then that sounds like the Corda equivalent of shouting "FIRE!" in a crowded theatre.

Agreed. The issue is that Kotlin decided calling a function marked as TODO is just the same. Perhaps we just catch that specific Error. The problem the reporter had is that we use TODO internally, they weren't even a part of this process.

@chrisr3 security manager question. Is it it possible/feasible to prevent users from manually creating StackOverflowErrors or other errors we care about?

StackOverflowError, OutOfMemoryError, VirtualMachineError, InternalError all belong to the java.lang package, and I don't think we can realistically prevent people from importing that. I don't believe you require any specific Java permission to create instances of them either.

I don't know of any means of differentiating an Error thrown by user code from one thrown by the JVM other than _massively rewritng the byte-code. (I suspect the DJVM was close to supporting this, although we obviously don't want to get within "James Webb viewing distance" of anything like that!)

The catch (Throwable: t) needs changing to exclude Error, but my plan is to convert the Quasar Java agent into an OSGi WeavingHook, at which point quasar-utils will become obsolete - and will be removed.

I take this point. It's not quite so simple though, NotImplementedError is an Error as well, so excluding it would not fix the underlying bug. A more fine grained approach to which Errors should not be propagated might be required. However as @JamesHR3 alludes to in another comment, we cannot stop user code throwing Errors or any other Throwable, and we cannot simply let the FlowWorker crash in those cases.

That being said, things like out of memory errors can be thrown which make the worker unresponsive, but won't always terminate the application itself (I might be wrong with how OOMs exit java processes).

Having given this some more thought it occurs to me some "internal" errors like OOM can be generated indirectly by user code prodding some other api. That OOM error might not be generated on a different day by the same code if the same memory pressures are not present. So allowing these errors to kill all Flows is likely still unacceptable?

Having given this some more thought it occurs to me some "internal" errors like OOM can be generated indirectly by user code prodding some other api. That OOM error might not be generated on a different day by the same code if the same memory pressures are not present. So allowing these errors to kill all Flows is likely still unacceptable?

If the JVM throws OutOfMemoryException then as far as I'm concerned it is already dead, along with all of its flows.

Having given this some more thought it occurs to me some "internal" errors like OOM can be generated indirectly by user code prodding some other api. That OOM error might not be generated on a different day by the same code if the same memory pressures are not present. So allowing these errors to kill all Flows is likely still unacceptable?

If the JVM throws OutOfMemoryException then as far as I'm concerned it is already as good as dead, along with all of its flows.

Is that entirely true? What if I tried to allocate 20 Gb of memory? It's my CorDapp which is at fault there, the JVM is running happily and will continue to do so after throwing.
As it happens I think this might be a moot point anyway, as I see Quasar's ScheduledSingleThreadExecutor uses a FutureTask which catches all Throwables itself, so they are always suppressed further up the chain no matter what we rethrow. I'm still looking into that, but in that case if we want to terminate the process, we'd need to do that explicitly in our own code.


Test execution scaling

test pipeline currently takes 45 min to complete and the Azure limit is 1 hour.
Splitting the pipeline will provide the additional require time

We will try to answer all questions that do not require research within 24hr.
To prioritize cases that require research we use the following labels in order. For all other issues the posting time is respected.

❇ Exclusive-Services
❤ Bronze Sponsor
❤ Sponsor
❤ Backer
Installation
ShowStopper
Nuget
Contribution
BreakingChange
ReproSample
Deployment
must-have

This case is prioritized.

actually is 6hrs which are more than enough
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml&viewFallbackFrom=vsts#timeouts

Issue is deprioritized as no Assignee found and scheduled for auto-close if no activity in the next 60 days. Thanks a lot for your contribution.

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


Allow systable access in pure mode; reduce enforcements to pure-mode

Per a conversation with Stu.
Before this PR, "read-only" mode used to be necessary to read systables, and so was needed for keyset and guard enforcement. This mode also granted read-only access to user/module tables.
This change allows systable reads in "pure" mode. As a result we can reduce the access level necessary for enforcements. This is also key for user guard analysis -- user guards which can read from user tables turn out to be quite difficult to handle, and we don't currently know of any use cases which require this power.
This changeset will close #492 and #489.
edit: Also renamed "*NoDb" (aka pure) to "*SysOnly", now that this level does read from the db. And changed runPure to runSysOnly

Good call on the naming mismatch. I was going to include this in the PR originally and forgot to do that.

Decided to go with runSysOnly/PSysOnly/PureSysOnly as analogues to runReadOnly/PReadOnly/PureReadOnly. Seems most consistent/self-evident, and doesn't require renaming Pure* typeclasses.

Thanks @slpopejoy!


Crash when open file

The program stops unexpectedly when I open this file: https://drive.google.com/file/d/1spCi4PVfO_rhzXOJh1ZeYI91RAdH21u_/view?usp=sharing Please check it for me. Thanks.

https://github.com/nesrak1/UABEA/wiki/Sending-a-crashlog

Actually I think this is same game and issue as #96, #73, etc. This is a non-standard format that I don't know how to open.

Can you support more version "Unity3d_2019.4.f15"? Please help me.

You can support more version "Unity3d_2019.4.f15"? Please help me.

Since it looks encrypted or obfuscated in some way, there's no way I can figure this out without the game.

Ahh, it is mobile game and this is link of game: https://m.apkpure.com/vn/garena-lien-quan-mobile/com.garena.game.kgvn/download. When you're free, you can check it out. Thank you.


Bar chart : label disappearing along with browser window width...

Labels disappearing when window size changes.

Chart.js version: 2.5.0
Browser name and version: Chrome
Link to your project: http://fedex.flywheelsites.com/internal-communication-forms/internal-communcation-results/

Setting autoSkip to false for the xAxis works around this problem.
    ...
    options: {
        animate: false,
        scales: {
            xAxes: [{
                ticks: {
                    autoSkip: false
                }
            }]
        }
    }
   ...

See https://jsfiddle.net/t6hod65s/1/.

It seem to work, thanks a lot !
2017-03-14 0:11 GMT+01:00 potatopeelings<EMAIL_ADDRESS>
Setting autoSkip to false for the xAxis works around this problem.
...
options: {
    animate: false,
    scales: {
        xAxes: [{
            ticks: {
                autoSkip: false
            }
        }]
    }
}

...
See https://jsfiddle.net/t6hod65s/1/.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chartjs/Chart.js/issues/4013#issuecomment-286272401,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKA_r1bek7ib9C652F-wByb6nIoyoJ7vks5rlc0wgaJpZM4Mbjk9
.

--
Max UNGER
<IP_ADDRESS>.26
www.termel.fr


Add support for onSelectEvent and onDoubleClickEvent in Agenda view

Add support for onSelectEvent and onDoubleClickEvent in Agenda view

up

@jquense have any thoughts on this?

thanks for the work @silentsakky my concern here is that this only really makes sense with the default simple rendering. In most apps i've used RBC in i've use more complicated custom agenda components that contain their own buttons and clickable chrome. That would be really hard to handle with this addition because the event bubbling would fire for clicks inside the component.
This is already potentially a problem for the day view event clicks but i've not personally had that issue. In any case I think there should be a way to opt out of hte default behavior per view, so I may want the clicks for month or day views but not agenda. It's probably enough to pass the current view into the handler so a user can switch off of it

Up

Hey y'all I'm closing this for now per my comments above, if someone wants to take a stay at a more robust addition I'd be happy to take it but folks are unhelpfully pinging ppl on this issue at this point so let's close it out


Kafka UI version and commit hash not showing in web UI

Describe the bug
The commit hash and release version of Kafka UI is not shown anymore in the header of the web UI.
This was still the case in Kafka UI 0.4.0 and the text is missing in Kafka UI 0.5.0.
Set up
Docker image provectuslabs/kafka-ui:v0.5.0 deployed on Kubernetes (no Helm), using the configuration from Kafka UI 0.4.0.
Steps to Reproduce
Steps to reproduce the behavior:

Open Kafka UI 0.5.0.
Check the header (next to the Kafka UI logo) of the web UI.

Expected behavior
The commit hash and release version of the respective build of Kafka UI should be shown.
Screenshots

Hey, how do you provide the config into the app?

I'll check the configuration beginning of next when I'm back at work. 😄

@joschi an update, please? :-)

@Haarolean Thanks for the ping. 😅
We're running Kafka UI 0.5.0 in Kubernetes and provide the configuration as a YAML file (ConfigMap mounted into a "directory" of the pod/container) and set the specific path to this configuration file via the SPRING_CONFIG_LOCATION environment variable.
This was working with Kafka UI 0.4.0 which showed the commit hash and its version in the header.

@joschi that's exactly what I've been suspecting.
Using the SPRING_CONFIG_LOCATION overrides the default config we have inside a jar and, ultimately, removes these lines
.
Can you replace SPRING_CONFIG_LOCATION with spring.config.additional-location? It will append your stuff to the default config.

@Haarolean That worked, thanks a lot!

Instead of using the property spring.config.additional-location, I've opted to add the missing configuration settings to our own configuration file, so that we only have a single source of truth for it.
🔗 https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/features.html#features.external-config.files

Nice, glad it works :)


Update coursier to 2.0.10

Updates io.get-coursier:coursier from 2.0.9 to 2.0.10.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.get-coursier", artifactId = "coursier" } ]

labels: library-update, semver-patch

Superseded by #1165.


[FIX] CompositeBinding: correct update order of partial bindings

this was caused by hiding the CompositeBinding itself but exposing the
partial bindings to the model, therefore partial bindings were not managed by
their CompositeBinding only
with this fix the access to CompositeBinding parts is now restricted, they
are not accessed directly but only through calls on CompositeBinding
the CompositeBinding itself is added to the binding collection of a model if
any part of it is bound to the model. All actions on a partial binding
(e.g. update check, context change, ...)  are/should be    handled only by the
CompositeBinding they are part of.

Fixes https://github.com/SAP/openui5/issues/642

 You should sign our Contributor License Agreement in order to get your pull request merged.

Hi,
I have now asked the responsible Product Owner to take care of this contribution.
Thomas will remain involved, but we also need the time of others.
Regards
Andreas

pinged the product owner to get more feedback on the pull request

Hello @SeeSharpSoft ,
Thank you for your pull request. I've created an internal record<PHONE_NUMBER>. You can check its status on GitHub.
Regards,

I am very happy to see that you guys now have a look at this PR.
I just want to mention that these changes are supposed to introduce the idea, that the CompositeBinding handles it's inner bindings and nobody else (e.g. ManagedObject). To achieve this with minimal disruption but still making my point, I had to make some sacrifices, e.g. changing the method signature of CompositeBinding.setContext (see code).
To be honest, I didn't expect that this PR goes in like it is (besides the merge conflicts) - it should provide a different concept of CompositeBinding handling, that IMO is the right way to go (e.g. it will enable having CompositeBindings in CompositeBindings, makes the MangedObject implementation more transparent, ...). I hoped to start a discussion about it and, in case it is considered a better solution than it is right now, I'd like work together to decide and implement, which (non-disruptive) API changes are necessary to have a more clean solution. The goal basically would be to remove all "if-it-is-a-composite-binding-do-sth-else" in ManagedObject (and everywhere else), which is also not the case with the current PR.
I am looking forward to your feedback!

As @pksinsik already explained in https://github.com/SAP/openui5/issues/642#issuecomment-1144864210 we will not be able to change the existing behaviour. Thanks for your contribution and sorry that the discussion about this topic took so long.


Add lat_lon_land set

Add lat_lon_land set. Resolves #518.

@chengzhuzhang I was worried adding this set might involve complicated changes to e3sm_diags.py or e3sm_diags.bash but I think it really can be included just by adding lat_lon_land to the list of sets. (I would update default.ini to include it in the E3SM Diags default set list).
The model-vs-model  produces the lat_lon_land plots.
The model-vs-obs does not, however. I think it's just because the observation data isn't present though? I get errors like:
RuntimeError: Neither does QRUNOFF nor the variables in [('QRUNOFF',), ('mrro',)] exist in the file file:///lcrc/group/e3sm/ac.forsyth2/zppy_test_complete_run_output/issue_518/v2.LR.historical_0201/post/scripts/tmp.434052.DQkf/climo/v2.LR.historical_0201_JJA_185006_185108_climo.nc.

Note for self: lat_lon_land set should be an individual e3sm_diags run. Don’t squeeze into atmosphere set. It needs a different set of test data paths. Cleaner to have an individual run. (Having both atmosphere and land in the same viewer is possible though, but less straightforward).

Debugging updates
Results so far
Model-vs-model continues to work:

Full plot list: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201_20231220/e3sm_diags/atm_monthly_180x360_aave_mvm/model_vs_model_1852-1853/viewer/lat_lon_land/index.html
Example plot: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201_20231220/e3sm_diags/atm_monthly_180x360_aave_mvm/model_vs_model_1852-1853/viewer/lat_lon_land/model_vs_model/flds-global/ann.html

Model-vs-obs is partially working. The viewer at least generates now, but only the top plot gets created (and it does not look accurate):

Full plot list: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201_20231220/e3sm_diags/land_monthly_180x360_aave/model_vs_obs_1850-1851/viewer/lat_lon_land/index.html
Example plot: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201_20231220/e3sm_diags/land_monthly_180x360_aave/model_vs_obs_1850-1851/viewer/lat_lon_land/islscpii_grdc/flds-global-islscpii_grdc/ann.html

(I moved output as follows)
mv /lcrc/group/e3sm/public_html/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201 /lcrc/group/e3sm/public_html/diagnostic_output/ac.forsyth2/zppy_test_complete_run_www/issue_518/v2.LR.historical_0201_20231220
mv /lcrc/group/e3sm/ac.forsyth2/zppy_test_complete_run_output/issue_518/v2.LR.historical_0201 /lcrc/group/e3sm/ac.forsyth2/zppy_test_complete_run_output/issue_518/v2.LR.historical_0201_20231220

Debugging process/notes
(1) Needed to add ("lat_lon_land" in sets) to the lines that had ("lat_lon" in sets) in order to find the data directories.
I ran git grep -n "lat_lon" to determine where were branching based on the lat_lon set, since I imagined something similar would be needed for lat_lon_land.
(2) Added param.variables = ["FLDS", "FSDS"] since those seem to be the only two land variables actually available (since they show up on the model-vs-model lat_lon_land run).
I was running into the following:
RuntimeError: Neither does QRUNOFF nor the variables in [('QRUNOFF',), ('mrro',)] exist in the file file:///lcrc/group/e3sm/ac.forsyth2/zppy_test_complete_run_output/issue_518/v2.LR.historical_0201/post/scripts/tmp.446505.amD9/climo/v2.LR.historical_0201_ANN_185001_185112_climo.nc.

I ran git grep -n "QRUNOFF" * in the e3sm_diags repo. I saw it was used in e3sm_diags/driver/default_diags/lat_lon_land_model_vs_model.cfg and e3sm_diags/driver/default_diags/lat_lon_land_model_vs_obs.cfg
Looking at https://e3sm-project.github.io/e3sm_diags/_build/html/master/defining-parameters.html, it looked like I needed to override that variable list. (That said, I'm confused as to why model-vs-model generated FLDS and FSDS when its default cfg was simply QRUNOFF, just like the model-vs-obs one).

If I replace source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh with source /lcrc/soft/climate/e3sm-unified/load_e3sm_unified_1.9.1_chrysalis.sh in ts_land_monthly_1850-1851-0002.bash and then run sbatch ts_land_monthly_1850-1851-0002.bash, it does actually work. So, something happened in Unified 1.9.2.
@tomvothecoder @chengzhuzhang do you know what could cause the above error in e3sm_to_cmip? I'm not seeing an immediately obvious cause on https://github.com/E3SM-Project/e3sm_to_cmip/releases. (Note: I'm not saying there's necessarily a bug in e3sm_to_cmip. Rather, Unified 1.9.2. might have exposed an error in something I'm doing here).

As for the bad plots, I'm seeing a lot of lat_lon_driver.py(run_diag:154) >> Can not process reference data, analyse test data only in the output log. @chengzhuzhang Is there any reason E3SM Diags can't process the reference data? It would be useful to have more information in that error message.

I see a note to myself about properly setting test_data_path or perhaps rather reference_data_path. Maybe that's causing the lat_lon_driver.py(run_diag:154) >> Can not process reference data, analyse test data only error and thus the bad plots.

In the latest run, for [e3sm_diags] > [[ land_monthly_180x360_aave ]], I had the following set:
reference_data_path = "/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags/climatology"
test_data_path = ""

@chengzhuzhang Should I set these differently to avoid the bad plots above? (only test showing up and even then all in one color)

For testing purpose, for model vs model run, I think you could point test and ref paths to a same model data directory.

For testing purpose, for model vs model run, I think you could point test and ref paths to a same model data directory.

@chengzhuzhang Well we already know model-vs-model works. It's model-vs-obs that's failing. Are you saying just use the same data for both, but don't set run_type = "model_vs_model"?

Oh, i didn't realize that is for model vs obs, which have problems. I think the metrics looks right, but the contour levels range are too small. Somehow, e3sm_diags is using the contour levels set for a different variable:
https://github.com/E3SM-Project/e3sm_diags/blob/main/e3sm_diags/driver/default_diags/lat_lon_land_model_vs_obs.cfg
The QRUNOFF is the only model vs obs variable that is supported in lat lon land for now. We should file an issue in e3sm_diags.  And I think land group will mostly rely on ILAMB for model vs obs. Let's prioritize having model vs model working in zppy for now.

Let's prioritize having model vs model working in zppy for now.

In that case, that is in fact working. Should we mark this done then? I'll file an issue in E3SM Diags for model-vs-obs.

Let's prioritize having model vs model working in zppy for now.

In that case, that is in fact working. Should we mark this done then? I'll file an issue in E3SM Diags for model-vs-obs.

Sounds good. Could you provide the configuration file to set the model vs model run up? I will test during code review. Thank you!

@chengzhuzhang Thanks, I'll clean up this PR and run the full test suite, then tag you for final code review. (If you want an early start, you can run the tests/integration/generated/test_complete_run_chrysalis.cfg in this PR).

@forsyth2 sounds good, I will review once the PR is ready.

I have all tests passing except the complete_run test. I'm getting a few weird errors there.
Notably:
(1) Taylor diagrams are missing variables (Actual, Expected):

(2) FLDS has a wildly different plot (Actual, Expected):

It occurs to me I haven't run the "c. test final Unified" test-process from https://e3sm-project.github.io/zppy/_build/html/main/dev_guide/release_testing.html to test zppy in the actually released E3SM Unified 1.9.2. I'm going to run that and check if these issues show up there.

I'm going to run that and check if these issues show up there.

Strangely, the complete_run test passes using Unified 1.9.2, but the bundles test fails there: see #543. (Note I had diags_environment_commands set to use E3SM Diags 2.10.1).

I can't explain the contour range difference is https://github.com/E3SM-Project/zppy/pull/534#issuecomment-1915821887. But based on my comment here, I don't think the land data are correctly feed in e3sm_diags lat_lon_land set for model vs model.

I don't think the land data are correctly feed in e3sm_diags lat_lon_land set for model vs model.

I separated the lat_lon_land set into its own run:
  [[ land_monthly_180x360_aave_mvm ]]
  # Test model-vs-model using the same files as the reference
  climo_diurnal_frequency = "diurnal_8xdaily"
  climo_diurnal_subsection = "atm_monthly_diurnal_8xdaily_180x360_aave"
  climo_subsection = "atm_monthly_180x360_aave"
  diff_title = "Difference"
  partition = "compute"
  qos = "regular"
  ref_final_yr = 1851
  ref_name = "v2.LR.historical_0201"
  ref_start_yr = 1850
  ref_years = "1850-1851",
  reference_data_path = "/lcrc/group/e3sm/ac.forsyth2/zppy_test_complete_run_output/v2.LR.historical_0201/post/atm/180x360_aave/clim"
  run_type = "model_vs_model"
  sets = "lat_lon_land",
  short_ref_name = "v2.LR.historical_0201"
  swap_test_ref = False
  tag = "model_vs_model"
  ts_num_years_ref = 2
  ts_subsection = "atm_monthly_180x360_aave"
  walltime = "5:00:00"
  years = "1852-1853",

After looking at the generated viewers, I do suspect that the test errors (differences in FLDS plot and the Taylor Diagrams) were due to the test comparing the actual lat_lon_land output with the expected lat_lon output.
The lat_lon_land colormaps do seem off. The FLDS test/ref plots are all white and the FSDS test/ref plots are all red.
I'm going to try running with:
  climo_subsection = "land_monthly_180x360_aave"

It turns out I get the same results using  climo_subsection = "land_monthly_180x360_aave".

It turns out I get the same results using  climo_subsection = "land_monthly_180x360_aave".
@forsyth2 I think first is to make sure the regirdded land data is being read by e3sm_diags. If the land data is read in correctly. The ocean should be masked on plots.

Replaced by #548.


[Bug]  Excessive Session Creation During SSR with File Session Driver Causing Performance Degradation

We are encountering a significant performance issue with the nuxt-sanctum package where multiple sessions are being created during server-side rendering (SSR) in our Nuxt application. It appears that each server-side request generates a new session file in Laravel’s session storage directory (/storage/framework/sessions). This issue is particularly problematic when using the file session driver.
For instance, if a page makes three different API calls, three separate session files are created. This has led to an excessive accumulation of session files, with approximately 800,000 files currently in storage. This excessive number of files is severely impacting performance, particularly when Laravel’s garbage collection process runs, causing requests to become very slow.
This issue seems to occur only during SSR and does not affect client-side rendering. The performance degradation due to the large number of session files affects the overall application responsiveness.
Steps to Reproduce:

Set up and use the nuxt-sanctum package for handling authentication with Sanctum in a Nuxt application.
Perform server-side rendering of a page that makes multiple API calls to different endpoints, in my case i have a plugin that makes api call to globals end point, and the user enpoint from package. Also movel between pages that have another api calls.
Observe that each request generates a new session file in Laravel’s session storage directory.
Expected Behavior:

Sessions should be managed efficiently such that multiple requests during SSR do not lead to the creation of excessive session files. Sessions should remain active and not create new files unnecessarily.
Actual Behavior:
During SSR, each server-side request creates a new session file, resulting in a large number of session files in the storage directory. For example, if a page makes three API calls, three new session files are generated. This results in approximately 800,000 session files in storage, which significantly impacts performance, especially during garbage collection, causing requests to become very slow.
These are session files created in my localhost, but is the same in production
First, when we loads the page i make 3 api calls, to user, globals and help-center, and these 3 files are created
a:3:{s:6:"_token";s:40:"fqvDAB707m3gfKvpi0gJrwiVPWid3RPMOIaDwbd5";s:9:"_previous";a:1:{s:3:"url";s:36:"http://localhost:8000/v1/help-center";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}

a:3:{s:6:"_token";s:40:"AZ9GrUfDXH2Gmq3LpjqKBCNF2oE5vFiyVAIb1GEM";s:9:"_previous";a:1:{s:3:"url";s:32:"http://localhost:8000/v1/globals";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}

a:3:{s:6:"_token";s:40:"MuRqLSW8igB8ox0KMi2vfkxcgmi0cYuwEpvviWCO";s:9:"_previous";a:1:{s:3:"url";s:29:"http://localhost:8000/v1/user";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}

After i've visited other pages, like blog, etc and another files are created
a:5:{s:6:"_token";s:40:"crP434MJJEK4L3v5OaugTx3OLvmx7LYeRctbGKud";s:9:"_previous";a:1:{s:3:"url";s:49:"http://localhost:8000/v1/blogs?page=1&per_page=10";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}s:50:"login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d";i:1;s:17:"password_hash_web";s:60:"$2y$10$OLhYRD/0zOelHxokN8qimu2UJXaQxDQquRmO4y4fwIUi8uR/fkYCi";}

Hey @carlosvaldesweb, I remember I faced the same issue but the problem turned out to be on the backend side. Can you ensure that even during regular laravel calls via browser it keeps the session in the cookies and does not create a new one after each page refresh?

Thank you very much for your response @manchenkoff
When you mention "regular Laravel calls via browser," are you referring to visiting the API URL directly in the browser?
Just to clarify, the session files are being created from the frontend only when using SSR. This happens both on the first request and on subsequent ones, but only when SSR is involved. No session files are created during client-side rendering.
Thanks again for your help!

When you mention "regular Laravel calls via browser," are you referring to visiting the API URL directly in the browser?

Yes, for example, a health /up endpoint or any other route that uses sessions.

Just to clarify, the session files are being created from the frontend only when using SSR. This happens both on the first request and on subsequent ones, but only when SSR is involved. No session files are created during client-side rendering.

Laravel recreates the session only when the session cookie is missing from the client side, but since we pass all the cookies from the client side to Nuxt and then to the API, it should work the same way as in client mode. I will double-check that as well, but would be nice to exclude backend misconfiguration first.

Hey @carlosvaldesweb, I assume I found the root cause, SSR requests didn't use the same User-Agent as CSR requests so Laravel regenerates the session id during en/decryption process. I published the new 0.4.13 version with the fix, please try it out and let me know if the issue persists!


Alpha 4 Crashes with Deadlock

[x] I confirm that this is an issue rather than a question.

Bug report
After upgrading Alpha 3 to Alpha 4, Hyperion starts and then crashes due to a deadlock after a few seconds.
The startup animation plays, and then I get a few seconds of the led strips lighting up with the selected source, then Hyperion freezes.
I get this in the log:
Mar 29 04:16:56 raspberrypi systemd[1]: Started Hyperion ambient light systemd service  for user pi.
Mar 29 04:17:23 raspberrypi hyperiond[698]: QMetaMethod::invoke: Dead lock detected in BlockingQueuedConnection: Receiver is HyperionIManager(0xeeb238)

Steps to reproduce

Upgraded from Hyperion NG Alpha 3 to Alpha 4
Started Hyperion
CRASH!

What is expected?
Hyperion to stay running.
What is actually happening?
Hyperion is crashing with the above error log.
System

Managed to grab the system info in the few seconds before Hyperion crashes.
Hyperion Server:

Build:       (HEAD detached at 731b517b) (brindosch-80f7da4d/731b517b-1585347672)
Build time:  Mar 28 2020 12:26:41
Git Remote:  https://github.com/hyperion-project/hyperion.ng
Version:     2.0.0-alpha.4
UI Lang:     auto (BrowserLang: en-GB)
UI Access:   default
Avail Capt:  dispmanx,v4l2,framebuffer,qt

Hyperion Server OS:

Distribution: Raspbian GNU/Linux 10 (buster)
Arch:         arm
Kernel:       linux (4.19.97-v7+ (WS: 32))
Browser:      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36

A side note from #747 (which doesn‘t have to do that much with the actual problem 747 I guess):
connecting to JSON using the Hyperion remote app on android only works if the app is already running and configured to the correct IP adress and port when you are starting the daemon. If you try to establish this connection later, it will throw this error: QMetaMethod::invoke: Dead lock detected in BlockingQueuedConnection: Receiver is HyperionIManager(0x183e268)
The Hex error code appears to be random, it changes each time I replicate the error.

@brindosch Hast du ein Plan wann ein PR kommt?
Thx

I hope tomorrow.

I hope tomorrow.

Wow I think then should solve the problem with port 19444 and I can finally adjust the resolution of my digital grabber with the newer PR. I need the Port 19444 for HA Bridge also.
I'm very happy for a quick Solution. :-)

I have the same issues with this version too, I'm not able to connect from HA and am also see the deadlock error.  Looking forward to the fix as it's a great application :-)

One up

I hope tomorrow.

Sorry für die Aufdringlichkeit...
Gibts ein Zeitplan wann der Fix kommt?
Danke dir und Hut ab für deine (eure) Arbeit!

2 down, we all know that there is a bug...
everyone also all knows that the devs are coding in there free time
everyone also knows that there is eastern a the weather is good
so everyone should wait...
fix will come when everything is fixed and the devs choose to release a new version....there a few more things they want to add and merge in a new version....
please be patient everyone...!

should be fixed with alpha 5

Alpha 5 worked for me! Thanks, excellent work!


.Multiline Style Not Using Custom Style

The size of the font is always constant during typing and it's not using the Custom AnimatedTextInputStyle. This happens for .multiline style only...
http://imgur.com/a/9TD14

Also it would be great to add some access to content insets parameters in multiline mode.

@seecahkhing closing -> fixed here
@jowkame absolutely. Can you please open a new issue?

@victorBaro sure, added here


adding macOS support via Docker

This will allow you to run PiShrink on macOS with a Docker engine installed.  I think this will also work on Linux but I haven't tested it.

awesome addition thanks 👍

It works on Linux :+1:

it works, please merge it

@pablobuenaposada commits have been squashed as requested.

@miathedev on MacOS I get a bunch of errors when I invoke docker-compose without privileged: true in the docker-compose.yml.  I did remove privileged: true and re-add it and verify these go away.
WARNING: Image for service pishrink was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
losetup: /pishrink/universal.img: failed to set up loop device: Operation not permitted
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-f] [-g group]
	[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
	[-m reserved_blocks_percent] [-o [^]mount_options[,...]]
	[-r reserved_blocks_count] [-u user] [-C mount_count]
	[-L volume_label] [-M last_mounted_dir]
	[-O [^]feature[,...]] [-Q quota_options]
	[-E extended-option[,...]] [-T last_check_time] [-U UUID]
	[-I new_inode_size] [-z undo_file] device
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-f] [-g group]
	[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
	[-m reserved_blocks_percent] [-o [^]mount_options[,...]]
	[-r reserved_blocks_count] [-u user] [-C mount_count]
	[-L volume_label] [-M last_mounted_dir]
	[-O [^]feature[,...]] [-Q quota_options]
	[-E extended-option[,...]] [-T last_check_time] [-U UUID]
	[-I new_inode_size] [-z undo_file] device
mount: /tmp/tmp.92SPHlr0rf: can't find in /etc/fstab.
md5sum: /tmp/tmp.92SPHlr0rf/etc/rc.local: No such file or directory
/pishrink/pishrink.sh: line 63: [: !=: unary operator expected
umount: /tmp/tmp.92SPHlr0rf: must be superuser to unmount.
Usage: e2fsck [-panyrcdfktvDFV] [-b superblock] [-B blocksize]
		[-l|-L bad_blocks_file] [-C fd] [-j external_journal]
		[-E extended-options] [-z undo_file] device

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks and add them to the badblock list
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -j external_journal  Set location of the external journal
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list
 -z undo_file         Create an undo file
resize2fs 1.44.1 (24-Mar-2018)
Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [-b|-s|new_size] [-S RAID-stride] [-z undo_file]

it's a shame nothing gets merged 😢
@deepeeess thanks anyway

All good I still have hope @pablobuenaposada.  No merge conflicts yet 😜

All good I still have hope @pablobuenaposada. No merge conflicts yet 😜

probably a rebase would help?

I dunno, I'm not a git expert but I've kind of stopped using rebase because it messes with the history.  If rebasing would help get this merged I'm wiling to do it.

You can put your commit on top with git rebase -i for example, shouldn't be any problem.
The thing is that there are quite some commits after this one and would be nice to test it with everything up to date.

You don't need to rebase it. I just have not had time to get to this particular issue and test it. It's next on my list for the project though!

I think not rebasing is a silly move, you would test it with old code, would work, and you will merge it giving the chance that the new commits mess up the dockerization and having a broken master until someone tells you about 🤷♂

I would merge in master before I start testing, don't worry about that ;)

well, here you have the first conflict, then can we rebase now?

@pablobuenaposada I resolved the merge conflict.

Hey @deepeeess @miathedev @pablobuenaposada you can use PiShrink dockerized | Docker Hub PiShrink:
macOS Setup

Install Docker Desktop on Mac

Make a copy of a Raspberry Pi SD card that you want to shrink (see instructions here).

Using the Terminal, access the directory containing the Raspberry Pi image:

cd ~/Directory-with-RPi-image

Run PiShrink dockerized:

docker run --privileged=true --rm \
    --volume $(pwd):/workdir \
    mgomesborges/pishrink \
    pishrink -pZv IMAGE_NAME.img NEW-IMAGE_NAME.img

Didnt expect that this issue still exist after this time! @Drewsif what speaks against a merge?

I don't get it honestly, other people are starting to create their own repos with this project dockerized because this is getting postponed again and again.

ping @Drewsif! Is it possible to merge this?

Closing. Added docker in 1fe1137. Sorry for the delays

Woo!


Patches to support JSON

threex3dloader.zip
Patches for you to peruse.  Let me know if you want me to fork and issue a pull request.
John

See pull request.

I have created a new pull request based on changes from comments on other pull request.  Here is the new pull request.  https://github.com/jonaskello/three-x3d-loader/pull/7


[BUG] Window scaling with Windows messed up past 100%

Describe the issue
Cannot resize the window, i.e. the mouse doesn't turn into the resizing mode to resize the window.
(have to use the lower right corner to resize (intended))
I maximized and moved the window by right clicking the preview while hovering the icon on the taskbar.
Maximizing it covers the taskbar as well.
Update:
Scaling is messed up past 100% in Windows.
Steps to reproduce
Steps to reproduce the issue:

Open the .exe.

Screenshots

Desktop (please complete the following information):

OS: Win11
App Version: 3.4
Selected HUD: N/A

Resizing has already been added back
https://github.com/CriticalFlaw/TF2HUD.Editor/issues/250
Maybe increase your screen resolution

I've added all-side resizing in https://github.com/CriticalFlaw/TF2HUD.Editor/commit/6646fb2635f681066955ab6bf33ab87849904528 which should help address the issue.
Nothing much I can do about it when you scale up your resolution though. Here's how the app looks maximized on my monitor (3440x1440)

Try this release and see if it works better: https://github.com/CriticalFlaw/TF2HUD.Editor/releases/tag/3.4.1

Try this release and see if it works better: https://github.com/CriticalFlaw/TF2HUD.Editor/releases/tag/3.4.1
Resizing from any side works, the title bar snaps back into view if its outside of view, making it able to maximize without using workarounds.
Just that question on maximize being windowed full screen, covering the taskbar, other than that this is fine to be closed.


doc: Add a test for the longhorn manager starting and upgrade scalability issue

Longhorn/longhorn#3087

cc @longhorn/qa all QAs need to pay attention on this.


Kesla new SD page

Updated the car and moved it to a new page.

Author keeps delting the mods from SD


application/octet-stream on localhost

getting a "download" file when trying to visit localhost (index.html) in chrome 44.0.2403.157 m on windows 7.
console output:
[Tue, 25 Aug 2015 09:01:57 GMT] "GET /" "Mozilla/5.0 (Windows NT 6.1; WOW64) App
leWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
File Typ: application/octet-stream
Not sure if that issue caused by http-server or browser. Tested it in firefox  esr 38.0.1 with the same issue.

fixed this problem by reinstall chrome. Issue can be closed.

Getting this same exact problem. Using Chrome 44.0.2403.157 and Windows 7 as well.

Getting this same problem in Chrome and in Firefox. on Windows 7. Not in Internet Explorer, but instead nothing loads.

Can confirm this issue is still present in Chrome 55.0.2883.87 on Windows 7.

I have the same problem with last Chrome version 64

Can you all test in curl to verify the headers you're seeing?
$ curl -v http://localhost:8080/index.html

Thanks!

I'm closing this for now since there has been no further mention or +1's of this issue. Anyone who is still seeing this issue, please test with the latest version of http-server, and if it still shows up, please reopen this issue with the output of the curl command above!


Cascader: remove unnecessary DOM operation

Please make sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
[ ] Make sure you are merging your commits to dev branch.
[ ] Add some descriptions and refer relative issues for you PR.

修复文字重叠问题：https://codepen.io/ziyoung/pen/wOYbGe
相关 pr #14572

LGTM

稍后再补充一个测试。


add name to System

In conjunction with my iter_stages() from the other PR this was quite useful to investigate what the dispatcher was planning to do.

Thanks! :hearts:


⚠ AGEG website (prod) has degraded performance

In 1a97da7, AGEG website (prod) (https://www.ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 3932 ms

Resolved: AGEG website (prod) performance has improved in 3922e59.