Implement support for encoding Dolby Vision from RPU file

The changes allow to encode AV1 files with Dolby Vision metadata for playback on supported devices.
As there is no official specification, the minimum I've tested is that the metadata is recognized and used correctly on playback.
The metadata OBU placement is based on #3000 (the AV1 HDR10+ specification), and I've tested it to be working fine with 2 GOPs.
From CLI, the metadata is expected to be passed as a RPU binary file, which follows the same format as encoders like x265.
The metadata parsing/encoding is done through the dolby_vision crate.
The CLI opt can be either --dovi-rpu or --dolby-vision-rpu (used by x265)
From Rust, the metadata must be encoded into the final T.35 and provided for the frames that require it.
For muxing, it's possible to use the GPAC utilities but it currently requires patching for AV1: https://github.com/gpac/gpac/issues/2549

There are some issues with the current T35 code..

With --keyint 1, some frames are missing metadata because the input frame number is incorrect when fetching the metadata from t35_q.
With inter frames, the lookahead causes some frame invariants to be created twice for the same frame number, with the second time having t35_metadata overwritten since the metadata has been removed from t35_q on the first time.

I don't know if the changes I made are any correct but they seem to fix the issues for me.

There doesn't seem to be an easy way of fixing the T35 metadata without cloning from the queue, and removing later.
The alternative would be breaking the API and fixing the FrameInvariants by setting t35_metadata prior to actually encoding the packet instead of in build_frame_properties.


Create pipeline for producing IG docker images with production config

We will need to create a pipeline which builds prod docker images as part of the release process. Prod images should be built once we think the release is ready in order to test that the prod config is correct prior to doing the release.
Figure out the best process for this.
Alternatively, we could build dev and prod images per merge and deploy them to different envs. The dev cluster's dev namespace (and/or nightly) could run prod images and individual developer envs could remain as dev images.
This way we will get feedback if someone forgets to updated the prod config as the func tests will likely fail (or IG will fail to start).
Discuss with the team.
Originally posted by @dbadham-fr in https://github.com/SecureApiGateway/secure-api-gateway-ob-uk/issues/336#issuecomment-1458342984

Merge GitHub action builds a production image

Images tagged as latest are production grade
These continue to be deployed to dev namespace automatically

Release process produces production images
PR (open & commit) builds development images and production images

tags: pr-123 and pr-123-prod
pr-123 (development image) deployed automatically to the developer's namespace (no change to existing process)
The developer has the option of switching to the prod tag to test out prod config changes in their env prior to merge (manual process)


turnInstructionCatchingRange

turnInstructionCatchingRange.
The intention may be noble, but the result brings mostly more problems than benefits.
As the default value of 40, which is far too large, leads to mostly strange bad results.
A default value of 8 is sure more optimal, or even the complete removal of the rule.
The problem has already been demonstrated with confusingly bad results.
https://groups.google.com/g/osm-android-bikerouting/c/1zl5NSLR0y8
The next test with the file indicated in the link gave another strange result.
https://github.com/nrenner/brouter-web/issues/375#issuecomment-787744237
This is a test with the gpx file Freiburg - Titisee.
We are only going to use the initial part here.
Demo using the Android Kurviger (Cruiser) app.
Kurviger allows to freely choose tracks or routes for display or calculation.
(The BRouter web import unfortunately misses this simple choice)
The Kurviger app compactly shows the yellow dot locations with the turnpoints.
(In BRouter web you are working blind, you don't know where the turnpoints are).
The Kurviger app shows both the planner's waypoint list and the turnpoint list.
(In BRouter web you work blind, only after export (too late) you have a control)
The Kurviger import sequence can be followed in the gif file.

The previously chosen routing engine is by the offline BRouter app.
Routing profile (bicycle) with turninstructionsCatchingRange = 8.

So we first select and import the desired gpx trk_rte file.
We select (trk)track as visual template, and (rte)route to calculate.
We notice route points as Via Points > we convert them to Shaping Points.
The yellow dots are the Turn Points, the underlying white circles Shaping Points.
The critical Shaping Points positioned at road junctions are so better removed.
See the Turnpoints calculated by the Brouter engine with turninstructionCatchingRange = 8.
Then see what happens with a turninstructionCatchingRange = 40.
And finally a result through the Cruiser app and the online OSRM router.
(Kurviger motor (GH) profiles do not route into the Freiburg inner city)  ;-)
Notice the OSRM engine does not generate that continue instruction ;-)

Translated with www.DeepL.com/Translator (free version)

This repository is about the web frontend / user interface only. Please open this issue in the backend repository "abrensch/brouter" where the engine and app code and profiles are maintained.
Generally (see also brouter-web "About"):

server / backend, routing engine, Android app, profiles, brouter.de site:
https://github.com/abrensch/brouter/issues
web client / frontend:
https://github.com/nrenner/brouter-web/issues

You can also see this when searching:
https://github.com/abrensch/brouter/search?q=turnInstructionCatchingRange


[Runtime Bug] Issues with Spore

I've done various tests with Spore and have noticed a few interesting issues.
First thing of note: Spore's graphics are entirely shader-based. That being said, it does sorta work with remix. However, there are many issues with it.
The most stable part I've tested is the creature creator:

Once you get into creature stage though, the first main issue you will probably notice is that many objects are missing textures and seem to be entirely colored by their vertex colors. This is most noticeable on the terrain. All creatures also are mostly transparent with only certain features being shown based on the creature's paint job.

In previous playtests (months ago), I was able to get the terrain to sort of show up by setting the corrupted textures in the remix texture selector to "sky" textures. This made the terrain have texture again, but weirdly inverted its depth and made it semi-transparent.

Now, the most interesting issue in all of this is actually the terrain generation getting messed up, You can see in the first screenshot above (with the blue/purple terrain) that the terrain has a giant wall nearby. That is not supposed to happen in normal gameplay.
More importantly, the terrain completely changes each time you save and re-open the level. I also noticed today that this even occurs when you press alt+enter to toggle fullscreen. The terrain just drastically changes with compounding corruptions.
Here is an example of the map in a world before i saved+reloaded:

and after:

and after again:

My assumption here is that remix uses shaders in some way to track terrain data, and that breaks due to whatever shader interceptions remix is doing. You can even see in the remix dev textures menu there are many corrupted textures (which are what I set to sky textures in the above screenshot with the semi-working terrain). These textures mainly look like vertex explosions, but in 2d. These textures are not consistent btw, and do change each load (consistent with each time the terrain breaks).
I'm hoping that fixing the underlying cause of this might indirectly end up improving compatibility with other games, as it seems to me like remix is unintentionally doing something that directly interferes with how a game works (which it obviously shouldn't be able to do)
There are a variety of other issues that make Spore just not really viable for use with Remix, but nonetheless I wanted to report this in case it can help other games or potentially make Spore compatible with remix in the future.
Game setup

Copy the remix files to both the root spore directory as well as to /SporeBin
Use this rtx.conf for convenience where I've already selected many of the UI textures: rtx.conf.txt. If you don't use this, the most important thing to do is enable in-view transform.
Run the game in windows xp compatibility mode
In game, turn the graphics settings all the way down
To get into creature stage quickly, press ctrl+shift+c and enter the cheat levels -unlock. Then make a new game and select creature stage

Context

This is the steam version of the game
I'm using the latest CI remix builds (but these issues have been consistent for a long time)

If you have any questions or want me to try anything, do let me know.

Hello! Will you please test this with the latest release and let us know if the issue persists? Thank you!

@NV-LL Yes. All these issues still exist in the latest release of both the bridge and runtime.


Fix/python3.9

Python 3.9 introduced a change to the way scandir is used in the guts of the pathlib.Path class. This causes KeyErrors to be thrown because Pathy's scandir function only works as a generator, not a contextmanager.
This PR refactors the scandir functionality to work as a context manager and a generator.
The root cause seems to be: https://bugs.python.org/issue39916

:tada: This PR is included in version 0.3.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Dashboard doesn't show errors in routers in case of failure!!

Do you want to request a feature or report a bug?
Bug
What did you do?
I use Traefik dashboard to list failed Routers. Router should gives error when service is not found for example but it doesn't.
What did you expect to see?
Iist errors in routers.
What did you see instead?
Failed routers are not listed as error.
Output of traefik version: (What version of Traefik are you using?)
2.1.3

What is your environment & configuration (arguments, toml, provider, platform, ...)?
I use traefik with kubernetes

It was closed by mistake

Hello,
In the issue template, we ask for configuration, logs, etc., could you provide those information.
If a router cannot be created because of an invalid definition, it's not possible to get information in the UI because something that cannot be created cannot be associated to an error.

Hi,
Logs:
[traefik-756ddf7997-mg6rp] time="2020-02-04T13:34:30Z" level=error msg="kubernetes service not found: do/foo" providerName=kubernetescrd ingress=foo-www-https namespace=do
[traefik-756ddf7997-mg6rp] time="2020-02-04T13:34:30Z" level=error msg="kubernetes service not found: do/foo" providerName=kubernetescrd ingress=foo-www-https namespace=do
[traefik-756ddf7997-mg6rp] time="2020-02-04T13:34:32Z" level=error msg="kubernetes service not found: do/foo" providerName=kubernetescrd ingress=foo-www-https namespace=do
[traefik-756ddf7997-mg6rp] time="2020-02-04T13:34:32Z" level=error msg="kubernetes service not found: do/foo" ingress=foo-www-https providerName=kubernetescrd namespace=do
[traefik-756ddf7997-mg6rp] time="2020-02-04T13:34:32Z" level=error msg="kubernetes service not found: do/foo" namespace=do providerName=kubernetescrd ingress=foo-www-https

UI snapshot:

Scenario:
Let's say that we use the following ingressrouter to route any request "foo.com" to service "foo"
IngressRouter
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik
  name: foo
spec:
  entryPoints:
    - websecure
  routes:
  - kind: Rule
    match: Host(`foo.com`) && PathPrefix(`/`)
    priority: 0
    services:
    - name: foo
      port: 80

In traefik version 2.0.7, if the service "foo" was not found, the router will be listed as error. If it was there the router will be listed as success.
In traefik version 2.1.3 if the service is defined, router will be listed in success. If I stopped the service "foo" the router will be removed from success and will not be listed in errors.

I deployed traefik using helm, should I post the var file?

values.json
# Default values for Traefik
image:
  name: traefik
  tag: 2.1.3

#
# Configure the deployment
#
deployment:
  # Number of pods of the deployment
  replicas: 1

rollingUpdate:
  maxUnavailable: 1
  maxSurge: 1

#
# Configure Traefik entry points
# Additional arguments to be passed at Traefik's binary
## Use curly braces to pass values: `helm install --set="{--providers.kubernetesingress,--global.checknewversion=true}" ."
additionalArguments:
  - "--entryPoints.web.forwardedHeaders.insecure"
  - "--entryPoints.websecure.forwardedHeaders.insecure"
  - "--api.insecure=true"
  - "--accesslog=true"
  - "--tracing=true"
  - "--tracing.serviceName=traefik"
  - "--tracing.spanNameLimit=1500000"
  - "--tracing.datadog=true"
  - "--tracing.datadog.localAgentHostPort=<IP_ADDRESS>:8126"
  - "--metrics=true"
  - "--metrics.datadog=true"
  - "--metrics.datadog.address=<IP_ADDRESS>:8125"
  - "--metrics.datadog.addServicesLabels=true"
  - "--metrics.datadog.pushInterval=10s"

# Environment variables to be passed to Traefik's binary
env: {}
#  - name: SOME_VAR
#    value: some-var-value
#  - name: SOME_OTHER_VAR
#    value: some-other-var-value

#
ports:
  # The name of this one can't be changed as it is used for the readiness and
  # liveness probes, but you can adjust its config to your liking
  traefik:
    port: 9000
    # Defines whether the port is exposed if service.type is LoadBalancer or
    # NodePort.
    #
    # You SHOULD NOT expose the traefik port on production deployments.
    # If you want to access it from outside of your cluster,
    # use `kubectl proxy` or create a secure ingress
    expose: false
    # The exposed port for this service
    exposedPort: 9000
  web:
    port: 8000
    expose: true
    exposedPort: 80
    # Use nodeport if set. This is useful if you have configured Traefik in a
    # LoadBalancer
    # nodePort: 32080
  websecure:
    port: 8443
    expose: true
    exposedPort: 443
  # nodePort: 32443

# Options for the main traefik service, where the entrypoints traffic comes
# from.
service:
  type: LoadBalancer
  # Additional annotations (e.g. for cloud provider specific config)
  annotations: {}
  # Additional entries here will be added to the service spec. Cannot contains
  # type, selector or ports entries.
  spec: {}
    # externalTrafficPolicy: Cluster
    # loadBalancerIP: "<IP_ADDRESS>"
    # clusterIP: "<IP_ADDRESS>"

dashboard:
  # Enable the dashboard on Traefik
  enable: true

  # Expose the dashboard and api through an ingress route at /dashboard
  # and /api This is not secure and SHOULD NOT be enabled on production
  # deployments
  ingressRoute: true

logs:
  loglevel: DEBUG
#
resources:
   requests:
     cpu: "100m"
     memory: "50Mi"
   limits:
     cpu: "300m"
     memory: "150Mi"
affinity: {}
nodeSelector: {}
tolerations: []

Could you editing the issue description to add those elements.

I edited the issue description. If there is any missing information, please tell me.
Thanks

Hi @MohamedMSaeed,
The error displayed in dashboard with traefik v2.0 was due to a bug resulting in a (non-functional) router being generated, that has been fixed in the v2.1. The errors information is available in the log.
However, there is indeed a bug in the error log when a kubernetes service is not found, it will be fixed in a PR coming soon.

Closed by #6311.


Not able to play encrypted video file..

i am trying to play own encrypted video with specific key..and used same key in your code ..but still facing below error in response..
com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor) could read the stream.

That's a very generic error that just means something went wrong...  file type was wrong, decrypted incorrectly, etc.  Make sure you're using all the right pieces - AES/CTR/NoPadding, key is same on both sides, IV is same on both sides, not downloading via HLS, not doing any other en/decryption.  Etc.  Good luck.

Thanks , I am able to make it run now..Thanks again.


No gpu used

I run" CUDA_VISIBLE_DEVICES=0 python run_placesCNN_basic.py" on my server .
but I found the program runs on cpu.
How can I use GPU to do test?

There is a flag useGPU to turn the GPU usage on in the script.


Issue when cutting cells from grid with a checkbox defined to clipboard

After upgrading to Version 1.5.4, I have run into an issue when copying (I.E. select rows and ctrl-c) from an jexcel grid instance to the clipboard.  Looks like the jexcel library was updated to escape double quotes recently which appears to fail if the cell is a checkbox type.  This appears to have started to occur with the most recent update.  Can you confirm this is a coding issue?
My work around is as follows by testing if ‘val’ has a method 'match' defined:
Console shows the following error message:

Uncaught TypeError: val.match is not a function @ 2632

My work around...
Changed:

2632: if ((val.match(/,/g) || val.match(/\n/) || val.match(/"/))) {

to

2632: if ((val.match) && (val.match(/,/g) || val.match(/\n/) || val.match(/"/))) {

I have forked the library and applied a fix to accommodate errors we are receiving until we better understand what is happening.
https://github.com/SpecmoComptonJames/jexcel/commit/6f29a14c61c6ac7401f1139453ce63302121b0f7
Example Code:
 _initExcel: function () {
        let _self = this;
        return new Promise(function (resolve, reject) {

            $('#itemsToScrapGrid').jexcel({
                colHeaders: ['Material Number', 'Serial Number', 'Valid', 'Message'],
                colAlignments: ['left', 'left', 'center', 'left'],
                columns: [
                    {type: 'text'},
                    {type: 'text'},
                    {type: 'checkbox', readOnly: true},
                    {type: 'text', readOnly: true}],
                allowInsertColumn: false,
                allowDeleteColumn: false,
                selectionCopy: true,
                data: [['MAT', 'SERIAL', false, 'Is Not Valid'][,
                ignoreEvents: true,
                colWidths: [200, 200, 50, 450],
                onafterchange: function () {
                    inventoryBulkScrap._data.state.gridIsValid = false;
                },
                onload: function() {
                    _self.enableGrid();
                }
            });
            resolve();
        });
    },

Thanks for a great Library!

Thanks for spotting that. I have included that in the master repo and it will be released soon.


Collaborate

@celeryclub asked about using jest-playwright with qawolf, which I thought was a great idea!
There is some overlap and it would be great for us to be able to use jest-playwright under the hood. I am curious if you are planning to maintain this library and if you are you open to collaborators?

We would want to do things like separate out our video recording to a plugin so you could install jest-playwright-video and it will record your browsers in CI. This might require some changes to jest-playwright.

@jperl yeah! That's sounds great!

Let's maybe use some way of synchronous communication like Telegram or Slack?
Seems to be more efficient to collaborate over in my mind.
What do you think?

@mxschmitt lgtm! I think this is a good idea

@mmarkelov afaik most communities are switching over to Discord, so if you don't mind I would simply create a server there.

@mxschmitt we should wait @jperl  thoughts about it

I have been using Gitter for QA Wolf because embed it on our docs site which lowers the barrier for people to get help. That being said, it doesn’t really matter to me.

Probably something like the new discussion feature is something what we need: https://github.com/zeit/next.js/discussions
hmm. Maybe I can talk to somebody of GitHub that they can enable that for us too if you want.

I think a chat is probably better. Discord or Slack or Gitter, doesn't matter to me. My vote is Discord since you brought it up, and they have audio support as well.

I went ahead and created a discord (will make you both admins upon joining) -- just to get started. We can change if you prefer. https://discord.gg/duyWaa

Ok so I created and shutdown the server, since Max and I agree it would be better to just have a channel in the official Playwright slack. https://join.slack.com/t/playwright/shared_invite/enQtOTEyMTUxMzgxMjIwLThjMDUxZmIyNTRiMTJjNjIyMzdmZDA3MTQxZWUwZTFjZjQwNGYxZGM5MzRmNzZlMWI5ZWUyOTkzMjE5Njg1NDg

Closing this issue -- we can discuss more in slack 👍


Change library names for KinKal v2

I have the DQM repository in my working area and, because of updates in other packages there, I had to update the KinKal library names. I'm not sure if this needs to go in now but it's here just in case it's useful.

Thanks for doing this.  I actually build DQM every night, but because I also run it, it is in a different script which didn't alert me properly, the way the TrkAna build problem is alerted in mail.  I closed that loophole.


Detect Cloud SDK location when not installed into google-cloud-sdk

Currently, if the Cloud SDK is not installed into a 'google-cloud-sdk' directory, but is added to the PATH, it will not be discovered by PathResolver.

Closing because 'google-cloud-sdk' is a fairly standard location.

I'd like to re-open this as I had the same thought and think it would be a great idea.
I actually manage most non-package installations like GCSDK by installing them in a versioned directory like /usr/local/installs/google-cloud-sdk-110.0 and then symlinking appropriate bin/ file into /usr/local/bin.  Saves my sanity.
We could check for gcloud and gcloud.cmd on the PATH, and use Files.isSymbolicLink() and Files.readSymbolicLink() to handle these types of cases.  We'd need to move the CloudSdk.validate() logic, perhaps to a static method.  That would actually be useful for the Eclipse tooling to support validating user choices.

OK, sounds good.

@briandealwis can we close this bug?

The Eclipse resolver satisfies my needs, so let's close and re-open if required in the future.


Microsoft STL redistributable found in JDK is out of date

Please provide a brief summary of the bug
It was observed that an outdated version of msvcp140.dll located in the bin folder of installed JDKs. Microsoft published an update in June 2024 and an issue has arisen.
Specifically we have a c++ library being invoked from Java that uses a mutable const mutex that when compiled with the latest Microsoft toolset, crashes due to the mutex now being constructed inappropriately. The issue occurs when an attempt to lock the mutex takes place.
Is it possible to rebuild or repackage with the latest versions of the Microsoft redistributables.
Did you test with the latest update version?

[X] Yes

Please provide steps to reproduce where possible
No response
Expected Results
msvcp140.dll is present with a minimum file version of 14.40.33810.0
Actual Results
Current msvcp140.dll version is 14.36.32532.0
What Java Version are you using?
openjdk 21.0.2 2024-01-16 LTS OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS) OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
What is your operating system and platform?
Windows 11
How did you install Java?
msi
Did it work before?
No response
Did you test with other Java versions?
No response
Relevant log output
No response

Hi @AndrewHL76 - thanks for raising this. I think it's the first time I can recall such a failure reported with the C runtime in all my time with Adoptium/AdoptOpenJDK!
Can you confirm that if you swap in a later one into the JDK directory it works ok, making that a suitable workaround in the meantime?
The tricky thing from our side is that for reproducibility reasons (if you're not aware, Tenurin is 100% binary reproducible) we typically don't always update the compilers to bleeding edge (as building with different versions makes them non reproducible), preferring fixed levels in general, but I appreciate that we may wish to look at an update with this specific failure. Having said that we will not be able to do anything in time for the PSU update this week unfortunately.

I was bitten by this as well. And I put a newer msvcp140.dll into my temurin bin dir, and it works then. Would be awesome to have a fix for this soon-ish :-D
But the workaround works.

A swap with newer binaries does indeed work, however this approach is not friendly to our deployment strategy.
@DonOregano Assuming they are your libraries, as an alternative work around you can use the preprocessor definition _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR in your c++ projects that use the mutex class.
Ideally future distributions of JDK have the updated binaries

Oh, thank you! That gives me a way to understand what is really going on here!

A swap with newer binaries does indeed work, however this approach is not friendly to our deployment strategy.

Yep agree that's far from ideal so will take a look at it options going forward on this one the current release cycle is complete. Thanks to both of you for confirming that we at least have a workaround for anyone else affected by this.
I'll also note for others who may be reading this that it is not specific to the MSI - the .zip downloads of Temurin also contain the runtime dll.

I wanted to add my voice here since our situation is a bit different: We have this exact same problem except that the _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR workaround does not work for us (and we spent about a week of two developers' time trying to figure out why, but finally did).
The thing about std::mutex::mutex() being constexpr is that it makes it safe to use to guard the construction of static global objects. That means the mutex gets initialized early enough in DLL load that dynamic initializations can use the mutex also during DLL load. This is explained in the documentation for this constructor:

Because the default constructor is constexpr, static mutexes are initialized as part of static non-local initialization, before any dynamic non-local initialization begins. This makes it safe to lock a mutex in a constructor of any static object.

We use it for exactly this purpose. We were relieved to see _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR as a workaround and then immediately puzzled when it did not work—turns out it did, it just moved the problem. Now instead of our code being linked to an invalid memory address, our code is correctly linked but trying to lock an uninitialized mutex—because it's no longer constexpr and is getting initialized later in the DLL load.
We have been unable to find a palatable workaround for this. We cannot ask our users to remove vcruntime140.dll et. al. from (or replace it in) their JVM installations, because this would be "modifying" the JVM installation and many of our users are legally prohibited from "modifying" approved software. What we finally ended up doing—which horrified us—was adding #if !defined( _WIN32 ) || defined( DEBUG ) around that specific lock and gambling on not having any multi-threaded issues during DLL load on Windows Opt platforms. (None of our other mutexes are locked during DLL load, so _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR worked for those cases.)
This problem is not exclusive to Temurin. We've now tried JVMs from three different vendors and they all have the same problem. It would be really great if all the JVM vendors could prioritize pushing out a patch with newer VC runtime DLLs.


port check believes port is unreachable, but it isn't

If I request, e.g. https://ifconfig.co/port/3389, it seems to believe my ports (on a local IPv6 address) are unreachable, but I don't think it's actually tried in any way. If I use tcpdump -i inboundinterface -n tcp port 3389 to monitor traffic on the local router, I don't see any TCP SYN packets arriving from anywhere to test whether the port is open. I have my own copy of mpolden/echoip:latest running in docker on a DigitalOcean instance which exhibits the same behavior.
However, the port is definitely open. I can reach the port via nmap/netcat on the command line in the same DigitalOcean instance (and I do see the requests in tcpdump as I'd expect).
I looked at the code and it seems like LookupPort is doing the right thing, though maybe it should be using JoinHostPort instead of fmt.Sprintf to create the address string. But I don't think that's actually preventing it from working.
Any ideas where things are going wrong?

Aha, it's a docker config issue. The container didn't have an IPv6 address, so it wasn't able to attempt any port probing.
If I add this to /etc/docker/daemon.json (to assign an IPv6 ULA range to the docker0 interface):
{
  "ipv6": true,
  "fixed-cidr-v6": "fdc2:6fec:de8d:c458::/64"
}

and then update my firewall rules to allow the docker0->internet traffic (and NAT it), it is able to probe successfully.

Actually should probably leave this open so that the config on ifconfig.co can be updated to work with IPv6 port probing.

For https://ifconfig.co it's due to a limitation of the current hosting provider, but it should hopefully be resolved soon.


query_frontend - very high CPU usage

I am on Google cloud platform server (n1-highmem-2 - 2 vCPUs, 13 GB memory) . No apps running
query_frontend is using 200% of the CPU

Is this normal. Do you need any other logs?

Yeah this is a known issue. We have a few busy waits in the codebase that we're in the process of getting rid of. Clipper should get a little more efficient in the next few weeks.

#157 should help with this substantially

Thank you. I just tested with #157 and the CPU usage hasn't come down. This issue still persists

Yeah you're right. We removed some but not all the busy waits. #162 takes care of the rest, at least while Clipper is idle.

This issue still occurs after applied #162. I did a stress test to the query_frontend container and found that query_frontend is using very high CPU usage although the test is finished (some requests were failed) and no app is running.


[Discussion] ignoreWhitespace set to true rather than false?

I don't particularly see any benefit to not having this option set. Is there any reason this wasn't set already?

Hmmm... I was left it in so that rendering was as close to the original as possible. I think if we were to ignore it, we'd need to provide an option to run the output through an HTML tidy.

I think we should ignore white spaces as they create unnecessary overhead when filtering text nodes, traversing etc, and implement a tidy output option like you suggested.

Also, I'm not sure if this is consistent with jQuery/intended behavior but with this option on, text nodes are often returned by next() and prev() methods, rather than the next element.


[WIP] kie-issues#118: Upgrade React from v17 to v18 on kie-tools

Closes https://github.com/kiegroup/kie-issues/issues/118

@pefernan Closing this temporarily.


XIVY-11705 Add EditorPart

First simple version of the EditorPart.
I haven't really separated the component yet, nor have I created any unit or integration tests. I think since it is not 100% known how or what data I will get from the backend I should not invest too much time in testing and separating the current solution. what do you think?
I also tried to format the multiline-label-text using linebreaks similar to the current version but I'm not satisfied yet. The current texts are separated quite randomly at certain places with linebreaks, so the separation-expression for these texts could become extremely long and unattractive. maybe i could skip this part at the moment as well.

An integration test for a java class with one input field would also be cool. but you can add one in a later PR if you like


zim 0.62 (new formula)

New formula for Zim, the “graphical text editor used to maintain a collection of wiki pages”.

I added some mildly laughable symlink dancing to deal with the GNOME themes-must-share-common-prefix fun, but the end result is env scripting and removal of the caveats. This formula is slowly turning me against including it in brew :crying_cat_face:


Gallery update

Gallery is now side by side on the index page, on mobile link appears at top to go to gallery page instead

Now passing, ready to merge


"Fix failing checks" wiki page for new contributors

Resolves https://github.com/flutter/flutter/issues/154628

As a contributor, I would expect resources related to testing to be located in the /docs/contributing/testing directory. This PR adds a page to that directory geared toward helping new contributors.

I've noticed that in team-framework triage meetings, comments along the lines of "could you take a look at the failing checks?"
I believe we could save quite a bit of effort by changing this:

Understanding a LUCI build failure

to this:

Flutter wiki – How to fix failing checks

@christopherfujino let me know if you'd prefer adding this content to the existing wiki page, rather than making a new one.

@dkwingsmt thanks again for the advice & feedback! I updated the wiki page with "What to do:" sections as you suggested.
I also tried adding sections headers for customer_testing and Linux Analyze, but I felt that it negatively impacted the flow of the document (being similar to the above sections would imply that they should both have their own "what to do" paragraph, except they both are resolved the same way: reading through the test output).

In general this is looking awesome. I'll ask someone familiar with tech writing for the final review.

Thanks very much! Hopefully we'll be able to pick someone during framework triage :)

Hi Shams, this PR isn't urgent but I do believe you're the most qualified to evaluate this change :)
PTAL when you have a chance, thanks!


⚠ Jenkins Plugins Artifactory has degraded performance

In 8b6a7f6, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1311 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 8f9d26b after 37 minutes.


Uncaught TypeError: instance.resize is not a function

Minimal reproducible example:
library(shiny)
library(C3) # install via devtools::install_github("tixierae/shinyJsTutorials/tutorials/materials2/C3")

server = function(input,output) {
    my_df = reactive({
        input$button
        my_df = list(a=runif(1,0,100),b=runif(1,0,100),c=runif(1,0,100))
        list(my_df=my_df)
    })
    output$my_pie1 = renderC3Pie({
        C3Pie(value = my_df()$my_df)
    })
}
ui = shinyUI(
    navbarPage(id="main", position = "fixed-top", title=NULL, inverse=T, selected="tab1",
        tabPanel("tab1",
            fluidRow(br(),br(),br(),
                actionButton("button", "Draw!"),
                C3PieOutput("my_pie1")
            )
        ),
        tabPanel("tab2",
            fluidRow(br(),br(),br(),
            )
        )
    )
)
shinyApp(ui=ui, server=server)

Procedure to reproduce the error (happens at least on Chrome and Firefox):

go to 'tab2'
generously zoom in or out
go back to 'tab1'. The app is now frozen.

Inspect on Chrome shows:
Uncaught TypeError: instance.resize is not a function
    at Object.resize (htmlwidgets.js:822)
    at exports.OutputBinding.shinyBinding.resize (htmlwidgets.js:526)
    at output_binding_adapter.js:12
    at OutputBindingAdapter.onResize (utils.js:114)
    at HTMLDivElement.<anonymous> (init_shiny.js:305)
    at Function.each (jquery.min.js:2)
    at n.fn.init.each (jquery.min.js:2)
    at j (init_shiny.js:298)
    at Debouncer.$invoke (input_rate.js:56)
    at Debouncer.immediateCall (input_rate.js:44)

I'm working with the dev version of htmlwidgets (installed from GitHub).
In my fork of C3, I just modified the colors of the pie chart.
I'm not sure whether this has to do with the htmlwidgets package or C3.

htmlwidgets require a resize method which can be seen in  but unfortunately is not included at the end of the tutorial.  While the resize can be empty (do nothing), it still must exist.  To fix, add
...
      // update the data
      chart.load({
        // new data
        json  : x.dataset,

        // new colors
        colors: x.colors,

        // remove data we no longer need (if any)
        unload: diff,

        // set types
        types : x.types
      });
    },
    resize: function(width, height) {
      // this will vary based on the JavaScript library
      // in the case of C3 we are fortunate that there is a resize method
      //  http://c3js.org/samples/api_resize.html
      chart.resize({height:height, width:width})
    }
   };
}});

There is another example in this article.  Hope it helps.

That solved it! Thank you so much for the prompt and efficient help!


Final userguide revision

User guide: removed unused images and parameter keywords, fixed minor formatiing, final cleanup

@potatowagon Is this ready?

yes, sorry i forgot to add labels

@potatowagon The most important label is the ReadyForReview label

okay, i will rmb next time


Update README.md

Updates for the README, missed the PR review
https://github.com/open-cluster-management/search-chart/pull/94/files

Thanks @dockerymick !


ketcher.getMolfile() stopped working for macro canvas with peptides

Steps to Reproduce

Go to Macro - Snake mode
Load from file: snake-mode-peptides.zip

Open console and run: ketcher.getMolfile()

Actual behavior
System throws exception

localhost-1727965119555.log
Expected behavior
No exception.
snake-mode-peptides-expected.zip
Versions

Ketcher Version 2.25.0-rc.2 Build at 2024-10-03; 12:06:08
Indigo Toolkit Version 1.25.0-rc.1.0-g704673fcb-wasm32-wasm-clang-19.0.0
Chrome Version 129.0.6668.90 (Official Build) (64-bit)
Win10

Tested. Bug fixed.

Desktop:

OS: Windows 11
Browser Chrome
Version 128.0.6613.120 (Official Build) (64-bit)

Ketcher version
[Version 2.26.0-rc.2]
Indigo version
[Version 1.25.0-rc.2]


without using /tmp/master.tar.gz

I used /tmp/master.tar.gz, it may cause name conflictions.

Thank you very much.
Is it good to depend on a tool like wget that might not exist on BSD environment?

Hmm.. that's the point.
I'll fix it.


new python-language-server problem

duplicate of https://github.com/Akuli/porcupine/issues/180
porcupine.plugins.langserver.5337 ERROR: error while receiving lsp events
Traceback (most recent call last):
  File "/home/akuli/.local/lib/python3.7/site-packages/porcupine/plugins/langserver.py", line 376, in _run_stuff_once
    lsp_events = self._lsp_client.recv(received_bytes)
  File "/home/akuli/.local/lib/python3.7/site-packages/sansio_lsp_client/client.py", line 119, in recv
    messages = list(_parse_messages(self._recv_buf))
  File "/home/akuli/.local/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 189, in _parse_messages
    parsed = _parse_one_message(response_buf)
  File "/home/akuli/.local/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 123, in _parse_one_message
    assert set(headers.keys()) == {"content-type", "content-length"}
AssertionError

works: python-language-server==0.34.1
does not work: python-language-server==0.36.2

Can't reproduce anymore, maybe I used old sansio-lsp-client and it was fixed in #8

Can't reproduce anymore, maybe I used old sansio-lsp-client and it was fixed in #8


Update to MC 1.12.1

wow, nice!

Thank you. Sorry it has taken a while to merge.

I have uploaded a build to curse. I have credited the release to you using your github user name. If you would like me to change that then just let me know.

@Shadows-of-Fire could you have a look at #186, please? Did net/minecraft/world/biome/Biome.getBiomeName() become client-side only in 1.12?
Thx.

I already did, see #187

yeah, I just saw it. Sry, didn't notice that one because the order of project on my notification page keeps shifting around. Thx!


Emit Warning Events for Deprecated Features

Feature request
Emit events when a TaskRun( / Task) or PipelineRun( / Pipeline) utilizes a feature that we intend to deprecate.
Use case
As a person administering a Tekton cluster I would like to query that cluster to see if any of the Tekton resources my teams have created contain deprecated features. I would like to be able to do this either 1) by querying the cluster in-the-moment or 2) through ongoing monitoring / alerts.
As a developer on the Tekton Pipelines project I would like a uniform way to communicate deprecations to operators during day-to-day operation of a Tekton cluster. This would be in addition to out-of-band communications like posting to the google group, making announcements in WGs, etc.
As a developer of an alpha feature (behind the "alpha" feature gate) I want a way to alert operators when my alpha feature is being removed or changed in a backwards-incompatible way during its development.
Example usage:

I run the comand kubectl get events --field-selector involvedObject.kind=TaskRun,type=Warning,reason=Deprecation and get a summary of all the taskruns that have involved deprecated features recently.

I check my monitoring dashboard and search for the equivalent of "involvedObject.kind=PipelineRun,type=Warning,reason=Deprecation" and get the history of deprecation warnings emitted by my cluster from the last month.

Developer Experience
We could provide a function similar to EmitError in pkg/reconciler/events/event.go. E.g. EmitDeprecationWarning(runtime.Object, message string) that is called if a deprecated feature is detected in use. We'd likely want some way to limit the event emission to only the first (or last?) reconcile of a given taskrun/pipelinerun to avoid spamming deprecation warnings.

A couple immediate problems with this idea:

It won't help users who don't upgrade to later versions: if an operator pins to 0.21.0 but a deprecation warning is added in 0.25.0 then this user won't receive it.
Some operators may not want to expose deprecation warnings to their teams / users.  (Who?  And Why?)
Some deprecations aren't as easily detected programatically (for example removing HOME default isn't related to specific detectable feature of Tasks).

A different approach would be to emit the events on the Pipelines deployment itself rather than individual TaskRuns / PipelineRuns.

/remove-lifecycle stale
would be helpful with migration when features are deprecated


Add dispose to LiveModelAdapter.

API change check
API changes are not detected in this pull request.

@zwd-ms:  Your organization memberships are not public and your permissions are not correct.   Please review the Azure SDK onboarding documentation.

@jsquire I've made my memberships public. Scott Kurtzeborn also helped with adding permissions. Could you please clarify if there is still some specific permission I need?

You now have necessary write permission for the repository.
None of your organizations are public.  (how to from GitHub docs) This still needs to be corrected

@jsquire I believe my memberships were changed to public. I didn't find the doc saying my profile also has to be public, but I just changed it to public. Does it work now?

@jsquire I believe my memberships were changed to public. I didn't find the doc saying my profile also has to be public, but I just changed it to public. Does it work now?

Yes, it works now.  I'll mention to the onboarding team that it needs to be documented that accounts also need to be public.  Removing my block.

@jsquire I believe my memberships were changed to public. I didn't find the doc saying my profile also has to be public, but I just changed it to public. Does it work now?

Yes, it works now. I'll mention to the onboarding team that it needs to be documented that accounts also need to be public. Removing my block.

Thanks!

@jsquire would you help approve this PR?

@jsquire would you help approve this PR?

Since my team does not own the package, I'd like to see an approval from the registered code owner before I help get this merged.   If you and the folks who have reviewed are taking over ownership, would you please update CODEOWNERS as appropriate?   The two approvers will also need to fix up permissions and group memberships if they're being added as owners.

@jsquire would you help approve this PR?

Since my team does not own the package, I'd like to see an approval from the registered code owner before I help get this merged. If you and the folks who have reviewed are taking over ownership, would you please update CODEOWNERS as appropriate? The two approvers will also need to fix up permissions and group memberships if they're being added as owners.

@jsquire I have approved this PR and you can see I'm listed as the owner of this SDK https://github.com/Azure/azure-sdk-for-net/blob/f6a9c7597d269cc1c3384ef08deddf93e74a8c28/.github/CODEOWNERS#L819

@jsquire would you help approve this PR?

Since my team does not own the package, I'd like to see an approval from the registered code owner before I help get this merged. If you and the folks who have reviewed are taking over ownership, would you please update CODEOWNERS as appropriate? The two approvers will also need to fix up permissions and group memberships if they're being added as owners.

@jsquire I have approved this PR and you can see I'm listed as the owner of this SDK

Thanks for the clarification, @tyclintw.   I see the disconnect, we have two entries for Personalizer in the CODEOWNERS and in the one that I referenced, you were not listed:
https://github.com/Azure/azure-sdk-for-net/blob/f6a9c7597d269cc1c3384ef08deddf93e74a8c28/.github/CODEOWNERS#L233
I'll get this merged in and the duplicate cleaned up.   In the meantime, would you please make your Microsoft and Azure memberships public and request write access to the repository as referenced in the onboarding docs linked above?


Music registration does not progress to the end

A timeout may have occurred in your Laravel controller.
A timeout may have occurred on the Server.

The server (Apache) had a timeout of 5 minutes so it didn't register until the end.
It is necessary to shorten the processing time.


Fixing crash on unhandled connection error

The try .. catch didn't handle any connection errors which can make node-red crash under circumstances where the light is not reachable. Listening to the error event of the yeelight object fixes that.

Merged, uploaded.
@PTS93 Please confirm it's working

Can confirm that latest npm version is working


Error compiling for IMX7ULP

I get the following trying to compile for MACHINE=imx7ulp
Something about gbm not being found
ERROR: Logfile of failure stored in: /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/temp/log.do_configure.524334
Log data follows:
| DEBUG: Executing python function extend_recipe_sysroot
| NOTE: Direct dependencies are ['/opt/yocto/sources/meta-imx/meta-bsp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb:do_populate_sysroot', '/opt/yocto/sources/poky/meta/recipes-devtools/quilt/quilt-native_0.67.bb:do_populate_sysroot', 'virtual:native:/opt/yocto/sources/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot', 'virtual:native:/opt/yocto/sources/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', '/opt/yocto/sources/meta-clang/recipes-devtools/clang/clang-cross_git.bb:do_populate_sysroot', '/opt/yocto/sources/poky/meta/recipes-core/glibc/glibc_2.35.bb:do_populate_sysroot', '/opt/yocto/sources/meta-imx/meta-bsp/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch32.bb:do_populate_sysroot', '/opt/yocto/sources/meta-clang/recipes-devtools/clang/compiler-rt_git.bb:do_populate_sysroot', '/opt/yocto/sources/poky/meta/recipes-graphics/wayland/libinput_1.19.3.bb:do_populate_sysroot', '/opt/yocto/sources/meta-imx/meta-bsp/recipes-graphics/drm/libdrm_2.4.109.imx.bb:do_populate_sysroot', 'virtual:runtimerelease:/opt/yocto/sources/meta-flutter/recipes-graphics/flutter-engine/flutter-engine_git.bb:do_populate_sysroot', '/opt/yocto/sources/meta-clang/recipes-devtools/clang/libcxx_git.bb:do_populate_sysroot', 'virtual:native:/opt/yocto/sources/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb:do_populate_sysroot', '/opt/yocto/sources/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.4.0.bb:do_populate_sysroot', '/opt/yocto/sources/meta-imx/meta-bsp/recipes-multimedia/gstreamer/gstreamer1.0_1.20.0.imx.bb:do_populate_sysroot', 'virtual:native:/opt/yocto/sources/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot', '/opt/yocto/sources/poky/meta/recipes-devtools/cmake/cmake-native_3.22.3.bb:do_populate_sysroot']
| NOTE: Installed into sysroot: []
| NOTE: Skipping as already exists in sysroot: ['gstreamer1.0-plugins-base', 'quilt-native', 'pkgconfig-native', 'pseudo-native', 'clang-cross-arm', 'glibc', 'imx-gpu-viv', 'compiler-rt', 'libinput', 'libdrm', 'flutter-engine-runtimerelease', 'libcxx', 'ninja-native', 'libxkbcommon', 'gstreamer1.0', 'patch-native', 'cmake-native', 'util-linux', 'gcc-runtime', 'pango', 'orc', 'iso-codes', 'wayland', 'libpng', 'libogg', 'gobject-introspection', 'wayland-protocols', 'libvorbis', 'linux-imx-headers', 'imx-gpu-g2d', 'zlib', 'alsa-lib', 'libtheora', 'libtool-native', 'binutils-cross-arm', 'clang-native', 'linux-libc-headers', 'libgcc', 'libcheck', 'libevdev', 'mtdev', 'systemd', 'libpthread-stubs', 'libpciaccess', 'fontconfig', 're2c-native', 'libxml2', 'glib-2.0', 'attr-native', 'ncurses-native', 'curl-native', 'bzip2-native', 'zstd-native', 'xz-native', 'zlib-native', 'opkg-utils', 'bash-completion', 'ncurses', 'util-linux-libuuid', 'libpam', 'libcap-ng', 'libxcrypt', 'freetype', 'cairo', 'harfbuzz', 'fribidi', 'libffi', 'expat', 'autoconf-archive', 'python3', 'texinfo-dummy-native', 'flex-native', 'gnu-config-native', 'libxml2-native', 'binutils-native', 'python3-native', 'swig-native', 'libffi-native', 'libedit-native', 'base-passwd', 'zstd', 'shadow-sysroot', 'libseccomp', 'shadow-native', 'base-files', 'kmod', 'libcap', 'shadow', 'acl', 'util-macros', 'libpcre', 'gettext-minimal-native', 'openssl-native', 'cracklib', 'flex', 'pixman', 'icu', 'libnsl2', 'xz', 'gdbm', 'openssl', 'sqlite3', 'bzip2', 'libtirpc', 'readline', 'm4-native', 'elfutils-native', 'libtirpc-native', 'util-linux-libuuid-native', 'gdbm-native', 'libnsl2-native', 'readline-native', 'sqlite3-native', 'libpcre-native', 'attr', 'perl-native', 'cryptodev-linux', 'libarchive-native', 'libmicrohttpd-native', 'lzo-native', 'libgcrypt-native', 'gnutls-native', 'libcap-native', 'libgpg-error-native', 'libunistring-native', 'p11-kit-native', 'libidn2-native', 'gmp-native', 'nettle-native', 'libtasn1-native']
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_configure
| -- CMAKE_BUILD_TYPE not set, defaulting to Release.
| -- The C compiler identification is Clang 14.0.3
| -- The CXX compiler identification is Clang 14.0.3
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-clang - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-clang++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Generator .............. Ninja
| -- Build Type ............. Release
| -- Flutter Header ......... /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot/include/flutter_embedder.h
| -- Found PkgConfig: /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot-native/usr/bin/pkg-config (found version "0.29.2")
| -- Checking for module 'libdrm'
| --   Found libdrm, version 2.4.109
| -- Checking for module 'gbm'
| --   No package 'gbm' found
| -- Configuring incomplete, errors occurred!
| See also "/opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/build/CMakeFiles/CMakeOutput.log".
| CMake Error at /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot-native/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:603 (message):
|   A required package was not found
| Call Stack (most recent call first):
|   /opt/yocto/build/tmp/work/cortexa7t2hf-neon-mx7ulp-poky-linux-gnueabi/flutter-pi-runtimerelease/git-r0/recipe-sysroot-native/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:825 (_pkg_check_modules_internal)
|   CMakeLists.txt:103 (pkg_check_modules)

@ajlennon does that part have a GPU?

It does oddly enough - we designed a board with it I am trying to get going as it's one of the few of this series that have GPU acceleration so can run Android

Interesting.  What are the DISTRO_FEATURES for your build?
bitbake -e ${{ env.IMAGE }} | grep "^DISTRO_FEATURES"

DISTRO_FEATURES="acl alsa argp bluetooth debuginfod ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc  vfat seccomp largefile opengl ptest multiarch    systemd wayland pam systemd pulseaudio gobject-introspection-data ldconfig"

That looks right.  You need to determine what recipe provides gdm, and add that via a bbappend (e.g. flutter-pi-runtimerelease.bbappend)
ivi-homescreen builds?

ivi-homescreen builds?

Yes that builds. Having the devil of a job working out where gbm is supposed to be coming from. Maybe mesa

Yeah there's a couple other vendors that have similar scenario.  Some require additional libraries etc.  bbappend is your friend in these cases, also a good place to add the system/user service logic.

It's also possible flutter-pi needs adjustment.
@ardera What about targets that don't have gdm package?

Not sure about the iMX7, but on iMX6 you had to do some strange things to get a rendering surface from the graphics driver, it's completely different to the KMS/GBM way that flutter-pi normally uses. (Basically they have an fbdev driver with extra steps). On iMX8 KMS/GBM is supported. Could be iMX7 still only has the old interface, which would explain why there's no libgbm.
For example, qt has extra code just for supporting vivante GPUs as well: https://github.com/qt/qtbase/blob/1b96b645ec848ce911ecedbbb31d21b1b2c9d58b/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp
It's possible to add support for that in flutter-pi too, but I don't have a device for testing and never had a reason to add support for it, that's why it's not there

@ardera Makes sense, thanks!

@ajlennon So possibly not supported at this time.  What Hannes provided should be enough to create a patch.

I had a go at running the ivi homescreen with the gallery bundle on the i.MX8M Mini. Seems to seg-fault.

Hmm - it is building ivi-homescreen with -DBUILD_BACKEND_WAYLAND_VULKAN=OFF so I'm unsure why it seems to be looking for the vulkan shared libraries before it segfaults

@ajlennon remove vulkan from DISTRO_FEATURES in local.conf and it will build EGL backend.

There's no vulkan in DISTRO_FEATURES and I can see in the devshell it is building with -DBUILD_BACKEND_WAYLAND_VULKAN=OFF
DISTRO_FEATURES="acl alsa argp bluetooth debuginfod ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc  vfat seccomp largefile opengl ptest multiarch    systemdgbm wayland pam systemd pulseaudio gobject-introspection-data ldconfig"

hmm.  That's not right.  I'll have to take a closer look on Sunday.  There has been a bit of churn lately for AGL release.  Things should be stable again by next Friday.  There are lots of moving parts :)

Hmm this does't look like it should be in there

My mistake! I confused myself between my imx8mmevk and imx7ulp builds. Vulkan was in DISTRO_FEATURES for imx8mmevk as you thought and with that removed I can now run up ivi_homescreen! So will try and build this for the imx7ulp

I am closing this as flutter-pi issue.  Feel free to re-open as needed.

Having done some experimenting with homescreen I feel I'd really like to have a more basic image (based on core-image-minimal) and use flutter-pi. Seeing the comments above about the surface and libgbm I'm wondering if there might be a place I can pull libgbm from to try to get this going simply?

I would start by asking the NXP support forum about KMS/GBM support for your part in Yocto.  It might be in a side branch, it might not exist, or it might be supported by adding variable to local.conf.
While waiting for an answer perhaps dig around in the kernel pulled in by the specific yocto build.  I am suspecting Hannes's point about it possibly using prior Vivante support is most likely the case; but rule it out by digging into the kernel source.

okie ta. will have to leave it for a bit. got some integration work to do first and the imx7ulp support is more a fun project than a need for the client atm

@ajlennon Forgot to mention this, you can try using etnaviv instead of the proprietary (galcore) Vivante driver. That should work with flutter-pi. Could be you can choose that somewhere in the yocto setup. In buildroot at least you could just choose etnaviv in the options and it worked.
Etnaviv is not perfect though, it's the mesa driver with the least support (except for some WIP ones). Though the proprietary galcore driver is not perfect either, for example on iMX8 the whole system would crash (without a kernel panic or any kind of error message) if you tried to get the last vsync timestamp before the first frame was presented.


Review: Create Tests

@ketdougi Added changes from my review of #12 here instead, since I can't reopen the PR now that it's merged. Should be good to merge now imo if you're happy with the changes I've made here.

Looks like I'm going to have to rebase this quick


One question about mapx64.dll

Dear,
I want to use python to manipulate MAP++, including plotting graphs, getting platform displacements, anchor chain tensions, and so on, but I'm having a problem with mapsys.py, AttributeError: function 'map_offset_fairlead' not found, which is supposed to be my MAPx64. This should be a problem with my MAPx64. dll file, the file I used is the result of the release in jun 24, 2021 OpenFAST v3.0.0.

I will do a simple calculation with the example 3D.py, all the files I put in the file map.zip.
I would like to know how I can solve this problem, I hope to get your help, I will be grateful!
map.zip
Best regards,

Unfortunately, I believe your question relates to the python driver for MAP++, which we do not maintain.  The repository where the python driver is found is here: https://github.com/mmasciol/map-plus-plus.  It doesn't look like @mmasciol has touched this in some time, but you might try posting your question there.
Regards


New Rule: Impersonation Suspected supplier lookalike

/update-test-rules

This matches 2 known samples of supplier impersonation attempting to intercept or redirect payments.
It has not fired at all in the last day of testing. It's a relatively over tightened rule and because of that it should be fairly safe to deploy. I don't expect high volume but I do expect when it fires, it will be worth having.
I'm also working on other variation using this logic that are perhaps slightly looser. lmk what you want to do with this one.


Fix SF Pro Display spacing calculation according to iOS 11 HIG

Fix SF Pro Display spacing calculation according to iOS 11 human interface guidelines. Typography

Oddly enough official tracking table matches SF UI Text much better than SF UI Display. So SF UI Display's size to character spacing mapping is generated in a small iOS project.

Since the reason of this project is to make Sketch behave as if you were running on device, I chose to use computed values rather than HIG values for Display.
Though, they actually are a bit off in this version as well, this is fixed in v2 which I am hesitant to release for fear of it crashing Sketch down the road 😅


Fail to run api in docker

When I run everything in docker, the api container fail to build llama.cpp as cmake didn't exist.
Does it require the external gcc to be 11?
>docker-compose -f docker-compose-local.yaml up api
[+] Running 3/0
 ✔ Container llmchat-cache-1  Running                                                                                0.0s
 ✔ Container llmchat-db-1     Running                                                                                0.0s
 ✔ Container llmchat-api-1    Created                                                                                0.0s
Attaching to llmchat-api-1, llmchat-cache-1, llmchat-db-1
llmchat-api-1    | None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
llmchat-api-1    | [2023-09-19 07:50:40,323] SQLAlchemy:CRITICAL - Current DB connection of LocalConfig: db/traffic@traffic_admin
llmchat-api-1    | INFO:     Started server process [1]
llmchat-api-1    | INFO:     Waiting for application startup.
llmchat-api-1    | [2023-09-19 07:50:41,191] ApiLogger:CRITICAL - ⚙ Booting up...
llmchat-api-1    | [2023-09-19 07:50:41,191] ApiLogger:CRITICAL - MySQL DB connected!
llmchat-api-1    | [2023-09-19 07:50:41,195] ApiLogger:CRITICAL - Redis CACHE connected!
llmchat-api-1    | [2023-09-19 07:50:41,195] ApiLogger:CRITICAL - uvloop installed!
llmchat-api-1    | [2023-09-19 07:50:41,195] ApiLogger:CRITICAL - Llama CPP server monitoring started!
llmchat-api-1    | INFO:     Application startup complete.
llmchat-api-1    | INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
llmchat-api-1    | [2023-09-19 07:50:41,200] ApiLogger:ERROR - Llama CPP server is not available
llmchat-api-1    | [2023-09-19 07:50:41,200] ApiLogger:CRITICAL - Starting Llama CPP server
llmchat-api-1    | - Loaded .env file successfully.
llmchat-api-1    | - API_ENV: local
llmchat-api-1    | - DOCKER_MODE: True
llmchat-api-1    | - Parsing function for function calling: control_browser
llmchat-api-1    | - Parsing function for function calling: control_web_page
llmchat-api-1    | - Parsing function for function calling: web_search
llmchat-api-1    | - Parsing function for function calling: vectorstore_search
llmchat-api-1    | Using openai embeddings
llmchat-api-1    | 🦙 llama.cpp DLL not found, building it...
llmchat-api-1    | 🦙 Trying to build llama.cpp DLL: /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-cublas.sh
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-cublas.sh: line 2: cd: /app/repositories/llama_cpp/vendor/llama.cpp: No such file or directory
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-cublas.sh: line 6: cmake: command not found
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-cublas.sh: line 7: cmake: command not found
llmchat-api-1    | cp: cannot stat '/app/repositories/llama_cpp/vendor/llama.cpp/build/bin/Release/libllama.so': No such file or directory
llmchat-api-1    | 🦙 Could not build llama.cpp DLL!
llmchat-api-1    | 🦙 Trying to build llama.cpp DLL: /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-default.sh
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-default.sh: line 2: cd: /app/repositories/llama_cpp/vendor/llama.cpp: No such file or directory
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-default.sh: line 6: cmake: command not found
llmchat-api-1    | /app/repositories/llama_cpp/llama_cpp/build-llama-cpp-default.sh: line 7: cmake: command not found
llmchat-api-1    | cp: cannot stat '/app/repositories/llama_cpp/vendor/llama.cpp/build/bin/Release/libllama.so': No such file or directory
llmchat-api-1    | 🦙 Could not build llama.cpp DLL!
llmchat-api-1    | [2023-09-19 07:50:41,256] ApiLogger:WARNING - 🦙 Could not import llama-cpp-python repository: 🦙 Could not build llama.cpp DLL!
llmchat-api-1    | ...trying to import installed llama-cpp package...
llmchat-api-1    | INFO:     <IP_ADDRESS>:42488 - "GET / HTTP/1.1" 304 Not Modified
llmchat-api-1    | INFO:     <IP_ADDRESS>:42488 - "GET /main.dart.js HTTP/1.1" 200 OK
llmchat-api-1    | INFO:     <IP_ADDRESS>:49942 - "GET / HTTP/1.1" 304 Not Modified
llmchat-api-1    | INFO:     <IP_ADDRESS>:49942 - "GET /main.dart.js HTTP/1.1" 304 Not Modified

By the way, the side effect is that UI didn't show login form.

It works after waiting for a while.

I meet the issue again.
I can see the login form when I access it through hostname like: http://eng-test-sp15:8000/chat/.
But when I access it through IP (http://<IP_ADDRESS>:8000/chat/), it failed to show login form, sometime just blank page. I check the network panel of browser debugger, it sounds two style/icon files can't be downloaded.

https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
https://fonts.gstatic.com/s/notosanskr/v27/PbykFmXiEBPT4ITbgNA5Cgm20HTs4JMMuA.otf


Performance warning: Detect over-synchronization

Suggested by @TobiasHector and could be implemented in a layer similar to one suggested in #1155.
Implement, probably in a performance tuning layer, checks for cases where applications are choosing synchronization mechanisms that are too heavyweight for the task and/or cause waits for too long of a time.  The intent is to help developers remove unneeded serialization in their applications.

Note that #1401 covers one of the simplest cases - but certainly there are other more complex cases. Ideally the layer could try to figure out the minimum set of synchronization required and recommend that, I think such a thing would be hugely powerful. This probably will need splitting into a heck of a lot of sub tasks, at least for the different synchronization primitives.
Couple of things that we've agreed in the past which could help guide this:

Synchronization within render passes using subpass dependencies is the most optimal type of synchronization.
Pipeline Barriers are most efficient when there's no work that can be done between two tasks that need synchronizing.
Set/WaitEvents are most efficient when there IS work that can be done between two tasks that need synchronizing.
Semaphores are big hammers, developers sticking semaphores arbitrarily between command buffers that they've submitted is bad, ideally the layer should detect this type of over-synchronization and recommend one of the finer grained sync primitives for a single queue, if practical.

This issue is now tracked via issue #1612.


Better way to handle "This can cause a mismatch with Serverpod's CLI version" error?

Describe the bug
The following error started showing up:
Error on line 23, column 34 of pubspec.yaml: The package is defined with a version range (for example "^1.1.0"). This can cause a mismatch with Serverpod's CLI version. It's preferred to use "1.1.0" over "^1.1.0" for the Serverpod packages.
   ╷
23 │   serverpod_auth_google_flutter: ^1.1.1
   │                                  ^^^^^^
   ╵

This is pretty annoying, since using ^ as a version prefix is the only (and the best) way to avoid dependency hell, since it gives pub get some flexibility in its version resolution, which means that with version ranges in use, the version of each package can be either held back or brought forward until all the dependencies can be satisfied. The pub ecosystem literally depends upon this feature. It wouldn't survive without it, because you'd almost always get dependency conflicts with a project of any real complexity if you used only exact versions.
Instead of reporting this error, I suggest:

Reporting an error if pubspec.yaml depends on multiple different versions for different Serverpod packages (actually use the version that pub get fetched, in pubspec.lock, not the minimum version specified in pubspec.yaml); and
When the serverpod command is run, automatically downloading and compiling the version of serverpod_cli that matches the version of the dependencies, if that version of the CLI is not already downloaded and compiled.

Additionally serverpod_cli shows this warning with one of Serverpod's own yaml files:
$ dart ../vendor/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart generate
Development mode. Using templates from: ../vendor/serverpod/templates/serverpod_templates
SERVERPOD_HOME is set to ../vendor/serverpod
WARNING: The version of the CLI may be incompatible with the Serverpod packages used in your project.
Error on line 13, column 21 of ../vendor/serverpod/tools/serverpod_cli/test/serverpod_packages_version_check/test_assets/approximate_1.1.0/pubspec.yaml: The package is defined with a version range (for example "^1.1.0"). This can cause a mismatch with Serverpod's CLI version. It's preferred to use "1.1.0" over "^1.1.0" for the Serverpod packages.
   ╷
13 │   serverpod_shared: ^1.1.0
   │                     ^^^^^^
   ╵

It's very hard for us to guarantee that Serverpod will function correctly if the CLI and the project uses different versions of Serverpod. Currently with the ^ notation, you can create a project with serverpod create (say for version 1.1), you wait a couple of months until we have a version 1.2 out. Now, Dart may or may not upgrade the Serverpod packages in your project to 1.2, but the CLI hasn't updated. This means that if we've added features in 1.2, even though they are backwards compatible, it may not work with the older 1.1 code generation.
This is why we from 1.2 and forward recommend you to use an explicit version of Serverpod. All other dependencies are still referred to using the ^ annotation, which should mitigate the dependency hell (hopefully).
For backwards compatibility we guarantee that the protocol isn't changed in a way so that old clients cease to work with a newer version of the server. But you will need to use the same version of CLI for serverpod generate as you use in your package references. The only way (at least for now) we can do this is through the use of explicit versions.
As a side note. If you are using the CLI tooling from the main branch (which can be somewhat instable between releases), it's very much recommended that you also use the same branch for your packages (you can do this by referring to the packages with the path notation in your pubspec files.  The version on the main branch should generate new projects with the explicit notation going forward, and we are hoping to encourage Serverpod users to update and move to the explicit notation by displaying that warning on serverpod generate.
Long message. Hope it made some sense! 😅

Additionally serverpod_cli shows this warning with one of Serverpod's own yaml files:
$ dart ../vendor/serverpod/tools/serverpod_cli/bin/serverpod_cli.dart generate
Development mode. Using templates from: ../vendor/serverpod/templates/serverpod_templates
SERVERPOD_HOME is set to ../vendor/serverpod
WARNING: The version of the CLI may be incompatible with the Serverpod packages used in your project.
Error on line 13, column 21 of ../vendor/serverpod/tools/serverpod_cli/test/serverpod_packages_version_check/test_assets/approximate_1.1.0/pubspec.yaml: The package is defined with a version range (for example "^1.1.0"). This can cause a mismatch with Serverpod's CLI version. It's preferred to use "1.1.0" over "^1.1.0" for the Serverpod packages.
   ╷
13 │   serverpod_shared: ^1.1.0
   │                     ^^^^^^
   ╵

This is a bug that we will fix!

What I was suggesting is checking that (1) all the serverpod dependencies resolve to the same version as each other; and (2) then downloading and compiling the matching serverpod_cli version whenever the serverpod command is run, if the version of serverpod_cli does not match the version of the serverpod dependencies of the project.

That would be a cool solution. You know any reliable way to achieve this that will work across all platforms?

@vlidholt I haven't looked into it closely, but I noticed that when I run serverpod generate, if I have updated something, it says something along the lines of Version mismatch, rebuilding, and it re-builds the tool.
It might be even simpler than messing with that process though. I imagine you could turn the serverpod command into a bash script that gets the requested version using pub, then finds the path in the pub cache to the specific version you want to run, and runs just that version directly from the cache.


Postgres error halts / corrupts syncing from block 98475 related  to DAO TransferRestrictionStatus

During Postgres sync with the last Postgres Dao updates got this error:
 server.go:1147] Server._handleBlock: Received block ( 98475 / 98627 ) from Peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=32 ] E0126 08:54:21.794215       1 server.go:1141] Server._handleBlock: Encountered an error processing block <Header: < 98475,<PHONE_NUMBER>0058e8268e3ca270ab453fdd41382623c5ca30516d6ddf95b7b764, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=32 ]: Error while processing block: : ProcessBlock: Problem upserting block and transactions: ERROR #23502 null value in column "transfer_restriction_status" violates not-null constraint
Seem related to Dao coin insert/update at first glance. Related to
DAOCoinTransferRestrictionStatus TransferRestrictionStatus pg:"dao_coin_transfer_restriction_status"
When this block hits in the sync all blocks after get status 26 in pg_blocks.
Looking for a solution or fix.
So transfer_restriction_status SMALLINT NOT NULL seems to get a NULL value and rejects that.
type PGMetadataDAOCoin struct { 	tableName struct{} pg:"pg_metadata_dao_coins"`
TransactionHash           *BlockHash           `pg:",pk,type:bytea"`
ProfilePublicKey          []byte               `pg:",type:bytea"`
OperationType             DAOCoinOperationType `pg:",use_zero"`
CoinsToMintNanos          string
CoinsToBurnNanos          string
TransferRestrictionStatus `pg:",use_zero"`

}`
Might be related to pg:",use_zero" for that enum type.
Would transfer_restriction_status SMALLINT NOT NULL with DEFAULT 0 added solve the issue? Took me 2 days to sync to get to that point. Any ideas are welcome.
This PR from @tijno brings us to block 98477  #201  But still seems something goes wrong with the status field

Hey @mvanhalen, can you please make sure you're running release 2.02, which contains this commit?

c56e1cbfb4c1458045874817bdd7f0193aaa4cab

If this doesn't solve your issue let us know.

Hey @mvanhalen, can you please make sure you're running release 2.02, which contains this commit?

c56e1cb

If this doesn't solve your issue let us know.

Yeah had all these changes uncluded. That includes a typo fix also I reported. So pretty sure this version will get stuck at the same point. It´s trying to insert a null value on a non nullable column. Not sure why but it´s related to TransferRestrictionStatus of DAO coins.
Thanks for the follow up though.

Hmm... this is super weird. I've looked through the code several times now and can't see how it could possibly break like this. Is it possible the migrations didn't run on your Postgres db?

Im doing full clean postgres sync with 2.0.3 right now - it will take a while before I get to 98k blocks but will report results.

@diamondhands0 same issue completely clean postgres sync:
0128 07:33:22.195514       1 server.go:1141] Server._handleBlock: Encountered an error processing block <Header: < 98475,<PHONE_NUMBER>0058e8268e3ca270ab453fdd41382623c5ca30516d6ddf95b7b764, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=3 ]: Error while processing block: : ProcessBlock: Problem upserting block and transactions: ERROR #23502 null value in column "transfer_restriction_status" of relation "pg_metadata_dao_coins" violates not-null constraint

Is there a way to rollback pg db to 98474 ? Or is a full resync required ?

Thanks @tijno  I will try dao_coin_transfer_restriction_status smallint DEFAULT 0, see if that fixes it. 0 is unrestricted the default value in diamond also. My sync is not at that point yet. Will be later today/tomorrow. I think some conversion issue with the TransActionRestriction Status type is the issue.

@mvanhalen clean sync with transfer_restriction_status set to allow null (manually after tables created)

E0129 11:16:06.914856       1 server.go:1141] Server._handleBlock: Encountered an error processing block <Header: < 98477,<PHONE_NUMBER>006a47315898c0b8cabbcdb9ad885638ce82361144eaca1b960475, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=13 ]: Error while processing block: : ConnectBlock: : ConnectTransaction: : _helpConnectCoinTransfer: Coin nanos being transferred<PHONE_NUMBER>00 exceeds user's coin balance [0 0 0 0]: RuleErrorCoinTransferInsufficientCoins

Clean  sync with default 1 for the transfer_restriction_status field set in Postgres failed at the same 98475 block again.

Hopefully this will help diagnose this additional issue.
Issues

A Transfer DAO Coins after a DAO Coin Burn causes possible issue with balance
Change of transfer_restriction_status does not set pg_metadata_dao_coins.transfer_restriction_status field

Summarising the timeline on firstdao
1) minted 10,000 x  1e9 DAOCoin
Block | Index | TxType | TxID
98475 | 141 | DAO_COIN | 3JuEU5Mv8ctYEz5AU8aBUYQutyANy2mZDrp7Aqjg91zb9iL5SKYkX2
2) update_transfer_restriction_status to permanently unrestricted
98475 | 173 | DAO_COIN | 3JuETrYzbth3TukCjUUEk3Wt9852rgtfUvdC6ZVx9x5mBDaqYZoTS6
3) burned 9,000 x 1e9 DAOCoin, so 1,000 x 1e9 Left
98475 | 314 | DAO_COIN | 3JuETSLpbf4dyJhkCy7ZYV6QUvm1TT3MH4pPrYRR2M5hco4d8ryBLS
4) transfer 500 x 1e9 to @100
This Tx fails in Postgress with the _helpConnectCoinTransfer: Coin nanos being transferred<PHONE_NUMBER>00 exceeds user's coin balance [0 0 0 0]: RuleErrorCoinTransferInsufficientCoins error.
98477 | 44 | DAO_COIN_TRANSFER | 3JuETm4MfJif66tfmXGkT1DkJdYrg2gymefnHWDak2T2cXgSmQhWUJ
State in postgres at TIP 98476
pg_profiles

firstdao: 1 daocoin holder, circulation: 1000 x 1e9, dao restriction: 3

pg_dao_coin_balances

firstdao: balance: 1000 x 1e9, has purchased: 0
100: balance: 0

pg_metadata_dao_coins

firstdao: showing entries for mint, change transfer restriction and burn

NOTE: transfer_restriction_status is metadata is NULL for operation_type=3 - it was set to permanently unrestricted so it should be 3. Looks like another bug?
pg_metadata_dao_coin_transfers
Not showing any entries for firstdao.
Current account status on normal chain, not postgres:

@tijno @mvanhalen thank you for keeping on at this.
Just to add - subscribed. Still having issues performing a single sync beyond block 2 since rebuild, but will try everything clear again with the latest images.
I'm new to docker - am I using the right image source: docker.io/desoprotocol/backend:latest

@StarGeezerPhil lets chat on discord about that - ill try and help

@diamondhands0 @maebeam
Could we have feedback/resolution on this issue?
I'm stuck on 98476/7 - exactly the same as @tijno as reported in detail above.
I rebuilt node using the updated backend, clean postgres instance.
Paused sync after the initial db setup and manually modified the erroneous column (pg_metadata_dao_coins.transfer_restriction_status, allowing null values).
Then restarted sync and allowed to progress.
It progressed beyond the initial hold-up, but stuck same as @mvanhalen / @tijno.

Hey all, we’ve been investigating this but we’re making it our top priority to fix it today. Hoping we can have it fixed for you all shortly!

thx @diamondhands0 - ones you have a fix can you trigger backend image update - as that doesnt happen automatically to core changes i believe.

Hey all, @lazynina fixed the issue. You can see the fix here. It turned out to be a pretty simple fix. Sorry for all the hassle:

https://github.com/deso-protocol/core/pull/208#pullrequestreview-872695605

To use the fix, you should just be able to restart your node with core version 2.0.4. I don't think a resync is required.

@diamondhands0 @lazynina thank you for the fix.
I updated and restarted, but after what looked like a successful start and receiving blocks beyond 98476 backend exited with code 2 and a string of errors - I think prior issue caused missing transactions, so they're missing for references.
Therefore, believe this is a full resync for anyone affected.
Example errors included below if this helps you diagnose further.

I0204 09:22:08.978579       1 server.go:510] Received header bundle with 0 headers in state SYNCING_BLOCKS from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=36 ]. Downloaded ( 101246 / 101246 ) total headers
I0204 09:22:09.559726       1 server.go:1147] Server._handleBlock: Received block ( 98494 / 101246 ) from Peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=36 ]
E0204 09:22:09.655481       1 blockchain.go:1214] MarkBlockInvalid: Block height: 98494, Block hash:<PHONE_NUMBER>004bae582cc55a8bd1602ff3b50f148773dcad95c1ac46fa2ebc40, Error: ConnectBlock: : ConnectTransaction: : RuleErrorCannotTransferNonExistentNFT
E0204 09:22:09.655522       1 blockchain.go:1215] MarkBlockInvalid: Printing stack trace so error is easy to find:
E0204 09:22:09.655548       1 blockchain.go:1216] goroutine 181 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/deso-protocol/core/lib.(*Blockchain).MarkBlockInvalid(0xc00d636540, 0xc0b018dc00, {0xc00d607630, 0x4b})
/deso/src/core/lib/blockchain.go:1216 +0x14a
github.com/deso-protocol/core/lib.(*Blockchain).ProcessBlock(0xc000f44580, 0xc00d3f9890, 0x8a)
/deso/src/core/lib/blockchain.go:1917 +0x1fa5
github.com/deso-protocol/core/lib.(*Server)._handleBlock(0xc0010dc180, 0xc00affc240, 0xc00d3f9890)
/deso/src/core/lib/server.go:1193 +0x3e5
github.com/deso-protocol/core/lib.(*Server)._handlePeerMessages(0xf4241, 0x0)
/deso/src/core/lib/server.go:1494 +0x18d
github.com/deso-protocol/core/lib.(*Server).messageHandler(0xc0010dc180)
/deso/src/core/lib/server.go:1534 +0x19c
created by github.com/deso-protocol/core/lib.(*Server).Start
/deso/src/core/lib/server.go:1710 +0xb1
E0204 09:22:09.655552       1 blockchain.go:1223] MarkBlockInvalid: Not marking blocks invalid for now because it makes debugging easier
E0204 09:22:09.655563       1 server.go:1141] Server._handleBlock: Encountered an error processing block <Header: < 98494,<PHONE_NUMBER>004bae582cc55a8bd1602ff3b50f148773dcad95c1ac46fa2ebc40, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=36 ]: Error while processing block: : ConnectBlock: : ConnectTransaction: : RuleErrorCannotTransferNonExistentNFT
E0204 09:22:09.655728       1 peer.go:1060] ReadDeSoMessage: : ReadMessage: Could not read payload for message type (BLOCK): read tcp <IP_ADDRESS>:40750-><IP_ADDRESS>:17000: use of closed network connection
E0204 09:22:09.655769       1 peer.go:919] Peer.inHandler: Can't read message from peer [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=36 ]: ReadDeSoMessage: : ReadMessage: Could not read payload for message type (BLOCK): read tcp <IP_ADDRESS>:40750-><IP_ADDRESS>:17000: use of closed network connection
I0204 09:22:09.679944       1 peer.go:399] StartDeSoMessageProcessor: Cleaning up message queue for peer: [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=36 ]
I0204 09:22:09.680030       1 peer.go:415] StartDeSoMessageProcessor: Stopping because peer disconnected: [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=36 ]
I0204 09:22:15.004990       1 base.go:279] Refreshing USD to ETH exchange rate
I0204 09:22:15.538000       1 base.go:268] Refreshing USD to BTC exchange rate
I0204 09:22:15.538066       1 base.go:286] New USD to ETH exchange rate: 2832.790000
I0204 09:22:16.036828       1 base.go:275] New USD to BTC exchange rate: 37998.160000
I0204 09:22:16.267059       1 base.go:228] Refreshing exchange rate...
I0204 09:22:16.853446       1 base.go:167] Blockchain exchange rate: 4685 [4685 4685 4685 4685 4685 4685 4685 4685 4685 4685]
I0204 09:22:16.853499       1 base.go:232] Blockchain.com price (USD cents): 4685
I0204 09:22:17.030898       1 base.go:239] Coinbase price (USD Cents): 4718
I0204 09:22:17.030931       1 base.go:264] Final exchange rate: 4730
I0204 09:22:23.674578       1 peer.go:1011] Peer.Start: Starting peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=37 ]
I0204 09:22:23.674657       1 peer.go:411] StartDeSoMessageProcessor: Starting for peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=37 ]
I0204 09:22:23.886025       1 server.go:510] Received header bundle with 0 headers in state SYNCING_BLOCKS from peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=37 ]. Downloaded ( 101246 / 101246 ) total headers
I0204 09:22:24.461338       1 server.go:1147] Server._handleBlock: Received block ( 98494 / 101246 ) from Peer [ Remote Address: <IP_ADDRESS>:17000 PeerID=37 ]
E0204 09:22:24.551873       1 blockchain.go:1214] MarkBlockInvalid: Block height: 98494, Block hash:<PHONE_NUMBER>004bae582cc55a8bd1602ff3b50f148773dcad95c1ac46fa2ebc40, Error: ConnectBlock: : ConnectTransaction: : RuleErrorCannotTransferNonExistentNFT
E0204 09:22:24.551913       1 blockchain.go:1215] MarkBlockInvalid: Printing stack trace so error is easy to find:
E0204 09:22:24.551933       1 blockchain.go:1216] goroutine 181 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x65
github.com/deso-protocol/core/lib.(*Blockchain).MarkBlockInvalid(0xc00e1bd968, 0xc0b018dc00, {0xc00e198d20, 0x4b})
/deso/src/core/lib/blockchain.go:1216 +0x14a
github.com/deso-protocol/core/lib.(*Blockchain).ProcessBlock(0xc000f44580, 0xc00dcf4240, 0x8a)
/deso/src/core/lib/blockchain.go:1917 +0x1fa5
github.com/deso-protocol/core/lib.(*Server)._handleBlock(0xc0010dc180, 0xc00a8cd8c0, 0xc00dcf4240)
/deso/src/core/lib/server.go:1193 +0x3e5
github.com/deso-protocol/core/lib.(*Server)._handlePeerMessages(0xf4241, 0x0)
/deso/src/core/lib/server.go:1494 +0x18d
github.com/deso-protocol/core/lib.(*Server).messageHandler(0xc0010dc180)
/deso/src/core/lib/server.go:1534 +0x19c
created by github.com/deso-protocol/core/lib.(*Server).Start
/deso/src/core/lib/server.go:1710 +0xb1

@lazynina confirmed new issue - same as @StarGeezerPhil mentioned above - see #211


Fix crash in rooms.js when destroying rooms

Currently crashes if this.game exists but this.game.destroy isn't a function.

This is already fixed server-side.


Implement glTexImage1D/glTexStorage1D

This only works on OpenGL desktop and thus panics on WebGL.

Thanks for the PR! This is a bit tricky because these also aren't available in OpenGL ES. Is it still useful to expose this API in glow vs. encouraging people to use a 2D texture with a height of 1 and filtering disabled (e.g. https://stackoverflow.com/a/23549360) which would be portable?

Using a 2D texture with a height of 1 indeed works for this specific case.
Looking through the code, there are a number of features that WebGL doesn't support and panic at runtime. I think this relates to issue #76, but haven't written up my thoughts on it yet. Maybe we should have 3 traits instead of a single one (HasContext), for:

The WebGL1-safe feature set (most limited)
The WebGL2-safe feature set
The native feature set (complete OpenGL 4.6)

A user of the crate would then pick which feature set to enable with features defined by the glow crate, so no #[cfg(target = "")] annotations are needed, but users who wish to use the complete OpenGL 4.6 specification may do so. This would also provide compile-time checks for functions which are not supported by the targeted runtime instead of finding out which ones panic at run-time.


Saving a nested JSON to redshift

Seems like saving a nested json fails because of the structure, are you aware of this problem?
is there not a way to create tables based on the nested json given a primary key?

If by "nested JOSN" you mean that you read nested JSON data into a Spark SQL DataFrame then tried to save the resulting DF to Redshift, my understanding is that Redshift doesn't support nested fields to the same degree that Spark does, so the spark-redshift connector won't be able to figure out how to map your Spark schema into something that Redshift understands. If you got a stacktrace / exception when trying this, do you mind posting it here so that this issue is easier to find?
What you might be able to do is to use a Spark SQL function to convert columns with nested data into JSON strings and then save those strings back to Redshift; once you have JSON in Redshift, you can query it with Redshift's built-in JSON functions (although this might be slow).

Ok I will try that
FYI below is part of the stack trace
Exception in thread "main" java.lang.IllegalArgumentException: Don't know how to save StructField(blah,StructType(StructField(blah,StructType(StructField(ApplicationNaStructField(foo,BooleanType,true)),true)),true) to JDBC
at com.databricks.spark.redshift.JDBCWrapper$$anonfun$schemaString$1.apply(RedshiftJDBCWrapper.scala:262)
at com.databricks.spark.redshift.JDBCWrapper$$anonfun$schemaString$1.apply(RedshiftJDBCWrapper.scala:242)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
at com.databricks.spark.redshift.JDBCWrapper.schemaString(RedshiftJDBCWrapper.scala:242)
at com.databricks.spark.redshift.RedshiftWriter.createTableSql(RedshiftWriter.scala:75)
at com.databricks.spark.redshift.RedshiftWriter.com$databricks$spark$redshift$RedshiftWriter$$doRedshiftLoad(RedshiftWriter.scala:160)
at com.databricks.spark.redshift.RedshiftWriter$$anonfun$saveToRedshift$1.apply(RedshiftWriter.scala:378)
at com.databricks.spark.redshift.RedshiftWriter$$anonfun$saveToRedshift$1.apply(RedshiftWriter.scala:376)
at com.databricks.spark.redshift.RedshiftWriter.withStagingTable(RedshiftWriter.scala:121)
at com.databricks.spark.redshift.RedshiftWriter.saveToRedshift(RedshiftWriter.scala:376)
at com.databricks.spark.redshift.DefaultSource.createRelation(DefaultSource.scala:106)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:222)

Yep, exactly as I thought. We should add a more helpful error message when we discover that a user is tying to save a nested StructType field, perhaps linking to this issue or a page with workarounds.

perfect thanks @JoshRosen  as a first go im going to save the entire blob as a string to redshift. Then work on breaking things down and joining them
But ideally it should just be an extention method, because there will be so many people dealing with jsons

FYI I feel like writing up my workaround for this issue, given this nested json below
{"OrderContainer":{"BasketInfo":{"BasketId":"kjOIxlJFc0WYdQXm2AXksg","MenuId":119949,"Items":[{"ProductId":12310,"UnitPrice":5.5,"foo":[1,2,3],"bar":["a","b","c"]},{"ProductId":456323,"UnitPrice":5.5,"foo":[1,2,3],"bar":["a","b","c"]},{"ProductId":23432432,"UnitPrice":5.5,"foo":[1,2,3],"bar":["a","b","c"]}]}}}

What I have done is explode the items into an array below
    val basketItems = df.select($"OrderContainer.BasketInfo.BasketId",
      $"OrderContainer.BasketInfo.MenuId",
      explode($"OrderContainer.BasketInfo.Items")).toDF("BasketId","MenuId","Items")

I am just missing the final part which is to convert the foo and bar columns into strings so i can save to redshift  Any Ideas?

FYI I solved it by creating a function to make the array a string
val mkString = udf((a: Seq[Any]) => a.mkString(","))

Make sure to import the udf function
Then all you have to use is the withColumn function
.withColumn("foo", mkString($"foo"))


Add pretty-print capability

Replacing Clang 6's libcxx and libcxx-api shared objects and installing these pretty-printers
could make debugging a bit easier by outputting this for a map<string,string>:
$1 = std::__1::map (count=2) = {[0] "key1" = "value1", [1] "key2" = "value

instead of this:
(gdb) p /r mymap
$2 = {__tree_ = {__begin_node_ = 0x608010,
  __pair1_ = {<std::__1::__compressed_pair_elem<std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>, 0, false>> = {__value_ = {         __left_ = 0x608010}}, <std::__1::__compressed_pair_elem<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char>, ...
          ( ... lines of internal map and string implementation detail we don't want to see...)
  <No data fields>}, <No data fields>}}}

addressed here

addressed here


feat: make IPForwarding a configurable parameter

Tell us about your request
We want to use Karpeter on AKS with Azure CNI powered by Cilium but our network policies from management group level prevents Karpenter from creating nodes as the provider tries to create nodes with IP forwarding set to true.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
We're trying to use Karpenter to provision nodes, but the provider tries to create nodes with IPForwarding set to true always EnableIPForwarding:          to.Ptr(true). Provisioning virtual machines with IP forwarding is disallowed by policy in our environment so this is a blocker for us to use Karpenter.
Are you currently working around this issue?
We're not using Karpenter yet because of this issue.
But we were able to get it working by explicitly setting the parameter to false in here,
Additional Context
No response
Attachments
No response
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Based on the internal discussion we decided to just disable IPForwarding altogether; resolved by https://github.com/Azure/karpenter-provider-azure/pull/467


Add deloitte extension

Description

Screencast

Checklist

[ ] I read the extension guidelines
[ ] I read the documentation about publishing
[ ] I ran npm run build and tested this distribution build in Raycast
[ ] I checked that files in the assets folder are used by the extension itself
[ ] I checked that assets used by the README are placed outside of the metadata folder

Hi 👋
Thanks for your contribution 🔥
Could you look into the CI errors and fix them?
Due to holidays, there might be a delay of 10-15 days until the next reply, sorry for the inconvenience 😊

I am sorry, this extensions does not make sense for public. I just wanted it to be shared inside of my virtual organization.
I will close PR


[BUG] remove the misleading "type": "module" property  in the package.json

Hi,
I found that some bundler will treat the actuall main file(/dist/index.cjs) as esm, which cause unexpected behavior

@suguanYang what bundler and which version? I think this package follows the latest standard.


Question: How to link the card's Background Image as an outlet to access it ?

Hi, I wonder If I added my card as a design for .XIB file of my UICollectionView Cell, I want to add an outlet for the background image, Text or button etc, is that possible ? and if it's not, is there a right way to add this card as a cell in collection view while still be able to dynamically change each one with code ?
Thanks.
Hope someone respond soon, I'm really interested in the awesome card design.

Nope, you can't add individual elements of a card view as an outlet, but you can add the card itself as an iboutlet and then access to the card's elements within it.
If you use customized classes for the collection view cells you can set the card in there and then change labels, images, etc whenever you want :)


Allow Cmd-Enter evaluation for Mac users

Hey, I'm really digging this project. I noticed I have to run Ctrl-Enter to evaluate code; however, a common convention is to allow Mac users to use Cmd-Enter as well.
I noticed your'e using CodeMirror, and from a previous previous commit that solves #11, you could do something like this:
editor.setOption('extraKeys', {'Cmd-Enter': function() {
  editor.getOption("onBlur")();
}});

Thoughts?

Fixed in yuanchenyang/coding-js@b20a53c7bb967d42a73fef6393416bb7f317cc2d


Fix functional tests

Codecov Report

Merging #246 (ca3fac0) into master (21012d8) will increase coverage by 29.27%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master     #246       +/-   ##
===========================================
+ Coverage        0   29.27%   +29.27%
===========================================
  Files           0       53       +53
  Lines           0     4964     +4964
  Branches        0     1051     +1051
===========================================
+ Hits            0     1453     +1453
- Misses          0     3426     +3426
- Partials        0       85       +85

Impacted Files
Coverage Δ

elliottlib/cli/advisory_images_cli.py
0.00% <0.00%> (ø)

elliottlib/exectools.py
88.23% <0.00%> (ø)

elliottlib/runtime.py
14.81% <0.00%> (ø)

elliottlib/cli/rpmdiff_cli.py
0.00% <0.00%> (ø)

elliottlib/assertion.py
78.94% <0.00%> (ø)

elliottlib/rpmdiff.py
100.00% <0.00%> (ø)

elliottlib/constants.py
100.00% <0.00%> (ø)

elliottlib/tarball_sources.py
32.22% <0.00%> (ø)

elliottlib/cli/attach_cve_flaws_cli.py
36.48% <0.00%> (ø)

elliottlib/rpmcfg.py
60.00% <0.00%> (ø)

... and 43 more

Continue to review full report at Codecov.

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


Fix finish order

Please take a moment to fill out the following:
Fixes #466.
Changes Proposed in this pull request:

Add a new static property ShouldAutomaticallyFinishTransactions to InAppBillingImplementation (Apple)
Only GetPurchasesAsync calls SKPaymentQueue.RestoreCompletedTransactions()
GetPurchasesAsync now the only method to automatically finish open transactions if ShouldAutomaticallyFinishTransactions is false

I've based this on master, but I wasn't able to actually build from master, since some project files weren't checked in with the most recent commits on that branch. So I'm assuming the CI will fail.

I believe we decided to go away from this and make folks call finish transactions themselves.