highlight colors don't work with terminal forground/background settings (linux, xfce4-terminal)

This doesn't bother me much because I pretty much always run tap as TAP_BAIL=1 my-file-watcher node  test/test-something.js, so if I'm running npm test its because I'm trying to find a test that fails, or it will pass.
In the process of investigating, I found that if I highlight the colored area with the mouse by selecting in the terminal, the colors reverse, and I can see the values:

In the above I've selected an area from before the not ok, to after the 4003. So selecting is actually a good workaround :-).
Fwiw, I'm on Ubuntu 15.04, using xfce4-terminal, and I used every terminal preset it has, and they all change the colors of the various bits on the screen, but none of them allow the expected/found text to be read through the green/red.

The highlight workaround only works sometimes :-(

Is the terminal not 256 colors?  It's weird that you're getting those fallbacks, they aren't even close to what it's trying to print.
What does echo $TERM say?

screen-256color, I'm running inside tmux.

In my limited testing, it looks like most terminals that don't start with xterm can't handle 256 colors pretty much at all.
So, what would you like it to look like?

Honestly, don't care as long as I can read the text!
I looked harder, it turns out I need to use tmux -2 to get it to support 256 colors, so now I get lime green and pink, and can read the text.

Ugh.  Ok.  I can't figure out how to detect if the tmux session can handle 256 colors by looking at the env.  Any idea?  It shows TERM=screen no matter how I start tmux.

This http://unix.stackexchange.com/a/118903 makes me think that color support detection is an unsolveable problem.
I'm setting "set -g default-terminal "screen-256color" in my tmux.conf (which should convince tap there are 256 colors, I think), and calling tmux -2, which should convince tmux my terminal supports 256 colors, and it works fine.
Fwiw, when starting tmux, TERM=xterm, and my terminal is xfce4-terminal 0.6.3.
I don't think there is anything else for you to do, but you know more about this than me, Issacs, thanks for spending some time on it.


Fix bugs

Summary

Modify gemspec
Rename from bin/fcoin to exe/fcoin
bump v0.1.1

Pull Request Test Coverage Report for Build 77

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
74 unchanged lines in 7 files lost coverage.
Overall coverage decreased (-12.04%) to 87.64%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

spec/fcoin_spec.rb
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

spec/fcoin/endpoint/accounts_spec.rb
2
100.0%

spec/fcoin/endpoint/orders_spec.rb
2
98.79%

spec/fcoin/request_spec.rb
2
100.0%

spec/fcoin/api_spec.rb
4
100.0%

spec/fcoin/configuration_spec.rb
4
100.0%

spec/fcoin/endpoint/public_spec.rb
8
100.0%

spec/fcoin/endpoint/market_spec.rb
52
100.0%

Totals

Change from base Build 75:
-12.04%

Covered Lines:
546

Relevant Lines:
623

💛  - Coveralls


[bug] Could not determine the accessibility bus address

Describe the bug
Hello,
Might be linked to https://github.com/tauri-apps/tauri/issues/4174, not sure as it's the same error but not the same case at all.
When trying to run tauri dev for benchmark purpose (https://github.com/Elanis/web-to-desktop-framework-comparison/pull/73), I'm having an error saying Could not determine the accessibility bus address. Google isn't helping a lot this time :/
This ends like this:
Building [=======================> ] 366/367: app(bin)
Finished dev [unoptimized + debuginfo] target(s) in 7m 31s
Running `target/debug/app`
Could not determine the accessibility bus address

(Link to full logs, with specific line)
Reproduction

Create an empty app
Create a github action CI on ubuntu-latest

Install recommended linux packages (https://tauri.studio/v1/guides/getting-started/prerequisites#setting-up-linux)
npx tauri dev

Expected behavior
No response
Platform and versions
Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.13
  › @tauri-apps/api [NPM]: 1.0.0-rc.6
  › tauri [RUST]: 1.0.0-rc.14,
  › tauri-build [RUST]: 1.0.0-rc.12,
  › tao [RUST]: 0.9.1,
  › wry [RUST]: 0.17.0,

App
  › build-type: bundle
  › CSP: unset
  › distDir: ../dist
  › devPath: ../dist

App directory structure
  ├─ dist
  ├─ node_modules
  └─ src-tauri

Stack trace
No response
Additional context
Here is my pull request where I try to fix that behavior: https://github.com/Elanis/web-to-desktop-framework-comparison/pull/73

I tried adding at-spi2-core with apt in addition to the recommended tauri packages, based on Google search, but same result

Might be worth looking into how we run our own benchmarks: https://github.com/tauri-apps/tauri/blob/8a63489567b9fa86e404ad42b5b30c64361efe85/.github/workflows/bench.yml#L107
Regarding the issue itself, i've never seen it :/

Oh, didn't see you had your own benchmark, will look into it ! Thanks ;)

You can see the results here: https://tauri.studio/about/benchmarks

Amazing, thanks !

Update: I still have this error in stderr but it looks like it still run fines. I guess it's the same kind of problem I have with other frameworks (e. g. Electron) when they have problems when calling unix sockets.
Will investigate on it in the future, but it's non-blocking atm.
Thanks for your help ;)

@lucasfernog I ran into this issue.
I got this message, Could not determine the accessibility bus address,  with cargo run. And the window show without content inside.
Also, I try xvfb-run --auto-servernum cargo run, but the window does not show, and there was more error message.
Could not determine the accessibility bus address
Cannot get default EGL display: EGL_SUCCESS
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

I didn't have those following error message on my CI, but might be linked indeed

I ran into the same issue as @yanganto explains.
My setup:
Environment
› OS: NixOS 21.11.0 X64
› Node.js: 16.15.1
› npm: 8.11.0
› pnpm: Not installed!
› yarn: Not installed!
› rustup: 1.24.3
› rustc: 1.61.0
› cargo: 1.61.0
› Rust toolchain: stable-x86_64-unknown-linux-gnu
Packages
› @tauri-apps/cli [NPM]: 1.0.0
› @tauri-apps/api [NPM]: 1.0.0
› tauri [RUST]: 1.0.0,
› tauri-build [RUST]: 1.0.0,
› tao [RUST]: 0.11.2,
› wry [RUST]: 0.18.3,
App
› build-type: bundle
› CSP: unset
› distDir: ../build
› devPath: http://localhost:3000/
› framework: React
App directory structure
├─ .git
├─ public
├─ src-tauri
├─ src
└─ node_modules

I also use NixOS.

The bug is still here with the 1.0.1 release.

So my understanding is Could not determine the accessibility bus address is a warning produced when the a11y accessibility service is not found through D-Bus. Not surprising in a virtual environment and I've seen report you can ignore this message and run the application without accessibility support.
I would look to see if you have any other errors besides this warning.
For example in @yanganto's case:

Cannot get default EGL display: EGL_SUCCESS
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

This is probably the real error to look at. It's not a very detailed error but not seeing your content rendered and a GL error looks related to me. This could be a graphics 'driver' issue. Make sure your OS is able to run accelerated graphics at all. Or maybe you're running a sandbox of some kind.
For example to run in a Docker container locally, I needed to pass on:

The DISPLAY=${DISPLAY} environment.
Bind mount the /tmp/.X11-unix directory.
And using xhost to disable access control for remote sessions.

When not sandboxing anything you might look into troubleshooting GL issues in general with your OS.
Try the good old glxgears, look around in journalctl/dmesg for graphical errors.

While packaging cinny-desktop for NixOS, I had to run the app with WEBKIT_DISABLE_COMPOSITING_MODE=1 to not get the blank window, seems to be a bug related to nvidia drivers.

WEBKIT_DISABLE_COMPOSITING_MODE=1 solve my problem, thank you. @aveltras

I am running into this issue as well. Problem is also that my app takes about 2 minutes before it shows a GUI. The application itself is not more than a hello-world (from here).
It shows the following error output:
Could not determine the accessibility bus address

(process:1224071): GLib-GIO-CRITICAL **: 09:31:31.245: g_task_get_cancellable: assertion 'G_IS_TASK (task)' failed

(process:1224071): GLib-GIO-CRITICAL **: 09:31:31.245: g_task_get_cancellable: assertion 'G_IS_TASK (task)' failed

(process:1224071): GLib-GIO-CRITICAL **: 09:31:31.497: g_task_get_cancellable: assertion 'G_IS_TASK (task)' failed
                                                                                (process:1224071): GLib-GIO-CRITICAL **: 09:31:31.752: g_task_get_cancellable: assertion 'G_IS_TASK (task)' failed                                                                                ```

@matthiasbeyer Could not determine the accessibility bus address is a warning and shouldn't be related to slower startup time.

Once the app is shown, saving a file and letting cargo tauri dev re-start the GUI works fast and as expected.

This sounds like the dev environment was still compiling. This is common during development, but shouldn't be an issue when you make production builds.

The application itself is not more than a hello-world (from here).

Keep in mind this guide is close to a year old and uses an unsupported Tauri beta release (before it's first stable release).
Using create-tauri-app also has a Yew template for you :smile:.
https://tauri.app/v1/guides/getting-started/setup/

Once the app is shown, saving a file and letting cargo tauri dev re-start the GUI works fast and as expected.

This sounds like the dev environment was still compiling. This is common during development, but shouldn't be an issue when you make production builds.

If I run cargo tauri dev, wait for it to show up, close the app and then immediately execute that command again, it should not take that long then, should it? But it does! 😢

The application itself is not more than a hello-world (from here).

Keep in mind this guide is close to a year old and uses an unsupported Tauri beta release (before it's first stable release).

Ah, yes sorry for being not specific about this. I updated all dependencies to the latest version and did not follow the guide 1-1.

If I run cargo tauri dev, wait for it to show up, close the app and then immediately execute that command again, it should not take that long then, should it? But it does! 😢

i think there were 1 or 2 people who reported a similar problem, where using tauri + yew caused one of them to always recompile from scratch (iirc yew) even though the build files should be in different target dirs.

Any updates on this?
cargo-tauri-dev is still unbearably slow for me.

@matthiasbeyer Still weren't able to reproduce it, and didn't hear of anyone else with the same issue/delay (other than something similar we're seeing in our benchmark CI, which we also weren't able to reproduce). Therefore it's really hard to find the issue.
Also, this is not related, or should not be related, to the accessibility bus warning so you probably should file a separate issue for this please.

this is not related [...] to the accessibility bus warning so you probably should file a separate issue for this please.

Yep, I'm gonna do that.

I'm running into the same issue (or similar) when building an app in a docker container then running it in a kubernetes pod with X11 along side. This same setup has worked with firefox and chromium so I know the underlying X11 portion is correct.
I'm using the create-tauri-app template and, when I start the container, I get "Could not determine the accessibility bus address" in stdout/stderr along with a blank fullscreen app.

Thank you @aveltras.
As NixOS user  WEBKIT_DISABLE_COMPOSITING_MODE=1 solved my problem.


Franknoirot/grid setting

Closes #2835
Demo
https://github.com/KittyCAD/modeling-app/assets/23481541/254e2909-b886-4a60-ac8a-a40863cfc70a

playwirght test w snapshots :) jsut wanna make sure we dont break it but we know mike will tell us lol


add custom network

Changes

...

Checklist

[x] Read the contribution guide and accept the code of conduct
[ ] Readme (updated or not needed)
[ ] Tests (added, updated or not needed)

@Dukobpa3 What is this about?

Don't need anymore.
Made it while was working on cache servers.
This is unity action improvement, but I've found another solution.


Disable previews for .djvu image files

Trying to preview .djvu files causes the magick process to consume 100% memory and 100% cpu and the preview never generates.

Duplicate of #54 .


Command line REPL mechanism exits in case of invalid syntax

Abstract:
Generally all available CLI REPL-s ( like: jshell, python and etc ) support next feature:
If user inputs commands with invalid syntax, show error messages to the user but don't stop the program. User should be still able to continue using CLI REPL application after a mistake ( maybe to correct syntactic mistake from the previous input iteration ).
ts-lox behaviour:
Upon entering an invalid syntactic command program ends/exits.
It would be nice from my(as users) perspective to have the ability to see error messages of my previous inputted command but to still remain in it and not get thrown.
WDYT?:)

@dudupopkhadze

I'll start working on this issue if it's ok with you @dudupopkhadze

@nikasakandelidze nice, go ahead 👍


Error on table pagination

Greetings,
when I use pagination on a table, following errors are shown in console:

To reproduce errors, official table documentation can be used (the table with pagination). Error is thrown when paging to the second page, and then paging to previous page. I've tested on Chrome and Firefox.
Furthermore, after updating to most recent version, if table moves, because I added more content or something on page, row borders glitch out. For example:

Unfortunately, I have not been able to reproduce this issue. I've noticed that on next render, borders are all properly aligned. I've noticed this issue only on chrome.
I know this might be a bit ambigous question, but what could cause such weird border behaviour?

Related to #313


Use more efficient Application retrieval queries in CsvExporterService

Description
Use more efficient Application retrieval queries in CsvExporterService.
Details:

Caches all ProgramDefinitions locally before exporting.
Only fetch applications once, instead of once in generateCsvConfig() and again in getProgramAllVersionsCsv().
Retrieve applications with  programService.getSubmittedProgramApplicationsAllVersions(), which is optimized for export, instead of programService.getSubmittedProgramApplications().
Update getDemographicsCsv() to use the ProgramDefinition cache in CsvExporterService.
Note: To enable getProgramAllVersionsCsv() and getDemographicsCsv() to use different caches, we had to pass the cache's retrieval method into exportCsv() instead of the cache itself. I don't love this, but I'm planning additional export improvements soon so hopefully it's not around long. 😬

Checklist
General
Read the full guidelines for PRs here

[x] Added the correct label: < feature | enhancement | bug | under-development | dependencies | infrastructure | ignore-for-release | database >
[x] Assigned to a specific person, civiform/developers, or a more specific round-robin list
[x] Added an additional reviewer from outside your organization as FYI (if the primary reviewer is in the same organization as you)
[x] Removed the release notes section if the title is sufficient for the release notes description, or put more details in that section.
[x] Created unit and/or browser tests which fail without the change (if possible)
[x] Performed manual testing (Chrome and Firefox if it includes front-end changes)
[x] Extended the README / documentation, if necessary

Issue(s) this completes
Fixes #1750
Part of #8147

#8447  👈
main

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

Join @avaleske and the rest of your teammates on  Graphite

Merge activity

Aug 30, 3:48 PM EDT: @avaleske merged this pull request with Graphite.


Add support for Bootstrap Select List {{label}}

Hi,
I would like to add a Label to a select list.
Thank You! # #

Hi,
Could you elaborate on what you want to do?
Thanks,
M.

Hi,
I'm creating a kind of survey and making the profils editable.
For that I want to give options, with a select list.
For example selecting a gender:
'
<?=__('Gender')?>

    <?php
        echo $this->Form->select('gender', $options_gender);
    ?>

'
Currently im making this by hand. Because I didn't find an option to give labels to a select pickers...
I hope this helps..
Thanks for the great work sofar,
K

Hi,
This plugins follows CakePHP standard - If you want a complete input (with label, layout, ...), you need to use the input method, not the select method (which is only designed to allow the output of a raw select).
In your case this would be:
$this->Form->input('gender', $options_gender);

Or something alike...
If you want the label in a column and the input in another one, you need to use the horizontal versions, see the documentation.


Status Effect Indicators

There are already player status icon indicators available in SpectatorTournamentGUIHealth, similar to HudPlayerHealth, but inactive and have limited control over positioning in both files.

Added in https://github.com/PazerOP/CastingEssentials/commit/787ba9ec791d40e52605953b4d7a0d3e1674a51f.


set xds user agent name everywhere where grpc_csharp_ext is built

Followup for https://github.com/grpc/grpc/pull/26189.
Even though this approach works (and I think I've found all the places where grpc_csharp_ext gets built), I don't like it much because it's making the build more complicated and it's very fragile because it's quite easy to accidentally not set the option, especially because there's quite a few locations where it needs to be set.
(at which point C# might end up with wrong XDS client name).
Are there any alternative solutions? (e.g. the C# library sets the xds client name and version at runtime right after it loads the grpc C core library - that way there would be just one location in the code where we need to set the xds user agent suffix).

@markdroth  this is now ready for final review.

the interop test "cancel_after_first_response" looks like a flake. Merging.


Max_Chunk_Block Cannot increase over 2049 in latest version. Can't figure out how to config Moving Worlds either if that's how to fix

Thanks for reporting an issue to Teckle, an Elytra project!
When reporting an issue to an Elytra project, please make sure to include:

The version of the mod you are using (e.g. 2.0.0a4)
Your Minecraft version (e.g. 1.11.2)
Your Forge version (e.g. <IP_ADDRESS>2)
The crash report or log, uploaded to gist.github.com
(e.g. https://gist.github.com/unascribed/09ec875df0cc830df1116559f4adb333)

Do not say latest! Saying you are on the latest version of
something does not help us!
Never include crash reports in the issue body itself! They
are extremely long and it makes it difficult to read your issue.
Don't cherry pick parts of the log or crash report; send the
whole thing!
Avoid putting tags like [Bug] or [Feature Request] in your title;
that's what labels are for, and the maintainer will decide what
category your issue fits in.
Pastebin is acceptable for crash reports or logs, but Gist is
greatly preferred.
Please remove this help text after reading it and before posting
your issue. Thanks!

Please actually read the help text to make an issue instead of putting everything in the title.


Upgraded Issue Templates

This PR adds new Issue Templates (Closes #15)

@Sangwan5688 Great work. One more change before we can approve. We have made few changes in the language and also the format of Code of conduct. Please check https://github.com/appwrite/appwrite template and update accordingly.
Thank you.

@lohanidamodar I have updated templates according to new changes. Please check and confirm the same. Thanks :)


Question: Why is everything logged to stderr?

First of all: Thank you for the module. Its awesome and works as expected in a really robust manner.
One thing im wondering about though, is that while starting the server and connecting seaweed volumes to a master server, several messages are logged via stderr instead of std out. Even though they are not really errors but rather information loggings. Has this any particular reason which im not aware of? We use the module in an integrated environment where we startup lots of different processes automatically, and within this system the seaweed module polutes our error log.
Any hints on why you've opted to just use stderr would be appreciated. Thanks in advance!

Thanks! Glad to hear that. You can share your use case with us or in some blog if allowed. This will encourage all committers here.
The logging behavior comes from the google's glog package. If you do "weed -h", you will see the glog options. "-alsologtostderr" is the one you may want to change.


Extract region with uint16 (bioformats)

I'm encountering an issue when attempting to extract an image with a 16-bit color space using Bio-Formats source. I'm unsure if this is expected behavior.
Specifically, if I convert the image to 8-bit, the resulting values are between 0 and 15, which seems unusually small.
Questions

Is there a intensity scaling issue? I noticed the following in the metadata: '0028,1040 Pixel Intensity Relationship': 'LOG', and I'm not sure if this might be a factor.
I'm requesting an output image with JPEG encoding, so I would generally expect it to be 8-bit. Is there something I'm missing?

To reproduce
Env
python 3.10
large_image 1.30.4
large_image_source_bioformats (commit a5b46d1ea4f78e0d236f2cec28f3ebda3740b2bd)
python-bioformats 4.1.0
Steps
Here the input dicom file: 1-1 2.zip
Use the following Python code to attempt reading the region (e.g. the whole slide in this example):
import large_image
import matplotlib.pyplot as plt
import numpy as np

level = 3
size = (4096, 3328)  # (w,h)
location = (0, 0)  # (y,x)

slide = large_image.open(filename)
mag = slide.getMagnificationForLevel(level)
tile_image, _ = self.slide.getRegion(
            region=dict(left=location[1],
                        top=location[0],
                        right=location[1]+size[1],
                        bottom=location[0]+size[0],
                        units='pixels'),
            tile_size=dict(width=size[1], height=size[0]),
            tile_offset=dict(x=0, y=0),
            scale=dict(magnification=mag['magnification']),
            format=large_image.constants.TILE_FORMAT_NUMPY,
            encoding="JPEG",
        )

# Convert to 8 bit
if tile_image.dtype == np.uint32:
    tile_image = np.floor_divide(tile_image, 2 ** (32-8)).astype(np.uint8)
elif tile_image.dtype == np.uint16:
    tile_image = np.floor_divide(tile_image, 2 ** (16-8)).astype(np.uint8)

# Show
plt.imshow(nparray)
plt.show()

Hi @manthey,
I've been working on improving the handling of DICOM images where Bits Stored is less than Bits Allocated, and I've developed a solution that addresses the issues I was encountering, particularly with images appearing too dark due to incorrect scaling.
While I understand that a definitive solution should ideally be implemented within the Bioformats module itself, I've implemented a workaround by adding a new method, _scalePixelValues, to the base TileSource class
https://github.com/girder/large_image/blob/0e6db1f9ebd472a4fe3f1e6d81d14ba93b4ee4b6/large_image/tilesource/base.py#L36
Here's the code for the _scalePixelValues method:
def _scalePixelValues(self, tile: np.ndarray) -> np.ndarray:
        """
        Scales pixel values of a tile based on DICOM metadata.

        This method applies necessary transformations to pixel values, including:
        1. Rescale Slope and Intercept.
        2. Scaling to utilize the full range of the dtype when Bits Stored < Bits Allocated.
        3. Handling of bit shifting when High Bit is not aligned with Bits Stored.

        Args:
            tile: The input tile as a NumPy array.

        Returns:
            The scaled tile as a NumPy array.
        """

        # Scale based on Rescale Intercept and Slope
        if all(key in self._metadata['seriesMetadata'] for key in
               ('0028,1053 Rescale Slope', '0028,1052 Rescale Intercept')):
            rescale_slope = float(self._metadata['seriesMetadata']['0028,1053 Rescale Slope'])
            rescale_intercept = float(self._metadata['seriesMetadata']['0028,1052 Rescale Intercept'])
            tile = tile * rescale_slope + rescale_intercept
            tile = tile.astype(self._dtype)

        # Scaling pixel values to use the full range of the dtype
        bits_stored_keys = [
            'Bits Stored',
            '0028,0101 Bits Stored',
        ]
        high_bits_keys = [
            'High Bit',
            '0028,0102 High Bit',
        ]

        if self._metadata.get('bitsPerPixel'):
            bits_allocated = self._metadata['bitsPerPixel']
        elif self._metadata['seriesMetadata'].get('0028,0100 Bits Allocated'):
            bits_allocated = int(self._metadata['seriesMetadata']['0028,0100 Bits Allocated'])
        else:
            # Infer the bits per pixel from the dtype
            bits_allocated = tile.dtype.itemsize * 8

        for key in bits_stored_keys:
            if key in self._metadata['seriesMetadata']:
                bits_stored = int(self._metadata['seriesMetadata'][key])

                # Handling bit shift
                for high_bit_key in high_bits_keys:
                    if high_bit_key in self._metadata['seriesMetadata']:
                        high_bit = int(self._metadata['seriesMetadata'][high_bit_key])
                        if high_bit < bits_stored - 1:
                            shift = (bits_stored - 1) - high_bit
                            tile = tile << shift
                            mask = (1 << bits_stored) - 1
                            tile = tile & mask

                if bits_stored < bits_allocated:
                    scale_factor = 2 ** (bits_allocated - bits_stored)
                    tile = (tile.astype(np.int32) * scale_factor).astype(self._dtype)

                    # Clamping
                    if self._dtype == np.uint16:
                        tile = np.clip(tile, 0, 65535)
                    elif self._dtype == np.int16:
                        tile = np.clip(tile, -32768, 32767)

        return tile

I then call this method within the getRegion method of the TileSource class, right after obtaining the image region:
if hasattr(self, '_metadata'):
            image = self._scalePixelValues(cast(np.ndarray, image))

I initially attempted to implement this logic within the getTile function of the Bioformats module. However, I encountered issues due to the recursive nature of getTile when fetching regions that span multiple tiles. Applying the scaling within getTile resulted in multiple scaling operations, leading to incorrect pixel values.
By placing the scaling logic in a separate method and calling it from getRegion, the scaling is applied only once per region request, ensuring the correct pixel values are returned.
I believe this approach provides a reasonable workaround for handling DICOM images with these specific characteristics, although a more permanent solution within the Bioformats library would be ideal.
I'm sharing this code in the hope that it might be helpful to others facing similar issues and to solicit feedback or suggestions for improvement.
Thanks for your work on this project!


Create singularity container for Guppy

Guppy is software for Nanopore technologies. To be able to use that in nextflow, I should make a complete container.

apptainer can also use GPUs https://apptainer.org/docs/user/main/gpu.html#gpu-support-nvidia-cuda-amd-rocm

I changed the title of this issue, set-up for Dorado


CosmosDb TransactionalBatch limitations

Persisting a large batch of events in a single command throws an exception that doesn't clearly explain why the operation failed
CosmosDb Transactional batch operation limitations
Currently, there are two known limits:

The Azure Cosmos DB request size limit constrains the size of the TransactionalBatch payload to not exceed 2 MB, and the maximum execution time is 5 seconds.
There's a current limit of 100 operations per TransactionalBatch to ensure the performance is as expected and within SLAs.

Expected behavior
Throw a more concrete error message in a specialized exception type would be the preferred way to describe why the operation failed

Good catch @christianhelle.
There are two distinct parts to this library, the CQRS implementation and the underlying event store implementation.
EventStore
Should be limited to accept a maximum of 50 events + the metadata, just to be on the safe side. It would not be feasible to calculate/estimate payload size.
CQRS
Imposing a limit of one event per command is too strict as there are many valid use-cases for adding one or more events but at the same time it is consider bad design if a single command needs to write many events at once. When limit is exceeded, an exception needs to be thrown, clearly indicating an illegal operation is in progress. When applying events from a command handler, using CommandContext.AddEvent would be the most suitable place to enforce this, providing a callstack that will clearly indicate where the problem is. Allowing a maximum of 10 events should cover most use-cases.


Punctuation and spelling edits.

Line 183 does not show correction,  changed to "malevolent".
Line 342 added spaces for double click to copy lines of code easier.

Sorry for the delay, appreciate these!


Container.contains is not a function

This block of code is throwing not a function:
     if (!container.contains(el)) {
                errorMsg = 'Scroll.toElement() was passed an element that does not exist inside the scroll container';
                console.warn(errorMsg);
                return Promise.reject(new Error(errorMsg));
            }

My bad, was passing a React component rather than a DOM node as el. Would be nice if this code checked the validity of el rather than breaking.

Definitely. Glad you figured it out :+1:


Add Regal, the Rego linter

New linter for Open Policy Agent's Rego language.

[x] I have not changed the README.md directly, but it was tempting.

Awesome PR and tool. Thanks Anders. 🚀


ERROR: expr: syntax error

When I run ./xdebugPhpFpm start in terminal, it show expr: syntax error. My system version is osx 10.11.6, is there some problem run $(expr substr $(uname -s) 1 5) on osx?

I typed this code to fix the problem.
if [[ "$(uname)" == "Darwin" ]]; then
    OS_TYPE="OSX"
else
    OS_TYPE=$(expr substr $(uname -s) 1 5)
fi

and change
if [[ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]]; then
to
if [[ $OS_TYPE == "MINGW" ]]; then
it work correct.

@WDZThorn Could you verify this merge works for you? Then this issue can be closed. :)

@LarryEitel It's ok.


Fix issue where a previously used isolated context gets reused again

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/635449

@dotnet-bot test Ubuntu16.04 Build for CoreCLR please

@dotnet-bot test Windows_NT Build for CoreCLR please

@dotnet-bot test Windows_NT Build for Full please
Few test failures, don't seem related: https://ci2.dot.net/job/Microsoft_msbuild/job/master/job/innerloop_Windows_NT_Full_prtest/640/


XsuaaServiceConfigurationDefault Property Extension

Hi colleagues,
Our team uses the XsuaaServiceConfigurationDefault configuration from spring-security-xsuaa and we have the use case to get the tenantid and apiurl properties of an XSUAA service instance.
Could you extend the XsuaaServiceConfigurationDefault configuration with getters for the mentioned properties?
As I can see, the XsuaaServicePropertySourceFactory can be extended, so they can be mapped to the configuration.
Thanks and best regards,
Momchil

Hi @m-ignatov
Lets see 👍
can you pls provide us your xsuaa VCAP_SERVICES (without exposing secret and other sensitive data).
Thanks!

Hi @nenaraab
Thanks for the quick response.
Actually, there are not new fields, but part of the "credentials" section of the XSUAA VCAP_SERVICES:
"xsuaa": [
{
 ...

   "credentials": {
     "apiurl": "https://api.authentication.<region>.hana.ondemand.com",
     "tenantid": "<tenant_id>"
   },
   "instance_name": "xsuaa",
   "label": "xsuaa",
   "name": "xsuaa",
   "plan": "application"

 ...
}

We can also arrange a meeting to discuss it, if needed.

Hi @torsten-sap
what is your opinion here?
Shall we support tenantid and apiurl - is it always available? Where do we find further documentation?
Kind regards,
Nena

Hi @nenaraab,
I think the "apiurl" makes sense. Regarding "tenantid" I am not quite sure whether rather the "zoneid" should be used. @m-ignatov What is your use-case to get the "tenantid"?
In general it might be the case that "apiurl" is not available in the binding (very old binding) but the libs may return null in that case.
-Torsten

Hi @torsten-sap,
We have several use cases for the "tenantid", including system audit logging, and the "apiurl" is used for XSUAA API operations.
As far as I know, the "zoneid" and "tenantid" are the same currently for XSUAA. In our codebase we are using the term "tenantid", and that's why prefer to be consistent everywhere. I guess it is fine for the XSUAA library to support the retrieval of both properties.
It also makes sense to me that if a property is missing from the XSUAA VCAP, the lib would return null.
Regards,
Momchil

Hi @m-ignatov
I understand, but the tenant information should could be easily derived from the verified token, e.g. from the security context. See also here.
In case you need further information than exposed with XsuaaServiceConfigurationDefault class you can leverage for now DefaultJsonObject as described here
Will recheck the requirement later.
Kind regards,
Nena

Thank you for considering it, Nena.
Actually in our use case, we need the information for the system tenant, which is derived from the XSUAA binding.
Of course, there can be a workaround to get the needed info, but it would be great if the XsuaaServiceConfigurationDefault supported these properties as well :)
Kind regards,
Momchil


Change editor theme feature no longer functional

The feature that allows the user to switch the codemirror theme, which I implemented, is no longer working. I have located the exact commit which caused this feature to break: https://github.com/abi/screenshot-to-code/commit/370c1b9cf04e3c66cf52bb01bf07aa3c8f131077

Sorry about that. It's still working for me. Just needs a page refresh.


Can't update getupdates.brackets.io

When I try to check for the updates from help menu in brackets it gives me the below error.
Steps to Reproduce:
Menu -> Help -> Check for updates

While extensions are downloaded and installed perfectly.
Please help, what's going on?

It seems that issue was resolved. I've got a success responce. Thx


HTTP-01, failed to get certificate: acme ; [..]/.well-known/acme-challenge not handled

1. What version of Caddy are you using (caddy -version)?
0.10.14
2. What are you trying to do?
Update Caddy and still have it to work.
3. What is your entire Caddyfile?
dom1.tld,
dom2.tld,
sub1.dom2.tld,
sub2.dom2.tld,
sub3.dom2.tld,
sub4.dom2.tld,
dom3.tld,
sub1.dom3.tld,
sub2.dom3.tld,
*.dom1.tld:80, # No ssl for wildcards
*.dom3.tld:80,
*.sub1.dom3.tld:80,
*.*.dom3.tld:80
{
        tls<EMAIL_ADDRESS>        gzip
        header / -Server
        proxy / <IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s1.s1.dom4.tld,
s2.s1.dom4.tld
{
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / <IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s3.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / https://<IP_ADDRESS>:8006 {
                insecure_skip_verify
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s4.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:8000 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s5.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:9000 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s6.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:9091 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s7.s1.dom4.tld,
*.s7.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                max_certs 10
        }
        gzip
        ipfilter / {
                rule allow
                ip <IP_ADDRESS>
                ip <IP_ADDRESS>
                ip <IP_ADDRESS>
        }
        proxy / http://<IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

4.
Debian 8.8
# cat /etc/systemd/system/caddy.service
[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5

; User and group the process will run as.
User=www-data
Group=www-data

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
;;LimitNPROC=64

; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

5. Please paste any relevant HTTP request(s) here.
———
6. What did you expect to see?
Caddy starts
7. What did you see instead (give full error messages and/or log)?
# systemctl daemon-reload; service caddy restart; journalctl -fu caddy
-- Logs begin at Sat 2018-04-21 00:46:38 CEST. --
Apr 25 12:40:29 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:29 my-host caddy[1734]: 2018/04/25 12:40:29 [INFO] SIGTERM: Terminating process
Apr 25 12:40:29 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:30 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:31 my-host caddy[32189]: Activating privacy features... 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/ClgNW33NvJr5v2Qg_p4IeEPY2I16LGIQ4i9SrPO8q9g
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:37 my-host caddy[32189]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/1S-gGV6h_Gn8idF3pegoPVlMjjaRG1I3eNJd7PbeY3Q: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:37 my-host caddy[32189]:
Apr 25 12:40:37 my-host caddy[32189]: <title>404 Not Found</title>
Apr 25 12:40:37 my-host caddy[32189]:
Apr 25 12:40:37 my-host caddy[32189]:
Not Found

Apr 25 12:40:37 my-host caddy[32189]: <p"
Apr 25 12:40:37 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:37 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:37 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:37 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:37 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:37 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:38 my-host caddy[32215]: Activating privacy features... 2018/04/25 12:40:38 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:38 my-host caddy[32215]: 2018/04/25 12:40:38 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/8P1FoEoiQXB7Kd9bPej2hVCn-h2yYQcuNQkMqHVbWFM
Apr 25 12:40:38 my-host caddy[32215]: 2018/04/25 12:40:38 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:44 my-host caddy[32215]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/KvRG3dchdo1YLAWGBBuMxgweWEb7G7AB45qGHcSsr3A: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:44 my-host caddy[32215]:
Apr 25 12:40:44 my-host caddy[32215]: <title>404 Not Found</title>
Apr 25 12:40:44 my-host caddy[32215]:
Apr 25 12:40:44 my-host caddy[32215]:
Not Found

Apr 25 12:40:44 my-host caddy[32215]: <p"
Apr 25 12:40:44 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:44 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:44 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:44 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:44 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:44 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:45 my-host caddy[32253]: Activating privacy features... 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/KIawtrYgbMprt5DnzLcFDEEDOKaVvxiV_Bo7PqrT3uI
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:51 my-host caddy[32253]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Mf3048BQrPFtz4p7MeeEgRjh9e5BcNEGAQBLAIWx1WY: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:51 my-host caddy[32253]:
Apr 25 12:40:51 my-host caddy[32253]: <title>404 Not Found</title>
Apr 25 12:40:51 my-host caddy[32253]:
Apr 25 12:40:51 my-host caddy[32253]:
Not Found

Apr 25 12:40:51 my-host caddy[32253]: <p"
Apr 25 12:40:51 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:51 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:51 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:51 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:51 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:51 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:52 my-host caddy[32278]: Activating privacy features... 2018/04/25 12:40:52 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:52 my-host caddy[32278]: 2018/04/25 12:40:52 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/Zu8LdQ6Um02NJOeCpQE8i3wir-D5a19GMjdvuYlqQF4
Apr 25 12:40:52 my-host caddy[32278]: 2018/04/25 12:40:52 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:58 my-host caddy[32278]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Np-irffM3ng1MfLxxUJnFXI43536V0_388jOhftRLww: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:58 my-host caddy[32278]:
Apr 25 12:40:58 my-host caddy[32278]: <title>404 Not Found</title>
Apr 25 12:40:58 my-host caddy[32278]:
Apr 25 12:40:58 my-host caddy[32278]:
Not Found

Apr 25 12:40:58 my-host caddy[32278]: <p"
Apr 25 12:40:58 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:58 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:58 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:58 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:58 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:58 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:59 my-host caddy[32310]: Activating privacy features... 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/6hvybDwINHUcTR4BaNAk5Mo4hRgskarB3w15WAM362c
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:41:05 my-host caddy[32310]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Nd4iuoMgDSAk-i9u1kHJ-IqZQ77tsaYL_Sv92QYJbg0: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:41:05 my-host caddy[32310]:
Apr 25 12:41:05 my-host caddy[32310]: <title>404 Not Found</title>
Apr 25 12:41:05 my-host caddy[32310]:
Apr 25 12:41:05 my-host caddy[32310]:
Not Found

Apr 25 12:41:05 my-host caddy[32310]: <p"
Apr 25 12:41:05 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:41:05 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:41:05 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:41:05 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:41:05 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:41:05 my-host systemd[1]: caddy.service start request repeated too quickly, refusing to start.
Apr 25 12:41:05 my-host systemd[1]: Failed to start Caddy HTTP/2 web server.
Apr 25 12:41:05 my-host systemd[1]: Unit caddy.service entered failed state.
^C

8. How can someone who is starting from scratch reproduce the bug as minimally as possible?
No idea.

Original comment
1. What version of Caddy are you using (caddy -version)?
Caddy 0.10.12
The story
I'm using Caddy as a reverse-proxy (no tricky configuration).
Today, using 0.10.4, I wanted to try to use the -https-port option with a forwarding for 443 (using sslh, which does a rewrite of the source ip if that matters) and I was going to report an issue because the HTTP to HTTPS redirect was using this port instead of the standard/forwarded port, but it seems that's what https://github.com/mholt/caddy/commit/a03eba6fbc2770ef6bbe7defa184ec4a6817f0c2 is trying to fix.
So I updated from 0.10.4 to 0.10.12 to test, but the server won't start anymore as the certificat retrieval fails:
Apr 17 20:03:50 host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 17 20:03:50 host systemd[1]: Started Caddy HTTP/2 web server.
Apr 17 20:03:51 host caddy[25494]: Activating privacy features... 2018/04/17 20:03:51 [INFO][--] acme: Obtaining bundled SAN certificate
Apr 17 20:03:52 host caddy[25494]: 2018/04/17 20:03:52 [INFO][--] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/--
Apr 17 20:03:52 host caddy[25494]: 2018/04/17 20:03:52 [INFO][--] acme: Trying to solve HTTP-01
Apr 17 20:03:57 host caddy[25494]: [--] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://--/.well-known/acme-challenge/--: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 17 20:03:57 host caddy[25494]:
Apr 17 20:03:57 host caddy[25494]: <title>404 Not Found</title>
Apr 17 20:03:57 host caddy[25494]:
Apr 17 20:03:57 host caddy[25494]:
Not Found

Apr 17 20:03:57 host caddy[25494]: <p"
Apr 17 20:03:57 host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE

It seems that the challenge fails because Caddy forwards it to the destination server, instead of handling it (maybe because of the source ip rewrite ?). If I remove the forwarding and the -https-port option, the retrieval works again.

Hello,
please take a few minutes to carefully answer our issue template! We need those informations to help you!

I only have a moment as I go out the door, but I'll just real quickly remind you to use the staging endpoint or risk getting rate-limited ❗ -- my only other thought is that Caddy will only solve challenges for domains it knows it is serving. But yes, please fill out the issue template.

I was a bit fast by affirming If I remove the forwarding and the -https-port option, the retrieval works again it seems; it doesn't and I get really weird logs:
Apr 17 20:49:46 host caddy[4236]: Activating privacy features... 2018/04/17 20:49:46 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 17 20:49:46 host caddy[4236]: 2018/04/17 20:49:46 [INFO][] Certificate written to disk: /etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/.crt
Apr 17 20:49:46 host caddy[4236]: 2018/04/17 20:49:46 [INFO][dom2.tld] acme: Obtaining bundled SAN certificate
Apr 17 20:49:47 host caddy[4236]: 2018/04/17 20:49:47 [INFO][] Certificate written to disk: /etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/.crt
Apr 17 20:49:47 host caddy[4236]: 2018/04/17 20:49:47 [INFO][sub2.dom2.tld] acme: Obtaining bundled SAN certificate
Apr 17 20:49:47 host caddy[4236]: 2018/04/17 20:49:47 [INFO][] Certificate written to disk: /etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/.crt
Apr 17 20:49:48 host caddy[4236]: 2018/04/17 20:49:48 [INFO][sub1.dom2.tld] acme: Obtaining bundled SAN certificate
Apr 17 20:49:48 host caddy[4236]: 2018/04/17 20:49:48 [INFO][] Certificate written to disk: /etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/.crt
Apr 17 20:49:48 host caddy[4236]: open /etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/dom1.tld/dom1.tld.crt: no such file or directory

The part of the conf related to thoses domains:
dom1.tld,
dom3.tld,
sub1.dom3.tld,
sub2.dom3.tld,
sub3.dom3.tld,
sub4.dom3.tld,
dom2.tld,
sub1.dom2.tld,
sub2.dom2.tld,
*.dom1.tld:80, # No ssl for wildcards
*.dom2.tld:80,
*.sub1.dom2.tld:80,
*.*.dom2.tld:80
{
        tls (email)
        gzip
        header / -Server
        proxy / (dst) {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

Env is debian 8.8, systemd, started with /usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp

And that's not consistent, I can have the previous error again (maybe related to the fact I tried to add except .well-known/acme-challenge / except /.well-known/acme-challenge to the proxy block .. or not, I'm not sure, need to try again):
Apr 17 21:06:29 host caddy[7872]: Activating privacy features... 2018/04/17 21:06:29 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 17 21:06:30 host caddy[7872]: 2018/04/17 21:06:30 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/--
Apr 17 21:06:30 host caddy[7872]: 2018/04/17 21:06:30 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 17 21:06:30 host caddy[7872]: 2018/04/17 21:06:30 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 17 21:06:35 host caddy[7872]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/--: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 17 21:06:35 host caddy[7872]:
Apr 17 21:06:35 host caddy[7872]: <title>404 Not Found</title>
Apr 17 21:06:35 host caddy[7872]:
Apr 17 21:06:35 host caddy[7872]:
Not Found

Apr 17 21:06:35 host caddy[7872]: <p"
Apr 17 21:06:35 host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE

Well, I rolled back and I give up for today.

Ah, you've hit a bug that was fixed last night in an upstream dependency. We'll be rolling out an update soon that fixes it! Sorry for the trouble.
(Closing, as this is basically a duplicate issue)

Thank you! I'll follow that.
Sorry about the template.

Can the issue be reopened? @mholt
The initial issue (not the empty domain) is still present, and that's not related to -https-port. I just upgraded from 0.10.4 (working) to 0.10.14 without touching the configuration nor the command line.
I'll update the first post following the template (and move the logs from here to the first post).
Here's the full log & config:
# systemctl daemon-reload; service caddy restart; journalctl -fu caddy
-- Logs begin at Sat 2018-04-21 00:46:38 CEST. --
Apr 25 12:40:29 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:29 my-host caddy[1734]: 2018/04/25 12:40:29 [INFO] SIGTERM: Terminating process
Apr 25 12:40:29 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:30 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:31 my-host caddy[32189]: Activating privacy features... 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/ClgNW33NvJr5v2Qg_p4IeEPY2I16LGIQ4i9SrPO8q9g
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:31 my-host caddy[32189]: 2018/04/25 12:40:31 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:37 my-host caddy[32189]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/1S-gGV6h_Gn8idF3pegoPVlMjjaRG1I3eNJd7PbeY3Q: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:37 my-host caddy[32189]:
Apr 25 12:40:37 my-host caddy[32189]: <title>404 Not Found</title>
Apr 25 12:40:37 my-host caddy[32189]:
Apr 25 12:40:37 my-host caddy[32189]:
Not Found

Apr 25 12:40:37 my-host caddy[32189]: <p"
Apr 25 12:40:37 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:37 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:37 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:37 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:37 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:37 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:38 my-host caddy[32215]: Activating privacy features... 2018/04/25 12:40:38 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:38 my-host caddy[32215]: 2018/04/25 12:40:38 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/8P1FoEoiQXB7Kd9bPej2hVCn-h2yYQcuNQkMqHVbWFM
Apr 25 12:40:38 my-host caddy[32215]: 2018/04/25 12:40:38 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:44 my-host caddy[32215]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/KvRG3dchdo1YLAWGBBuMxgweWEb7G7AB45qGHcSsr3A: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:44 my-host caddy[32215]:
Apr 25 12:40:44 my-host caddy[32215]: <title>404 Not Found</title>
Apr 25 12:40:44 my-host caddy[32215]:
Apr 25 12:40:44 my-host caddy[32215]:
Not Found

Apr 25 12:40:44 my-host caddy[32215]: <p"
Apr 25 12:40:44 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:44 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:44 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:44 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:44 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:44 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:45 my-host caddy[32253]: Activating privacy features... 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/KIawtrYgbMprt5DnzLcFDEEDOKaVvxiV_Bo7PqrT3uI
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:45 my-host caddy[32253]: 2018/04/25 12:40:45 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:51 my-host caddy[32253]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Mf3048BQrPFtz4p7MeeEgRjh9e5BcNEGAQBLAIWx1WY: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:51 my-host caddy[32253]:
Apr 25 12:40:51 my-host caddy[32253]: <title>404 Not Found</title>
Apr 25 12:40:51 my-host caddy[32253]:
Apr 25 12:40:51 my-host caddy[32253]:
Not Found

Apr 25 12:40:51 my-host caddy[32253]: <p"
Apr 25 12:40:51 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:51 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:51 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:51 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:51 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:51 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:52 my-host caddy[32278]: Activating privacy features... 2018/04/25 12:40:52 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:52 my-host caddy[32278]: 2018/04/25 12:40:52 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/Zu8LdQ6Um02NJOeCpQE8i3wir-D5a19GMjdvuYlqQF4
Apr 25 12:40:52 my-host caddy[32278]: 2018/04/25 12:40:52 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:40:58 my-host caddy[32278]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Np-irffM3ng1MfLxxUJnFXI43536V0_388jOhftRLww: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:40:58 my-host caddy[32278]:
Apr 25 12:40:58 my-host caddy[32278]: <title>404 Not Found</title>
Apr 25 12:40:58 my-host caddy[32278]:
Apr 25 12:40:58 my-host caddy[32278]:
Not Found

Apr 25 12:40:58 my-host caddy[32278]: <p"
Apr 25 12:40:58 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:40:58 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:40:58 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:40:58 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:40:58 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:40:58 my-host systemd[1]: Started Caddy HTTP/2 web server.
Apr 25 12:40:59 my-host caddy[32310]: Activating privacy features... 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Obtaining bundled SAN certificate
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/6hvybDwINHUcTR4BaNAk5Mo4hRgskarB3w15WAM362c
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Could not find solver for: dns-01
Apr 25 12:40:59 my-host caddy[32310]: 2018/04/25 12:40:59 [INFO][dom1.tld] acme: Trying to solve HTTP-01
Apr 25 12:41:05 my-host caddy[32310]: [dom1.tld] failed to get certificate: acme: Error 403 - urn:ietf:params:acme:error:unauthorized - Invalid response from http://dom1.tld/.well-known/acme-challenge/Nd4iuoMgDSAk-i9u1kHJ-IqZQ77tsaYL_Sv92QYJbg0: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Apr 25 12:41:05 my-host caddy[32310]:
Apr 25 12:41:05 my-host caddy[32310]: <title>404 Not Found</title>
Apr 25 12:41:05 my-host caddy[32310]:
Apr 25 12:41:05 my-host caddy[32310]:
Not Found

Apr 25 12:41:05 my-host caddy[32310]: <p"
Apr 25 12:41:05 my-host systemd[1]: caddy.service: main process exited, code=exited, status=1/FAILURE
Apr 25 12:41:05 my-host systemd[1]: Unit caddy.service entered failed state.
Apr 25 12:41:05 my-host systemd[1]: caddy.service holdoff time over, scheduling restart.
Apr 25 12:41:05 my-host systemd[1]: Stopping Caddy HTTP/2 web server...
Apr 25 12:41:05 my-host systemd[1]: Starting Caddy HTTP/2 web server...
Apr 25 12:41:05 my-host systemd[1]: caddy.service start request repeated too quickly, refusing to start.
Apr 25 12:41:05 my-host systemd[1]: Failed to start Caddy HTTP/2 web server.
Apr 25 12:41:05 my-host systemd[1]: Unit caddy.service entered failed state.
^C

dom1.tld,
dom2.tld,
sub1.dom2.tld,
sub2.dom2.tld,
sub3.dom2.tld,
sub4.dom2.tld,
dom3.tld,
sub1.dom3.tld,
sub2.dom3.tld,
*.dom1.tld:80, # No ssl for wildcards
*.dom3.tld:80,
*.sub1.dom3.tld:80,
*.*.dom3.tld:80
{
        tls<EMAIL_ADDRESS>        gzip
        header / -Server
        proxy / <IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s1.s1.dom4.tld,
s2.s1.dom4.tld
{
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / <IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s3.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / https://<IP_ADDRESS>:8006 {
                insecure_skip_verify
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s4.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:8000 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s5.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:9000 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s6.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                clients /etc/caddy/my-host.pem
        }
        gzip
        proxy / http://<IP_ADDRESS>:9091 {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

s7.s1.dom4.tld,
*.s7.s1.dom4.tld {
        tls<EMAIL_ADDRESS>{
                max_certs 10
        }
        gzip
        ipfilter / {
                rule allow
                ip <IP_ADDRESS>
                ip <IP_ADDRESS>
                ip <IP_ADDRESS>
        }
        proxy / http://<IP_ADDRESS> {
                transparent
                websocket
        }
        log / syslog "{hostonly} {remote} - {user} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\""
}

The same with just the http.ipfilter plugin. I also updated the systemd unit file with the latest one.
However this last try happily gave me a nice ban for one week 🎉 (yep, you warned me)

Without knowing your actual domain names, it's going to be near-impossible to debug. 99.99% of the time, these exact errors are caused by an infrastructure misconfiguration, not a bug in Caddy.

Without knowing your actual domain names, it's going to be near-impossible to debug.

The names are replaced (correctly & coherently in the last config+log I posted) but they are simple [a-z0-9]{3,8} names and the structure (dots/subs) is not touched. This is the full configuration file.
The first domain dom1.tld, the (first?) failing one, is like 1m9.de, if the fact it start&end by a number can be important.

99.99% of the time, these exact errors are caused by an infrastructure misconfiguration, not a bug in Caddy.

Caddy is running as a service on a proxmox hypervisor, acting as a reverse-proxy for the VMs (and proxmox itself). It is receiving the requests directly (I mentionned sslh last week, I got things mixed up in the hurry, today I tried a simple update from an old, known, working configuration), it is the "head", so I can't see what could be interfering :/
Eventually, did I missed an evolution in the configuration, causing Caddy to forward the /.well-known/acme-challenge/ requests to the backend server instead of handling them?

The names are replaced (correctly & coherently in the last config+log I posted) but they are simple [a-z0-9]{3,8} names and the structure (dots/subs) is not touched. This is the full configuration file.
The first domain dom1.tld, the (first?) failing one, is like 1m9.de, if the fact it start&end by a number can be important.

Thanks, but that's not the point: to be helpful in diagnosing issues, it is often required to look up DNS configuration or other information about a specific domain name, not the regex it matches. :) This is why we are so often unable to help people and people complain that our community is unhelpful: they don't fill out the issue template correctly, because everyone insists on redacting their domain names that go into public CT logs anyway, and we can't help them.
In this case, I need to be able to go to your domain in my browser and ensure that Caddy is the server that is responding to requests. If it's not for me, then it's not for LE either, and that is 99% of the time the problem that people have.


Add a Tech Preview banner and relative UI elements

LGTM, I do think we need to verify the copy with Paul. added it to the microcopy spreadsheet for review


#21 Added Speed Control Buttons

Fixed issue #21
Fixed the conflicts in PR #47

The buttons are working well

@Avdhesh-Varshney let me know if you need any further changes

@priyankeshh there is still the same issue. so try to raise another pr by closing this pr.
Don't forget to link your issue with the pr.


Use the timeout flag value in verify* commands.

This PR closes https://github.com/sigstore/cosign/issues/3390.
Summary

--timeout flag is not useful in verify* commands.
For example, when there is a network issue (not connecting to the company VPN but still try to access the internal service), even if I set --timeout 5s, the cosign verify will still hang for a long time (about one minute in my case) until erroring out.
$ ./cosign verify --timeout 5s internal.registry.com/image-name:tag
Error: Get "https://internal.registry.com/v2/": dial tcp <ip address>: i/o timeout
main.go:69: error during command execution: Get "https://internal.registry.com/v2/": dial tcp <ip address>: i/o timeout

After this pr, the command errors out when timeout.
$ ./cosign verify --timeout 5s internal.registry.com/image-name:tag
Error: Get "https://internal.registry.com/v2/": dial tcp <ip address>: context deadline exceeded
main.go:69: error during command execution: Get "https://internal.registry.com/v2/": context deadline exceeded

Release Note

Used the timeout flag value in verify* commands.
Documentation

No need to update documentation.

@haydentherapper Thank you! The lint check failed in the previous commit: https://github.com/sigstore/cosign/actions/runs/7009367023/job/19069346011?pr=3391. It is expected to pass now. Also, make lint did not catch this error on my laptop. I am unsure if it is just me.


The create-backup action silently fails if you've redeployed the postgresql application

Steps to reproduce

deploy postgresql
configure s3-integrator with backups and relate the two
run the create-backup action and confirm that works
remove postgresql and redeploy it
try to run the create-backup action again
it returns without error, but no backup has been created (confirmed via list-backups)
observe Backup failed: Stanza was not initialised in the juju logs

Expected behavior
The action should error with an indication that it's refusing to run backups because there are some backups from a previous application.
Actual behavior

It silently fails
Versions

Operating system: 22.04

Juju CLI: 3.1.6

Juju agent: 3.1.6

Charm revision: 331

LXD: N/A, OpenStack
Log output

Juju debug log:

Additional context

@dragomirp can you please confirm it is this Juju 3 issue?
https://bugs.launchpad.net/juju/+bug/2037279
Tnx!

Hi, @mthaddon, the create-backup action will indeed fail silently due to https://bugs.launchpad.net/juju/+bug/2037279, but the leader unit should get blocked if the charm is related to an s3-integrator reusing a bucket from another cluster. Was that not the case for you?

Juju 3.1.7 fixed this situation. I tested revision 368 (14/edge), and it correctly reported Action id 10 failed: Stanza was not initialised in its output.


Upgrade bayesian-optimization package to 1.0.0

As notified in #70 the bayesian-optimization package has a new version with a different interface.
From a quick look at it, the new API may provide an ask and tell interface which could make it simpler to interface (and may help move it out of the recastlib which is mostly a hack).
In any case, we need to move to the next version, but the update may be a bit tricky.

Relevant github: https://github.com/fmfn/BayesianOptimization
Not so sure anymore about ask and tell interface though :(


Ability to "Hydrate" Model from JSON String.

This is more of a question rather than an issue... I have this specific use-case where we need to cache data. I just wanted to check if the following is possible.

We can get the whole DB Model from cache as string.
We want to parse the string and then instantiate the JSON object as Sequelize Model..

e.g.
const userJSON = `{"id":1,"name":"Piyush"}`; // Assume It's from cache...
const user = JSON.parse(userJSON);

const userModel = User.hydrate(user); // Searching for something like this...

userModel.update({
    "name": "Updated Name here"
}).then(...);

Actually coming from Laravel background, i was searching for "hydrate" while the solution was under my nose the whole time... I just created this issue to post the answer if it servers any purpose to other users:
User.build(user, {
    isNewRecord: false
}).then((userModel) => {
// Do Crazy Stuff here...
});

Thanks @piyushkantm for coming up with the actual solution. Since this is solved I close this one. If you still have any issues, just reopen it


Acer r11

Would this work on the acer r11? I know that i came out before 2017 but are there workarounds for drivers? This feels easier than mrchromebox.

It would work, but I don't know about driver support. I would strongly reccomend you to use MrChromebox's work since you can boot any Linux distro and, chances are, everything will work.


Bad error message when showing recipes in ACR

Bug information
Steps to reproduce (required)

Login with ACR login
Publish by running rad bicep publish
Run the following command

rad recipe show <recipeName> --resource-type <resourceType>

Observed behavior (required)
\"<acrName>.azurecr.io/azure/sql:latest\": HEAD \"https://<acrName>.azurecr.io/v2/azure/<recipeName>/manifests/latest\": GET \"https://<acrName>.azurecr.io/oauth2/token?scope=repository%3Aazure%2F<recipeName>%3Apull\u0026service=<acrName>.azurecr.io\": response status code 401: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information."

Desired behavior (required)
A better error message that explains the problem and tells you how to login to pull. If I were an external customer I wouldn't be sure how to fix this.
AB#10641

Thanks @Gijsreyn for submitting this issue. We will look into this shortly.

Thanks @Gijsreyn for submitting this issue. We will look into this shortly.

Would love to see it. Was trying to setup a demo from an operator perspective, but couldn't go further with the diagnostics Radius is proving.

@vinayada1 , may this be related to #6917 ?

@Gijsreyn , thats correct. Today we only allow OCI registries with anonymous pull enabled as Bicep registries for Recipes. I wonder if the registry used was configured with private access that causing this issue.

@Gijsreyn , thats correct. Today we only allow OCI registries with anonymous pull enabled as Bicep registries for Recipes. I wonder if the registry used was configured with private access that causing this issue.

I probably think that's the case. I removed my demo, so I have to set it up again. Anyways, thanks for the reply!

For reference for anyone searching...
Installing Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

Login
Login to Azure using the CLI. Note that if you are using Devcontainers then you will need to use the "use-device-code" flag.
az login
az login --use-device-code

Login ACR
Next we login to the ACR
az acr login -n <acr-name>.azurecr.io

Publish our Recipe
Next we publish out Recipe
rad bicep publish --file <bicep-file> --target "br:<acr-name>.azurecr.io/<image>:<tag>"

I'm reopening this because I'm not sure that #6974 addressed it. That PR improves the error message for pushes to a registry (rad bicep publish).

rad recipe publish and rad recipe show are different commands. publish pushes a Bicep module to an OCI, show shows the details of a registry that's been registered.

@Gijsreyn can you confirm. @rynowak this is resolved with the work done under "publish" IMO. The issue talk about "publish" but the command example has "show". I think this was a typo.

Hi,
Just had some time to setup the demo again. This is what I'm trying to do:
az login
az group create --name rg-radius --location westeurope
az aks create --subscription  --resource-group rg-radius --name aks-rad --node-count 1
az aks get-credentials --subscription  --resource-group rg-radius --name aks-rad
az group deployment create --resource-group rg-radius --template-file oci.bicep --parameters name=acrradius
az aks update --name aks-rad --resource-group rg-radius --subscription  --attach-acr acrradius
rad init
rad bicep publish --file sqlfile.bicep --target "br:acrradius.azurecr.io/azure/sql:latest"
In the oci.bicep file:
@description('Required. The Azure Container Registry')
param name string

@description('Optional. Provide a location for the registry.')
param location string = resourceGroup().location

@description('Optional. Provide a tier of your Azure Container Registry.')
param sku string = 'Basic'

resource acrResource 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' = {
  name: name
  location: location
  sku: {
    name: sku
  }
  properties: {
    adminUserEnabled: false
  }
}

@description('Output the login server property for later use')
output loginServer string = acrResource.properties.loginServer

Still getting authentication required.

hi @Gijsreyn than you for the detailed response.
Can you please ensure you have logged into the acr. Docker and Az are not joined up at the moment.
az acr login -n acrradius
You can then Push to this ACR. Let me know how you get on.
note, the latest version of the CLI will be improved to show better error messaging.
@rynowak this is what I meant in my comment. The issue is with "publish" not "show"

@gpltaylor
Successfully published Bicep file "sqlfile.bicep" to "acrradius.azurecr.io/azure/sql:latest"
No error message this time.

Great! Can you please #close this ticket if you're happy everything is working?


Controller afterAction not firing in production mode

Platform: macOS 10.12.4
Database: sqlite3 & postgres 9.6.x
Lux Version: 1.1.7
Node Version: 7.4.0 and 7.9.0

The afterAction hooks are not being fired in production mode while working fine in (normal) development mode. To reproduce add any function to the afterAction hook of (i.e.) the posts controller in the social-network example and send a GET request to /posts.
afterAction = [
    (request, response, payload) => {
        console.log('AM I FIRING?');
        return payload;
    }
];

It is of importance that the afterAction does end up in the bundle.
Snippet from compiled controller:
class PostsController extends Controller {
    constructor(...args) {
        var _temp;
        return _temp = super(...args), this.params = ['user', 'body', 'title', 'isPublic'], this.afterAction = [
            (a, b, c) => {
                return console.log('AM I FIRING?'), c
            }
        ], _temp
    }
}

I've tracked this down to having something to do with babili . When disabling babili in babel-preset-lux, afterAction get's triggered.

Babili has some open issues related to variables disappearing in for loops.
Might be better to disable or replace babili for now?

Nice detective work @nickschot!

Might be better to disable or replace babili for now

I think that's a good idea.
If you want to take this on, updates should be made to babel-preset-lux. Also, you may be able to add "minified": false to your .babelrc to prevent this from occurring for the time being.

Do you want to replace it with the old uglify or just disable babili? There was some note that uglify undoes some optimisations made by Babel.

I think we could just remove babili until it becomes more stable. IMO, the minification is a micro optimization that we can live without.


Harmony: inputs and textarea sizes

PR includes

[x] Refactor

Related issues
Resolve #767
QA Instructions, Screenshots, Recordings

/canary


Unable to (entire screen, only windows) screenshare Discord/OBS

Hello there, I've been unable to screen share the entire screen either on discord/OBS.
Sorry for any inconvenience,  I'm new to hyprland and diy compositors/wms.
also i use a NVIDIA gtx 1070, i of course followed the screen sharing guide but couldn't get anything done but sharing separate windows using hyprland.
Here is the output of systemctl --user status pipewire wireplumber:
outputpipe.md
BUT here is the output of systemctl --user status xdg-desktop-portal-hyprland:
outputxdg.md
Also,
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
env =   LIBVA_DRIVER_NAME, nvidia
env =   XDG_SESSION_TYPE, wayland...etc...
are all in my config file.
Considering all that the error seems to be the following one which i couldn't  fix myself:
"  wireplumber[1741]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner "
i also don't know if its a bug whatsoever
Thank you for any answer,
and again sorry for any inconvenience :)

Nvidia currently has screensharing broken, you'll need to wait for whoever maintains nvidia patches to update them.
It's nvidia's fault, not Hyprland's.

patch.txt
This patch might fix the issue (nvidia, 8 bit only)

I use Hyprland on Gentoo with thegreatmcpain's ebuild. I have latest git versions of Hyprland, XDGDPH and the latest Nvidia Drivers. I have no issue with screenshots. The ebuild uses this patch:
Nvidia Patch

patch.txt
This patch might fix the issue (nvidia, 8 bit only)

Hey, can I ask where should I put this patch?


Asserts fail on CentOS 7.1 during tests

Compiling libuv 1.4.2 on CentOS 7.0 gives me this:
=============================================================
[%  10|+  26|-   0|T   0|S   0]: pipe_set_non_blocking
`pipe_set_non_blocking` failed: exit code 6
Output from process `pipe_set_non_blocking`:
Assertion failed in test/test-pipe-set-non-blocking.c on line 51: n == 0
=============================================================
[%  76|+ 190|-   1|T   0|S   0]: spawn_setuid_setgid
`spawn_setuid_setgid` skipped
Output from process `spawn_setuid_setgid`:
user 'nobody' cannot access the test runner
=============================================================
[%  77|+ 192|-   1|T   0|S   1]: signal_multiple_loops
`signal_multiple_loops` failed: timeout
Output from process `signal_multiple_loops`: (no output)
=============================================================
[%  80|+ 199|-   2|T   0|S   1]: fs_async_dir
`fs_async_dir` failed: exit code 6
Output from process `fs_async_dir`:
Assertion failed in test/test-fs.c on line 440: dent.type == UV_DIRENT_FILE
=============================================================
[%  85|+ 209|-   3|T   0|S   1]: fs_symlink_dir
`fs_symlink_dir` failed: exit code 6
Output from process `fs_symlink_dir`:
Assertion failed in test/test-fs.c on line 1707: dent.type == UV_DIRENT_FILE
=============================================================
[% 100|+ 245|-   4|T   0|S   1]: Done.
FAIL: test/run-tests
======================================================
1 of 1 test failed
Please report to https://github.com/libuv/libuv/issues
======================================================
make[1]: *** [check-TESTS] Error 1
make[1]: Leaving directory `/root/libuv-v1.4.2'
make: *** [check-am] Error 2
[root@localhost libuv-v1.4.2]#

These are the commands I typed to get here:
sudo yum install automake libtool wget
wget http://dist.libuv.org/dist/v1.4.2/libuv-v1.4.2.tar.gz
tar -zxf libuv-v1.4.2.tar.gz
cd libuv-v1.4.2
sudo sh autogen.sh
sudo ./configure
sudo make
sudo make check

What can I do to help troubleshooting this issue?

1.4.2 is ancient by now, can you please try the latest release? (the latest commit from the v1.x branch would be even better)

The program I'm trying to run (dnx, which is Microsoft ASP.NET5 open source port) needs 1.4.2 as per their documentation (https://docs.asp.net/en/latest/getting-started/installing-on-linux.html#installing-on-centos-fedora-and-derivatives). But I will give it a shot, sure!

Okay the latest version of v1.x branch passes all tests, and doesn't seem to prevent dnx from working. I'll let the Microsoft guys know!

Fantastic, thanks! For the record: we maintain backwards API and a stable ABI throughout the v1.x set of releases, so the upgrade should be straightforward.


Performance settings persistence

We have an avatar auto-optimization pipeline coming online, and it can be tested in the options panel. (Ignore the UI)

We want to make this setting persistent, auto-detected, and applied to all avatars in the scene, for UX/performance reasons.
Requirements

Make the avatar setting persistent across reloads (apply directly on load, without the unoptimized avatar ever being rendered). Can use localStorage to store the setting
Make the setting apply to all avatars in the scene (all totum VRM)
Bugfix corner cases, like the dioramas not rendering
Support some sort of heuristic for setting the performance mode if it was not previously set, or at least don't always use the MToon HQ mode, since that is a performance killer -- one option is we default to the crunched avatar in all cases
(Performance optimization) use the crunched version of the avatar for depth rendering in the post processing stack, and the diorama, to collapse draw calls into one

This seems like a good library to use for calibration:
https://github.com/pmndrs/detect-gpu
https://pmndrs.github.io/detect-gpu/
It is framerate-uncapped, and the determined FPS can be used to get a ballpark figure on the spec of the machine, which is bucketed into slots.

This has been broken up into multiple tickets

task 1 was addressed in #2370
task 2 is being addressed in #2552
task 3 should be addressed in #2529
task 4 is being addressed in #2550
task 5 is being addressed in #2551


Trying to run inference using deblurnet on GOPRO dataset -- again

Hi I am following up the question I asked earlier in here:
https://github.com/sczhou/DAVANet/issues/6
But I am specifying 'DeblurNet' instead of 'StereoDeblurNet' in the configuration file, and still the network complains about the tensor size mismatch. As from your Table1, it feels you have two different models for deblurring; one using the fuse information from fusionNet and DispBiNet while other not using this information. Is the trained model doing mono deblurring available?
Also, can you please not close an issue as someone could have follow up questions.

you need to change the channel number (from 288 to 128) in DeblurNet, according to the configuration Table.

I have the same question, I also want to train model with single image. @sczhou


Single cell normalization enhancement option

@hillsbury and I chatted about adding a single cell normalization option in two different scenarios:

When using a single file (output_one_single_file_only set to true)
When using single cell files saved across different site folders (output_one_single_file_only set to false)

#15 describes the need for a method to perform single cell normalization in general, but this issue can be used to document the need to implement both single cell normalization scenarios.
For example, @hillsbury noticed that the weld.py will fail when output_one_single_file_only = True and single_cell is set as a normalize level in the options config. Hillary will paste the error message that she received below :)

error during normalization:
Traceback (most recent call last):
  File "recipe/1.generate-profiles/2.normalize.py", line 46, in <module>
    file_to_normalize = normal

error during feature selection:
Traceback (most recent call last):
  File "recipe/1.generate-profiles/3.feature-select.py", line 58, in <module>
    df = pd.read_csv(input_file)
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/site-packages/pandas/io/parsers.py", line 676, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/site-packages/pandas/io/parsers.py", line 448, in _read
    parser = TextFileReader(fp_or_buf, **kwds)
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/site-packages/pandas/io/parsers.py", line 880, in __init__
    self._make_engine(self.engine)
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/site-packages/pandas/io/parsers.py", line 1114, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/site-packages/pandas/io/parsers.py", line 1891, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas/_libs/parsers.pyx", line 374, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas/_libs/parsers.pyx", line 613, in pandas._libs.parsers.TextReader._setup_parser_source
  File "/Users/hillary/miniconda3/envs/pooled-cell-painting/lib/python3.7/gzip.py", line 163, in __init__
    fileobj = self.myfileobj = builtins.open(filename, mode or 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'data/1.profiles/20190919_6W_CP074A/profiles/20190919_6W_CP074A_single_cell_normalized.csv.gz'


Added new filters in SentinelOne Authentication vim parser

Change(s):
Added new filters in SentinelOne Authentication vim parser.
Reason for Change(s):
New filters are suggested for Authentication parser so added in SnetinelOne Authentication vim parser.
Version Updated:
No.
Testing Completed:
Yes
Checked that the validations are passing and have addressed any issues that are present:
Yes

Will be including these changes once we new filter changes are applied for all authentication parsers. changing this PR to draft state until then.


Simplify AF2 structure retrieval

Is your feature request related to a problem? Please describe.
Now that biopandas 0.4.0 is out (:partying_face:) we can simplify graph construction from AF2 by simply adding a uniprot_id arg to graphein.protein.graphs.construct_graph() instead of doing the gymnastics of downloading a structure and feeding it in manually.

Implemented in 1.5.0


Adding new property formatterJSON for new schema

New Schema includes formatterJSON property for views.  Adding new property to documentation.
Category

[x] Content fix

What's in this Pull Request?
Updating addSPView to include formatterJSON value

thx @bcameron1231, appreciated.


Download instructions for the MSWEP data

Describe the bug
The MSWEP data needed for the recipe hydrology/recipe_hydro_forcing.yml are a bit difficult to download. The current instructions can be found in the ESMValCore documentation but the link there (http://www.gloh2o.org/mswep/) only gives access to the latest version of the data (V280). For that the user needs to apply to get access to a Google Drive folder where the data are stored. On that page, it is said:

MSWEP V1 lacks cumulative distribution function (CDF) corrections, and therefore exhibits significant drizzle and less reliable trends due to changes in the data sources through time. Conversely, MSWEP V2 matches the CDF of each dataset combination to a single reference CDF, resulting in less drizzle and a more homogeneous record. See the technical documentation for the full list of changes.

Currently the hydrology/recipe_hydro_forcing.yml uses MSWEP V220 data but these can't be found on the official website. I could only download them using a link in the description of the PR #969 which introduced the on-the-fly cmorization for MSWEP data. I'm not sure that link follows the requirement for Tier3 data and that V220 is still distributed.
It would be good to clarify the following points:

Which version of the data shall I place in the RAWOBS directory of Mistral (and maybe Jasmin)? We may need to update the documentation accordlingly.
Depending on version of the MSWEP data recommended, the recipe recipe_hydro_forcing.yml may need to be updated.

@jeromaerts perhaps you can comment on the version and (public) availability of MSWEP?

I ran into the same issue while we ran all the recipes for the release of v2.5 (#2535). So I downloaded the old version (v220) of the MSWEP data to be able to run the recipe hydrology/recipe_hydro_forcing.yml.
Getting the data MSWEP_V220/global_daily_050deg/2015*.nc and MSWEP_V220/global_daily_050deg/2016*.nc from the unofficial source given in ESMValCore/pull/969 was enough to run the recipe successfully, see output.
But the inconsistency between the version of the MSWEP data used in the recipe (v220) and the officially available version (v280) remains. I think we should either update the recipe_hydro_forcing.yml or our instructions on how to get the data from.

I can see this turning into an endless chase of the most recent version, so I'd prefer to update the instructions.

Thanks, I agree. I will transfer this to ESMValCore since info on natively supported non-CMIP datasets lives there


implement rotation for renderers

[ ] rotationType and rotationExpression for simple renderer
[ ] rotationType and rotationExpression for unique value renderer
[ ] rotationType and rotationExpression for class breaks renderer

Deciding this is out of scope.


error: remaining connection slots are reserved for non-replication superuser connections

I'm getting this error running knex 0.9.0 on heroku
Jan 13 02:11:53 fixtrack app/web.1: [0] Knex:Error Pool2 - error: remaining connection slots are reserved for non-replication superuser connections  Jan 13 02:11:53 fixtrack app/web.1: [0] Knex:warning - Pool2 - Error: Pool was destroyed  Jan 13 02:11:53 fixtrack app/web.1: [0] Unhandled rejection Error: Pool was destroyed  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Pool._destroyPool (/app/node_modules/knex/node_modules/pool2/lib/pool.js:536:20)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Pool.<anonymous> (/app/node_modules/knex/node_modules/pool2/lib/pool.js:458:18)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Pool.<anonymous> (/app/node_modules/knex/node_modules/pool2/lib/pool.js:493:17)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at tryCatcher (/app/node_modules/knex/node_modules/bluebird/js/main/util.js:26:23)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Promise.errorAdapter (/app/node_modules/knex/node_modules/bluebird/js/main/nodeify.js:36:34)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Promise._settlePromiseAt (/app/node_modules/knex/node_modules/bluebird/js/main/promise.js:579:21)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Promise._settlePromises (/app/node_modules/knex/node_modules/bluebird/js/main/promise.js:697:14)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Async._drainQueue (/app/node_modules/knex/node_modules/bluebird/js/main/async.js:123:16)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Async._drainQueues (/app/node_modules/knex/node_modules/bluebird/js/main/async.js:133:10)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at Immediate.Async.drainQueues [as _onImmediate] (/app/node_modules/knex/node_modules/bluebird/js/main/async.js:15:14)  Jan 13 02:11:53 fixtrack app/web.1: [0]     at processImmediate [as _immediateCallback] (timers.js:374:17)
Is there something I should be doing to avoid this error? like closing connections ? I have set my pool to 20, is that too much ?

The error message says it all. "Remaining connection slots are reserved...."
https://devcenter.heroku.com/articles/concurrency-and-database-connections#maximum-database-connections
Heroku hobby tier has limit of 20 connections, maybe you have more instances running, which uses those connections too or if you have some separate connection with other sql client at the same time or something like that.
Of course it is possible that there is offbyone error somewhere... you may try to lower max connection amount to 19.

Alright thanks, that gives me some peace of mind, I thought that might have been the case, but still found it strange that I had the error since the connections count was set to 20. But it makes sense that it might have been caused by running some other task on the db from the terminal. Just wanted to make sure, thank you :)

We are have trouble with this error and PostgresQL.

We have tried adjusting the min/max settings for the pool, but nothing is changing.

@BionanoDev if you can provide way to reproduce your problem, we might be able to help

I am also having this issue. I am using postgres via digitalocean, which has a way higher connection limit than heroku. The app has little to no traffic (is under active alpha development).
Since the database is under very active development, tables changing constantly, I've just been destroying and seeding a new one every now and then.
After a recent deployment, the site now immediately crashes, and I get this error. According to pgbench, I have 150 active connections. Which is absolutely insane.
My guess is that my connections are never being closed. I'm no postgres expert, clearly, but this seems pretty wild.
Unfortunately, it's not clear to me whether this issue is coming from knex, my app, or digitalocean, so i'm trying to investigate. Digitalocean community boards tend to think this error is caused by either bots, or by an app not closing the connection. But this issue leads me to believe that knex should close connections automatically if the server goes down or restarts?

Maybe you have multiple application instances running. Knex should never use 150 connections if pool has lower limit than that. Usually this kind of errors are caused because of combination of too big pool max limit and code that doesn't handle transactions propertly (if transactions are no committed / rolled back, then connections are not released to the pool). You can check out pool stats from inspecting knex.client.pool. Documentation for pool methods are found here https://github.com/vincit/tarn.js/

I just ran into something similar.  In my case, I was using Apollo and each datasource (the part that accesses knex) was RECREATING knex each time, rather than using the existing knex instance.  Once that was switched most of the issues went away.  I had a couple other small issue unrelated to knex (read: irrelevant for this discussion) that needed to be fixed too.
More detailed explanation: The SqlDataSource constructor was passed the knex configuration instead of the knex instance.  This caused each datasource to recreate knex and the pool, allowing for connections open the order of (pool size) * (# of datasources).  We have numerous SqlDataSources so the problem was compounded as the datasources are recreated on each graphql query.


Closing modal on approve

By default after approval, modal view doesn't get dismissed. But calling this.send('closeModal'); doesn't respect transition settings from the view. Also returns this error Uncaught TypeError: Cannot read property 'height' of undefined

This has been updated to no longer use closeModal. We can't call the appropriate callbacks for semantic if we are disposing of the outlet code directly.