Stack overflow exception when multiple processes writing to same log file

Hi
I'm getting a stack overflow exception which is killing my application when multiple processes are writing to the same log file.
It specifically happens when I hook up to log out first chance exceptions:
AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;
Here is a program which repros this issue:
static class Program
    {
        private static readonly ILogger Logger = LogManager.GetCurrentClassLogger();
        static void Main(string[] args)
        {

            AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

            string processName;
            if (args.Length == 0)
            {
                processName = "0";
                for (int i = 1; i < 2; ++i)
                {
                    Process.Start(Assembly.GetEntryAssembly().Location, i.ToString());
                }
            }
            else
            {
                processName = args[0];
            }

            bool running = true;
            Console.CancelKeyPress += (sender, eventArgs) => running = false; // shutdown on Control-C
            int j = 0;
            while (running)
            {
                Logger.Info("{0} - Happily Running Still {1}", processName, j);
                j++;
                Thread.Sleep(10);
            }
        }

        public static void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs e)
        {
            Logger.Error(e.Exception, "Current Domain On First Chance Exception");
        }
    }

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="C:\logs\log.txt" internalLogLevel="Trace">
  <targets>
    <target name="file"
            xsi:type="File"
            layout="${longdate} (${threadid}) ${level} [${logger}] ${message}"
            fileName="c:\logPath\logfile.log"
            archiveFileName="c:\logPath\logfile{##}.log"
            archiveAboveSize="12000"
            maxArchiveFiles="300"
            concurrentWrites="true"
            keepFileOpen="true"
            encoding="iso-8859-2" />
    <target name="Console" type="console" />
  </targets>
  <rules>
    <logger name="*" minlevel="Debug" writeTo="file" />
  </rules>
</nlog>

package version:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="NLog" version="4.6.8" targetFramework="net461" />
</packages>

When having multiple processes writing to the same files and archiving the same files, then exceptions can occur (Because one process is trying to move a file while another process is writing to the file).
When calling NLog Logger in the FirstChanceException-handler, then it is just like using Logger-objects inside NLog Targets, which should be avoided because of issues like these.
You could try one of the following solutions:

Change <targets> to <targets async="true">
Change CurrentDomainOnFirstChanceException to this:

Task.Run(() => Logger.Error(e.Exception, "Current Domain On First Chance Exception"));

Change CurrentDomainOnFirstChanceException to have special cyclic loop protection:

See example internalLogEventThreadId: https://github.com/snakefoot/NLog/commit/c5d852395fe886623830a732648678c4256161de


[stable/phpmyadmin] Fix phpMyAdmin logo link.

Signed-off-by: juan131<EMAIL_ADDRESS>What this PR does / why we need it:
Fix the link to phpMyAdmin logo.
Which issue this PR fixes

none

Special notes for your reviewer:

none

Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/ok-to-test
/lgtm


Feat/profile_v3

Thank you for your contribution to the Koda - Generative Art Marketplace.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Feature

Needs Design check

@exezbcz please review

Context

[x] Closes #9873

Extra Info
design wise i think it's good to go
codewise still missing transaltions done
and obviously there is no where to fetch profile info from yet
useful url params
to see new design use redesign=true
to see mock data use mock=true
Example
https://deploy-preview-9931--koda-canary.netlify.app/ahp/u/1cAsKZYNRb8dkSCpn4eVkEn6ycNZTGoDo5dGDgB8J1UUWK8?redesign=true&mock=true
Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

Screenshot 📸

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

Mobile issue

looking good! really nice
only thing i catched is the hover over these button

iirc it was changed recently
here:

https://github.com/kodadot/nft-gallery/pull/9747

@prury
failing tests seem unrelated to this PR

@exezbcz

only thing i catched is the hover over these button

fixed

all ready

Thanks @daiagi
I think this is much more needed to continue on other things I guess?

@yangwao could you rephrase please?

@daiagi  could you rephrase please?

@yangwao could you rephrase please?

@yangwao I guess we need to implement at least MVP for profile worker - https://github.com/kodadot/private-workers/issues/103
This PR is basically a mock, so not usable for prod

That's not accurate
The mock data is there so @exezbcz could review the design
It can be removed before merging
The pr can still got to prod. But it would not display any new user profile data until we have BE for it
And anyway it's hidden under redesign url param until we will be ready to switch

looking https://deploy-preview-9931--koda-canary.netlify.app/ahp/u/15CoYMEnJhhWHvdEPXDuTBnZKXwrJzMQdcMwcHGsVx5kXYvW?redesign=true&mock=true
this could be bit smaller font and probably closer to line?
cc @exezbcz

dropdown
I would put farcaster, x and web order

Thanks!
pay 50 usd

😍 Perfect, I’ve sent the payout
💵 $50 @ 9.55 USD/DOT ~ 5.236 $DOT
🧗 1cAsKZYNRb8dkSCpn4eVkEn6ycNZTGoDo5dGDgB8J1UUWK8
🔗 0x28848e3aebb51d63084ca0608053aedd91dd8bdf88db888e3f95ee535ff335c5
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Add --version parameter to yotta

Yotta should be able to download a specific version of a package.
i.e. yotta install mbed-drivers --version 0.11.6

:thumbs:
I think the syntax that should be supported is yotta install <modulename>@<version>, in fact the docs claim that it should be, so seems like it's a bug :wink: http://yottadocs.mbed.com/reference/commands.html#yotta-install

Thanks for the clarification James.

Fixed by #723


Video: handle HTMLMediaElement.play() Promise rejection and autoplay blocking, and API improvements

Summary
What changed?
1. Handle HTMLMediaElement.play() Promise rejection and autoplay blocking
Implemented try, catch statement around HTMLMediaElement.play() method within Gestalt's Video component to catch Promise rejection and consequent associated errors. Implemented onPlayError prop (callback) which gets called when HTMLMediaElement.play()'s Promise is rejected.
To learn more, see HTMLMediaElement.play() and exceptions
As a consequence of adding the first async/await in our components (within Video), I started getting the error  ReferenceError: regeneratorRuntime is not defined Babel 6 while  running tests. To get it fixed, we are adding import 'regenerator-runtime/runtime' into setupJest.js
2. API changes

adding onPlayError (required) & onPlay (required)  & onPause (optional)
renaming onPlay to onControlsPlay (so that onPlay matches native onPlay event)
renaming onPause to onControlsPause (so that  new onPause matches native onPause event)
no longer required captions as they are unsupported atm.

3. Updated Docs to improve API comprehension
Why?
In production we are seeing a huge amount of client errors that look like

The error started on 3/12/2022, though so far we can't pinpoint the change that triggered it as the data doesn't go further (max 30 days). But this probably started happening as soon as browser implemented this new restrictions.

Most browsers:

Firefox:

The origin is Gestalt > Video component

Many cases come from CloseupVideo.js thought there are other sources of the error.

This error is well documented in MDN documentation, see HTMLMediaElement.play() and exceptions

MDN recommends handling the Promise rejection with try,catch. suggested code solution here.
To repro issue, we can use this Pin URL on Safari. This pin is rendered via  CloseupVideo.js. We'll observe that the video doesn't play (compared to Chrome or others); however, the controls show it's playing. See issue here:

After implementing try,catch; however, in some cases we still observe the Video plays after the error is thrown (this has been reproed in the Gestalt Video docs, not in Pinterest production).
This required to continue the research because detecting the Promise rejection wasn't enough. After some more reading, we also read about the autoplay property. Gestalt Video's playing prop is directly passed to autoplay while controlling the execution of play(). Therefore if playing={true} in Video, the internal video is set to autoplay={true} at the same time it executes play(). This is a double control of the autoplay behavior.
In Safari, both logics cause play() to throw an error if playing={true}. both logics work well separately. If we internally remove autoplay, the video autoplays without errors. If we don't execute play() after mounting, the video also autoplays without errors.
According to documentation

According to the autoplay documentation

According to the Autoplay guide for media and Web Audio APIs

And a few other consideration about autoplay

Browser test
To test use the following code (autoplay and volume on)
function Example () {
  const [playing, setPlaying] = React.useState(false);

  return (
    <Box width={300}>
      <Video
        autoplay
        accessibilityMaximizeLabel="Maximize"
        accessibilityMinimizeLabel="Minimize"
        accessibilityMuteLabel="Mute"
        accessibilityPauseLabel="Pause"
        accessibilityPlayLabel="Play"
        accessibilityProgressBarLabel="Progress bar"
        accessibilityUnmuteLabel="Unmute"
        aspectRatio={540 / 960}
        controls
        onPlayError={({ error }) => {
          console.log(error)
          error && setPlaying(false)}
        }
        onPlay={({ event }) => setPlaying(true)}
        onControlsPlay={() => setPlaying(true)}
        onControlsPause={() => setPlaying(false)}
        onEnded={() => setPlaying(false)}
        playing={playing}
        volume={1}
        loop
        src="https://iandevlin.github.io/mdn/video-player-with-captions/video/sintel-short.mp4"  />
    </Box>
  )
}

Browser
Tested
Forcing autoplay block works (autoplay + volume 1)
Any other errors with correct autoplay (autoplay + volume 0)

Mobile Safari
Yes
Yes
No errors

Safari
Yes
Yes
No errors

Chrome
Yes
Yes
No errors

Firefox
Yes
Yes
No errors

Checklist

[ ] Added unit and Flow Tests
[X] Added documentation + accessibility tests
[ ] Verified accessibility: keyboard & screen reader interaction
[ ] Checked dark mode, responsiveness, and right-to-left support
[ ] Checked stakeholder feedback (e.g. Gestalt designers)

See browser testing on Description


Set task healthy if no healthchecks

Current coverage is 45.24% (diff: 100%)

Merging #234 into master will increase coverage by 1.74%

@@             master       #234   diff @@
==========================================
  Files            11         11
  Lines          8989       8989
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3910       4067   +157
+ Misses         4050       3872   -178
- Partials       1029       1050    +21

Powered by Codecov. Last update 018cb99...a47ec4a

LGTM


fixed possible writing wchar to char issue

https://stackoverflow.com/questions/21223774/problems-with-wchar-t-sprintf
https://wiki.sei.cmu.edu/confluence/display/c/STR38-C.+Do+not+confuse+narrow+and+wide+character+strings+and+functions
Either use GetCurrentDirectoryA or  GetCurrentDirectoryW, i think the second one is more generic solution.
But  BeaconCallbackC2's  parameter is LPCSTR buffer, i changed to first one.

Looks good mate


python310Packages.jsonschema-spec: 0.1.4 -> 0.1.6

https://github.com/p1c2u/jsonschema-spec/releases/tag/0.1.5
https://github.com/p1c2u/jsonschema-spec/releases/tag/0.1.6
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

jsonschema-spec 0.2.0 was released https://github.com/p1c2u/jsonschema-spec/releases/tag/0.2.0 a few hours ago

Wants two new dependencies.
https://pypi.org/project/referencing/
https://pypi.org/project/jsonschema-specifications/

0.2.3 is on master.


multiple probes?

Is it possible to send multiple probes? Like zmap starts to scan ip <IP_ADDRESS> sends probe a then probe b and continues with the next ip?

       -P, --probes=n
              Number of probes to send to each IP (default=1)


Run public pipelines from Dockstore on data in Saturn Projects.

Analysts browsing public pipelines from the dockstore UI have a button by which they can push a pipeline reference into a Saturn Project, where it could subsequently be used to launch workflows.
See the UX flow referenced here
Note that this flow was recently implemented in FireCloud. https://broadinstitute.atlassian.net/browse/GAWB-3098
Note that this case used a more complicated UX flow. For present purposes, if it makes development easier we can make the simplifying assumption that a user has an account and has at least one existing workspace.
Design needs:
"wireframes +" level interaction and visual design. No up-front user research needed. Designs must cover:

How issue selection works
Where tool references are placed within the overall project
How tool references are represented (an icon?)
How a user view details of a tool (look to FireCloud for inspiration)
How the blank databinding is represented, and its relation to the parent tool reference.

Engineering design needs:
Needs tech doc. FireCloud backend logic should be leverageable here. The overall flow of APIs should be the same. At a rough level, this is:
Saturn exposes a URL that Dockstore can hit with query parameters representing a specific tool
User is brought into our UX flow where they select their workspace.
Our system then goes to query dockstore for the particular tool, imports it and places a blank config in the workspace.
We need to document our the required API sequencing here, and call out any non-UI work that might need to be done (hopefully the answer is 'none)
External dependencies:
We need the Dockstore team at UCSC to add a 'send to Saturn' button analogous to their 'send to FireCloud' button, but pointed at the Saturn URL

This is a duplicate. Closing


Getting error if imports this package

Error is :
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...
FAILURE: Build failed with an exception.

Where:
Build file 'D:\Echo Switch\Flutter\Flutter Project\echo_switch\android\build.gradle' line: 11

What went wrong:
A problem occurred evaluating root project 'android'.

Could not find method implementation() for arguments [org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.20] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 1s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

I am getting this error too, after having upgraded my flutter and dart:
FAILURE: Build failed with an exception.

* What went wrong:
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':platform_device_id' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50

use this version
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}


Fixed typo for Brave Browser version 1.20.110.

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

/azp run


py3: relative imports fail

(Conda gives a conflicting requirements error, so I installed metaseq with pip.)
When trying to import metaseq, I get the following error:
In [2]: import metaseq
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-3365faa9d779> in <module>()
----> 1 import metaseq

/local/home/endrebak/anaconda3/lib/python3.5/site-packages/metaseq/__init__.py in <module>()
      2 import sys
      3 import time
----> 4 import helpers
      5 from helpers import data_dir, example_filename
      6 from _genomic_signal import genomic_signal

ImportError: No module named 'helpers'

If I am reading your Travis build log correctly, you only test on py27. Is this a requirement? If so, I guess I cannot use it with snakemake as easily. And you should add the requirement to your docs/README.md.

This might have to do with such imports being absolute in py3. It might be that prefixing your imports with . will fix this (import . helpers or something similar - have never actually run into this problem myself).

Relative imports were removed in py3 (good choice, imo), and this is why it fails. I fixed your metaseq/__init__.py like so:
import os
import sys
import time
from metaseq import helpers
from metaseq.helpers import data_dir, example_filename
from metaseq._genomic_signal import genomic_signal
import metaseq.plotutils
import integration
import integration.chipseq
import metaseq.colormap_adjust
import metaseq.results_table
import metaseq.tableprinter
from metaseq.version import __version__
import metaseq.persistence

but then I got this error:
In [1]: import metaseq
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-3365faa9d779> in <module>()
----> 1 import metaseq

/local/home/endrebak/anaconda3/lib/python3.5/site-packages/metaseq-0.5.6-py3.5.egg/metaseq/__init__.py in <module>()
      4 from metaseq import helpers
      5 from metaseq.helpers import data_dir, example_filename
----> 6 from metaseq._genomic_signal import genomic_signal
      7 import metaseq.plotutils
      8 import integration

/local/home/endrebak/anaconda3/lib/python3.5/site-packages/metaseq-0.5.6-py3.5.egg/metaseq/_genomic_signal.py in <module>()
     30
     31 import numpy as np
---> 32 from bx.bbi.bigwig_file import BigWigFile
     33
     34 import pybedtools

bx/bbi/bigwig_file.pyx in init bx.bbi.bigwig_file (lib/bx/bbi/bigwig_file.c:7691)()

bx/bbi/bbi_file.pyx in init bx.bbi.bbi_file (lib/bx/bbi/bbi_file.c:12911)()

ImportError: No module named 'cStringIO'

which I do not have time to look up now, but I'd guess it has to do with the same import issue.

Yep, due to the dependency on bx-python, which itself is only py27, I can't make metaseq py3-compatible.
Whenever I need to use it within snakemake, I end up writing a separate script and run it in a py27 env. Awkward? Yes.
I think the best solution here is to replace bx-python with the py3-compatible pybigwig. That will require a bit of work and lots more tests. It's already on my list though.
That said, depending on what you need to do, deepTools might be a better option.

bx-python has actually been python3 compatible for a year or so, IIRC. Perhaps you should try installing it again?
But do not put this high on your todo-list for my sake, I'll easily find a workaround.

The error you reported is a common error in non-py3-compatible code and, judging from your paths, is coming from bx-python as installed under py35. I had also tried building it a few months ago for py3 in bioconda and didn't have any luck. Are you able to use the bx.bbi.bigwig_file module in py3?

Sorry, probably not! I always think bx = intervaltree, clustertree because
it is the only two modules I use.
On Tue, May 24, 2016 at 3:46 PM, Ryan Dale<EMAIL_ADDRESS>wrote:

The error you reported is a common error in non-py3-compatible code and,
judging from your paths, is coming from bx-python as installed under py35.
I had also tried building it a few months ago for py3 in bioconda and
didn't have any luck. Are you able to use the bx.bbi.bigwig_file module
in py3?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/daler/metaseq/issues/26#issuecomment-221274417

When I learn more about bigwig, I'll try out https://bitbucket.org/mruffalo/bx-python3 and see if it works.
Perhaps it can be bundled with metaseq? Probably does not get more updates, but might be good enough.

I think it might be more beneficial to port the original bx-python (which I believe is bxlab/bx-python) to Python 3 rather than switching to an unmaintained fork.


Update refresh-certificates playbook

Is your feature request related to a problem? Please describe.
We tested the certificate renewal procedure and found some possible playbook errors and unstable behavior. Our environment- Fabric v2.5.4, Bevel v1.0.0 (from github tag v<IP_ADDRESS>).
Describe the solution you'd like
Please check the following things in refresh-certificates playbook:

"Create CA tools for each organization" task should have a variable sc_name: "{{ component }}-bevel-storageclass" (same as in deploy-network playbook)

Looks like sys_channel_name variable should be masterchl instead of syschannel

Create all orderers task should have a variable channel_name because task Fetch the genesis block from vault in role create/orderer requires a channel name.

Looks like channel.channel_name variable in Create genesis block and Write genesis block to Vault tasks in role create_channel_block should be different (maybe sys_channel_name). Otherwise an error  channel is undefined occurs.

After applying these changes we were able to execute the playbook successfully.
But after a couple of days we tried to launch the same playbook (without any additional changes) to ensure that all certificates have been renewed. And we have an error (some lines have been omitted):
TASK [create/refresh_certs/create_channel_block : Fetch masterchl configuration block from the blockchain] ***
task path: /var/jenkins_home/jobs/Automation/jobs/Renew_Certs/workspace/bevel/platforms/hyperledger-fabric/configuration/roles/create/refresh_certs/create_channel_block/tasks/get_update_block.yaml:8

fatal: [localhost]: FAILED! => {"attempts": 7, "changed": true, "cmd": "export PEER_CLI=$(KUBECONFIG=/root/.kube/config kubectl get po -n <ordrer_org>-net | grep \"cli\" | head -n 1 | awk '{print $1}')\nKUBECONFIG=/root/.kube/config kubectl exec -n <orderer_org> ${PEER_CLI} -- peer channel fetch config <orderer_2>_masterchl_config_block.pb -o <orderer_1>.<orderer_org>-net:7050 -c masterchl --tls --cafile ${ORDERER_CA}
---
readBlock\u001b[0m -> **Expect block, but got status: &{NOT_FOUND}**\n**Error: can't read the block: &{NOT_FOUND}**\

As I said above, the first launch of the playbook was successful.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I'll be working on this feature


Use of conditionally enabled components

Reported by hansolsson on 26 Jul 2013 14:45 UTC
For the following cases conditionally enabled components are used in non-connect - initial equations in Modelica.Electrical and Modelica.Magnetic:
Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Generator variable smee.idq_dr
Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_LoadDump variable smee.idq_dr
Modelica.Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Rectifier variable smee.idq_dr
Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator variables smeeE.idq_dr and smeeM.ir
Modelica.Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator_MultiPhase variables smee3.ir and smeeM.ir
--
Similar the Modelica.Mechanics.MultiBody.Joints.FreeMotionScalarInit has r_rel_a conditional which causes issues in:
Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip variable freeMotionScalarInit.r_rel_a*
Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint variable freeMotionScalarInit.r_rel_a*
--
It could be that the restriction is too strict.
(And sorry that I did not find it earlier.)

Migrated-From: https://trac.modelica.org/Modelica/ticket/1223

Comment by hansolsson on 26 Jul 2013 14:47 UTC
The restriction mentioned is in 4.4.5:
"A component declared with a condition_attribute can only be modified and/or used in connections."

Comment by hansolsson on 29 Jul 2013 13:01 UTC
The list above (using conditionally enabled variables outside of connect) should be a long longer (stopped check after 381 errors), e.g.:
Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_DOL got errors
due to Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_DOL having (using rs.heatPort):
  replaceable output
    Machines.Interfaces.InductionMachines.PartialPowerBalanceInductionMachines
    powerBalance(... final lossPowerStatorWinding = -sum(rs.heatPort.Q_flow) ...
  ...
  Modelica.Electrical.MultiPhase.Basic.Resistor rs(
   ...
   final useHeatPort=true,

Modelica.Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_PermanentMagnet uses damperCage:
  output Modelica.SIunits.Current idq_dr[2]...=
    damperCage.spacePhasor_r.i_ if useDamperCage;
  Machines.BasicMachines.Components.DamperCage damperCage ... if useDamperCage

--
Continuing the check in Modelica.Mechanics also found many (=86) of these issues:
Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.Components.MechanicalStructure
has (for r1.axis, r2.axis, ...):
   Modelica.Mechanics.MultiBody.Joints.Revolute r1(..., useAxisFlange=true,...);
equation
  tau = {r1.axis.tau,r2.axis.tau,r3.axis.tau,r4.axis.tau,r5.axis.tau,r6.
    axis.tau}

Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip also has (using model_r):
  SI.Position r_rel_a_1... = model_r.r_rel_a_1 if use_r;
  Model_r model_r ... if use_r;

Modelica.Mechanics.MultiBody.Visualizers.Advanced.Arrow using arrowLine
Visualizers.Advanced.Shape arrowLine ... if world.enableAnimation;
  Visualizers.Advanced.Shape arrowHead(
    ...
    r=rvisobj + rxvisobj*arrowLine.length,
    R=R) if world.enableAnimation;

Modelica.Mechanics.MultiBody.Visualizers.Advanced.DoubleArrow using arrowHead1
To me it seems we have to remove/loosen the restriction. Note that in many cases the potential issue cannot be made into an actual errors, since condition is "final=true" - or it is used in another variable with the same condition. However, I don't see how we can make such a rule that really covers the interesting cases and still is natural for users.

Comment by otter on 30 Jul 2013 07:27 UTC
Replying to [comment:2 hansolsson]:

To me it seems we have to remove/loosen the restriction. Note that in many cases the potential issue cannot be made into an actual errors, since condition is "final=true" - or it is used in another variable with the same condition. However, I don't see how we can make such a rule that really covers the interesting cases and still is natural for users.

I discussed this issue with Hans on the phone. To summarize:
The specification seems to be not completely clear on conditionally declared components. If the specification is interpreted very strictly, the only allowed usage is to declare a component and use it in connections. Especially, all the following forms are most likely not legal:
model Test
  parameter Boolean use_R;
  Resistor R1          if use_R;
  Resistor R2(R=R1.R)  if use_R;   // modifier with conditional component
  Real r2              if use_R;   // variables (with exception of connectors)
                                   // cannot be conditionally declared
  Real r3=2*r2         if use_R;   // Assignment of conditionally declared variable to another one
end Test;

model Test2
  Test test(final use_R=true, R1.R = 20); // modifier on conditional component
equation
  i = test.R1.p.i;                        // access of variable from conditional component
end Test2;

According to the ticket from Hans, several hundred of such usages occur in MSL 3.2.1. Of course, we must:

Clearly specify how conditional components can be declared and used and define this unambigously in the specification.
Adapt MSL to the specification or the specification to MSL.

Currently, no Modelica tool seem to report the definitions above as errors and therefore library developers did not recognize it. The current approach in the tools seems to be that checks are performed on the conditionally components that are enabled and if the equation counting is correct in this case, models are accepted.
I tried yesterday to rewrite one model, Modelica.Mechanics.MultiBody.Joints.FreeMotionScalarInit, so that it has no modifiers on conditionally declared components and only uses "connect(..)" on such components. After some hours I gave up, since the code became very complicated and I still did not manage. My current feeling is that this model cannot be rewritten in a backwards compatible way.
The issue is timing. The voting on Modelica Specification 3.2 rev.2 ends today (July 30), and MSL 3.2.1 Release Candidate 1 was planned to be released July 26, but was not due to the issue above and due to #1222.
Besides this issue also other issues with the specification will pop up (e.g. Hans reported already a minor issue with external objects). However, we cannot continue forever with improving the specification and MSL. At some time we must stop and make new releases (of the specification and of MSL) and fix detected issues in future releases. Note, it will take some time to clarify and fix conditional components since it is not an easy topic.
For these reasons, Hans and myself propose to accept the current situation, that is that conditional components are not well-defined in the Modelica specification 3.2 rev. 2 and that MSL 3.2.1 might use it wrongly, and still release both as soon as possible (spec and MSL 3.2.1 RC1 today). Please, give your opinion.

Comment by dhedberg on 30 Jul 2013 07:54 UTC
I totally agree with you and Hans, we need to accept the fact that we're only humans! :-)

Comment by jmattsson on 30 Jul 2013 08:05 UTC
JModelica.org for one does have a strict check for use of conditional components, but we don't support the mentioned parts of MSL yet (this being only one of the reasons). Considering how tricky this issue could be to define properly, I agree that it must be discussed at a design meeting, and that we should not wait with the releases.
This ticket should be a priority for the next design meeting, though.

Comment by dzimmer on 30 Jul 2013 08:09 UTC
I agree to Martin.
Conditional components and statements are causing many troubles in Modelica currently. There are a few more issues related to this topic:

contradictions involving conditional statmenets. You can still write self-contradictory stuff and get away without error-messages. Example:

if Connections.isRoot(frame_a) then
  connect(frame_a, frame_of_something_rooted)
end if

if cardinality(frame_a) <= 0 then
  connect(frame_a,frame_b)
end if

conditional parameter and components and the check for balanced models. Currently there are many components (often boundaries as sources and sinks) that are used in a non-balanced way but pass the checker because their defaul parameterization is describing a balanced model. This is actually useful to us but a bit fishy actually.

etc.

We see there are some principal issues and I think this cannot be resolved within ticket discussions but needs some major discussion at the design meetings and probably also some significant changes to the spec to get rid of all these issues.
This should, however, been done properly without any pressure originating from a deadline. Hence, for the moment, it is the best to follows Martins proposal and go for a release. We may be so honest and add a remark to the spec that this part is not well defined.

Modified by otter on 30 Jul 2013 08:25 UTC

Comment by leo.gall on 30 Jul 2013 09:19 UTC
Replying to [comment:6 dzimmer]:

We may be so honest and add a remark to the spec that this part is not well defined.

My proposal is to document this issue in the release notes of MSL 3.2.1.
The spec is more or less final, but MSL is still beta, so it should be easier to change.
And it's the logical conclusion of a library developer: document which parts of the spec have been ambiguous during implementation.

Comment by otter on 30 Jul 2013 10:09 UTC
Partial fix in eae87739bb76595aeb933786c990f0c00a76c359:
Fixed issues with conditional components in:

Modelica.Mechanics.MultiBody.Visualizers.Advanced.Arrow
Modelica.Mechanics.MultiBody.Visualizers.Advanced.DoubleArrow

Comment by otter on 30 Jul 2013 10:26 UTC
Partial fix in 28bb15850efd7e9dae08efcf122770ce36cba235:
Fixed issues with conditional components in:
Modelica.Mechanics.MultiBody.Examples.Systems.RobotR3.Components.MechanicalStructure

Comment by christiankral on 30 Jul 2013 10:58 UTC
Problem fixed for Machines and FundamentalWave library by using modifiers instead of initial equations  in 9491140b162caf281ce137a40f815a711c96f777.

Comment by otter on 30 Jul 2013 14:20 UTC
Partial fix in 13e2937ee1a7e9a373c5d178e6aef1222310fa52:
Fixed issues with conditional components in:
Modelica.Mechanics.MultiBody.Joints.FreeMotionScalarInit and all components using FreeMotionScalarInit.

Comment by ahaumer on 30 Jul 2013 15:25 UTC
Partly fixed for Modelica.Electrical.Machines and Modelica.Magnetic.FundamentalWave in trunk by 180834d2d672d8a82ed6bb0a172d268c7a68d241 and for MSL 3.2 (maintenance) by 12e874bb81bc4c82e048d17340bea97c8e14f06c.
Hans, please report any remaining issues - thanks in advance!

Comment by ahaumer on 30 Jul 2013 15:27 UTC
I see: I missed the conditional damperCage currents.
I'll have to investigate that today's evening!

Comment by otter on 31 Jul 2013 13:09 UTC
Improved fix in ab41c6a5a6247a54efdec2e2a50673c069b34a68 for
Modelica.Mechanics.MultiBody.Joints.FreeMotionScalarInit based on #1227

Comment by christiankral on 31 Jul 2013 13:49 UTC
Problem for conditional damper cage in Machines and FundametalWave library is fixed with output connector being connected with conditional damper cage, see e6a020a43dfe822d11a03347bf4886c0d5166af5.

Comment by ahaumer on 31 Jul 2013 15:09 UTC
Problem for losses in PowerBalance of QuasiStationary partialTransformer fixed by 6889064b379700691ddacf47eb654e02a4c895c3.
Martin - if all other issues are fixed, please close the ticket.

Comment by otter on 31 Jul 2013 15:47 UTC
Hans has re-checked MSL on the trunk with his new Dymola prototype and all issues with conditional components are fixed (so MSL is fully compliant to Modelica Spec 3.2 rev. 2). Therefore, this ticket is closed.
Note, in #1227 several suggestions are present to improve the description of conditional components in the specification.


Release v0.11.0.post1

Release summary
Version number: v0.11.0.post1
Release details
Describe in short the main changes with the new release.
Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the main branch (left side), from develop
[ ] I've updated the dependencies versions to the latest, wherever is possible.
[ ] Lint and unit tests pass locally (please run tests also manually, not only with tox)
[ ] I built the documentation and updated it with the latest changes
[ ] I've added an item in HISTORY.md for this release
[ ] I bumped the version number in the __init__.py file.
[ ] I published the latest version on TestPyPI and checked that the following command work:
pip install project-name==<version-number> --index-url https://test.pypi.org/simple --force --no-cache-dir --no-deps
[ ] After merging the PR, I'll publish the build also on PyPI. Then, I'll make sure the following
command will work:
pip install project-name-template==<version_number> --force --no-cache-dir --no-deps
[ ] After merging the PR, I'll tag the repo with v${VERSION_NUMVER} (e.g. v0.1.2)

Closed in favour of https://github.com/valory-xyz/open-autonomy/pull/2034


Discuss: openMenuOffset should be expressed as a fraction not in pixels

Current implementation of openMenuOffset defaults to 2/3 of the screen width. If no alternate value is provided it will be calculated internally using Dimensions.get('window').width * 2 / 3.
In order to use a different screen real-estate one can simply override the openMenuOffset value, however the new value needs to be calculated in the parent container.
A simpler, different, implementation could express openMenuOffset as a fraction and calculate the final width internally. For example openMenuOffset={2/3}, openMenuOffset={4/5} openMenuOffset={0.5} etc..
This will break current logic.

What's wrong with calculating it in the parent container? For the people needing pixel widths, this sort of approach would be even more obscure, ending up with a calculation like:
(desiredWidth / Dimensions.get('window').width) * Dimensions.get('window').width

Yeah i agree with @brianreavis i'm doing the same thing he recommended and it works perfect.

@rturk is it solved now?

Should be solved, so I'll close this one during the new feedback.


Add RDF

I was asked to produce some RDF for GeoPackage in conjunction with conceptual model activity. Since GeoPackage now aligns to this standard, it seemed sensible to make RDF for this standard and import it. It can sit next to the other schemas.

In the previous version we had a JSON-LD version that produced some nice RDF. We were not sure there was a use case for it so we discontinued. We could revive it if there is a need to.

Yeah I saw that but I think it would be easier to start from scratch. It should go quickly.


Add Android.mk to SPIRV-Tools

Android.mk was migrated from shaderc/third_party.
android_test is a stub, only builds spirv-tools libs.h to test build.

Please rebase.  Things have moved from underneath you.  :-)

Rebased and pushed into master as 99f20438f7a79


Filter by mariadb service cluster IP instead

Filtered pod IP may change, if pod restarts. Use the service cluster IP which never changes.

+1 on the direction, in addition to the inline comment please let's make a matching amendment to the docs as well.
Also, it may be worth coordinating with Sean regarding the order in which you guys would like to merge PRs that touch the MariaDB procedure.

please let's go with Sean's PR first, then I'll rebase

/hold
should come after https://github.com/openstack-k8s-operators/data-plane-adoption/pull/102

Actually, I think we also need to update it here: https://github.com/openstack-k8s-operators/data-plane-adoption/blob/bc58d557bf1f70c767e5c299de9ce9d72a49decb/docs/openstack/mariadb_copy.md?plain=1#L40C1-L40C1

done

rebased on top of the recent cells db as well

@SeanMooney @jistr PTAL


Add test against lifecycle data in the containers

this relies on https://bugzilla.suse.com/show_bug.cgi?id=1215834 being fixed first


Delete unused Block fields

After #973

[ ] remove block.consent field
[ ] remove block.active field
[ ] remove block.slug field

Consider: remove the Title field (this is in practice somewhat of a hassle to set, but of course should only be removed if other fields, combined, give an admin user enough information about which instance of a Block object they're editing.

remove block.slug field

Will slug not be used anymore at all?

I thought we might use id instead, to avoid confusion with handling slugs at different levels.


"not ok timeout" for express app that connects to mongo

I require my express app in the test file and also require supertest to write API tests with tap.
Sadly things do not work as long as my app connects to mongoDB with mongoose. Running the test file with tap always gives this output:
test/api.trips.spec.js ................................ 1/2 30s
  not ok timeout!
    handles:
      - type: Socket
        events:
          - end
          - finish
          - _socketEnd
          - connect
          - error
          - timeout
          - close
          - data
    signal: SIGTERM

total ................................................. 1/2

  1 passing (30s)
  1 failing

When I remove the part where the connection to mongo is created from my express app the test will instantly pass.
I did not even start writing a real test since even this dummy one won't pass:
var test = require('tap').test;
var app = require('../app');

test('test my app', function (t) {
    t.pass();
    t.end();
});

Or does it pass? Why does the output say there are two tests anyway?
Any help is much appreciated!

@melo0187 try just running the test file with node <test-file>. This will output the full TAP output and might provide more information.
You might also pass a string into t.pass so we can see that it is the one passing.

So, here's what's happening:
The test function runs, and it creates a single passing test, and then ends.
However, the process doesn't end, because you have a socket left open!
My guess is that mongoose is connecting to the mongodb server, but never closing the connection.  This is pretty normal.
You can either (a) kill the connection (for example, in a test(...) block after all the other testing is done), or (b) call socket.unref() on the socket (assuming you can get a reference to it) so that it doesn't keep the process from closing gracefully.
I very much do not recommend forcibly killing the process via process.exit() or some such.  It will tend to obscure cases where you're leaving things lying around in an un-closed state, and thus it will hide valid problems with your program.
Hope this helps!

By the way, the reason I know it's a socket is this bit:
    handles:
      - type: Socket
        events:
          - end
          - finish
          - _socketEnd
          - connect
          - error
          - timeout
          - close
          - data

Tap will dump a list of all the open active handles and requests when the process is forcibly killed due to a timeout.

@isaacs thank you for clarifying!


#1464 Add druid icon for workbench is required.

Description
워크벤치에 드루이드 아이콘이 표시되지 않습니다.
Related Issue : #1464

How Has This Been Tested?

druid connection 으로 워크벤치를 생성합니다.
워크벤치 내 왼쪽 패널 및 스키마 브라우저에서 아이콘이 정상적으로 표시되는지 확인합니다.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project. it will be added soon
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document. it will be added soon
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Additional Context

run build
deploy to 5


Video previews in recycle bin broken.

Description
So whenever I clicked on a video it starts out normal for I would guess 1/4 to 1/2 a second and then it turns into this covering the whole video, I also noticed for the 1/2 second it is normal the play button is white as if I am able to click it but after it bugs out it turns this gray and I cant play it neither can I change the time line. I have restarted and tested this 3 times and found out that it is re-creatable and it only happens in the recycle bin. So videos in say videos folder didn't get this bug.
Steps To Reproduce

Recycle a random video
go to recycle bin
click on the video and enable the preview pane
see this bug happens (image linked below.)

Expected behavior
To not extend up that high.
Files Version
v<IP_ADDRESS>
Windows Version
Windows 11 21H2 22000.348
Relevant Assets/Logs
debug.log
debug_fulltrust.log

@winston-de are previews meant to work in recycle bin?

Yes, because it seemed to work fine, but if it's causing issues I'll make a PR so it only shows the thumbnail.

@aayushyap89 this issue should be resolved with #7203.


ContainerExceptionInterface is not throwable

Hello. I have been following PR #20 and I see that the exception interfaces will extend Throwable in it, along with the breaking changes with type-hints. However, the static code analyser phpstan is now reporting that the exception interface is not a subtype of Throwable as its an error:
PHPDoc tag @throws with type Psr\Container\ContainerExceptionInterface is not subtype of Throwable

Is there a possibility to fix this outside of PR #20 ? I'm not familiar with any bylaws of FIG and what the possibilities are.

We've been discussing this kind of issues a lot lately, and we've condensed our proposed solution to updating PSR interfaces in a blog post. Please read it and provide your feedback!
https://www.php-fig.org/blog/2019/10/upgrading-psr-interfaces/

@weierophinney should be closed as 2.0.0 fixes this (1.1.0 as well but reverted in 1.1.1 due to the BC break)


internal/goos: gengoos is not generating zgoos_*.go files

What version of Go are you using (go version)?

$ go version 1.18.3

Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/halamix2/.cache/go-build"
GOENV="/home/halamix2/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/halamix2/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/halamix2/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.3"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1111947426=/tmp/go-build -gno-record-gcc-switches"

What did you do?

I've tried to run gengoos utility
What did you expect to see?
All zgoos_*.go should be (re)generated
What did you see instead?
None of the zgoos_*.go files were (re)generated, due to changes in syslist.go introduced in https://github.com/golang/go/commit/38174b3a3514629b84dcd76878b2f536b189dd7b

cc @golang/runtime


os2 test environment

Could you please add some detail to the PR on what the CI system will do after the change?

Waiting for devices to be added to OS2 environment before merging

Codecov Report

Merging #267 into master will decrease coverage by 1.64%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #267      +/-   ##
==========================================
- Coverage   90.88%   89.23%   -1.65%
==========================================
  Files          26       26
  Lines        1678     1672       -6
==========================================
- Hits         1525     1492      -33
- Misses        153      180      +27

Impacted Files
Coverage Δ

src/mbed_cloud/connect/notifications.py
60.71% <0%> (-11.91%)
:arrow_down:

src/mbed_cloud/connect/connect.py
68.57% <0%> (-7.83%)
:arrow_down:

src/mbed_cloud/certificates/certificates.py
98.56% <0%> (ø)
:arrow_up:

src/mbed_cloud/configuration.py
92.85% <0%> (+2.15%)
:arrow_up:

Continue to review full report at Codecov.

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


Reformat: Abstract loop in main.rs into multiple functions

resolved on https://github.com/vicentevieytes/conways-game-of-life/pull/4


[docs]: update link from https://github.com/apple/ to https://github.com/swiftlang/

PR Summary:
PR simply fixes the link from https://github.com/apple/ to https://github.com/swiftlang/

@swift-ci please smoke test

Dear @compnerd ,
Sorry for tagging you. This PR is not assigned to any member or team. I see you are the last member to approve merging this file. So that is the reason why I tagged you. Could you please help me to review or assign any member/team to review this PR?
Thanks,
Lam

Closed this PR, it updated on PR https://github.com/swiftlang/swift/pull/75388 .


exposing Right<A, B> and Left<A,B> may be a mistake because of the lousy type inference in Java.

Useful constructors to help Javas typer like
    public <L, R> Either<L, R> right(R right) { return new Right<>(right); }
    public <L, R> Either<L, R> left(L left) { return new Left<>(left); }

This way we can help the type inference allow to use in combinations with Option better.

Hi, thx - great suggestion!
Sorry for the late answer. I just realized that I didn't watch my own project any more o_O and therefore received no notifications. Fixed that.

Could you also check, if Either behaves ok for you? The return types are slightly different than in Scala.
In Javaslang we stay in the projection when performing operations, in Scala we leave the projection and return to Left or Right. Subsequent operations need in Scala to project every time.
What do you think which is better? The Scala behavior or the Javaslang behavior?

When writing Scala, I never use scala.Either. In almost all cases I want a right biased Either like scalaz.\/ or cats.data.Xor.
If I need aggregation of errors, I need a Applicative functor, so scalaz.Validation works better there.

Need help! Two questions:
You see these...
    public <L, R> Either<L, R> right(R right) { return new Right<>(right); }
    public <L, R> Either<L, R> left(L left) { return new Left<>(left); }

...as static factory methods of interface Either, right? You suggest not to expose the specific type, like so, right?
public interface Either<L, R> {
    static <L, R> Right<L, R> right(R right) {
        return new Right<>(right);
    }
    static <L, R> Left<L, R> left(L left) {
        return new Left<>(left);
    }
}

Do you have an example where it causes trouble regarding Java's type inference?

This way we can help the type inference allow to use in combinations with Option better.

Could you please give me an example / combination with Option?
Nearly finished. Thx!

...as static factory methods of interface Either, right? You suggest not to expose the specific type, like so, right?

Correct.
For some reason I have removed all examples I had for the failing type inference.
I remember that I quickly got cyclic inference whenever I was working with Eithers.
The general case is actually not option, but Either.fold
Definition of Either.fold.
interface Either<A,B> {
  <C> C fold(Function<A, C> leftF, Function<B, C> rightf);
}

class Right<A, B> {

  public <C> C fold(Function<A, C> leftF, Function<B, C> rightf) {
    rightf.apply(this.right.get());
  }
}

class Left<A, B> {

  public <C> C fold(Function<A, C> leftf, Function<B, C> rightf) {
    leftf.apply(this.left().getLeftValue());
  }
}

Everything else can be implemented in terms of fold.
example of use:
either.fold(ex => Option.none(), right => Option.of(right));

Ok. In a first step I will provide the factory methods.
Sounds like an interface Foldable also makes sense. Could be located as internal/auxiliary interface in Value, like FilterMonadic, Convertible, ... Then almost all types will get fold, not only Traversables.

left and right methods added. Other ideas are tracked in other issues.
Thx!


Feature request: cancel

It would be great to be able to do:
var q = queue(1);
tasks.forEach(function(t) { q.defer(t); });
q.awaitAll(function(error, results) { console.log("all done!"); });

// At a later time, before "all done!" is printed
q.cancel();

And all the remaining tasks become no-ops.

Thanks for writing the abort branch!

This issue is covered by #22, so closing as duplicate.

Released in 1.2.


Decide how to handle containers without any shells

There is no way to access a container that does not have any shell installed, so they have to be treated in a special way.

These are now properly handled when connecting with a special error message


refactor(libsinsp/container): introduce sinsp_container_lookup class

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-udig

/area libscap

/area libsinsp

/area tests

/area proposals

What this PR does / why we need it:
Remove the duplication between cri and docker async sources by having a base class for sinsp_container_info async_key_value_source.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

Really loving these changes! Please do not forget to open a PR with this once 402 is merged :D


remove hardcoded version

Just a small thing. I wonder if the version is needed considering the bug has been fixed? Seems to work on my fork:

Might still be good practice to fix it to a particular version...

I think it's probably best to just leave the hardcoded version for now, as everything is working and I'd like to avoid introducing any new issues. I think the only reason I'd want to remove this at this point is if there's a security vulnerability that requires bumping the version.

Cool, that's sensible
On Mon, 21 Mar 2022 at 16:22, Santiago Gonzalez @.***>
wrote:

I think it's probably best to just leave the hardcoded version for now, as
everything is working and I'd like to avoid introducing any new issues. I
think the only reason I'd want to remove this at this point is if there's a
security vulnerability that requires bumping the version.
—
Reply to this email directly, view it on GitHub
https://github.com/sangonzal/repository-traffic-action/pull/28#issuecomment-1074114456,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCP272JPMUYZG2COLVTHMLVBCO4TANCNFSM5RC45Z6Q
.
You are receiving this because you authored the thread.Message ID:
@.***>


More UI Improvement/fixes

More UI Improvement/fixes

This change is

Coverage remained the same at 47.238% when pulling 18cd04cd2af0c31f56675343b7827a272f78039b on xzzy:master into 6c39fe4bc8c8d10240bc8ecac2c2d8edcb441e82 on parksandwildlife:master.

Reviewed 6 of 6 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Highlight asci/hex on selection

Since VSCode supports some sort of multiselection we can use this to highlight portions of ascii when hex is selected and vice versa

+1
Very hard to use without this feature

Fixed. Will be part of next release.


Test results of rerun build looks confusing

# CUSTOM_TARGET: java/text/Format/DateFormat/DateFormatTest.java tools/jpackage/share/RuntimeImageTest.java com/sun/net/httpserver/TcpNoDelayNotRequired.java com/sun/net/httpserver/Test1.java build/AbsPathsInImage.java build/AbsPathsInImage.java com/sun/net/httpserver/TcpNoDelayNotRequired.java java/net/httpclient/ManyRequests2.java java/net/httpclient/ShutdownNow.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 0   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 6; failed: 1; error: 0; skipped: 0
1..1
not ok 1 - jdk_custom_0
  ---
    output:
      |
        Failed test cases:
        TEST: build/AbsPathsInImage.java
        Test results: passed: 6; failed: 1
    duration_ms: 261144

https://ci.adoptium.net/job/Test_openjdk23_hs_extended.openjdk_x86-64_linux_rerun/21/artifact/aqa-tests/TKG/output_17261191319545/Test_openjdk23_hs_extended.openjdk_x86-64_linux_rerun.tap/*view*/
There are 9 tests in target, result shows 7.

Underlying jtreg will skip the duplicate ones, which makes result confusing. Need to remove the duplicate ones from the tap files and console output to eliminate the confusing.


issue: near.social notification links do not work anymore

When user receives a near.social notification that someone liked/edited/replied to their post there is a link that sends to it e.g.:
https://near.social/#/devgovgigs.near/widget/Ideas?postId=7
It used to work, but it does not anymore

@nearmax Good catch. I fixed it in #34


Give credit to photo + change the button link

I suggest you to make this a landing page instead of a home page because sometimes the user will want to click home to go back to a "main page".
When the user is logged in, and the user click the "Start Shopping" button, the user will always redirect to the login page
Maybe do a conditional statement for the redirect, or on the login page.
Also, always give credit to photo taken from the internet. I was able to search the image on Google.

Thanks for the advice. We did mention the source of the pics in the github, and we'll add it in the website as well.


protoc-gen-go: add url flag to protobuf fields with json name

Adds support for https://github.com/google/go-querystring
Need to look into tests.

Thanks, but no. We aren't going to bloat out generated code for everyone just to support go-querystring.

We aren't going to bloat out generated code for everyone just to support go-querystring.

Ok! Curious how you would go about interoperability. At this point, I'm using code generation: inserting a //go:generate comment at the top of my .pb.go files and generating a func (f myStruct) UrlValues() url.Values based on the code it reads. It's very heavy-handed. Is there a way I can tell protoc-gen-go to add more tags? We have also wanted tags customization for much simpler database (mysql, mongo, etc) deserialization.

Struct tags simply aren't a good solution when you don't control the types. The same would apply if the types were defined in a package that you don't own. Ideally the relevant package would provide some other form of control, or you need to implement a shadow set of wrapper types. It's going to depend on the situation.


ADDR_VERSION should not be a constant

I see that it is now in the protocol settings. Is there a way that we can retrieve this information through an rpc call?

not that I know of


Correct and more accurate timestamp

As per https://github.com/aspnet/Hosting/pull/543
Resolves  #3849

Info from hosting PR (though current MVC is off by x10000 as similar issue to https://github.com/aspnet/Hosting/issues/478)
Before with Environment.TickCount

info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 15ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 15ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200

After with Stopwatch.GetTimestamp()

Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2912ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2585ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2394ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2698ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3228ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3882ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3152ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2772ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3678ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2701ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3148ms 200

Info from hosting PR (though current MVC is off by x10000 as similar issue to https://github.com/aspnet/Hosting/issues/478)
Before with Environment.TickCount

info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 15ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 15ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0ms 200

After with Stopwatch.GetTimestamp()

Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2912ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2585ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2394ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2698ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3228ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3882ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3152ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2772ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3678ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/favicon.ico
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.2701ms 200
info: Microsoft.AspNet.Hosting.Internal.WebApplication[1]
Request starting HTTP/1.1 GET http://localhost:5001/plaintext
info: Microsoft.AspNet.Hosting.Internal.WebApplication[2]
Request finished in 0.3148ms 200

However Stopwatch.GetTimestamp() is more expensive than Environment.TickCount
Benchmark: https://gist.github.com/benaadams/988b223a2433dcf773fc
BenchmarkDotNet-Dev=v<IP_ADDRESS>+
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz, ProcessorCount=8
HostCLR=MS.NET 4.0.30319.42000, Arch=64-bit  [RyuJIT]
Type=Measurements  Mode=Throughput  Platform=X64  Jit=RyuJit  .NET=HostFramework  toolchain=Classic  Runtime=Clr  Warmup=5  Target=10

            Method |    AvrTime |    StdDev |             op/s |

---------------------- |----------- |---------- |----------------- |
DateTimeNowTicks | 24.6842 ns | 0.3468 ns |    40,519,628.87 |
DateTimeUtcNowTicks |  0.5665 ns | 0.0098 ns | 1,765,792,561.14 |
EnvironmentTickCount |  0.1741 ns | 0.0036 ns | 5,745,520,332.73 |
StopwatchGetTimestamp |  1.4230 ns | 0.0231 ns |   702,899,855.26 |
So only call it when the logging is enabled at the level that will log the time.

However Stopwatch.GetTimestamp() is more expensive than Environment.TickCount
Benchmark: https://gist.github.com/benaadams/988b223a2433dcf773fc
BenchmarkDotNet-Dev=v<IP_ADDRESS>+
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz, ProcessorCount=8
HostCLR=MS.NET 4.0.30319.42000, Arch=64-bit  [RyuJIT]
Type=Measurements  Mode=Throughput  Platform=X64  Jit=RyuJit  .NET=HostFramework  toolchain=Classic  Runtime=Clr  Warmup=5  Target=10

            Method |    AvrTime |    StdDev |             op/s |

---------------------- |----------- |---------- |----------------- |
DateTimeNowTicks | 24.6842 ns | 0.3468 ns |    40,519,628.87 |
DateTimeUtcNowTicks |  0.5665 ns | 0.0098 ns | 1,765,792,561.14 |
EnvironmentTickCount |  0.1741 ns | 0.0036 ns | 5,745,520,332.73 |
StopwatchGetTimestamp |  1.4230 ns | 0.0231 ns |   702,899,855.26 |
So only call it when the logging is enabled at the level that will log the time.

@pranavkm please sync with @rynowak on this.

:watch: for the IsEnabled change.

Removed the extra check

Merged in https://github.com/aspnet/Mvc/commit/c125b4e59badf551c85bbc8d6ae8cb133fe6de7c.
Thanks for the PR!


Allow disabling connection pooling and use 1:1 connection with upstream and downstream

Title: Allow disabling connection pooling and use 1:1 connection with upstream and downstream
Description:
It would be great to have an option (on cluster?) to allow HTTP proxying to follow connection properties like tcp_proxy. That is:

When downstream opens a connection, we open a connection to upstream.
We never share an upstream connection with multiple downstream connections, and the reverse
If the upstream closes, so does the downstream, and the reverse.

Example motivating use case: https://github.com/istio/istio/issues/36768
Basically the proxy captures 100% of traffic. We have some known services where we do special routing for, but for the rest we passthrough with an ORIGINAL_DST cluster. The problem is that uses see unexpected behavior because the connection pooling in Envoy. The most common I have seen is when the upstream is doing DNS load balancing. Because Envoy is keeping the downstream connection alive and sending 503s, the user's HTTP client will re-use the connection and not retry DNS, so it will be stuck failing forever getting 503s.
Alternatives considered:

Use a tcp_proxy. Unfortunately, we don't know which destination will be used until we process HTTP, so we need to send it through HCM.
Close downstream connection only when Envoy cannot connect to upstream. This is like a subset of above which would probably fix some issues but not all

Can you comment a bit more about how this differs from setting max_requests_per_connection to 1?
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-max-requests-per-connection

Yes, the difference is we want the downstream/upstream to explicitly control connection handling, not Envoy.
For example, consider this client:
con := connect(example.com)
con.sendReq()
con.sendReq()
con.disconnect() # this should be propagated to upstream

max_requests_per_connection will result in 2 different upstream connections. With this proposal, there would be 1 single connection.

ah, totally makes sense.  I think this is a dup of https://github.com/envoyproxy/envoy/issues/12370 then?

@alyssawilk I'm not sure if #12370 is already completed and solve this issue.
connect_pool_per_downstream_connection flag is added to the cluster config to use a separate connection pool for every downstream connection. But if the upstream connection closes, the downstream still won't.
#12370 is not active for 14 months. Is there any more develop plan?

It's not complete, it just has more explanation and discussion so better to have that tracking the desired feature.
AFIK no one is actively working on it.  If your company has a need for it it'd be great for you to pick it up!

It's not complete, it just has more explanation and discussion so better to have that tracking the desired feature. AFIK no one is actively working on it. If your company has a need for it it'd be great for you to pick it up!

I'd love to but am not familiar with c++.

@alyssawilk Can you reopen this? 1 downstream conn with 1 upstream conn pool does not fully resolve the problem.
We need to convert some of the upstream failure (e.g. connect failure) into a downstream connection error.
This behavior may not make sense for all cluster types, but it align with the original_dst cluster as upstream

I think we can narrow it down to a specific problem: ORIGINAL_DST (IP-based) HCM should be able to appear transparent at L4, by propagating the connection events downstream. This is because the common usage for ORIGINAL_DST is to avoid any upstream decision making by Envoy so there is no need for Envoy to manage upstream connections. This can be used, for example, to collect pure L7 telemetry for all L4 using inspection and a more "lenient" HCM filter.

Would it be possible to instead of having a 1:1 connection for every request, create a new backing connection + retry when a 503 is encountered?
That kind of middle option seems like it would have most of the benefit without having a dramatic performance reduction.

This is solved by connection_pool_per_downstream_connection

@howardjohn  Is the downstream connection closed if upstream closes the connection allowing the downstream to re-resolve dns?

@howardjohn Is the downstream connection closed if upstream closes the connection allowing the downstream to re-resolve dns?

I think so? we should double check

https://github.com/envoyproxy/envoy/issues/19458#issuecomment-1009653805 - based on this I think the DNS re-resolution wont happen.

#19458 (comment) - based on this I think the DNS re-resolution wont happen. We need to test it though

:thinking: how could the downstream not?? Does that mean if the upstream closes we just end up 503ing forever...? Definitely needs some testing

I'm pretty sure the current logic doesn't couple connection events between upstream and downstream.

This configuration should fix the NTLM authentication problem, right?
https://github.com/envoyproxy/envoy/issues/21543

This is solved by connection_pool_per_downstream_connection

@howardjohn
Does connection_pool_per_downstream_connection option satisfies your third requirement?

If the upstream closes, so does the downstream, and the reverse.

I thought if downstream connection is closed then the corresponding upstream connection will be closed immediately. However, the upstream connection seems to be closed after idle_timeout. Maybe https://github.com/envoyproxy/envoy/issues/37617 is the same issue.

Sounds like https://github.com/envoyproxy/envoy/issues/37617 which seems like just a bug. There is no point in keeping a connection open if its guaranteed to never be used again.

Sounds like #37617 which seems like just a bug. There is no point in keeping a connection open if its guaranteed to never be used again.

I read PR in https://github.com/envoyproxy/envoy/pull/12812. Although I'm not accustomed to read envoy codebase, I couldn't find any code that handle the socket close event for both upstream and downstream connection.
And as @kyessenov said, current logic doesn't couple connection between upstream and downstream.

I'm pretty sure the current logic doesn't couple connection events between upstream and downstream.

So, the behavior is not a bug. It's intended.
I tested envoy 1.28.0 and latest(1.32.3) and the result was same.
My question is that, if this is intended what can I do further? In our usecase, this is very important functionality.
May I open a new Issue?


Integrate CCDB5 UI

Thanks to @chosak and @willbarton the code is ready for plugging in ccdb5-ui into the website
Removals

The directory with the old approach

Changes

Where the UI is hooked in

Notes

Until #2998 is merged, the dependency on the new version of wagtail-flags is indicated in requirements/base.txt

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows the standards laid out in the development playbook
[x] Passes all existing automated tests
[x] New functions include new tests
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[x] Project documentation has been updated
[x] Reviewers requested with the Assignee tool :arrow_right:

@sephcoster  @rosskarchner @willbarton @sebworks - 24 hour reminder


policy authentication appearently not working on sails v.0.10.0-rc11

Hi all,
I tried to follow the instruction provided on the page to deny access to controllers based on a policy but I were unable to make it work as shown on the page. After a slight modification on policies/passport.js it worked, I added a single line shown below just before the next() invocation:
req.session.authenticated = (typeof(req.user) !== "undefined");
As I have not that much experience on Sails.js I can't say for sure whether I had missed something on the docs for sails-generate-auth or if it something has indeed changed on sails.js.
best regards,
Rafael

It should work if you just chain policies after the passport policy. This was not the case?


initial S2 layer

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: ibgreen:x: urosi2453You have signed the CLA already but the status is still pending? Let us recheck it.


Error in the generate template - ContainerPort

Type of request: This is a ...
[X] bug report
[ ] feature request
Detailed description
The generate yaml using helm template localstack/localstack has a error in Deployment.spec.template.spec.containers[0].ports[0]. In Port session, has a "container" token but suppose to be "containerPort".
...
Expected behavior
Helm package installed ..
...
Actual behavior
Helm release localstack not installed. Installing...
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(Deployment.spec.template.spec.containers[0].ports[0]): unknown field "container" in io.k8s.api.core.v1.ContainerPort, ValidationError(Deployment.spec.template.spec.containers[0].ports[0]): missing required field "containerPort" in io.k8s.api.core.v1.ContainerPort]

...
Steps to reproduce
helm repo add localstack https://localstack.github.io/helm-charts
helm repo update
skaffold run

Command used to start LocalStack
skaffold run
...
Helm Chart Version
NAME: localstack/localstack
CHART VERSION: 0.1.3
APP VERSION: latest (v0.12.7)

As I understand it, a fix of this issue is currently being discussed here: https://github.com/localstack/helm-charts/pull/16

Excellent waiting for been merge!!!


Translations update from Hosted Weblate

Translations update from Hosted Weblate for Flashy/Flashy.
Current translation status:

Thank you very much for your support, @DasJott! 😘

You're very welcome. I like your apps! 😊
I also even tried to keep the humor in the strings  😉


Blacklisted official thepiratebay.org website

It might have happened by accident, but I see that thepiratebay.org was added to the list.
Can someone elaborate on that?

Hi @yeralin this comes in as a result of CoinBlockerList, which indicates that this site may be crypto mining.
Can you please log this issue at https://gitlab.com/ZeroDot1/CoinBlockerLists/issues ?

Duplicate of the discussion at #713.
(also) For reference:  #714

I will not remove Pirate Bay as it is doubly bad for users.
First, the domain is used for mining.
Second, the site is bad for many people who make their money with their creativity, e.g. actors and singers.
All other tries to remove such obviously illegal pages from the lists will be ignored and deleted or reported.
So the discussion here is closed.

Welp, the guy decided to become a god.
I'm removing my crontab for updating hosts


pdm: fails to create virtualenv

Describe the bug
When running pdm install in a PDM-managed Python project, with python.use_venv on (which is its default), it fails to create a virtualenv.  This is because it calls /nix/store/…-python3-…/bin/python3.… -m virtualenv, which does not have the required paths in sys.path and hence fails to find virtualenv.
Steps To Reproduce
Steps to reproduce the behavior:

git clone https://github.com/pdm-project/pdm-example-monorepo
cd pdm-example-monorepo
git checkout a6b3f47027730829105fae6524e4096d1ac180e4
pdm install

Expected behavior
PDM should be able to create a virtualenv.
~Screenshots~ Terminal log
thomas@hoth /tmp/pdm-example-monorepo (git)-[main]
% pdm install
Lock file version is not compatible with PDM, installation may fail
Updating the lock file...
python.use_venv is on, creating a virtualenv for this project...
/nix/store/a4ivjgjcdk0l4yzylhc1q7acm7abdz6x-python3-3.10.10/bin/python3.10: No module named virtualenv
[VirtualenvCreateError]: Command
'['/nix/store/a4ivjgjcdk0l4yzylhc1q7acm7abdz6x-python3-3.10.10/bin/python3.10', '-m',
'virtualenv', '/private/tmp/pdm-example-monorepo/.venv', '-p',
'/nix/store/a4ivjgjcdk0l4yzylhc1q7acm7abdz6x-python3-3.10.10/bin/python', '--no-pip',
'--no-setuptools', '--no-wheel', '--prompt=pdm-example-monorepo-3.10']' returned
non-zero exit status 1.

Additional context
This is with pdm from nixpkgs-unstable (the version in 22.11 is too old for my project’s metadata format version), but I don’t think this is the cause for this bug.  I wanted to make this clear by using the correct nix-shell command above for reproducing it, but failed at the correct incantation.
Notify maintainers
@cpcloud
Metadata
thomas@hoth /tmp
% nix-shell -p nix-info --run "nix-info -m"
these 2 paths will be fetched (0.01 MiB download, 0.03 MiB unpacked):
  /nix/store/f808fny98wqvjf0i57ibgl53ayshmdss-DarwinTools-1
  /nix/store/i3gkim5qjs0zhcjv3nx4ns93yjq21zjb-nix-info
copying path '/nix/store/f808fny98wqvjf0i57ibgl53ayshmdss-DarwinTools-1' from 'https://cache.nixos.org'...
copying path '/nix/store/i3gkim5qjs0zhcjv3nx4ns93yjq21zjb-nix-info' from 'https://cache.nixos.org'...
 - system: `"x86_64-darwin"`
 - host os: `Darwin 19.6.0, macOS 10.15.7`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.12.0`
 - channels(root): `"nixpkgs-22.11-darwin"`
 - channels(thomas): `"home-manager-22.11.tar.gz, nixpkgs-unstable"`
 - nixpkgs: `/Users/thomas/.nix-defexpr/channels_root/nixpkgs`

Here, same issue:
% nix-shell -p nix-info --run "nix-info -m"
Python 3.11.1
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.93, NixOS, 23.05 (Stoat), 23.05.20230211.e5530ab`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.2`
 - channels(root): `"home-manager, nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

I also had this problem when I went back to venv from PEP582.
It seems to be related to #66366.
The virtualenv is included in the propagatedBuildInputs but not in the site-packages of the Python environment.
A possible workaround is to use venv.backend = venv in the configuration of pdm, or give it an argument like pdm venv create -w venv.
https://pdm.fming.dev/latest/reference/configuration/#available-configurations
It would be easier for the package to patch the configuration to default to venv until the above issue is resolved.
cc @cpcloud @mweinelt @betaboon


Middleware Stacking/Sequencing After Lua

Hi, I have a lua script middleware thats working; which I would like to further refine and manipulate with flatmaps, mapping, etc. But these middleware doesnt seem to have any effect when Lua is used. Any ideas how to sequentially apply these middlewares one after another?

Hi @is911 , you can combine Lua with other manipulation options. You have to be aware of the position and type of Lua you are using and when it intervenes in the fetching/requesting/merging process


Update Find-MailboxDelegates.ps1

Update for localized calendar names
Category

[ ] Bug fix
[ ] New script
[ ] New sample

Related Issues
Retrieving calendar permissions hard-coded looks at Calendar. Doest not work for localized calendar names.
What's in this Pull Request?
Update to first determine the calendar name, then fetches the permissions using this name.

thank you @michelderooij ! 👍


Preserve CRCs in messages when they are transformed during replication

This is important to ensure that the store identifies duplicates
correctly (and thus avoid false Blob_Already_Exists errors)

Codecov Report

Merging #1042 into master will increase coverage by 0.05%.
The diff coverage is 71.42%.

@@             Coverage Diff              @@
##             master    #1042      +/-   ##
============================================
+ Coverage      68.4%   68.45%   +0.05%
- Complexity     4788     4795       +7
============================================
  Files           382      382
  Lines         30369    30374       +5
  Branches       3869     3871       +2
============================================
+ Hits          20774    20793      +19
+ Misses         8541     8534       -7
+ Partials       1054     1047       -7

Impacted Files
Coverage Δ
Complexity Δ

...m.github.ambry.protocol/PartitionResponseInfo.java
71.11% <0%> (-3.31%)
14 <0> (ø)

...om.github.ambry.replication/BlobIdTransformer.java
98.52% <100%> (+0.02%)
12 <0> (+1)
:arrow_up:

...rc/main/java/com.github.ambry.store/BlobStore.java
84.75% <100%> (+0.08%)
71 <0> (ø)
:arrow_down:

...in/java/com.github.ambry.store/BlobStoreStats.java
70.41% <0%> (ø)
101% <0%> (ø)
:arrow_down:

.../main/java/com.github.ambry.store/HardDeleter.java
80.06% <0%> (+0.32%)
42% <0%> (+1%)
:arrow_up:

...ain/java/com.github.ambry.router/PutOperation.java
90.19% <0%> (+0.38%)
81% <0%> (ø)
:arrow_down:

...in/java/com.github.ambry.network/SocketServer.java
83.19% <0%> (+0.4%)
13% <0%> (ø)
:arrow_down:

...b.ambry.network/BlockingChannelConnectionPool.java
63.47% <0%> (+0.86%)
8% <0%> (+1%)
:arrow_up:

.../java/com.github.ambry.router/DeleteOperation.java
93.61% <0%> (+1.41%)
48% <0%> (+1%)
:arrow_up:

.../src/main/java/com.github.ambry.store/Journal.java
92.3% <0%> (+1.53%)
25% <0%> (+1%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

The variable/functions "crc" in MessageInfo and Journal has to be renamed to better represent the data that it holds. Since that will cause a lot of unrelated changes, we can take it up in a follow up PR

A note about the naming of crc (just thought we can continue here to get a consensus rather than raise a separate issue):
I agree that it can be renamed or at least made more specific.
CRC was named appropriately when this feature was originally introduced. It is the CRC over all the "data" bytes of the blob : blob id, blob properties, user metadata and blob content (and no headers and such, this is completely different from the CRCs in MessageFormat). There is a certain order in which these are processed to generate the CRC, and that is specific to the PutRequest protocol, but in essence, different copies of the "same" object would have the same CRC, even if we happen to generate it again.
However, it so happens that since the time this field was named, we introduced the concept of message transformation by which two instances of the "same" blob can have different set of bytes. And I think that is where these two ideas begin to diverge.
Since this is still a CRC, and is the CRC generated for the blob originally at the time of the operation, similar to operationTime, I would prefer to call this originalCrc or creationCrc. That way, it would make sense even when this is associated with the transformed message.


Here are the highlights of this release:
 - Dependency locking
 - Maven Publish and Ivy Publish plugins improved and marked stable
 - Incremental annotation processing enhancements
 - APIs to configure tasks at creation time

For more details see https://docs.gradle.org/4.8.1/release-notes.html

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'burning-okr'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.diffplug.spotless:spotless-plugin-gradle:3.27.1.
     Required by:
         project :
      > Could not resolve com.diffplug.spotless:spotless-plugin-gradle:3.27.1.
         > Could not get resource 'https://repo.maven.apache.org/maven2/com/diffplug/spotless/spotless-plugin-gradle/3.27.1/spotless-plugin-gradle-3.27.1.pom'.
            > Could not GET 'https://repo.maven.apache.org/maven2/com/diffplug/spotless/spotless-plugin-gradle/3.27.1/spotless-plugin-gradle-3.27.1.pom'.
               > repo.maven.apache.org: Temporary failure in name resolution
      > Could not resolve com.diffplug.spotless:spotless-plugin-gradle:3.27.1.
         > Could not get resource 'https://plugins.gradle.org/m2/com/diffplug/spotless/spotless-plugin-gradle/3.27.1/spotless-plugin-gradle-3.27.1.pom'.
            > Could not GET 'https://plugins.gradle.org/m2/com/diffplug/spotless/spotless-plugin-gradle/3.27.1/spotless-plugin-gradle-3.27.1.pom'.
               > plugins.gradle.org: Temporary failure in name resolution

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 53s
The command '/bin/sh -c gradle bootJar --no-daemon' returned a non-zero code: 1
ERROR: Service 'backend' failed to build : Build failed

Expected behavior
Build completes successfully.
Additional context
I can only presume that there is a DNS issue somewhere but no idea how to debug that.
I can wget the required files from the CLI without any issues.
Build Environment
CentOS 7 base and updated
Docker version 20.10.8, build 3967b7d
docker-compose version 1.29.2, build 5becea4c

This looks more like an issue with maven or some wrong dns or internet configuration


add publish to package.json

As requested:
Package.json now holds a few extra script lines, most importantly publish
Invoke it using 'npm run publish', if all goes well it will:
bump the npm version, do a git tag (built-in feature of npm version) and pour you a beer ;-)
Publish will only work on an clean git working directory, so all work in progress must have been committed before.
I can't fully test publish myself as I don't have access to the npm publish command, so you'll have to try this yourself next time when you publish (on paper it should work)
I have used a second karma config, as a coverage test on a minified js is not really meaningful and I did not have another way to tell karma to skip the coverage test.
Still todo is the activition of lint as a pretest condition.
Reason for this is that the current Lokijs does not pass jshint due to redefinition of variables.
There are a few ways to fix this:

rename i to i1, i2 etc
rename i to j,k,l etc
isolate these parts in separate functions to restrict scope

Happy to fix this as well if you indicate your preference.

awesome work as usual. Should be able to test it tonight.


(678) Hide "Make a referral" on non-referable courses

Context

We have some non-referable courses, but currently you can make a referral to them
Changes in this PR

Hide "Make a referral" button for non-referable courses
Guard against request to create a referral to a non-referable course

This doesn't prevent users from manually going to the Refer pages with the ID of an offering that's for a non-referable course, but it does guard against requests made to create one. Later work could redirect back to the offering if the user has accessed the start, new, or create referrals actions, or the find and show new referrals people actions, with a flashed message explaining the redirect
Release checklist
Release process documentation
As part of our continuous deployment strategy we must ensure that this work is
ready to be released once merged.
Pre-merge

[ ] There are changes required to the Accredited Programmes API for this change to work...

[ ] ... and they have been released to production already

Post-merge

[ ] This adds, extends or meaningfully modifies a feature...

[ ] ... and I have written or updated an end-to-end test for the happy path in the Accredited Programmes E2E repo

[ ] This makes new expectations of the API...

[ ] ... and I have notified the API developer(s) of changes to the contract tests (Pact), or the API is already compliant

[ ] Manually approve release to preprod
[ ] Manually approve release to prod

 Use "referable" property (S)


StatsD (e.g. DataDog) support

Hi,
I'm currently evaluating traefik for our internal services, and so far I'm very impressed - good job on such an easy approachable project.
I can't find any instrumentation for statsd to get runtime information into a nice UI view like datadog.
Is this something planned, or is it there already and I totally missed it somewhere?
Would like to have insights into errors, requests, errors and so forth for frontend (and maybe backend)
/health do provide some information, but not in a very granular level :)

We are planning to add prometheus metrics.
And there is also a proposal to add support for opentracing #771

@errm okay, so no plans to add basic statsd support? both prometheus and opentracing  are fairly new technologies, where statsd is old and wildly supported and understood :)

At this stage I understand the plan is to add metrics using https://github.com/rcrowley/go-metrics.
This should make supporting a number of metrics systems quite simple, I think there is a client for statsd.

this is partially covered now by #1022 and #1042. We'd need to add an statsD implementation analogous to Prometheus one https://github.com/containous/traefik/blob/master/middlewares/prometheus.go by using https://github.com/go-kit/kit/tree/master/metrics/statsd

I have a PR ready, but will probably wait till #1504 gets merged (unless there is a desire to get the changes in for 1.3 release)

We have already frozen the 1.3 branch for features (only bug fixes at this stage), so waiting should be fine. 👍

Hey all,
Prometheus support is coming to Datadog and we're adding a check for Traefik using it (should be ready to use with the 5.14 release). That means auto discovery will work with Traefik, and also that these metrics will be official metrics in Datadog and not billed as custom metrics. Here's the PR for tracking: https://github.com/DataDog/integrations-extras/pull/64
That's just a heads up, StatsD instrumentation is still great for other solutions.

Closed by #1701


Downstream test: no futher need for globally installed Grunt.

This was needed for jsfmt, but it's not necessary anymore:
https://github.com/rdio/jsfmt/pull/163
Refs #1023

Almost trivial, so I'll land this.


As a trestle user I would like a demonstration where I combine external repositories (such as box / dropbox / sharepoint etc) and update trestle repos on changes.

Assumptions:

A custom trestle script exists to perform ETL associated with an existing non-oscal document such as a excel spreadsheet
That excel spreadsheet or similar exists in a 3rd party content repo (such as box / dropbox).
The goal is to maintain synchronisation between box and trestle git{hub|lab} repo in a one way transfer mechanism (e.g. upstream repo is authoritative).

Where the output in the repository is in OSCAL and not the excel format.

Does not need to be integrated in real time (e.g. a hourly / daily cron is enough).

To be investigated post initial instance

Whether webhooks

Workflow:
Cron CICD job fires

script and/or shell auths into 3rd party repo and pulls content.
ETL script fires and updates the oscal object
OSCAL Object is committed and pushed automatically into the repo
[OPTIONAL EXTRA] PR Is opened...we do not need to do this to start with .. pushing to the authoritative branch should be okay.
clean up.

Completion criteria:

System deployed in a meaningful way
Public example on github.com

@vikas-agarwal76 - I think this relates to the issue we wanted to solve w.r.t. box internally. We can discuss the prioritization.

@butler54 to create the public facing example of this.

Pushing back backlog as I'm not sure we have solved this yet.

I'm going to close this as we don't actually have a great way to do this that is integrated with trestle beyond being run in the same script.