Dangerous use of ForkJoinPool

https://github.com/corona-warn-app/cwa-server/blob/822150b1b22645ba071a6f6576d50614dc01b34b/services/submission/src/main/java/app/coronawarn/server/services/submission/controller/SubmissionController.java#L63
The common ForkJoinPool is used to process all real incoming transmissions. This will cause the pool to be flooded under heavy load and block all other threaded streaming operations, which could potentially put the whole application into a dead-lock.
Also no forking and joining is done in the processing, which means the wrong type is used here. You should use a standard Executor instead.
In general the DeferredResult (used below where the ForkJoinPool comes into action) should only be used if there is no alternative, as it uses dangerous locking, unnecessary synchronization and the double-checked locking anti-pattern.

The ForkJoinPool.commonPool() has by default the size of CPUs minus 1 threads, and I think it is meant to be used for CPU-intensive tasks.
In this case, the controller calls the verification-service and the database, which should be the most time-consuming parts of its job. I think Webflux was made for exactly this kind of problem (but I haven't used it yet).
Alternatively, I would use custom ThreadPoolExecutor with a higher thread-count.

The ForkJoinPool exists to allow external work-stealing algorithms to use an easily available Executor. It is not meant to be used as a general all-purpose Executor and issues can arise if it is used in such a way, as those resources are then no longer available for their dedicated intent.

The pool attempts to maintain enough active (or available) threads [..] even if some tasks are stalled waiting to join others. However, no such adjustments are guaranteed in the face of blocked I/O or other unmanaged synchronization.

In other words: if you just randomly throw in tasks into that pool it might get stuck. This is especially dangerous when used in the main loop of a web server, because then any flooding of requests also immediately leads to a flooding of the one single common pool, which is like rolling out a red carpet for hackers.
As the appropriate alternatives can be used very easily, and it takes just a very minor adjustment to the code, there is no reason to work with the wrong type of Executor.
In general a web-server thread should not open another thread unless multiple long-time blocking operations are performed simultaneously. There is no performance gain associated with that: if all cores are busy handling requests opening yet another thread will not cause the server to run faster, but in fact slower. It however makes the code more complicated and more error-prone (as beautifully demonstrated by the code in question). Therefore using DeferredResult or threading in general in this particular context is a completely unnecessarily complex implementation for a very simple task. The KISS principle should be applied instead.

I agree that the common ForkJoinPool is not adequate here (did I make that clear in my comment?). And I have also wondered if asynchronous processing makes sense at all.
As far as I can see, the asynchronous processing has been introduced when the fake-requests were added. (see #109)

For handling the fake requests, asynchronous processing makes much sense, because there is no actual computation, just a delay before the request in answered.
For handling real requests, we can probably do the computation in the same thread, because it is the same controller, we still need to return a DeferredResult.

I think there will be many more fake-requests than real requests, so we should optimize for those.
Or we build everything with Flux. I am currently doing some performance tests.
@stevesap I couldn't find any infrastructure-as-a-service repository so far. Do you know how instances will be scaled in the cloud?

@nils4cosee thanks for your efforts there. I am working on getting an answer to this ..

I have used a fresh spring-boot-project to do some performance tests with the following controller:
@RestController
public class HelloController {

  private static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);

  @RequestMapping("/deferredResult")
  public DeferredResult<String> index() throws InterruptedException {
    DeferredResult<String> stringDeferredResult = new DeferredResult<>();

    executorService.schedule(() -> stringDeferredResult.setResult("hello"),
        1000, TimeUnit.MILLISECONDS);
    return stringDeferredResult;
  }

  @RequestMapping("/flux")
  public Mono<String> flux() throws InterruptedException {
    return Mono.delay(Duration.of(
        1000,
        ChronoUnit.MILLIS
    )).then(Mono.just("hello"));
  }
}

I have used JMeter to fire 100 requests in each of  1000 parallel threads to each endpoint and both performed equally well.
I think the solution could be something like fd76c872a37151706520c2774245428c59b9e24d:
Use an executor for fake-requests. Do not use other threads for persisting actual results.

@nils4cosee - we are using standard Kubernetes capabilities to scale our application, and our performance testers are continuously fine tuning the parameters to different load/attack scenarios.

That looks like a good solution.
While you are at performance testing: it might be a good idea to compare your implementation to a primitive implementation using only Thread.sleep and no threading or anything fancy. That will show the benefit of your implementation over it in clear numbers and might provide some insight on how to configure the servers later on.

Hi @twothe, I came across this discussion and my problem is kind of same. I am using below implementation for fork join which parallel the execution of each message and it does that but in reality the performance is not getting boost when I increase the instances and try to increase a performance. At a time 10 messages are polled from queue to start the parallel execution. can you help me to understand whether I did something wrong in code.here is my code.
public class StockRangeConsumer {

    private static final Logger LOGGER = LoggerFactory.getLogger(StockRangeConsumer.class);

    public static final int THREADS = 100;

    private final ObjectMapper objectMapper;
    private final SqsMessageConsumer stockRangeConsumer;
    private final ForkJoinPool forkJoinPool = new ForkJoinPool(THREADS);

    private final StockRangeDataProcessor stockRangeDataProcessor;
    private final PilotFacilityFilterService pilotFacilityFilterService;

    public StockRangeConsumer(StockRangeDataProcessor stockRangeDataProcessor,
                              @Qualifier(StockRangeConfiguration.STOCK_RANGE_CONSUMER) SqsMessageConsumer stockRangeConsumer,
                              ObjectMapper objectMapper,
                              PilotFacilityFilterService pilotFacilityFilterService) {
        this.pilotFacilityFilterService = pilotFacilityFilterService;
        this.objectMapper = objectMapper;
        this.stockRangeConsumer = stockRangeConsumer;
        this.stockRangeDataProcessor = stockRangeDataProcessor;
    }

    public void consume() throws ExecutionException, InterruptedException {
        List<Message> messages = stockRangeConsumer.retrieve();
        LOGGER.info("Number of available core in the processor is: {}", Runtime.getRuntime().availableProcessors());

        forkJoinPool.submit(() -> messages.parallelStream().forEach(message -> {
            try {
                RangePredictionData rangePredictionData = toRangePrediction(message.getMessage());
                LOGGER.info("Starting run analysis for part key: {}", rangePredictionData.getPartKey());
                LOGGER.debug("***** RangePredictionData with PartKey: {}, list size: {}", rangePredictionData.getPartKey(), messages.size());
                processRangePredictionData(rangePredictionData);
                LOGGER.info("Ended run analysis for part key: {}", rangePredictionData.getPartKey());
                stockRangeConsumer.delete(message);
            } catch (Exception e) {
                LOGGER.error("Error reading message from stock range queue : ", e);
            }
        })).get();

    }

    // TODO move logic to usecase/service and this class to adapter
    public void processRangePredictionData(RangePredictionData rangePredictionData) {
        if (rangePredictionData == null || rangePredictionData.getPartKey() == null || rangePredictionData.getRangeCalculationData() == null) {
            LOGGER.error("Range prediction consumed, but is null or missing range calculation data");
            return;
        }

        if (pilotFacilityFilterService.isPilotFacilityAndExcludedUsageCode(rangePredictionData.getPartKey().getFacilityCode(), rangePredictionData.getPartKey().getUsageCode())) {
            stockRangeDataProcessor.processRangePredictionData(rangePredictionData);
        }
    }

    private RangePredictionData toRangePrediction(String message) throws JsonProcessingException {
        return objectMapper.readValue(message, RangePredictionData.class);
    }

}


Breakout Loop Steps into Individual Functions

Each 'command' needs to have an associated function which will help cleanup the code.

complete


refactor SaveChaosExperiment fixes #4336.

Fixes #4336
Proposed changes
Refactored the variable Name to ExperimentName.
There was a bug which was caused because of using wrong variable name.
Name was used in place of ExperimentName which was causing to trigger the validateDuplicateExperimentName even when we edit experiment details.
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[ ] New feature (non-breaking change which adds functionality)
[x] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] I have signed the commit for DCO to be passed.
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[ ] I have added necessary documentation (if appropriate)

Gotta think more about this issue


USHIFT-1458: update build scripts to make rpm builds consistent

Consolidate several places where we build RPMs into a single script that
can be reused.
/assign @pmtk @jogeo @copejon

/assign @dhensel-rh

I also took this opportunity to provide a little more context to the output of some of the scripts, at @dhensel-rh's suggestion.

/lgtm


Changing locale doesn't update all text

This issue was observed when testing https://github.com/HospitalRun/hospitalrun-frontend/pull/1553, although it was present before the switch to ember-intl.
Originally reported by @chadian: https://github.com/HospitalRun/hospitalrun-frontend/issues/1561#issuecomment-439645886
Switching the locale updates some of the text fields but not others. Refreshing the browser will ensure all text is in the correct locale. Problem seems to be that switching locale only immediately updates properties that are directly referencing the translation macro, but not properties that are returned from a computed function or otherwise set programmatically.

There appear to be at least two reasons this is happening.
The first is computed properties only firing once on some of the controllers. For example, in the inventory/reports controller shown in your screenshot, the 'reportColumns' computed property supplies the labels for the checkboxes. That computed property doesn't have any dependent key it is referring to, so it only fires on a page reload. Adding 'intl.locale' as the dependent property will recalculate those on language select and solve that issue. This type of issue appears in several controller files (other than the one shown in screenshot) for various computed properties.
The second has to do with macro.js. The inventory/reports route.js, for example, is using hospitalrun/macro, and that appears to not be getting recomputed on locale change. This issue is also happening in various files.
I'll look more into this and submit a PR in this coming week at some point. Just want to make sure all the relevant files are touched, and that there are some tests for that. Will update.

Just updating that I'm still working out all the locale change issues. There are several spots in the app where the various intl functionality is accessed in different ways, so I'm making sure to comb through all the various spots. Should have a PR with the relevant changes in the next couple of days.


Uncaught ReferenceError right after installing npm, no 'src' folder in node_modules/react-ghost-text

Hi! I was searching to find ways to imply a feature like Gmail smart compose, and I bumped into your repository.
First of all, thank you so much for building this thing 😊
I installed as you wrote in the readme file - npm install react-ghost-text, and added the codes I need( import { AutocompleteTextbox } from 'react-ghost-text'; and getSuggestion function).
But right after doing that,
Uncaught ReferenceError: process is not defined
    at node_modules/util/util.js

this error was showing like below.

Looking up for the solution, I went through the node_modules file and happened to find out that there is an error showing in the node_modules file like the following :

For this error, I found this . I am not sure if this is occuring the error, but the react-ghost-text file doesn't have a src file.

I'm not sure but the error in the file -node_modules/react-ghost-text/tsconfig.json - looks like it's occurring since it's including everything from the src file but actually there is no src file installed. Is this the reason?
If so, will downloading the code from the repository and adding the src file manually solve the problem?

Thanks for raising this issue! This should be fixed in version 1.1.0 which I just released.


RNCNetInfo causing crash for Windows devices using LTE connections

Environment
OS Name	Microsoft Windows 10 Entreprise
Version	10.0.19042 Build 19042
OS Manufacturer	Microsoft Corporation
System Manufacturer	Dell Inc.
System Model	Latitude 5500
System Type	x64-based PC
Processor	Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz, 1896 Mhz, 4 Core(s), 8 Logical Processor(s)
BaseBoard Manufacturer	Dell Inc.
BaseBoard Product	0M14W7
BaseBoard Version	A01
Platform Role	Not Available
Secure Boot State	Not Available
PCR7 Configuration	Not Available
Windows Directory	C:\WINDOWS
System Directory	C:\WINDOWS\system32
Boot Device	\Device\HarddiskVolume1
Hardware Abstraction Layer	Version = "10.0.19041.1151"

Platforms
Windows
Versions

Windows: Windows 10
react-native-netinfo: 8.1.0
react-native: 0.63.3
react: 16.13.1
react-native-windows: 0.63.0

Description
RNCNetInfoCPP.dll is causing application crash on startup when the users are connected to internet using a LTE device.
RNCNetInfoCPP.dll 61f0153b c0000005<PHONE_NUMBER>006713 37f0 01d85a271e95c413
C:\Program Files\WindowsApps\ServiceMaxInc.ServiceMaxGo_<IP_ADDRESS>_x64__xhyn8twjq8wge\RNCNetInfoCPP.dll 73a03000-f9f0-4e2c-869c-e455cf87e4fd

Crash Logs
WindowsCrashLogs.zip

@mikehardy  we have made  sample app using RNCNetInfo .
Description
Sample app is to  check whether  app is connected to internet or not  but we face  crash for Windows devices using LTE connections.
we are attaching sample app  , crash log and demonstrated video .
Sample app
NetWorkApp
Crash Log
Network app 1.evtx.zip
Sample video
https://user-images.githubusercontent.com/32197228/175921707-2b43da92-4386-43ed-af08-ad9c59320e62.mp4
You can see app is crashing
please take a look . Attached resources  can help you on your investigation

Hi there! With apologies I need to set clear expectations here: I do not use react-native-netinfo on windows and will conduct no investigation. If this is important to your use case + business please take the time to post a PR. I will do my  best to collaborate and merge it but just don't have available volunteer time to work through problems that don't matter for my use cases. Hopefully you understand

I'm experiencing this as well. It's also happening for Wifi Connections. Works fine with LAN.
It ONLY happens when I build an x64 version of the app but not if I only build x86.
Upgraded from 6.0.2 to 9.3.0, so some changes in between are likely to cause it.

@mikehardy FYI: It seems this is related to changes introduced with https://github.com/react-native-netinfo/react-native-netinfo/pull/564/files, specifically the GetWiFiNetwork method in RNCNetInfo.cpp.
From our testing, adding the <DeviceCapability Name="wiFiControl" /> capability to the <Capabilities>...</Capabilities> section seems to fix the Problem when connected to a WLAN network. I think this should be mentioned in the Readme for Windows.
This DeviceCapability has to be added manually to the .appxmanifest as it is not available in the GUI as a checkbox.
Can't confirm for LTE devices as we do not own such devices.
What do you think? Should we add this mention in the README for Windows?

Odd that it crashes for Wifi if the capability is missing. I was pretty sure I tested that case (the try/catch inside GetWiFiNetwork was supposed to catch an exception thrown in that scenario).
The readme notes that the "wiFiControl" capability is needed for the bssid/frequency/wifiGeneration fields to be filled out. But it shouldn't be needed for other WiFi fields.
If calling the WiFiAdapter class without the wifiControl capability actually triggers a crash and doesn't just throw an exception, it seems like a bug in that API. Regardless, I found there's an AppCapability API that might allow querying for the capability ahead of time and skipping that code path if it's not found.
For LTE, I don't have a device to test with. Someone hitting the issue should run under a debugger and get a callstack to provide more data on the root cause.

@aschultz It only happened in the x64 build, x86 never crashed.
I'd guess the LTE crash is the same as the one I experienced with WIFI.
Also dev builds did not seem to be affected, only the x64 release build (bundled for sideloading)


Revise Update()/Put() interface

For the hash-update, I found it would be nice to have been able to put another parameter on a Put/Update requests. The current interface is quite resistant to change ;)
	Put(in io.Reader, remote string, modTime time.Time, size int64) (Object, error)
	Update(in io.Reader, modTime time.Time, size int64) error

I would propose wrapping up the common parameters in a struct, for instance:
type NewObject struct {
	in io.Reader
	modTime time.Time
	size int64
}

	Put(remote string, n NewObject) (Object, error)
	Update(n NewObject) error

In the concrete case, I would like to add the known hashes to NewObject. That would allow us to skip the temporary file copy in B2 for instance. If the interface looked like this, the change (and others that could come) would be unobtrusive.
NewObject was the best I could come up with, that wasn't too long for my taste.

Yes knowing the hash at the time of creation of the object would be very useful and could be used with swift, s3 and probably others to ensure a server side check of the hash - good idea.
I'd be inclined to say that adding a options struct to Put() and Update() is going a step too far though - whad do the function signatures look like with the set of known hashes?  Can you think of anything we might want to add in the near future?

Adding one more parameter - here a map[fs.HashType]string wouldn't be the end of the world.
But on the other hand, if we would like to pass another value on some point, we don't have to rework the interface again. Therefore wrapping the parameters would make it easier to manage in the future.

Thinking about the implementation, another approach could be that the source fs.Object is sent along. That way we don't need a new type, and the transfer back and forth.
Is this crazy/impossible?
    Put(remote string, src *Object) (Object, error)
    Update(src *Object) error
``

Adding one more parameter - here a map[fs.HashType]string wouldn't be the end of the world.

Especially if we were to give map[fs.HashType]string a type name, eg fs.HashMap or something like that.

But on the other hand, if we would like to pass another value on some point, we don't have to rework the interface again. Therefore wrapping the parameters would make it easier to manage in the future.

It depends on whether the new stuff is optional or not.  If it is optional then you are right, but if not, then each use of the method needs to be examined and changing the signature is quite a good idea so it breaks stuff.

Thinking about the implementation, another approach could be that the source fs.Object is sent along. That way we don't need a new type, and the transfer back and forth.
Is this crazy/impossible?

I quite like the idea.
The Put() and Update() methods were designed to be usable without the framework of rclone so they work at a slightly lower level which is why they are they way they are. This lower level stuff is used in the tests mostly.
If we were to make the change you suggest then it would become useful to make a sort of in memory fs.Object for the tests, thought we could just re-work them to use a local object.
Looking at operations.go we would need to have an io.Reader parameter I think, so the src Object would just be used for reading any metadata.
    Put(in io.Reader, remote string, src *Object) (Object, error)
    Update(in io.Reader, src *Object) error

Unless we were to re-work the accounting so it all happens in the Transport (which then wouldn't work for local -> local syncs).

I had some more thoughts about this
What might be best is for Put & Update to take a subset of the fs.Object interface, say fs.ObjectMetadata
So the interface could become
Put(in io.Reader, src ObjectMetadata) (Object, error)
Update(in io.Reader, src ObjectMetadata) error

This interface would have the Size, Hash, ModTime, and Remote methods in it. That would cover everything that Put and Update needs I think, and be easy to update.
Having an interface is a good idea over an object because some of the methods (eg ModTime or Hash) can be expensive, so if Put or Update doesn't need it, then it doesn't need to be calculated.
It would be easy to make a struct which fulfilled the fs.ObjectMetadata interface for building things in tests, which would essentially be the equivalent of your original suggestion of a struct.

Great solution! I like restricting access that way. That ensure that we don't get unintended side-effects.

 Thanks Klaus.


Settings :: Update Terms & Conditions with Legalese

Need to add some T&Cs to the app -- assigning it to myself to pull it together

@sshaar08 is there a requirement for a privacy policy for the app store? I'm seeing that in researching other apps and if that's the case our legalese probably needs to be on a separate page no?

Posted Legalese here: https://basecamp.com/2380615/projects/10699840/documents/10311597

Per discussion thinking this needs to be a standalone webpage @kperusko

@younglisa not if we dont collect users data or kids under 13 are our target

@kperusko by.ai link here: http://by.ai/dsxprivacy
Please remove "/Legalese" from the heading so it just says "Privacy Policy"


Attempt to fix windows build

Seeing this in Windows builds (https://github.com/input-output-hk/cardano-addresses/runs/5154477094?check_suite_focus=true)
checking package integrity...
error: mingw-w64-x86_64-mpfr: signature from "David Macek<EMAIL_ADDRESS>is unknown trust
:: File /var/cache/pacman/pkg/mingw-w64-x86_64-mpfr-4.1.0-3-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).

Trying to apply some workarounds:

https://github.com/msys2/MSYS2-packages/issues/2343
https://stackoverflow.com/questions/68669920/invalid-pgp-signature-when-updating-packages-in-msys2-despite-fixes

(don't really know what I'm doing)

Yes, good find.
It looks like it was unable to install the correct versions of pkgconfig and pcre dependencies due to package signatures.
The most recent successful master branch build did not show this error.
I pushed another fix attempt.


TERNA PR10 (Update machinev1)

Proposal for implementing "Unsecure Communication" at INCIDENT EXAMPLES (2ND COLUMN) to reflect common vulnerabilities verified by on-field experience.

covered already by "Weak Cryptography" and "information disclosure" and "Potentially Unwanted Accessible Services"


Vim9: E1050 error occurred while executing edit command with "+{num}"

Describe the bug
E1050 error occurred while executing following script:
vim9script
edit +4 %

Expected behavior
No error occurred
Environment (please complete the following information):

Vim version 8.2.2039

Strictly speaking this is correct.  You should use "edit +:4 %".
I can understand that this is unexpected.  We could make an exception for when the "+" is only followed by a number.
But what if using "edit +$ %"?
Assuming that the command is not an assignment or a function call without "call" I suppose we can just omit the error.


PToyD2DPopup preventing mouse interaction with Windows Terminal

Something in PowerToys is making WindowsTerminal unresponsive on my external monitor.
When I try and click on my WindowsTerminal window, the OS seems to think I'm interacting with some UI element named PToyD2DPopup instead of the Windows Terminal. It only seems to affect the Windows Terminal though.
Once I kill the PowerToys process, I'm able to successfully interact with the Windows Terminal again
I'll attach a repro using the Windows Steps Recorder which demonstrates this an includes images
ℹ Computer information

PowerToys version: v0.18.2
PowerToy Utility: n/a
Running PowerToys as Admin: yes
Windows build number: 1909 (10.0.18363.0 )

📝 Provide detailed reproduction steps (if any)

try to use WindowsTerminal window on external monitor

✔ Expected result
should be able to interact with the WindowsTerminal window
❌ Actual result
cannot interact with the WindowsTerminal window
📷 Screenshots
the following screenshot shows my mouse hovering over the maximize window button but the button not responding

[multimonitor_winterminal_unresponsive.zip]
the following zip includes a Windows Steps Recorder repro with extracted images
(https://github.com/microsoft/PowerToys/files/5070772/multimonitor_winterminal_unresponsive.zip)

@ScottMunroMS
your external monitor is your primary monitor, correct?
The PToyD2DPopup class is used by the Shortcut Guide to show its UI only on the primary monitor.
When the problem happens, can you interact with other windows on the same monitor or with the desktop? (The Shortcut Guide window doesn't cover the taskbar, so the interaction with the taskbar should not be effected).
Can you try to reduce the repro steps to a minimum?
Thanks.

yes the external monitor is my primary
yes I can interact with other windows and the desktop on that same monitor
I do not know what sequence of steps leads to this scenario so I have not yet been able to reduce the repro to any set of 100% reproducible steps. It just happens sometimes where suddenly WindowsTerminal stops working. If I can figure out a set of repro steps I'll update here but for now I don't have them

@ScottMunroMS
what type of shell are you running? PowerShell, CommandPrompt or Azure?

PowerShell

The key steps in the recording are:
Step 6: User mouse drag start on "Work (window)" in "Wor"
Program: WINDOWSTERMINAL.EXE, WINDOWSTERMINAL.EXE
UI Elements: DRAG_BAR_WINDOW_CLASS, Work, CASCADIA_HOSTING_WINDOW_CLASS

Step 7: User mouse drag end in "Wor"
Program: WINDOWSTERMINAL.EXE, WINDOWSTERMINAL.EXE
UI Elements: PToyD2DPopup

Step 6 is when you start dragging the window from the secondary monitor to the primary monitor.
When you release the mouse, the UI elements should be the same as in step 6, instead they become the Shortcut Guide class.
It would be very interesting to know if turning off the Shortcut Guide "fixes" the problem or if it requires to uninstall PowerToys to prevent Terminal from using that class.
The recorder, shows that the UI element is from terminal, if I open the Shortcut Guide and click on it, the record shows:
Step 6: User left clicked
Program: PowerToys Runner, <IP_ADDRESS>, Microsoft Corporation, POWERTOYS.EXE, POWERTOYS.EXE
UI Elements: PToyD2DPopup

that seems to exclude that the UI element detect when clicking on the Terminal window is from the actual Shortcut Guide process.

The next time it repros I can try turning off the shortcut guide as a fix.
During my first repro, I was able to fix it by killing the powertoys process entirely. Not as intense as uninstalling powertoys entirely but still quite a heavy hammer

This certainly seems consistent with my own investigations from the one time this happened to me as well. For me, I was able to resolve this by simply disabling the "shortcut guide" powertoy from the PT settings app - I didn't need to entirely kill powertoys.
Note though that when this was reproing for me, I also couldn't interact with the PowerToys Settings application on my primary monitor, I had to first move it to another, secondary display 😄

@zadjii-msft
did you have issues with any other app beside Terminal and the PowerToys Settings?

If I recall correctly, I was also seeing the same issue in the XAML Studio app at the same time. I believe they're using a WebView though, instead of a XAML Island, so I'm not sure how helpful that is.

@zadjii-msft
what is strange with this bug, is that Terminal ends up using a window classed that is defined in Shortcut Guide and Shortcut Guide doesn't have any code to "inject" that class in other processes.
It would be interesting to know if the bug requires Shortcut Guide to run elevated, in your case were you running PowerToys as administrator?

I definitely wasn't running powertoys elevated. Plus, since this bug also repros with the Powertoys Settings app, it's not something specific to the Terminal's code. Otherwise, the PowerToys Settings app would be doing the same thing, which I doubt we are 😉
Maybe the OS is routing input messages weirdly? Perhaps there's a weird interaction going on with an always-on-top window and the input routing for a XAML Island. @Austin-Lamb or @ocalvo could you comment more? Do you have any idea why this window might prevent a XI application from receiving mouse input? Maybe something with a CoreInputSite? (those words are sticking in my brain but might be totally unrelated)
Now that I'm thinking on it more, there is one other window class we use, specifically for the "drag region" of the Terminal window. See NonClientIslandWindow.cpp:L33-L88 I doubt that has anything to do with it though, since IIRC when this was occurring to me, it wasn't just the titlebar that couldn't be clicked on, but any of our XAML elements.

@zadjii-msft
the PowerToys Settings app also uses XAML Islands.

@zadjii-msft
regarding this line:
https://github.com/microsoft/PowerToys/blob/16528888df33b3703198339e8af78fc2b8a7bb69/src/common/d2d_window.cpp#L201
it's only called once when PowerToys starts, so it's unlikely that it overwrites:
https://github.com/microsoft/terminal/blob/24b8c13bd05092517322cac1f03a2c6f61b6e398/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp#L43
still, that maybe the place to monitor, could you build a debug version of Terminal that checks if the window class changes to PToyD2DPopup?

The Terminal is a red-herring. Since the bug repros the same with the PowerToys Settings app, then whatever's at the root cause of this issue must not be local to something the Terminal is doing. If building a version of the Terminal to check if our window class changes to PToyD2DPopup would help, then the same thing would be possible to do with the PowerToys settings app. This is why I think the root cause is something outside the Terminal or PowerToys codebase, and might be a more fundamental input routing issue.
As it stands, I'm not currently experiencing this bug anymore - the last time this happened to me was a few months ago. If I ever get a live repro again, I'll be sure to ping this thread.

@zadjii-msft

then the same thing would be possible to do with the PowerToys settings app

Yes, but I haven't ever seen the bug and I don't know how to reproduce it.

This is why I think the root cause is something outside the Terminal or PowerToys codebase

I agree, the idea of monitoring the class name in Terminal is to validate that the Steps Recorder log is correct, since it shows that the UI element belongs to the Terminal process, if that is true, it means that it has been injected.

It's been a while since we've had movement on this. Can anyone confirm if this behavior is still present in v0.43.0?

My current dev setup doesn't use multiple monitors so I'm unfortunately unable to attempt to hit this myself anymore. I think I left sufficiently detailed repro instructions that someone on the owning team should be able to repro it if it's still an issue but I won't be able to confirm/deny anything right now from my end.

I'm unable to repo it on 0.43.0
But my understanding is that this was not an easy to repro issue.

@mcdonamw we should really have this as a new issue

Same behavior as @mcdonamw for me

Unable to navigate in the left menu

This certainly is not the issue for everyone here, but I wanted to document my fix once I figured it out: DisplayFusion.
DisplayFusion was running in the background (and, I assume, conflicting with PowerToys). I tried uninstalling it, after which the issue was not resolved. Originally, this lead me to believe that DisplayFusion was not the cause of the issue, but I later found that there was a background service running (found via msconfig) for DisplayFusion even though it had been 'uninstalled' via the Control Panel.
Disabling the background service and restarting my machine resolved the issue.


Clear push notifications on Android if Gregor says we have 0 unread messages

@keybase/react-hackers
(This doesn't do anything on iOS, because setting the app badge to 0 already clears push notifications there.)

@chrisnojima updated and retested, thanks


Initialize sample container evergreen variant

Per the initial offering document, this change adds the necessary YAML configurations to start testing the java driver desired tasks in containers.
JAVA-5113

This PR clearly shouldn't be merged as is, given that it relies on a fork of drivers evergreen tools and also double the size of the test matrix (by testing both on "linux" and "container").
What sort of feedback are you looking for?

Apologies for the misunderstanding, this PR was meant to just facilitate back-and-forth discussion for how to coordinate integration of container tasks into this repo.
Container tasks is currently in beta, and the instance hosts do not support IPV6 right now. The changed line that points to a fork of drivers tools was only intended to demonstrate what was necessary on our end to get the test task to succeed in our setup, not to suggest it should merge in as-is. A code change on the drivers tools repo side to disable IPV6 just for container tasks would work, but it seems like that isn't desired and we should revisit this when the feature is more production ready and can fulfill this project's networking needs.
Going to close this PR and mark this ticket as blocked on BUILD-17846.


fix implementation issue for instanceNormalization op

Sorry to introduce this issue by referring to implementation of batchNormalization with missing updating sub and add computing to totally align with pseudo-code of instanceNormalization op.
@fdwr @huningxin PTAL, thanks

Done to address your comments, please take another look, thanks @huningxin .


Add rural / urban to the CEJST download files per Census tract

Is your feature request related to a problem? Please describe.
We should be able to get this information from the Census and people have been asking for it for their analysis. For example, OSTP is using it for some equity analysis. Having this information available would save them a step.
Describe the solution you'd like
Add a column which designates a tract as either urban or rural for each census tract ID.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
OSTP and others have asked for this feature, could also show on the side panel if desired.

DOT's RAISE program would also benefit from this.


Edit request command bug

I cannot edit NRIC of the request. Only the editing of NRIC field for request is missing.

Fixed in #204


MAHOUT-1974 CUDA support

Initial PR for CUDA bindings support through JCuda

Tests pass on my system:
Mahout JVM Sparse multiplication time: 1914 ms.
Mahout JCuda Sparse multiplication time: 195 ms.
- sparse mmul at geometry of 1000 x 1000 %*% 1000 x 1000 density = .2.  5 runs
Mahout JVM Sparse multiplication time: 43 ms.
Mahout JCuda Sparse multiplication time: 11 ms.
- sparse mmul at geometry of 1000 x 1000 %*% 1000 x 1000 density = .02.  5 runs
Mahout JVM Sparse multiplication time: 2 ms.
Mahout JCuda Sparse multiplication time: 1 ms.
- sparse mmul at geometry of 1000 x 1000 %*% 1000 x 1000 density = .002.  5 runs
UserSetCUDATestSuite:
Mahout JVM Sparse multiplication time: 45 ms.
Mahout JCuda Sparse multiplication time: 10 ms.
User Defined sparse mmul at geometry of 1000 x 1000 %*% 1000 x 1000 density = 0.02 3 runs : 10 ms
- User Defined sparse mmul at geometry of 1000 x 1000 %*% 1000 x 1000 density = 0.02 3 runs

@nsakharnykh @rawkintrevo I intend to have dense hammered out on Sunday.

@nsakharnykh , @rawkintrevo, I ran out of time tonight to finish out dense %*% dense and dense %x% sparse; went down a rabbit hole woth the NVIDIA c api docs for cusparse.  I noticed that JCuda supported only a single dense dense dgemm algorithm, with column major-matrices.  Most mahout matrices are row-major, but i began considering the dense sparse multiplication, and was slightly thrown off by what seems to be required csr compression.  it seems that sparse matrices should be compressed as csc since the. Anyways I ended up in the LAPACK fortran;  apologies for not finishing it up tonight guys, I got off on a long tangent and ran out of time.
I pushed my beginning work up to my MAHOUT-1974 branch.  Nothing really worth looking at right now, but I wil' make a PR against this when I get the densework together.
Regardless, I should have at least  a quick n dirty version ready to go soon,  while i work out what we'll need for experiments and benchmarking.  We can still discuss and consider different SPARK configurations tomorrow with out dense cases.  but I'd of course like to get this right.
As I mentioned on the last call we allow a "Sparse" DRM's in-core components to be both sparse and dense.  Currently the threshold for conversion of a DRM block to be changed from a sparse to a dense matrix is pretty high (25% non zero estimate).  In the future we will need to allow the user to set the sparsity somehow.
FYI:
https://github.com/apache/mahout/blob/master/math-scala/src/main/scala/org/apache/mahout/math/scalabindings/package.scala#L431

@andrewpalumbo regarding column-major: yes, this is the default mode for CUBLAS, sorry I think I didn't mention it in my original email. There are a couple options we can exercise here. 1. We can use transposed versions of gemm routines if the input matrices are row-major. I think the output matrix will be always column-major so we'll have to transpose it by using geam if we want to keep it in a different format. 2. We can also keep the dense matrices in column-major format on the GPU and move between csc and csr formats for sparse matrices by using CUSPARSE conversion routines like csr2csc. There are also existing API functions in CUSPARSE to convert sparse to dense csr2dense and the other way around dense2csr. I think we should try to use the available conversion APIs from CUSPARSE as much as possible to avoid writing this on our own.

@nsakharnykh I have my MAHOUT-1974 branch that is almost complete with dense, etc (less the column major issues.  We'd discussed just making a PR against this. but It may be easiest if you just went ahead and pushed this to MAHOUT/CUDA, and then I'll make a PR against that, which will be public so that others may comment on it.

@nsakharnykh https://github.com/andrewpalumbo/mahout/tree/MAHOUT-1974/cuda ^^

@andrewpalumbo Ok, sounds good. I'll try to push what I have as soon as I have some time in front of my laptop. I'm currently at GTC so my schedule is a bit fragmented.

Great, thanks.  I figured you were there, and very busy, I'll keep working on my end, and there should be no (or few conflicts)..  no rush, since my branch is based off of yours.

looking awesome @nsakharnykh @andrewpalumbo
Before merging, don't forget to fill out
https://github.com/apache/mahout/blob/master/website/docs/native-solvers/cuda.md

@rawkintrevo I asked @nsakharnykh  to just go ahead and push this to the mahout/CUDA branch,  since he's already up at GTC, and we're pushing this through as quickly as possible, and has spotty time to do this. I will immediately open up a [WIP] PR from my  https://github.com/andrewpalumbo/mahout/tree/MAHOUT-1974/cuda  branch (on top of his) and will fill out the md from there.

Just checking if we need to keep this PR open - I'm guessing this is already merged in feature branch: https://github.com/apache/mahout/tree/CUDA


create executable file : Ubuntu, Windows and MacOS

[x] App Image- Arch Linux
[ ] Ubuntu
[ ] Windows
[ ] MacOS

A good solution can be to use TravisCI to automatically make & upload the executables.


Import a compatibly-named postgresql dialect module

Ping @wesm. This was removed in zzzeek/sqlalchemy@c59bf00. I think I was just being lazy. Can you merge this?

done

thanks!


Fix CircularProgressIndicator never shown on first load

I added on the AppReleasesState class the variable "isVersionReleaseFetchFinished", which is changed when the fetch of the Flutter version is done.

Thanks for the feedback @leoafarias. I pushed the changed.

Thank you! @federicoviceconti

@all-contributors please add @federicoviceconti for bug


Load EntitySchema

Is it possible to load EntitySchemas the way Entities are loaded at MikroOrmModule?
How could it be done?
Use Case:
export const fooSchema = new EntitySchema<Foo>({
  class: Foo,
  properties: {
    id: { type: 'uuid', primary: true },
    name: { type: 'string' },
  },
});

  imports: [MikroOrmModule.forFeature(/* ??? */)],

Note: Foo is a plain class (not annotated with @Entity decorator)

forFeature is not for loading entities, it just registers repositories. it should work the very same way, just put the entity class in there (and it will probably work with entity schema instance too). forFeature accepts a string name or any object with name property (both class and entity schema instance works this way).


guzzle do not release connection?

function conn() {
	$client = new GuzzleHttp\Client();
	$res = $client->get('http://localhost:3000');
}

while (true) {
	conn();
	sleep(3);
}

i run the code above and find that the number of connections incease slowly.
tcp6       0      0  ::1.3000               ::1.60871              ESTABLISHED
tcp6       0      0  ::1.60871              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60870              ESTABLISHED
tcp6       0      0  ::1.60870              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60869              ESTABLISHED
tcp6       0      0  ::1.60869              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60868              ESTABLISHED
tcp6       0      0  ::1.60868              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60866              ESTABLISHED
tcp6       0      0  ::1.60866              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60861              ESTABLISHED
tcp6       0      0  ::1.60861              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60858              ESTABLISHED
tcp6       0      0  ::1.60858              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60850              ESTABLISHED
tcp6       0      0  ::1.60850              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60849              ESTABLISHED
tcp6       0      0  ::1.60849              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60848              ESTABLISHED
tcp6       0      0  ::1.60848              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60846              ESTABLISHED
tcp6       0      0  ::1.60846              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60845              ESTABLISHED
tcp6       0      0  ::1.60845              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60844              ESTABLISHED
tcp6       0      0  ::1.60844              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60843              ESTABLISHED
tcp6       0      0  ::1.60843              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60841              ESTABLISHED
tcp6       0      0  ::1.60841              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60840              ESTABLISHED
tcp6       0      0  ::1.60840              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60839              ESTABLISHED
tcp6       0      0  ::1.60839              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60837              ESTABLISHED
tcp6       0      0  ::1.60837              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60836              ESTABLISHED
tcp6       0      0  ::1.60836              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60835              ESTABLISHED
tcp6       0      0  ::1.60835              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60833              ESTABLISHED
tcp6       0      0  ::1.60833              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60832              ESTABLISHED
tcp6       0      0  ::1.60832              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60830              ESTABLISHED
tcp6       0      0  ::1.60830              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60829              ESTABLISHED
tcp6       0      0  ::1.60829              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60827              ESTABLISHED
tcp6       0      0  ::1.60827              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60826              ESTABLISHED
tcp6       0      0  ::1.60826              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60820              ESTABLISHED
tcp6       0      0  ::1.60820              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60818              ESTABLISHED
tcp6       0      0  ::1.60818              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60817              ESTABLISHED
tcp6       0      0  ::1.60817              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60816              ESTABLISHED
tcp6       0      0  ::1.60816              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60814              ESTABLISHED
tcp6       0      0  ::1.60814              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60813              ESTABLISHED
tcp6       0      0  ::1.60813              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60812              ESTABLISHED
tcp6       0      0  ::1.60812              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60811              ESTABLISHED
tcp6       0      0  ::1.60811              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60809              ESTABLISHED
tcp6       0      0  ::1.60809              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60808              ESTABLISHED
tcp6       0      0  ::1.60808              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60807              ESTABLISHED
tcp6       0      0  ::1.60807              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60805              ESTABLISHED
tcp6       0      0  ::1.60805              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60804              ESTABLISHED
tcp6       0      0  ::1.60804              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60803              ESTABLISHED
tcp6       0      0  ::1.60803              ::1.3000               ESTABLISHED
tcp6       0      0  ::1.3000               ::1.60801              FIN_WAIT_2
tcp6       0      0  ::1.60801              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60798              FIN_WAIT_2
tcp6       0      0  ::1.60798              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60797              FIN_WAIT_2
tcp6       0      0  ::1.60797              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60796              FIN_WAIT_2
tcp6       0      0  ::1.60796              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60794              FIN_WAIT_2
tcp6       0      0  ::1.60794              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60793              FIN_WAIT_2
tcp6       0      0  ::1.60793              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60792              FIN_WAIT_2
tcp6       0      0  ::1.60792              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60790              FIN_WAIT_2
tcp6       0      0  ::1.60790              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60787              FIN_WAIT_2
tcp6       0      0  ::1.60787              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60786              FIN_WAIT_2
tcp6       0      0  ::1.60786              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60784              FIN_WAIT_2
tcp6       0      0  ::1.60784              ::1.3000               CLOSE_WAIT
tcp6       0      0  ::1.3000               ::1.60783              FIN_WAIT_2
tcp6       0      0  ::1.60783              ::1.3000               CLOSE_WAIT

guzzle version: 6.0
php -v: 5.6.3
can you help me with this? thanks
thanks.

I highly recommend that you do not create new clients over and over. The reason the connection is kept open is because there are a couple circular references that are preventing the client from being cleaned up prior to circular references being garbage collected. I think you can force garbage collection using gc_collect_cycles to address this.

Actually, looks like curl_reset does not remove callbacks for some reason. I've pushed a fix that specifically unsets any callbacks, which allows references to be cleaned up when reusing curl handles. This fix is in master and will be in the next release.

thank you :+1:


⚠ Bofrost.lu has degraded performance

In 38462f0, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 914 ms

Resolved: Bofrost.lu performance has improved in 0afb3e1 after 6 minutes.


Fix too many arguments warning

Hi Madalina Giurgiu,
Thank you for this great project.
I’m sending a pull request from Japan. I was looking for a tool to find ecDNA with Nanopore sequencing.
While trying the tool, I found a small warning on line 160 of the Bash script. I asked ChatGPT to help fix it, and I’m sharing the fix in this pull request. If I find anything else, I will send another pull request.
Thank you. Have a great day!

The warning was as follows:
decoil-viz: 160 行: [: 引数が多すぎます

I think the English equivalent would be:
decoil-viz: line 160: [: too many arguments


[test-case-reporting] Create default timestamps for table rows

Under all circumstances, I believe -- I don't think we fill these fields in manually. We would use these fields to sort builds/test runs chronologically &c.


Arguments not parsed

When running this the arguments given to main don't get parsed.
When running ./map-matching.sh action=import datasource=file.pbf
the arguments passed to CmdArgs.read are ["action=import datasource=file.pbf"] and not ["action=import", "datasource=file.pbf"]. Consequently when getting the action it gets "import datasource=file.pbf" and it's empty for the datasource.
I've made a small adjustment to run it locally, if it's an issue I can make a PR, but not sure if it's just me.
Anyway, I'm running on OSX El Capitain, and I'm using zsh
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

Running this in a docker container (maven:3.3.3-jdk-8), with bash and without the changes, also causes this problem.
Thank you

Can you update to the latest master. Should have been fixed ealier :)
https://github.com/graphhopper/map-matching/commit/0fa74fbeefd4a587a2aa6ac19d340b1ab72e6ec8


ReadableStream missing with typescript 2.0.2

I ran into a spectacular problem when I upgraded to typescript 2.0.2, details and fixes on this upstream issue
https://github.com/Microsoft/TypeScript/issues/10708#issuecomment-244760507

Seems like a TS issue, not Aurelia.

We should be able to add whatwg-streams typings as a dependency to the TypeScript skeletons though.


Importing GeoTIFF source causes compilation errors in Angular

Describe the bug
I am using OpenLayers 6.15.1 in an Angular 14 application and when I import the source GeoTIFF I get the following compilation errors:
Error: node_modules/geotiff/dist-node/geotiffimage.d.ts:67:118 - error TS2304: Cannot find name 'Source'.
67     constructor(fileDirectory: any, geoKeys: any, dataView: DataView, littleEndian: boolean, cache: boolean, source: Source);

Error: node_modules/geotiff/dist-node/geotiffimage.d.ts:75:13 - error TS2304: Cannot find name 'Source'.
75     source: Source;

Error: node_modules/geotiff/dist-node/geotiffimage.d.ts:134:100 - error TS2304: Cannot find name 'AbstractDecoder'.
134     getTileOrStrip(x: number, y: number, sample: number, poolOrDecoder: import("./geotiff").Pool | AbstractDecoder, signal?: AbortSignal | undefined): Promise<ArrayBuffer>;

To Reproduce

ng new test-app
cd test-app
npm install ol
Add import GeoTIFFSource from 'ol/source/GeoTIFF'; to app.component.ts
ng build

Expected behavior
No compilation errors.
Please confirm if this should be reported on the geotiff repository instead.

This is an issue with geotiff.js, which the GeoTIFF source depends on. A quick cure would be to configure your tsconfig.json to have skipLibCheck: true in compilerOptions.

Thanks @ahocevar. I will create an issue on the geotiff repository.

That issue was already fixed in geotiff.js (see https://github.com/geotiffjs/geotiff.js/pull/295), but it has not been released yet.

This issue still exists with openlayers v7.1.0. The last comment on this issue was back in August. Is there a fix for this that doesn't require me to set skipLibCheck: true in compilerOptions?

Just checked npmjs and it says the last release of geotiff was 7 months ago even though this issue claims they did a release 29 days ago. I posted a message on geotiff asking why there was no release.

GeoTIFF has released the build containing the fix for the above (2.0.6). Please update openlayers to use the new version.


[multi-chat] fix: trust all proxies.

The original setting will cause the front end to only generate http:// links, and requests for these resource files will be blocked by the browser.

Even if the environment variable has been set, it will be ignored by Laravel.

After this setting, Kuwa works well under https, but I am not good at PHP. Please re-evaluate whether this modification is appropriate.

Hi @Phate334,
I doubt that Laravel will not respect environment variables in docker.
Could you try to solve the issue by changing APP_URL in docker/multi-chat/app.env and rebuilding the image?
Thanks.

Could you try to solve the issue by changing APP_URL in docker/multi-chat/app.env and rebuilding the image?

same problem on app.env

Do Kuwa or Laravel have any solutions to set up custom certificates for TLS? Laravel cannot generate HTTPS URLs when the reverse proxy forwards to Kuwa on port 80.
https://laravel.com/docs/10.x/requests#configuring-trusted-proxies
====
I use mkcert and the Caddy server for debugging.

Caddyfile

kuwa.localhost {
  tls /kuwa-cert/kuwa.localhost.pem /kuwa-cert/kuwa.localhost-key.pem

  reverse_proxy host.docker.internal:8080
}

compose.yaml

services:
  caddy:
    image: caddy:2.8.4-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - ./kuwa-cert:/kuwa-cert
      - ./Caddyfile:/etc/caddy/Caddyfile

To configure custom TLS certificates in the Dockerized version of Kuwa, you can modify the Nginx configuration within the "web" container. Here's an example:
diff --git a/docker/web/templates/default.conf.template b/docker/web/templates/default.conf.template
index 56319a66..37076a67 100644
--- a/docker/web/templates/default.conf.template
+++ b/docker/web/templates/default.conf.template
@@ -2,6 +2,22 @@ server {
     listen 80;
     listen [::]:80;
     server_name ${DOMAIN_NAME};
+
+    # Redirect HTTP to HTTPS
+    return 301 https://$host$request_uri;
+}
+
+server {
+    listen 443 ssl;
+    listen [::]:443 ssl;
+    server_name ${DOMAIN_NAME};
+
+    # SSL Configuration
+    ssl_certificate /etc/letsencrypt/live/${DOMAIN_NAME}/fullchain.pem; # Replace with your certificate path
+    ssl_certificate_key /etc/letsencrypt/live/${DOMAIN_NAME}/privkey.pem; # Replace with your private key path
+    ssl_protocols TLSv1.2 TLSv1.3;
+    ssl_ciphers HIGH:!aNULL:!MD5;
+
     root /app/public;

     add_header X-Frame-Options "SAMEORIGIN";

While this pull request's trusted proxy configuration is valuable for scenarios using cloud load balancers, we can enhance its adaptability. To ensure broader applicability, I plan to make the trusted proxy configurable via an environment variable after this pull request is merged.
Thank you for your contribution!

To ensure broader applicability, I plan to make the trusted proxy configurable via an environment variable after this pull request is merged.

That's great.


ShareMenuPackage is not abstract and does not override abstract method createJSModules

Hi.
Trying to run the example code from the Readme.
I did automatic installation with react-native link and then verified and added some missing pieces in MainActivity.java and AndroidManifest.xml.
Upon running react-native run-android I get this error:
[...]/node_modules/react-native-share-menu/android/src/main/java/com/meedan/ShareMenuPackage.java:15: error: ShareMenuPackage is not abstract and does not override abstract method createJSModules() in ReactPackage
public class ShareMenuPackage implements ReactPackage {
       ^
1 error
:react-native-share-menu:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

    "react-native": "^0.39.0",
    "react-native-share-menu": "2.2.0"

What can I do here?
Thank you.

Can you please try with a newer react-native version? Like 0.51 for example?

@caiosba, I have made a fix for myself, taking multiple posts like this as a proven solution
https://github.com/luggit/react-native-config/issues/154#issuecomment-338487947

Nice, would be great to know if it's needed only for an older React Native version (like 0.39 for example). Did you see if it happens on React Native 0.51? I was not able to reproduce it. But many thinks for submitting this solution!

No, I did't verify it on 0.51.x as I had troubles with updating my app.
On Fri, 1 Mar 2019, 05:39 Caio Almeida<EMAIL_ADDRESS>wrote:

Nice, would be great to know if it's needed only for an older React Native
version (like 0.39 for example). Did you see if it happens on React Native
0.51? I was not able to reproduce it. But many thinks for submitting this
solution!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/meedan/react-native-share-menu/issues/34#issuecomment-468531023,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgfMYY1fytxRNFe_Vm8RYZ5uzuCYU_Eks5vSKEAgaJpZM4ZBlvH
.


Allow Roundcube to connect to IMAP server

Is your feature request related to a problem? Please describe.
After the conversion, it is impossible to log in to Roundcube Webmail. The error indicates that the connection to the IMAP server failed.
It turns out this is because SELinux is blocking outbound network connections from httpd.
Describe the solution you'd like
Set the httpd_can_network_connect boolean to True during the conversion, or apply a more specific policy change if feasible.
Describe alternatives you've considered
Manually change the SELinux boolean after the conversion.
setsebool -P httpd_can_network_connect 1

From what I understand, httpd_can_network_connect is true by default. So, it is usually changed manually.
I would prefer not to alter any SELinux settings manually changed before conversion process, because this might be unexpected for the administrator and could affect the security policy
However, we could add a pre-check to the conversion process. This pre-check would verify if httpd_can_network_connect is true. If it is not, a warning message could be displayed to the user.


Sets headers in fetch client request to backend. Fixes #38

Sets headers in fetch client request to backend which currently causes payload to be 'undefined'.
Refactor to remove the fetch() duplicate code to its own module.

@acyuta108 thanks for investing the time back then 🙌 I'm closing this PR because it's out of date and cleaning up this repo now. Happy to accept a new PR though.

Np. Thanks for your good work and effort.
On Sun, Jan 15, 2017 at 6:52 PM Nik Graf<EMAIL_ADDRESS>wrote:

@acyuta108 https://github.com/acyuta108 thanks for investing the time
back then 🙌 I'm closing this PR because it's out of date and cleaning up
this repo now. Happy to accept a new PR though.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/serverless/serverless-graphql/pull/39#issuecomment-272751723,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA4V3xaB68IioQ6PNgPyRH6L9PPV69dkks5rSr9BgaJpZM4IZvqT
.


[RFC] Support Function Calling agent type in Agent framework

Problem statement
In our current agent framework, we support both flow agent and REACT chat agent. Recently, a new chat agent type called function calling has been introduced, offering more powerful capabilities to generate contextually relevant, formatted text output. This output can be used by developers to trigger method calls or API requests, referred to as tools. Function calling is an inherent capability of the LLM itself. Function calling provides a more structured and organized approach, enabling deterministic results from large language models (LLMs) with a reduced error rate. This advanced functionality requires additional fine-tuning in pretrained models, which is now supported by the latest models, such as GPT-3.5/4 and the Claude 3 family.
Proposed Solution
The input and output are well-structured when using function calling with an LLM. Take bedrock's Claude 3 as example (see function calling full API):
Input:
{
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": int,
    "system": string,
    "messages": [
      ...
    ],
    "tools": [
        {
                "name": string,
                "description": string,
                "input_schema": json

        }
    ],
    "stop_sequences": [string]
}

The tools here is a parameter in the API calling instead of part of prompt. Also, the output would be in the following structure:
{
  "type": "message",
   ...
  "content": [
    {
      "type": "text",
      "text": "..."
    },
    {
      "type": "tool_use",
      "name": "..",
      "input": {
       ...
      }
    }
  ],
  "stop_reason": "tool_use/end_turn",
}

If we detect the keyword tool_use, we should execute the tool; Otherwise, we should return the result to the user. This input-output structure and execution logic are not compatible with the current REACT agent. Therefore, we propose adding another agent type to configure this functionality.
{
  "type": "function_calling"
  "llm": {
    }
  },
  "memory": {
    "type": "conversation_index"
  },
  "tools": [
  ]
}

Implementation details
We could still reuse part of code in Class MLChatAgentRunner, like memory. But the logic to parse the response from LLM and extract next step should be changed. Also, logic to format the prompt should also be different since tools now are parameters.

I can be assignee for this new attribute.

Can you provide more context? Such as the request to call the agent or the formatted tool description.

We could still reuse part of code in Class MLChatAgentRunner, like memory. But the logic to parse the response from LLM and extract next step should be changed. Also, logic to format the prompt should also be different since tools now are parameters.

I would prefer a new class other than modifying existing code in MLChatAgentRunner.

Can you provide more context? Such as the request to call the agent or the formatted tool description.

To call agent, we still use the same parameters as REACT one. And following is a tool description:
{
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "input_schema": {
              "type": "object",
              "properties": {
                "location": {
                  "type": "string",
                  "description": "The city and state, e.g. San Francisco, CA"
                }
              },
              "required": ["location"]
            }
          }

We could still reuse part of code in Class MLChatAgentRunner, like memory. But the logic to parse the response from LLM and extract next step should be changed. Also, logic to format the prompt should also be different since tools now are parameters.

I would prefer a new class other than modifying existing code in MLChatAgentRunner.

My plan is create two different class like ReactChatAgentRunner/ FunctionCallingAgentRunner, both reuse existing code of MLChatAgentRunner and then implement their own code to parse response and format input.

W

Can you provide more context? Such as the request to call the agent or the formatted tool description.

To call agent, we still use the same parameters as REACT one. And following is a tool description:
{
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "input_schema": {
              "type": "object",
              "properties": {
                "location": {
                  "type": "string",
                  "description": "The city and state, e.g. San Francisco, CA"
                }
              },
              "required": ["location"]
            }
          }

Thanks for sharing these. Should user specify parameters like this when creating a tool?

My plan is create two different class like ReactChatAgentRunner/ FunctionCallingAgentRunner, both reuse existing code of MLChatAgentRunner and then implement their own code to parse response and format input.

It makes sense. Just wondering if ReactChatAgentRunner will be the original MLChatAgentRunner.

This looks good, one question: Did we implement any benchmark on this? The accuracy between agent framework tool selection and function calling in API?

@jngz-es can you please help look at this issue?


keyof t should be a subtype of string

TypeScript Version:  2.2.1
Code
// helpers to map types
type Dictionary = {
    [key: string]: string;
};
type StrictDictionary<t> = {
    [P in keyof t]: string;
};

interface IBaseEntity {
    name: string;
    properties: Dictionary;
}
interface IEntity<t> extends IBaseEntity {
    properties: StrictDictionary<t>;
}

Expected behaviour:
No Compile error.
Actual behaviour:
Compile error:
StrictDictionary is not assignable to a Dictionary.

I suppose if the source is a generic mapped type, and the target only has string indexer, then the two types are relatable iff the template type of the source is relatable to the type of the index signature of the target.

So you're saying if we constrain the generic type in StrictDictionary<t> then theoretically it would be reasonable for this to work?

I am saying this is a new type compatibility rule we need to encode in the compiler.

It would also be nice if the return type of Object.keys() on a StrictDictionary<t, u> was keyof t.

The problem with that idea, @cwmacdon is that our "StrictDictionary" might actually be something that extends StrictDictionary<t> and so Object.keys() would return strings that are not keyof t. Yet another use-case for nominal typing...

Is it in the nightly build yet?


Not able to match % in query parameters

If my request has a query parameter such as %5C, the request doesnt seem to match.
for example
"ex_UniqueName" : {
"matches" : "asdf%5Cjkl"
}
gives a file not found exception. It works fine if i remove %

As per the README, please can you post questions over on the mailing list. I also suggest you post the full details of the request you made.


Upgrade to cloud_firestore: ^2.0.0

Is there a plan to upgrade cloud_firestore? I would like to use some of the newer features in my app.
Thank you :)

Hi @petoknm sorry didn't know there is a new version :) right now we are focused on https://github.com/flyerhq/flutter_chat_ui/issues/24 but I'll try to see if there are any breaking changes and how much time this update will take

Doesnt take long at all I think? I did that upgrade myself and Im not even sure if anything had to be changed...

Still iOS, Android and web needs to be checked and verified, but yeah, can probably be done tomorrow


function to convert a integer into a binary number

I'm in a 2-year-degree in IT in France and I love this algorithms. I use it instead of a calculator or a site because I know how it is working ! I'm proud.

@dubesar please review for Hacktoberfest


Added edge osx to the list

Tested as working as of at least Version 89.0.774.75 (Official build) (64-bit)

Thanks for the update!


fastrtps1.5.0 participant discovery problem

Software ENV: Ubuntu 16.04
fastrtps version: 1.5.0
Resource: source code
Hardware ENV: two hosts located in a LAN with IP address as, e.g., A(<IP_ADDRESS>), B(<IP_ADDRESS>)
Problem description:
Case 1: When I run the simple talker/listener case, e.g., talker(publisher) on A, listener(subscriber) on B, it works well.
Case 2: The case is more complex. On host A, start a participant which pub some topic, while on the same host A, there is two subscribers subscribing this topic. On B, start a participant which has a subscriber subscribing the same topic. The result is: the subscriber of the participant on host B is not discovered by participant on host A; but the two subscribers of host A have been discovered. In other words, when there is more subscribers with the same topic subscribed located on different hosts, the ones NOT located with same host as the publisher is not discovered correctly.
Any help is appropriated, thanks in advance!

Hi @Tony301X
I just tested with our HelloWorldExample and everything worked fine.

As you can see, the upper pane is connected to a machine named ubuntu59 while the rest of panes are local. I launched a subscriber in ubuntu59 (like in your host B), and two subscribers and a publisher on my machine (acting as host A).
Can you provide us more information to reproduce the issue like each instance configuration, the exact command used and the launching order?
Thank you very much.

As we are unable to reproduce the issue and no more information was provided, I will close the issue.


Add individual classification for package version

As classification of packets could be designed one ratings scheme for package version. This proposal for including packages that already exist and are never updated are improved.
Example:

What opinion on the matter? and if it's possible?

I'm not sure what you mean.  It sounds like you're talking about a rating feature.  Do you want NuGet package manager to keep track of package ratings, or is this a request for nuget.org, or what?

Rating Feature
Resume:
It sounds like you're talking about a rating feature. Do you want NuGet package manager to keep track of package ratings
It would be a 5-star rating control and a way to also organize the list of packages in the polls.

@netdragoon
Thanks for this suggestion. As the NPE is only a client library, this feature would be a bit strange here - we cannot save the ratings anywhere.
I suggest to post the feature to https://github.com/nuget/nugetgallery. Do you agree?

I think this feature isn't possible in NPE as we don't have a server to store this, so closing this one.


List features in README

See https://github.com/double-commander/doublecmd#key-features### or the Features section at https://www.mucommander.com/

That's not a bad idea, especially since I myself don't always remember all the features that I've added long ago.


[Release 1.10] Chery-pick Mongo serialization fix, Service Bus delay scheduling fix

Cherry picks #2858, #2875 into Release 1.10

/ok-to-test


Fix headers error in RestUtilities request method

When running the app I encountered the following error:
ERROR in ../client-react/services/RestUtilities.ts
(58,27): error TS2345: Argument of type '{ method: string; headers: { [key: string]: string; }; body: string | Object; }' is not assignable to parameter of type 'RequestInit'.
Types of property 'headers' are incompatible.
Type '{ [key: string]: string; }' is not assignable to type 'Headers | string[][]'.
Type '{ [key: string]: string; }' is not assignable to type 'string[][]'.
Property 'find' is missing in type '{ [key: string]: string; }'.
ERROR in ../client-react/services/RestUtilities.ts
(62,18): error TS7006: Parameter 'response' implicitly has an 'any' type.
I added a fix.
My current OS is Ubuntu 17.10. When I used Windows I did not have this issue.

LGTM!  Thanks for this fix @alexandrunastase !


this doesn't seems right

https://github.com/slackhq/compose-lints/blob/f1ada1945d037e34b98ac9c33c89b0a99440b0e0/compose-lint-checks/src/test/java/slack/lint/compose/ContentEmitterReturningValuesDetectorTest.kt#L73C8-L81C17
 import androidx.compose.runtime.Composable

        @Composable
        fun Something() {
            Text("Hi")
            Text("Hola")
        }
        @Composable
        fun Something() {
            Spacer16()
            Text("Hola")
        }

function names are same with no args

It doesn't compile but that's not necessarily required for lints. PR is welcome if you want to change it though

Closing as this lacks context, feel free to revisit (with more detail)


Mark iptables rules with comment

I've tried to address docker/docker#18908 in a somewhat backwards compatible way.

exists checks if commented rule exists, then it checks if not commented rule exists if commented one is missing.
remove removes commented rule, then removes not commented rule if commented one is missing.
add and insert only insert commented rules.

All rules are installed with DispatchRule(), no more Raw() calls. I think it's better to make Raw() private and expose everything as a specific functions. Example:

Raw("-L", DockerChain) -> ListChainRules(iptables.Filter, DockerChain)

It probably makes sense to unify Exists() and DispatchRule() signatures.
cc @mavenugo, @thaJeztah

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

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

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

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

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

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

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

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

This got me thinking, maybe we should allow setting iptables path for libnetwork, where people could implement whatever logic they want.

LGTM

Any chance to move this forward?

@bobrik Maybe we can add a check if iptables supports -C then we can add comment in rules ? I assume people seldom downgrade iptable versions.

ping @mavenugo @mrjana @aboch @sanimej
This would be useful.

@bobrik It has been detected that this issue has not received any activity in over 6 months. Can you please let us know if it is still relevant:

For a bug: do you still experience the issue with the latest version?
For a feature request: was your request appropriately answered in a later version?

Thank you!
This issue will be automatically closed in 1 week unless it is commented on.
For more information please refer to https://github.com/docker/libnetwork/issues/1926

@fcrisciani wdyt?

We worked around this by moving our own rules into custom chains and managing only those. It seems like a cleaner way.

Docker version 19.03.8 still puts rules in default chains:
*filter
-A FORWARD -o br-ae36ceff05c9 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i br-ae36ceff05c9 ! -o br-ae36ceff05c9 -j ACCEPT
-A FORWARD -i br-ae36ceff05c9 -o br-ae36ceff05c9 -j ACCEPT

*nat
-A POSTROUTING -s <IP_ADDRESS>/32 -d <IP_ADDRESS>/32 -p tcp -m tcp --dport 8843 -j MASQUERADE

correction, *filter rules were generated from docker-compose, but when using pure docker this one still is in nat/POSTROUTING:
docker create -p 8843:8843 ...
docker start ...

# Generated by iptables-save v1.6.0 on Fri Mar 20 19:13:35 2020
*nat
:PREROUTING ACCEPT [322:31262]
:INPUT ACCEPT [26:3018]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [15:960]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d <IP_ADDRESS>/8 -m addrtype --dst-type LOCAL -j DOCKER
# vvvvvvvvv these 2 lines
-A POSTROUTING -s <IP_ADDRESS>/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s <IP_ADDRESS>/32 -d <IP_ADDRESS>/32 -p tcp -m tcp --dport 8843 -j MASQUERADEthis one
# ^^^^^^^^^ these 2 lines
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8843 -j DNAT --to-destination <IP_ADDRESS>:8843
COMMIT
# Completed on Fri Mar 20 19:13:35 2020


Fix behavior of recv() in the CLOSING state.

On our pre-prod servers, we hit this assertion 3 times in 4 hours after the upgrade. I haven't done any sort of analysis, I'll dive into it next week.

Aaaargh. We aren't out of the woods yet. I'm starting to think websockets doesn't track enough state to behave properly in all cases.

Just a quick heads up, websockets 5.0.1 has been in production for a couple weeks now and we hit this assert between 200 and 400 times per hour. So I've patched up websockets to - hopefully - help debug this.
My debugging effort is in this branch https://github.com/RemiCardona/websockets/tree/try_to_debug_assert I think the "per-object logging" is a useful feature which could also be extended to include this.side on protocol objects, but I haven't done so to keep things simple.
If any of this sounds useful to other websocket users/devs, I'll gladly shape this up into a proper PR.


Error in generating dart code for queries that use interfaces types

A query that I need to use in the project, returns an interface type. In the schema, there are specified a couple of implementations for this interface. If I try to use an implementation as the return type for the query, and generate the code from that, it doesn't work. Since the package doesn't see the expect type (the interface from the schema query), it's not able to generate the variables from the implemented type correctly. It generates an empty class.
Query:
getSimpleProductOffering(
    " SEO qualifier of product and its dimensions (eq: color, size) "
    productBySeoInput: ProductBySeoInput!
  ): ProductOffering!

Product Offering type in schema:
type ProductOffering {
  " Own prices of product "
  prices: [Price!]!
  " Details of product "
  product: Product!
}

Product Interface:
interface Product {
  code: String!
  " Particular Product's name "
  name: String!
}

MarketplaceDevice implementation for Product interface:
type MarketplaceDevice implements GenericDevice & Product {
  baseDeviceName: String!
  baseDeviceSeoId: String!
  "A brief description of the basic device that may vary depending on whether the user is currently authenticated"
  baseDeviceShortDescription: String
  categoryPath: [Category!]!
  "Unique product identifier in the shop domain."
  code: String!
  "List of descriptions for the device variant"
  descriptions: [String!]!
  "Requested product variant dimensions. For example, color, capacity, etc. Each type of device may have its own set of dimensions."
  dimensions: [Dimension!]!
  features: [Feature!]
  "List of images of the Product."
  images: [Image!]!
  keywords: String
  manufacturer: String
  "Marketing name of the product."
  name: String!
  " Description of the product which is used by search engines "
  seoDescription: String!
  seoTitle: String
  specifications: [Specification!]!
  "The Stock status of the Product."
  stockStatus: StockLevelStatus!
}

This is how we created the query on our side:
query  GetSimpleProductOffering($productBySeoInput: ProductBySeoInput!) {
  getSimpleProductOffering(productBySeoInput: $productBySeoInput) {
    ...ProductOffering
  }
}

And the Product Offering fragment:
fragment ProductOffering on ProductOffering{
  prices {
    ...PriceFragment
  }
  product {
    ... on MarketplaceDevice {
      ...MarketplaceDevice
    }
  }
}

We tried to rewrite the query in multiple ways: with fragments, without fragments, etc. In every version we get an empty generated class for the MarketplaceDevice attributes, like this:
class Fragment_ProductOffering_product {
  Fragment_ProductOffering_product();

  factory Fragment_ProductOffering_product.fromJson(Map<String, dynamic> json) {
    return Fragment_ProductOffering_product();
  }

  Map<String, dynamic> toJson() {
    final _resultData = <String, dynamic>{};
    return _resultData;
  }

  @override
  int get hashCode {
    return Object.hashAll([]);
  }

  @override
  bool operator ==(Object other) {
    if (identical(this, other)) {
      return true;
    }
    if (!(other is Fragment_ProductOffering_product) ||
        runtimeType != other.runtimeType) {
      return false;
    }
    return true;
  }
}

If we only include directly in the query, the variables from the interface only, they show up. As soon as you extend that with attributes from the implemented version, it doesn't do anything.

What version of the generator are you using?

And can you share your config?

@budde377 we're using graphql_codegen: ^0.11.2 with these overriden dependencies because of conflicts with other packages:
dependency_overrides:
gql_code_builder: ^0.5.1
gql: ^0.13.0

Are you able to try the pre release?

Can you share your build config?

@budde377
targets:
  $default:
    builders:
      graphql_codegen:
        enabled: true
        options:
          addTypename: false
          namingSeparator: '_'
          scalars:
            DateTime:
              type: DateTime
              fromJsonFunctionName: dateTimeFromJson
              toJsonFunctionName: dateTimeToJson
              import: ../scalars/scalars.dart
            ZonedDateTime:
              type: DateTime
              fromJsonFunctionName: dateTimeFromJson
              toJsonFunctionName: dateTimeToJson
              import: ../scalars/scalars.dart
            LocalizedString:
              type: Map<String,dynamic>
            Long:
              type: int
              fromJsonFunctionName: intFromJson
              toJsonFunctionName: intToJson
              import: ../scalars/scalars.dart
            Double:
              type: double
              fromJsonFunctionName: doubleFromJson
              toJsonFunctionName: doubleToJson
              import: ../scalars/scalars.dart

          clients:
            - graphql

You need to add typenames this should generate a class specific for your concrete type

@budde377 Tried that way as well, removing the option from there so it default to 'true'. Didn't work

@budde377 This is the generated file for the query:
query  GetSimpleProductOffering($productBySeoInput: ProductBySeoInput!) {
  getSimpleProductOffering(productBySeoInput: $productBySeoInput) {
    product {
      ... on MarketplaceDevice {
        baseDeviceName
        baseDeviceSeoId
        name
        code
      }
    }
  }
}

Query from the schema:
getSimpleProductOffering(
    productBySeoInput: ProductBySeoInput!
  ): ProductOffering!

These are the types involved from the schema:
interface Product {
  code: String!
  name: String!
}

type MarketplaceDevice implements GenericDevice & Product {
  code: String!
  name: String!
  baseDeviceName: String!
  baseDeviceSeoId: String!
  features: [Feature!]
}

simple_product_offering.graphql.dart.zip

@budde377 I forgot to generate it with typename enabled, this is it:
simple_product_offering.graphql.dart.zip

Looks right to me.
You are generating this class:  Query_GetSimpleProductOffering_getSimpleProductOffering_product. This is empty, as it should be because it is an interface with no applicable selection set on your query. You need to check that the product is in fact a MarketplaceDevice. You do this by checking if the class is an instance of Query_GetSimpleProductOffering_getSimpleProductOffering_product__MarketplaceDevice.
So your code would look something like:
final product = result. getSimpleProductOffering.product;

if (product is Query_GetSimpleProductOffering_getSimpleProductOffering_product__MarketplaceDevice) {
   // Do stuff.
}

this is very verbose, so if you extracted the inline fragment into an explicit fragment, you could write the same as
final product = result. getSimpleProductOffering.product;

if (product is Fragment_MPDevice) {
   // Do stuff.
}

where
fragment MPDevice on MarketplaceDevice {
        baseDeviceName
        baseDeviceSeoId
        name
        code
}

I'm trying to replicate that in the app

So let me get this straight, the problem is that you're missing properties on Fragment_ProductOffering_product. The properties in the generated file you have provided are correct. There should be no properties on this class.
You need to cast it as I described above and make sure you are adding typenames.

Here is an example that outlines what I am trying to say and how to work with it.
Given a schema

interface Species {
  id: ID!
  name: String!
}

type Person implements Species {
  id: ID!
  name: String!
  age: Int!
}

type Query {
  species(id: ID!): Species
}

and the query
query FetchSpecies($id: ID!) {
  species(id: $id) {
    id
    name
    ...FPerson
  }
}

fragment FPerson on Person {
  id
  age
}

the following holds.
final query = useQuery$FetchSpecies(...);
final species = query.parsedData?.species;
print(species?.id); // OK
print(species?.name); // OK
print(species?.age); // Wrong! Fails with type error. The age field is not on defined on this class

if (species is Fragment$FPerson?) {
  print(species?.age); // OK
}

The reason why you need to cast the species in this example, is because we do not know which concrete type we are going to return. A concrete type is type and opposed to interface and union types.
You may be able to argue that since there is only one concrete implementation of the interface, we know what concrete type it will be, but this will heavily limit our abilities to roll-out new concrete types implementing Species without breaking all our apps in production.
So if we perspectives this to your example, the species is the Product and the MarketplaceDevice is the Person types.

Happy it worked! Please feel free to update our documentation in the readme if you find the time. It'll help others in the same situation and take some work off me!

@budde377 I'd be glad to do it. I'll ping you here as soon as I've done it


Add support for custom clock renderers

This PR adds a support for custom clock renderers. A clock renderer become stateless (it was connected with the view before).
An user can easily change default clock renderer to preferred one. But the render performance may degrade a lit bit because of virtualization.

Sorry for the delayed response, but thank you for your contribution, this is definitely a better implementation :)!

Let me know if you want me to release a new version :)

I'm working on some performance improvements and when I implement them all, I'll let you know about a need to release a new version.


Link up dockerfile guidance and docker dependency management suggestions?

https://gds-way.cloudapps.digital/manuals/programming-languages/docker.html#content
https://gds-way.cloudapps.digital/standards/tracking-dependencies.html#docker-base-images

These have been linked so I'm going to close this issue. Thank you for raising it.


Add support for actor reentrancy

Describe the feature
The dapr core runtime is planning on supporting actor reentrancy. The bulk of this logic will be handled in dapr's runtime but the SDK will be responsible for:

Preserving the header dapr-reentrant-id
Providing the new config fields required by dapr/config

For more context on actor reentrancy, the design proposal can be found here: actor reentrancy
Release Note
RELEASE NOTE: ADD Support for actor reentrancy

This was merged in #112


build(CUDA): upgrade CUDA versions

Description

Remove workarounds and upgrade to the version that officially supports Ubuntu 22.04.
Related:

https://github.com/autowarefoundation/autoware/issues/3083
https://github.com/autowarefoundation/autoware.universe/issues/2330

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Docker CI:

https://github.com/autowarefoundation/autoware/actions/runs/4635477344
https://github.com/autowarefoundation/autoware/actions/runs/4635477685

https://github.com/orgs/autowarefoundation/discussions/3651#discussioncomment-6897536
Finally
mfc@mfc-leo:~$ find-cuda-versions --cuda 12.0 --os ubuntu2204
[cudnn x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[cudnn sbsa]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[nvinfer x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[nvinfer sbsa]
<IP_ADDRESS>-1+cuda12.0

[tensorrt x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[tensorrt sbsa]
<IP_ADDRESS>-1+cuda12.0

https://github.com/orgs/autowarefoundation/discussions/3651#discussioncomment-6897536
Finally
mfc@mfc-leo:~$ find-cuda-versions --cuda 12.0 --os ubuntu2204
[cudnn x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[cudnn sbsa]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[nvinfer x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[nvinfer sbsa]
<IP_ADDRESS>-1+cuda12.0

[tensorrt x86_64]
<IP_ADDRESS>-1+cuda12.0
<IP_ADDRESS>-1+cuda12.0

[tensorrt sbsa]
<IP_ADDRESS>-1+cuda12.0


Help Error for Igdm, need it working asap

when logging in with my correct credential information.
It shows this:

How would I fix this.

How would I fix this.

Hello, Karen. I think it's some maintenance. With this, it is necessary to wait for a return of the team and / or solution of the problem.
Hugs from Brazil.

I am having the same problem

How can i fix this and when can I have my Igdm ready?

ffs hurry

Hay tahaa48,
Look i understand your frustration, This is affecting my relationship with
my girl friend. (i am 16) I don't get it and i wish i could help but i
can't. Sorry.
Thanks
Adrian Farnam
On Sat, Apr 27, 2019 at 4:19 PM tahaa48<EMAIL_ADDRESS>wrote:

ffs hurry
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ifedapoolarewaju/igdm/issues/902#issuecomment-487261035,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5XUTTD2Q6TUYUW7V7BJFLPSPZQHANCNFSM4HI2KIHQ
.

Hay tahaa48, Look i understand your frustration, This is affecting my relationship with my girl friend. (i am 16) I don't get it and i wish i could help but i can't. Sorry. Thanks Adrian Farnam
…
On Sat, Apr 27, 2019 at 4:19 PM tahaa48 @.***> wrote: ffs hurry — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#902 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AL5XUTTD2Q6TUYUW7V7BJFLPSPZQHANCNFSM4HI2KIHQ .

Yeah ik I'm 16 too and iv got the exact same thing

Yeah i am so sad that i can't talk to My GF
On Sat, Apr 27, 2019 at 5:36 PM tahaa48<EMAIL_ADDRESS>wrote:

Hay tahaa48, Look i understand your frustration, This is affecting my
relationship with my girl friend. (i am 16) I don't get it and i wish i
could help but i can't. Sorry. Thanks Adrian Farnam
… <#m_-930160986466218321_>
On Sat, Apr 27, 2019 at 4:19 PM tahaa48 @.***> wrote: ffs hurry — You
are receiving this because you commented. Reply to this email directly,
view it on GitHub <#902 (comment)
https://github.com/ifedapoolarewaju/igdm/issues/902#issuecomment-487261035>,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5XUTTD2Q6TUYUW7V7BJFLPSPZQHANCNFSM4HI2KIHQ
.
Yeah ik I'm 16 too and iv got the exact same thing
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ifedapoolarewaju/igdm/issues/902#issuecomment-487265746,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5XUTRI2LD54DAV2S6PUCLPSQCOVANCNFSM4HI2KIHQ
.

hurry up

DO ADMIN NO ABOUT IT YET AND ARE THEY DOING SOMETHING
On Sun, Apr 28, 2019 at 3:33 AM faaizhaakhlaq<EMAIL_ADDRESS>wrote:

hurry up
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ifedapoolarewaju/igdm/issues/902#issuecomment-487307472,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5XUTR5UI7O6HHUNNON4CTPSSIQTANCNFSM4HI2KIHQ
.

Reply to this email directly, view it on GitHub
https://github.com/ifedapoolarewaju/igdm/issues/902#issuecomment-487307472,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5XUTR5UI7O6HHUNNON4CTPSSIQTANCNFSM4HI2KIHQ
.


feature/lazy-validation

Fixes #122
This PR adds lazy validation to schema and schema component classes. This keyword argument is passed into the validate method and is False by default. If True, the method will collect all SchemaError object that are raised during validation and raise a SchemaErrors exception.

SchemaError objects now contain the validated data, check object, and failure cases that gave rise the error.
SchemaErrors objects contain the collect schema errors raised during validation.

Codecov Report

Merging #207 into master will decrease coverage by 0.16%.
The diff coverage is 98.19%.

@@            Coverage Diff             @@
##           master     #207      +/-   ##
==========================================
- Coverage   96.58%   96.42%   -0.17%
==========================================
  Files          12       13       +1
  Lines         996     1118     +122
==========================================
+ Hits          962     1078     +116
- Misses         34       40       +6

Impacted Files
Coverage Δ

pandera/hypotheses.py
86.79% <33.33%> (ø)

pandera/schemas.py
96.05% <98.66%> (-1.05%)
:arrow_down:

pandera/checks.py
98.70% <100.00%> (ø)

pandera/decorators.py
90.90% <100.00%> (ø)

pandera/error_formatters.py
95.00% <100.00%> (-5.00%)
:arrow_down:

pandera/error_handlers.py
100.00% <100.00%> (ø)

pandera/errors.py
100.00% <100.00%> (ø)

pandera/schema_components.py
98.40% <100.00%> (+0.13%)
:arrow_up:

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 2071f36...6be0076. Read the comment docs.