Outdated ubuntu package

Hi,
if this is a repository maintained by canonical itself, I do wonder, why the ubuntu/debian package python3-pylxd is outdated and taken from an an old source that does not even exist anymore: https://github.com/lxd/pylxd
I have opened  a bug on launchpad two months ago, but nobody seems to care about:
https://bugs.launchpad.net/ubuntu/+source/python-pylxd/+bug/2065537
If canonical itself is maintaining pylxd, shouldn't they also update the ubuntu package, or at least remove the outdated package from the package list?
It took me some time to realize that python3-pylxd was not covering all functions and not working well just because it is outdated and taken from an abandoned source repo.
Additionally, the installation command given in your README does not even work this way under recent Ubuntu versions (on 24.04):
pip install pylxd
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
So, Ubuntu is asking at the same time to override the deb package with pip, and not to do it.
Please do make this consistent, functioning, and not self-contradictory.
regards

Hi,
if this is a repository maintained by canonical itself, I do wonder, why the ubuntu/debian package python3-pylxd is outdated and taken from an an old source that does not even exist anymore: https://github.com/lxd/pylxd

Indeed, that's an old and broken link.

I have opened a bug on launchpad two months ago, but nobody seems to care about:
https://bugs.launchpad.net/ubuntu/+source/python-pylxd/+bug/2065537

My bad, I was not subscribed to bugs from this package which TBH, didn't know existed. Also, it's not managed by Canonical per-se, it's coming in from Debian: https://packages.debian.org/source/sid/python-pylxd
I'll try to make contact with the Debian maintainer and see if I can push some updates to it.

If canonical itself is maintaining pylxd, shouldn't they also update the ubuntu package, or at least remove the outdated package from the package list?

That's not exactly how Ubuntu releases work. Package versions are "frozen" at release time and remain at the same version for the whole lifetime of the release.

It took me some time to realize that python3-pylxd was not covering all functions and not working well just because it is outdated and taken from an abandoned source repo.
Additionally, the installation command given in your README does not even work this way under recent Ubuntu versions (on 24.04):
pip install pylxd
error: externally-managed-environment
× This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.
So, Ubuntu is asking at the same time to override the deb package with pip, and not to do it.
Please do make this consistent, functioning, and not self-contradictory.

Indeed, that's inconsistent but that's coming from 2 different entities so to speak. https://github.com/canonical/pylxd/pull/597 should improve the provided example, please take a look at it.

regards

Thanks!


Add a toString() method

@b4hand @tanglyh @tammybailey @martin-seomoz

LGTM, but I wonder if the trade off of recomputing toString() is a great one. The downside to keeping the fully formed URL is twice the space for the object.

I'm not sure what you mean -- are you suggesting we memoize the string representation?

Yeah, that's what I was considering whether it was beneficial to store the fully URL potentially in the constructor. Then the question is whether you eagerly store it or only on demand.

It's going to change when people start doing normalizations, so I figure it's best to do so lazily. Another use-case is to extract the PLD / TLD / FQDN, in which case str() would never even be invoked.


Catch AttributeError inside GPIODevice._read

Fixes #202

At least, I believe this is the correct fix. Obviously @waveform80 will need to confirm.

PR updated with appropriate unit-tests :-)

And tests too! I love PRs like this :)

(and yes, it's the correct fix - I think the pins implementation broke that by mutating the TypeError, which RPi.GPIO raises, to an AttributeError)

And tests too! I love PRs like this :)

:-D


Agents fail on update

I recently noted that there had been a lot of changes since i last updated (I believe end of July) and decided to update via pip install --upgrade https://github.com/deepmind/pysc2/archive/master.zip
I now get the following errors when attempting to run "$ python -m pysc2.bin.agent --map Simple64" or
$ python -m pysc2.bin.agent --map CollectMineralShards --agent pysc2.agents.scripted_agent.CollectMineralShards" as given in the readme
Traceback (most recent call last):
File "C:\Python\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "C:\Python\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Python\lib\site-packages\pysc2\bin\agent.py", line 164, in
app.run(main)
File "C:\Python\lib\site-packages\absl\app.py", line 300, in run
_run_main(main, args)
File "C:\Python\lib\site-packages\absl\app.py", line 251, in _run_main
sys.exit(main(argv))
File "C:\Python\lib\site-packages\pysc2\bin\agent.py", line 150, in main
run_thread(agent_classes, players, FLAGS.map, FLAGS.render)
File "C:\Python\lib\site-packages\pysc2\bin\agent.py", line 108, in run_thread
run_loop.run_loop(agents, env, FLAGS.max_agent_steps, FLAGS.max_episodes)
File "C:\Python\lib\site-packages\pysc2\env\run_loop.py", line 48, in run_loop
timesteps = env.step(actions)
File "C:\Python\lib\site-packages\pysc2\env\available_actions_printer.py", line 32, in step
all_obs = super(AvailableActionsPrinter, self).step(*args, **kwargs)
File "C:\Python\lib\site-packages\pysc2\env\base_env_wrapper.py", line 42, in step
return self._env.step(*args, **kwargs)
File "C:\Python\lib\site-packages\pysc2\lib\stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "C:\Python\lib\site-packages\pysc2\env\sc2_env.py", line 548, in step
return self._step(step_mul)
File "C:\Python\lib\site-packages\pysc2\env\sc2_env.py", line 565, in _step
return self._observe(target_game_loop=target_game_loop)
File "C:\Python\lib\site-packages\pysc2\env\sc2_env.py", line 670, in _observe
self._get_observations(target_game_loop)
File "C:\Python\lib\site-packages\pysc2\env\sc2_env.py", line 638, in _get_observations
for c, f in zip(self._controllers, self._features)))
File "C:\Python\lib\site-packages\pysc2\lib\run_parallel.py", line 56, in run
return [funcs0]
File "C:\Python\lib\site-packages\pysc2\env\sc2_env.py", line 632, in parallel_observe
agent_obs = f.transform_obs(obs)
File "C:\Python\lib\site-packages\pysc2\lib\stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "C:\Python\lib\site-packages\pysc2\lib\features.py", line 1520, in transform_obs
self.available_actions(obs.observation), dtype=np.int32)
File "C:\Python\lib\site-packages\pysc2\lib\stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "C:\Python\lib\site-packages\pysc2\lib\features.py", line 1569, in available_actions
raise ValueError("Failed to find applicable action for {}".format(a))
ValueError: Failed to find applicable action for ability_id: 1
requires_point: false
If someone could tell me what's going wrong here or how i can roll back to a version before this problem, that would be greatly appreciated (yes, i foolishly did not back-up before running this update)
Edit: I found and backversioned to 2.0.2 through pip and everything is running again, but am obviously missing any changes since that release

Hi @tewalds
This issue and question here is from September and still, there is no reply. pycs2 with the latest starcraft version is not working for me as well for a number of other people. It seems like testing was not on the very high level before the release.
But even if it was the case, I didn't know what could prevent replying to the question for almost half a year and fixing the issue reported by the community.

I'm having the same issue when trying to run the prepare datasets function from this repo. Python 3.7, Windows 10, latest version 3.0.0 of PySC2, and version 5.0.9 of the game, trying to process version 4.7.1 replays. Would be cool to see this get updated/some insight into the error. Unless this repo is about to be archived or something...

Narrowed it down to this section from /pysc2/lib/features.py
  @sw.decorate
  def available_actions(self, obs):
    """Return the list of available action ids."""
    available_actions = set()
    hide_specific_actions = self._agent_interface_format.hide_specific_actions
    for i, func in six.iteritems(actions.FUNCTIONS_AVAILABLE):
      if func.avail_fn(obs):
        available_actions.add(i)
    for a in obs.abilities:
      if a.ability_id not in actions.ABILITY_IDS:
        logging.warning("Unknown ability %s seen as available.", a.ability_id)
        continue
      found_applicable = False
      for func in actions.ABILITY_IDS[a.ability_id]:
        if func.function_type in actions.POINT_REQUIRED_FUNCS[a.requires_point]:
          if func.general_id == 0 or not hide_specific_actions:
            available_actions.add(func.id)
            found_applicable = True
          if func.general_id != 0:  # Always offer generic actions.
            for general_func in actions.ABILITY_IDS[func.general_id]:
              if general_func.function_type is func.function_type:
                # Only the right type. Don't want to expose the general action
                # to minimap if only the screen version is available.
                available_actions.add(general_func.id)
                found_applicable = True
                break
      if not found_applicable:
        raise ValueError("Failed to find applicable action for {}".format(a))
    return list(available_actions)

I'll try and do some print outs and debugging on my end to see if I can somehow clumsily figure this out for anyone new (like me) trying to get setup with SC2 RL

Got same problem in pysc2 4.0.0. Any updates here ?

I got same problem in pysc2 4.0.0. It's been almost 4 years, is there any solution?


Components wrapped in styled are not correctly linted by the rule react-hooks/rules-of-hooks of eslint-plugin-react-hooks

Sorry if this has already been raised but I could not find this in the existing or closed issues.
Environment
System:

OS: Linux 5.4 Ubuntu 18.04.5 LTS (Bionic Beaver)
CPU: (8) x64 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
Memory: 312.68 MB / 15.30 GB
Container: Yes
Shell: 5.4.2 - /bin/zsh

Binaries:

Node: 12.18.0 - ~/.nvm/versions/node/v12.18.0/bin/node
Yarn: 1.22.10 - ~/.nvm/versions/node/v12.18.0/bin/yarn
npm: 6.14.4 - ~/.nvm/versions/node/v12.18.0/bin/npm

npmPackages:

styled-components: ^5.2.3 => 5.2.3

Reproduction
Steps to reproduce
You can checkout this repository and run npm i && ./node_modules/.bin/eslint . or do the following steps:

create a react app with typescript with npx create-react-app my-app --template typescript
cd my-app
install styled-components: npm i styled-components && npm i --save-dev @types/styled-components
install eslint : @types/styled-components @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-plugin-reacteslint-plugin-react-hooks
create a file named .eslintrc.json at the root of the folder with this content: {
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "plugins": [
    "@typescript-eslint",
    "react-hooks"
  ],
  "extends": [
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "rules": {
    "react-hooks/rules-of-hooks": "error",
    "react/prop-types": "off"
  },
  "settings": {
    "react": {
      "pragma": "React",
      "version": "detect"
    }
  }
}

add a file named Test.tsx in src/ with this content:import React, { useState } from 'react';
import styled from 'styled-components';

export const WorkingLint: React.FunctionComponent<{prop?: string}> = ({prop}) => {
  if(!prop) {
    return null;
  }
  const [] = useState(false);
  return (
    <div> Lint on hook is working </div>
  );
};

export const NotWorkingLint = styled(({prop}:{prop?: string}) => {
  if(!prop) {
    return null;
  }
  const [] = useState(false);
  return (
    <div> Lint on hook is not working </div>
  );
})``;

run the lint check: ./node_modules/.bin/eslint .

Expected Behavior
Both WorkingLint and NotWorkingLint should create a lint error
Actual Behavior
There's a lint error only on the WorkingLint (the one not wrapped in styled) component:
/tmp/my-app/src/Test.tsx
  8:14  error  React Hook "useState" is called conditionally. React Hooks must be called in the exact same order in every component render. Did you accidentally call a React Hook after an early return?  react-hooks/rules-of-hooks

✖ 1 problem (1 error, 0 warnings)

Thanks in advance for your answer!

I just found out that naming the component makes the lint work:
export const NotWorkingLint = styled(function NotWorkingLint({prop}:{prop?: string}) {
  if(!prop) {
    return null;
  }
  const [] = useState(false);
  return (
    <div> Lint on hook is now working </div>
  );
})``;

It's a bit sad to have to do that though

I'd highly recommend not to write components inline of styled(). It's not a HOC, it's a constructor for a styled component. In most if not all cases, if you have a lot of logic inside of styled() that's not considered a best practice, as you're adding logic below what I'd consider leaf components for styling. Oftentimes, this isn't necessary as the reverse can be used, adding logic around styled components rather than having any logic beneath / inside of them.
If you really have to wrap a component in styled() maybe just give it a name. The eslint plugin doesn't support anything but top-level components due to its component-detection logic.
On a sidenote, Please refer with usage questions to Stack Overflow, as you're more likely to get quicker and helpful answers there ❤ Repository issues on GitHub are great for that, issues, things that need to be resolved in the library itself, or can't be resolved by anyone but the maintainers. While I (and many others on other repos) are happy to eventually answer usage questions, styled-components is a busy repo and mostly stable and slow moving towards new releases, so you're not likely to get fast responses here

The reason why its convenient to do this wrapping is so that you can use this feature: https://styled-components.com/docs/advanced#referring-to-other-components. Altough it would be nice if all our components where JS free, in practice most of them do end up having some degree of logic. We still want to make them easily reusable in other parts of the code, ence the need to wrap it in the constructor.
Im curious though, why wouldn't this be considered a best practice? Are there any nefarious consequences to this?
Regarding the side note, this is indeed an issue with the library compatibility with eslint, not a usage question.


Document Ready

There is no function that collect many functions based on the window.onload. Something like: https://learn.jquery.com/using-jquery-core/document-ready/

You can simply use
window.on('load', function(){
})

I'll implement something like
waff.on('ready', function(){

});


How to scale the map to the current control size at the specified level？

Version: 2.0.0-beta.30
i have a tilesource and min level is 3 (8 x 8 tiles), each tile is 256pixel x 256pixel.
When level is equal to 3, I want to show it completely in the MapControl (500pixel x 500pixel).
How do that?

        map.Layers.Add(new TileLayer(tileSource));
        map.Limiter = new ViewportLimiter() { ZoomMode = ZoomMode.Unlimited};

but it‘s not valid for the default mouse roll event，so we need to implement our own mouse wheel event with MapControl.Navigator.ZoomTo

en，but when implement my own mouse wheel event ，There is a conflict with the MapControl default implementation.  ZoomMode.Unlimited affects most scaling-related operations

Can you describe your problems a little bit? Do you want the same as #757?

Can you describe your problems a little bit? Do you want the same as #757?

It's different from that question.
MapControl has listened to mouse wheel events internally, and it limits the zoom factor to the resolution list of all layers.
For example, a world map level 0 have 1 tile, height and width is 256pixel, resolution is<PHONE_NUMBER>28 m/pixel
how do i get the map to show width and height less than 256pixel by mouse wheel event?
I found an imperfect solution:
Implement my own tile layer to add more resolution.
code like this:
    public class MyTileLayer : TileLayer
    {

        public MyTileLayer(ITileSource source = null)
             : base(source, 200, 300, 2, null, null, -1, -1)
        {
            Name = "MyTileLayer";
        }

        public override IReadOnlyList<double> Resolutions
        {
            get
            {
                // add more resolution to base resolution list
                var output = new List<double>(base.Resolutions);
                for (int i = 0; i < 5; i++)
                {
                    output.Add(156543.033928 * i * 2);
                }
                return output;
            }

        }
    }

Ah, than I assume that you working with Mapsui for WPF. Is this correct?

Ah, than I assume that you working with Mapsui for WPF. Is this correct?

yeah. this code is work, but a little dirty :(
it's compatible with default MapControl's mouse wheel events.
The zoom factor of the control is obtained by traversing all layers, see here
maybe MapControl add protected void OnMouseWheel(...) is better?

Again: Which MapControl do you use. We have MapControls in Mapsui.UI.Android, Mapsui.UI.iOS, Mapsui.UI.Uwp, Mapsui.UI.Wpf and Mapsui.UI.Forms.

Again: Which MapControl do you use. We have MapControls in Mapsui.UI.Android, Mapsui.UI.iOS, Mapsui.UI.Uwp, Mapsui.UI.Wpf and Mapsui.UI.Forms.

Mapsui.UI.Wpf

Thank you.
Than this is @pauldendulk part. The Wpf is really old. So it could happen, that it doesn't support the LimitViewport concept.

Thank you.
Than this is @pauldendulk part. The Wpf is really old. So it could happen, that it doesn't support the LimitViewport concept.

thinks, I‘ll look at the implementation of other platforms.

It is not clear yet what you are trying to achieve.

When level is equal to 3, I want to show it completely in the MapControl

What do you see instead?
Mapsui selects the tile level based on the current resolution. You could tweak which level it selects by adjusting the tile schema, but if you have a client with another screen size/resolution the results could be different.

It is not clear yet what you are trying to achieve.

When level is equal to 3, I want to show it completely in the MapControl

What do you see instead?
Mapsui selects the tile level based on the current resolution. You could tweak which level it selects by adjusting the tile schema, but if you have a client with another screen size/resolution the results could be different.

sorry, my english is not very good.
Thanks for paying attention to this issue.
I wrote an example to show the problem.
at https://github.com/IOL0ol1/Mapsui.WPF.Test

Thank you very much for the sample project. I looked at it and understand the problem. The resolutions of the layer are determined by the levels in the mbtiles. In your case leve 0, 1 and 2 are missing (this should not be a problem). The consequence is that the navigation also sees level 3 as the top level en limits zoom out to this level.
It should be possible to override the Resolutions somehow. I think the clearest way to do this is by adding a CustomResolutions field and when this is set the layer resolutions are ignored.
You say the third MapControls behaves as you want. Does this mean your problem is fixed with this workaround?

Thank you very much for the sample project. I looked at it and understand the problem. The resolutions of the layer are determined by the levels in the mbtiles. In your case leve 0, 1 and 2 are missing (this should not be a problem). The consequence is that the navigation also sees level 3 as the top level en limits zoom out to this level.
It should be possible to override the Resolutions somehow. I think the clearest way to do this is by adding a CustomResolutions field and when this is set the layer resolutions are ignored.
You say the third MapControls behaves as you want. Does this mean your problem is fixed with this workaround?

yes，my problem solved.
Maybe change ILayer's
IReadOnlyList<double> Resolutions {get;}

to
List<double> Resolutions {get;}

allow user add/remove custom resolution.
I see only TileLayer set this property from ITileSource.
ILayer's other implementations are 0 length lists.
Final all layer's resolutions** are summarized to Map.Resolutions.
Map.Resolutions used in mouse wheel event to zoom.

Thanks for creating a sample after your own problem was solved, that's neat.
Making the Resolutions is quite straightforward for the user. But is the Resolutions are net explicitly set the Map should default to the Layers' Resolutions. The problem is that if you set the Map.Resolutions directly it is not clear that the default is overridden. The could be resolved by adding Map.CustomResolutions.
Another option is to make it the responsibility of the MapControl to choose between layer Resolutions and Map.Resolutions. In this case the layer Resolutions should not be assigned to the Map.Resolutions.


Test issue... for science

Nuget Package
JsonPointer.Net
Package Version
1.2.5
Operating System
Mac
.Net Target (if relevant, please specify the version in the description)
.Net Core (3.1 or before)
A clear and concise description of the bug
This is really important
Please add test code or steps to reproduce the behavior
I need to know what the text of the issue will be for the issue after submission
What did you expect?
This is to automate adding a label to the issue
Is there any other information you'd like to share regarding this bug?
No response
Code of Conduct

[x] I agree to follow this project's Code of Conduct

it works!


Added Microsoft Edge and Edge Canary support, updated readme

Issue Reference: #7
This adds Microsoft Edge and Edge Canary as supported browsers. Microsoft Edge is a Chromium based browser that may often be used in enterprise environments. A supported icon was added to represent the browser in the filtered display.
This has been tested locally, so it would be great to have some extra eyes and testing.
Example:

Exported workflow (renamed to *.zip to support Github upload requirements):
browsers-profiles.2.0.1.alfredworkflow.zip

Thanks @mwheatfill for the PR!

Thanks @skydiver, happy to contribute!


Unified LCE and write buffer hotfix

This PR introduces a unified LCE to replace the FE and BE specific LCEs.
This change also provides a fix for the dcache write buffer arbitration to disallow data_mem packets from the LCE when until the buffer is empty. This is conservative, but prevents the buffer from overflowing, which can happen if an LCE presents a data_mem packet to the dcache while it is processing a series of store hits.

Can we write a test for the write buffer bug? Seemed very difficult to track down

Can we write a test for the write buffer bug? Seemed very difficult to track down

It may be possible, although might need to think about how. The tricky part is that it would require precisely controlling the timing of stores and data_mem packets to the cache. So, load a cache block, then do a sequence of store hits and injecting a data_mem packet to compete with the write buffer. And then somehow measuring the result, which I suppose is just loading back the stored values?

It may be possible, although might need to think about how. The tricky part is that it would require precisely controlling the timing of stores and data_mem packets to the cache. So, load a cache block, then do a sequence of store hits and injecting a data_mem packet to compete with the write buffer. And then somehow measuring the result, which I suppose is just loading back the stored values?

I think the following 2 core test should work.  In a loop:

core X reads line B
core X reads line A word 0-7
core X increments words 0-7
core X stores words 0-7
core Y reads line B

Possibly need to add more core Ys to trigger it, though.

I think the following 2 core test should work. In a loop:

core X reads line B
core X reads line A word 0-7
core X increments words 0-7
core X stores words 0-7
core Y reads line B

Possibly need to add more core Ys to trigger it, though.

I think an assertion on the overflow condition will be far more effective. A test like this is too highly dependent on timing and likely needs to be mostly hand-written assembly, which is burdensome to write and maintain. There is also no guarantee it remains effective as timings of the components change (dcache should be stable, but all the ME components and latencies through networks might change depending on microarch, network org, etc.)

I think an assertion on the overflow condition will be far more effective. A test like this is too highly dependent on timing and likely needs to be mostly hand-written assembly, which is burdensome to write and maintain. There is also no guarantee it remains effective as timings of the components change (dcache should be stable, but all the ME components and latencies through networks might change depending on microarch, network org, etc.)

That's a good point. Really, this type of backpressure should be an addition to the D$ testbench, where we can precisely control the timings.  Won't hold up this PR for that that


Add gnsi.accounting is_truncated flags?

It is conceivable that an implementation may lack buffer space for some accounting messages, and we have seen this in practice.  This might be more likely in embedded and IoT environments.
In theory, gnsi.accounting.CommandService.cmd_args (cmd too?) and GrpcService.payloads (and config_metadata) are potentially affected.
https://github.com/openconfig/gnsi/blob/main/accounting/acct.proto#L147-L151
https://github.com/openconfig/gnsi/blob/main/accounting/acct.proto#L174-L180

Seems like a good addition.
would we expect that a truncated message would instead be split over multiple messages?

  Purely an implementation limitation, but truncation is how it handled the issue.  That was seen when the NMS pushed a large initial configuration to the device.  This suggestion is to simply indicate that it occurred, whether it is by the originating system or some proxy service or even the destination service.
MR for that here https://github.com/openconfig/gnsi/pull/106
WRT splitting messages, I have not found any suggestion in the docs about how that should be done nor why GrpcService.payloads is a "repeated" field.  There is no guidance about how payloads should be populated.  Should the payload be split somehow?  If it is split, how does a NMS correlate and sequence multiple messages?  We discussed about 2 weeks ago in chat; I do not think we arrived at a conclusion. :)  Should we attempt to define these processes/behaviors separately?


Some people cannot be unbanned

I have had several cases of players showing up and saying that the game is telling them they're banned, whether manually (such as for hacking) or automatically (such as for multiaccounts)
When I type /forgive [name] it tells me "[name] isn't banned" (but yes, they are)
When I type /forgive [their IP address on record from /lovetap] it tells me "0 accounts forgiven"
Then they try to log on again and still are banned.
I have transitive bans on and am using bungee, but most cases, they were banned in the main first login world anyway and commands still don't work even there.

I found out how to do this, but it is still not very user friendly and the feedback on screen is IMO misleading or incorrect.
If A, B, and C are all linked, and A is banned, when you type "/forgive B" it says "B is not banned" but I would argue that yes they are banned, because they can't log on. I would suggest making the feedback text say something like "B is indirectly banned via an alt" or if you wanted to get real fancy "B is indirectly banned via their alt: A"
Aside from that, you then also have to go through forgiving every single alt trying to find out which one is banned, which for some people can take quite some time. I may be missing something, but it seems to me like it would always be desired that if I type "forgive [A, B, OR C]" any one of them, that I would want it to unban all bans for all three of them.


Added chain contacts

Also replaced ContactRegister array with a Switch Expression. After 5 distinct items, a Switch Statement or Switch Array is implemented as a hash table lookup. This avoids a couple of if statements, and also makes clear where there are gaps.
Also replaced Matrix3x2.Invert with custom code, again avoiding if statements. This is 10-15% faster than using Matrix3x2.Invert.

@HughPH Hey! :)
New package version after your PR: https://www.nuget.org/packages/Box2D.NetStandard/2.0.2-alpha


How does the middleware parse the target URL?

Hi @chimurai , thanks for creating and maintaining this module.
I am using express as my server with http-proxy-middleware to call Metaweather API .
The problem is that I was able to get data from the endpoints below

https://www.metaweather.com/api/location/2487956/
https://www.metaweather.com/api/location/2487956/2013/4/30/

But when I try to call the API from https://www.metaweather.com/api/location/search/?lattlong=36.96,-122.02
I get the error below which lead me thinking that the proxy added some values after 122.02 as it was not closed with /
SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data[Learn More]

Setup

http-proxy-middleware: 0.17.4
server: express + 4.15.3
next: latest

proxy middleware configuration
const devProxy = {
  "/api": {
    target: "https://www.metaweather.com/api/location/search/?lattlong=36.96,-122.02",
    pathRewrite: { "^/api": "/" },
    changeOrigin: true
  }
};

server mounting
const port = parseInt(process.env.PORT, 10) || 3000;
const env = process.env.NODE_ENV;
const dev = env !== "production";
const app = next({
  dir: ".", // base directory where everything is, could move to src later
  dev
});

const handle = app.getRequestHandler();

let server;
app
  .prepare()
  .then(() => {
    server = express();

    // Set up the proxy.
    if (dev && devProxy) {
      const proxyMiddleware = require("http-proxy-middleware");
      Object.keys(devProxy).forEach(function(context) {
        server.use(proxyMiddleware(context, devProxy[context]));
      });
    }

    // Default catch-all handler to allow Next.js to handle all other routes
    server.all("*", (req, res) => handle(req, res));

    server.listen(port, err => {
      if (err) {
        throw err;
      }
      console.log(`> Ready on port ${port} [${env}]`);
    });
  })
  .catch(err => {
    console.log("An error occurred, unable to start the server");
    console.log(err);
  });

Thanks for looking into this issue.

I have tried using node-http-proxy and got a different error.
https://github.com/nodejitsu/node-http-proxy/issues/1239

target is passed to the http-proxy library. With the router option you can make it dynamic.
target shouldn't contain query parameters...
Think that is causing the issue. Just pass the protocol + host should be enough:
target: "https://www.metaweather.com"
Maybe add secure: false if you run into SSL issues.

Hi @chimurai ,
Thanks for sharing that! So if I would like to call https://www.metaweather.com/api/location/search/?lattlong=36.96,-122.02.
I would just fetch /api/location/search/?lattlong=36.96,-122.02?

That should work.
Check out https://github.com/chimurai/http-proxy-middleware/blob/master/examples/express/index.js for a working example.


Bump pre commit versions

This is mainly a maintenance chore with one important change: uv now supports including the # via packagename lines making dependabot diffsets much easier to read. To make the diff even smaller I have moved the config for uv to the pyproject.yaml file.

@matmair looks like this is causing a CI failure on python 3.12

@dependabot rebase

I cant seem to get regex running - it seems like it could be https://github.com/mrabarnett/mrab-regex/issues/413 but not sure.

Interesting observation: something in the pipeline is not Python version agnostic although we pass versions through every I can think of

@matmair I have a new PR here to hopefully fix the playwright issue - https://github.com/inventree/InvenTree/pull/7511


Create mnmjec

@KrishMunot Please rename lib/domains/in/ac/mnmjec to lib/domains/in/ac/mnmjec.txt. The .txt extension is mandatory. Thank you!

@KrishMunot Pull request merged. Thank you!


nginx 1.7.8 and 1.7.7 reverse proxy segfaults when backend returns 400, 500, 501 and 503

I sent this report to the dev mailing list, but somehow it didn't appear.. Apologies if it has been reported already, I couldn't find a similar issue.
Hi All,
I've just started playing with nginx + modsec, so I thought I'd test 2.9.0-RC2 but it seems unusable in reverse proxy mode for nginx >= 1.7.7, so I'm not sure the problem is with mod_sec or nginx. I will keep doing some more tests with 1.7.6.
Affected mod_sec versions: 2.8.0, 2.9.0-RC1, 2.9.0-RC2 ( not tested earlier versions)
Affected nginx versions: 1.7.7, 1.7.8.
Not affected nginx: 1.7.6 , 1.7.5, 1.7.4, 1.6.2 (not tested earlier versions)
2014/12/16 16:07:46 [notice] 15882#0: ModSecurity for nginx (STABLE)/2.9.0-RC2 (http://www.modsecurity.org/) configured.
2014/12/16 16:07:46 [notice] 15882#0: ModSecurity: APR compiled version="1.5.1"; loaded version="1.5.1"
2014/12/16 16:07:46 [notice] 15882#0: ModSecurity: PCRE compiled version="8.33 "; loaded version="8.33 2013-05-28"
2014/12/16 16:07:46 [notice] 15882#0: ModSecurity: LIBXML compiled version="2.7.6"
2014/12/16 16:07:46 [notice] 15882#0: ModSecurity: Status engine is currently disabled, enable it by set SecStatusEngine to On.
nginx compile options:
CFLAGS="-g -O0" ./configure --with-debug --add-module=../modsecurity-2.8.0/nginx/modsecurity/ --with-http_ssl_module  --with-cc-opt="-I /usr/local/pcre/include"  --with-ld-opt="-L /usr/local/pcre/lib"
mod_sec compile options:
./configure --enable-pcre-match-limit=100000 --enable-pcre-match-limit-recursion=100000 --with-apxs=/usr/bin/apxs --with-apr=/usr/bin/apr-1-config --with-apu=/usr/bin/apu-1-config --enable-pcre-study --enable-lua-cache --enable-standalone-module --enable-pcre-jit --with-pcre=/usr/local/pcre
The setup is simple: client - > nginx + mod_sec -> apache backend (with mod_security so I can force different error codes)
nginx vhost config:
server {
    listen   80;
    listen   443 ssl;
    server_name testing;
    root /var/www/nginx/testing;
    index index.html index.htm;

    ssl_certificate /usr/local/nginx/ssl/testing.crt;
    ssl_certificate_key /usr/local/nginx/ssl/testing.key;

    location / {
       ModSecurityEnabled on;
       ModSecurityConfig modsecurity.conf;

       proxy_set_header Host $host;
       proxy_pass http://<IP_ADDRESS>:80;
       proxy_read_timeout 20s;

    }

}
To replicate the issue, I configure the apache backend to thrown different error codes with this rule:
SecRule REMOTE_ADDR "@ipMatch <IP_ADDRESS>" "phase:2,deny,status:500,t:none,id:'1',msg:'Testing'"
A simple curl request to http://testing then makes nginx segfault:
curl -k -v  -o /dev/null 'http://testing'

Rebuilt URL to: http://testing/
Hostname was NOT found in DNS cache
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP_ADDRESS>...
Connected to testing (<IP_ADDRESS>) port 80 (#0)

GET / HTTP/1.1
User-Agent: curl/7.35.0
Host: testing
Accept: /

Empty reply from server
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
Connection #0 to host testing left intact
curl: (52) Empty reply from server

2014/12/16 15:21:47 [debug] 11082#0: 1 http copy filter: "/?"
 NGINX version 1.8.0, Modsec Version 2.9.0

Hi @arianf, @jambock,
You may want to try the nginx_refactoring branch:
https://github.com/SpiderLabs/ModSecurity/tree/nginx_refactoring

I have a script that downloads it for a buildpack... is there a url I can use to download the nginx_refactoring?
readonly MODSEC_VERSION=${CUSTOM_MODSEC_VERSION:-"2.9.0"}
readonly MODSEC_URL="https://www.modsecurity.org/tarball/${MODSEC_VERSION}/modsecurity-${MODSEC_VERSION}.tar.gz"
wget -q $MODSEC_URL

Hi @arianf,
You may want to try:
https://github.com/SpiderLabs/ModSecurity/archive/nginx_refactoring.zip

No longer a concern in libModSecurity. Marking it as won't fix for 2.x. Further information about libModSecurity available here:
https://github.com/SpiderLabs/ModSecurity/tree/v3/master


[Feature Request] Quantity Swatches for sidebar cart (no reload)

Describe the feature that you'd like
I'm requesting the addition of quantity swatches for the sidebar cart. Here's a visual representation, and they should operate seamlessly with Ajax.

For implementation reference, check out the same feature in the selleradise-lite theme repository. This functionality is already integrated into that theme.
Why is this feature needed? What problem does it solve?
This enhancement significantly improves the customer experience.
Currently, it's cumbersome for customers to navigate to the cart page, modify quantities, and then click the update cart button. With quantity swatches in the sidebar cart, this process becomes more straightforward.
I usually hide the "view cart" button to streamline the shopping experience, encouraging users to utilize the sidebar cart. This not only simplifies their journey but also allows for a quicker checkout.
Checklist

[X] I have searched the issues and this feature has not been requested.

Totally agree that this will be a nice feature. However, this seems to be a tough job and the question is: Are you able to contribute and work on this?
Quickly checked the selleradise theme and it seems that it does not use the mini-cart.php for the sidebar cart. It has to deeply figured out how the cart works there.
Another option is to modify the mini-cart with quantity https://gist.github.com/ashokmhrj/fda5a23f7bdfc55749bd2bd53c64a8ca.
Third option is trying to hard code the new mini cart block in the theme https://developer.woo.com/2023/06/16/best-practices-for-the-use-of-the-cart-fragments-api/. This block has already the qty feature. Since Woo started to replace the classic templates with blocks, this seems to be the most future proved option.
Let me know what you think.


Support for dynamic columns

Hello,
First off great work!
I'm currently working on a site that can have dynamic columns. I understand that there is support for
adding and remove rows (for example: http://filamentgroup.github.io/tablesaw/demo/ajax-init.html)
$('#mytable').table().data( "table" ).refresh();'

however this does not seem to refresh the columns. And if I destroy the table, I can get weird effects (As noted in your comments)
Currently, I've modified the code to take a config value that will stop the auto-init of the table, until all the columns are ready, however I'm not sure how to change it to refresh the columns.
Any insight would be appreciated.

What specifically do you mean when you say “refresh the columns?” What exactly do you expect to happen?
Thanks!

Basically, I have some javascript that adds columns based on the data provided. I would like when I refresh tablesaw, it checks the column headers again to see if any were added (or even if the header text has changed). I understand this is an edgecase and that maybe once the destroy is fixed that using it might be a better solution.
Thanks, and I already am enjoying using it with my small workaround!

@Philman did you achieve to refresh your table? I currently have a similar problem: I have
in my Angular application the number of column in my table can change. I do not find

Refresh support was added for Stack tables on #211. Looks like it might still be missing on Column Toggle mode, I don’t see any code using the tablesawrefresh event there. Swipe has some, though—what issues are you seeing specifically?

This is fixed with https://github.com/filamentgroup/tablesaw/pull/150
Please retest and reopen if you’re still having issues!


Update collection to latest version

The latest version is 0.4.0

Originally posted by @Nuttymoon in https://github.com/AshAvalanche/ansible-avalanche-getting-started/pull/7#discussion_r1130775543

We now always use the lastest version


failed with std::invalid_argument in nana::place

#include <string>
#include <nana/gui.hpp>
#include <nana/gui/widgets/label.hpp>
#include <nana/gui/widgets/textbox.hpp>
#include <nana/gui/widgets/listbox.hpp>
int main()
{
	nana::form fm;
	nana::listbox lb1{ fm };
	fm.caption(u8"demo");
	nana::textbox content;
	nana::place layout{ fm };
	layout.div("<m1><m2>");
	layout["m1"] << lb1; layout["m2"] << content;
	layout.collocate();
	fm.show();
	nana::exec();
}

the code above compiled successfully in visual studio 2017, but failed running.
when debuging, I found this:
A std::invalid_arguemnt exception was throwed and left unhandled at line 666 in file place.cpp.
can someone helps?

Oh, sorry I killed the error, just after submitting the issue.
nana::textbox content; should be nana::textbox content{fm};


Using git on terminal does not prompt for username anymore

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.62.3-1637137107
OS Version: 5.11.0-40-generic 44~20.04.2-Ubuntu SMP

I've noticed that the login prompt when using Git does not appear anymore when using the terminal.
I always use git with Bash, and VS Code always prompted me for username and password, but since i last updated from 1.62.2-1636665017 last Friday, this doesn't happen anymore.
Steps to Reproduce:

Type git fetch (or push/pull, etc) on terminal (i'm using Bash on Ubuntu 20.04);
Immediately fails with "remote: HTTP Basic: Access denied / Authentication failed for '[ORIGIN-URL]'"

Expected result: The username/password prompt that appears on top of VS Code. When i fetch from the version control menu, this prompt appears without any problems.
Tried disabling all extensions (only have 5, and GitLens is the only one git-related) but problem persists.
Also tried the optionsgit.terminalAuthentication: true github.gitAuthentication" true on settings.json but nothing changed as well.

We had several regression in this area. Can you please upgrade to 1.62.3, close all windows and reconnect to WSL? Thanks!

Thanks for the update. Closing the issue for now.


update: make improvements to containers

run as user 1001
remove bind mounts for src (issues with building on various platforms)
/app as home
add group write (g+w)
use fqdn for FROM

Hopefully the PR isn't too much change. Mainly trying to move toward rootless and a consistent /app path. Thanks for the feedback. 👍


Linearization of discrete-time systems

Sources:

https://ieeexplore.ieee.org/document/1231263/citations#citations
leeLinearizationNonlinearControl2022, example 7.4.3

See #24


Tell me about function error

Traceback (most recent call last):
File "C:\Users\siddh\OneDrive\Documents\Virtual assistant\Final\Jarvis-Assisant-master\scripts\main.py", line 105, in
wiki_res = obj.tell_me(topic, sentences=1)
TypeError: tell_me() got an unexpected keyword argument 'sentences'

no need to pass "sentences".
Just use "obj.tell_me(topic='tell me about Taj Mahal')"


Add initial dmod.hydrofabric package structure

Add a new dmod.hydrofabric package.
closes #283
related #282

Once this is merged, I have this branch with some work that ill open a PR to push into this package.


GET: Login routes query check

ADD A CHECK FOR THE CASE WHEN AUTH HAS FAILED AND
USER HAS BEEN REDIRECTED TO THE LOGIN PAGE
PERHAPS PASS THE CORRESPONDING ERROR MESSAGE AND THEN RENDER PAGE
OR THE URL QUERY CONTAINS THE SERVICE URL, YOU COULD REDIRECT TO THAT

why scream @aryangupta-42 ? 😆


fix: update image component pattern to match line break

While working on https://github.com/netlify/netlify-cms/issues/2211 I had an issue where the image editor component was broken on initial load:

After some debugging I realized that reverting this https://github.com/netlify/netlify-cms/pull/3066/files fixes the issue.
Eventually fixed the image component pattern to match ![](/media/netlify.png)\n of this file https://raw.githubusercontent.com/erezrokah/gatsby-netlify-cms-aws-test/cdcebc3b3b499df1f0b35d108b8ab9a6917fdf53/content/posts/2020-01-12-test.md

Closing in favor of #3082.


Term path case effect

Now there is a thorny problem. In our previous use, the path has uppercase letters, but after the new version, the path becomes lowercase by default after term is created, which has an impact on the previous data.
I want to know if there is any configuration for the case of paths? Or will there be other solutions?

I found the PR at that time: #3477

Hi @Huyueeer - We did indeed change casing. Apologies for the extra trouble this may have caused.
In recent versions, you can manage the entire Glossary via the UI without worrying about this. We recommend you upgrade to that!
Thanks
John


Fix a bug that piped was handling only one stage LogPersister at a time

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

/approve


Missing css files while including yii\bootstrap5\BootstrapPluginAsset

What steps will reproduce the problem?
Set $depends in AppAsset to
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap5\BootstrapPluginAsset'
    ]

What is the expected result?
Having bootstrap css files in assets folder
What do you get instead?
No css files
Additional info

Q
A

Yii vesion
2.0.45

PHP version
8.1.12

Operating system
Windows 10

I've temporarily avoided this issue by following instructions in https://github.com/yiisoft/yii2-bootstrap5/blob/master/docs/guide/assets-setup.md -> Using CDN section
By add
        'assetManager' => [
            // override bundles to use CDN :
            'bundles' => [
                'yii\bootstrap5\BootstrapAsset' => [
                    'sourcePath' => null,
                    'baseUrl' =><EMAIL_ADDRESS>                    'css' => [
                        'css/bootstrap.min.css'
                    ],
                ],
                'yii\bootstrap5\BootstrapPluginAsset' => [
                    'sourcePath' => null,
                    'baseUrl' =><EMAIL_ADDRESS>                    'css' => [
                        'css/bootstrap.min.css'
                    ],
                    'js' => [
                        'js/bootstrap.bundle.min.js'
                    ],
                ],
            ],
        ],

to config/web.php (in components)

Seems to be related to #9741, ran into the same issue just the other way around (js files not present).

This is caused by #52.

I think it's caused by the only clauses. Rolled back this change


Add zsh completion

I added completion support for zsh and tried to mimic the behavior of fish's completion as good as possible.

Really appreciate this @LarsHaalck, thank you for your efforts


EntityStore thread safety question

Hi,
First of all, congrats for such a great project. I'm working in a requery module for http://jooby.org and need to know if EntityStore is a thread safe class or not?
That's is it safe to have one and only one instance per application/db? Or should I create (and close) each time need to I need one (one per request)?
Thanks.

Hi thanks, that's great to hear. Yes the implementations of EntityStore are thread safe and can be stored for the lifetime of an application

Will clarify this in the documentation thanks!


Add Digital Ocean and Heroku please

Hi @timlmit ! Digital Ocean and Heroku don't currently support traffic mirroring in the same way AWS and GCP do so we haven't added support for them yet :)
However, we are launching Application Level connectors soon (Node, Python, Go, etc..) as well as a Kubernetes, would either of these options work??
Thanks!
Akshay


[BUG] SetRegulatoryConfig command

Reproduction steps
SetRegulatoryConfig is used to set in the radio regulatory country code.  How is it supposed to get copied into BasicInfo Attribute 6, Location? It currently isn't getting copied.
And then shouldn't BasicInfo Attribute 6, Location be read only because it is set via the SetRegulatoryConfig command? There shouldn't be two ways to set the radio regulatory region.
Bug prevalence
always
GitHub hash of the SDK that was being used
42cf63b
Platform
core
Platform Version(s)
No response
Anything else?
No response

Issue report at Google.
https://issuetracker.google.com/issues/283470659

The certification tests should test to make sure that this regulatory region stuff is working correctly.  Minimum $25,000 FCC fine in USA if you get it wrong.

How is it supposed to get copied into BasicInfo Attribute 6, Location?

It's copied right here: https://github.com/project-chip/connectedhomeip/blob/8363494ab658bdcdf652817c0657a9e71c3d7249/src/platform/DeviceControlServer.cpp#L52

It currently isn't getting copied.

Where do you observe this?  We have CI tests that ensure that it is getting copied....

And then shouldn't "BasicInfo Attribute 6, Location" be read only

I am guessing this got copied from Zigbee, and at this point the spec on this is not going to change.


Feeds - higher gravity for HN ranking please

Describe the Feature
Custom feeds are excellent and HN ranking is useful.. Currently as people are joining and growing their networks - the HN ranking can skew towards more established voices.
Higher gravity options would help reverse this skew a bit.
The gravity option of 4 still skews my custom feeds to have multiple posts from the well established voices.
I'm not sure of the maths but I think a 10 and 15/20 option could be useful? So ranking points only slightly contribute to being moved up the feed.
Thanks
Attachments
No response
Describe Alternatives
No response
Additional Context
No response

This is not the correct repo to open this issue. Custom feeds are usually made with third-party tools, such as Skyfeed, Bluesky Feed Creator, or Graze. They (and the publisher of each feed) determine each feed's algorithm.


Formatting mapped types: inconsistent number of spaces within braces

TypeScript Version: 2.7.0-dev.20171122
Code
Reformat this using 'Format Document' in VS Code or in playground:
type One<T> = {[K in keyof T]: number}
type Two<T> = {    [K in keyof T]: number     }

type Four<T> = {[K in keyof T]: number;}
type Three<T> = {    [K in keyof T]: number;     }

type Obj1 = {foo:number}
type Obj2 = { bar:number }

Notice that inside mapped types:

spaces after '{' are always removed
spaces before '}' depend on wether a semicolon is present - unchnanged if no semicolon, one space added if semicolon.

Compare this behavior with object types.
Doesn't seem consistent that left and right sides behave differently, or that spacing depends on the presence of optional semicolon.
Actual:
type One<T> = {[K in keyof T]: number}
type Two<T> = {[K in keyof T]: number     }

type Four<T> = {[K in keyof T]: number; }
type Three<T> = {[K in keyof T]: number; }

type Obj1 = { foo: number }
type Obj2 = { bar: number }

Expected: A consistent number of spaces, 0 or 1 on both sides.

A PR would be appreciated.

I'm creating a VSCode plugin to format this:
type One <T> = { [K in keyof T]: number  }
type Two <TofType> = { [K in keyof TofType]: number  }
type Four <T> = { [K in keyof T]: number; }
type Three<T> = { [K in keyof T]: number; }

into this:
type One  <T      > = { [K in keyof T      ]: number  }
type Two  <TofType> = { [K in keyof TofType]: number  }
type Four <T      > = { [K in keyof T      ]: number; }
type Three<T      > = { [K in keyof T      ]: number; }

What would a 'Format Document' do in this case? It would mess up? If yes, could it be done in a way that doesn't mess it up?

@mhegazy  I have sent the PR https://github.com/Microsoft/TypeScript/pull/21712 to fix this issue.
@lmcarreiro space formatting related rules are defined as user configurable. Refer https://github.com/Microsoft/TypeScript/blob/master/src/services/formatting/rules.ts#L261. You might be able to override it from the plugin. Maybe @mhegazy  can confirm.

thanks @lankaapura !


[BUG] 1.5.0 and 1.5.1 longhorn-pre-upgrade Job fails due to missing ServiceAccount

When deploying Longhorn via Helm on ArgoCD, sync fails because the longhorn-pre-upgrade Job tryies to run before the Longhorn ServiceAccount is created,
To Reproduce
Deploy Longhorn Helm chart 1.5.0 or 1.5.1 via ArgoCD 2.8.2, with default values.
Expected behavior
Longhorn 1.4.3 deploys with default values just fine.
Support bundle for troubleshooting
Environment

Longhorn version: 1.5.0, 1.5.1
Installation method ArgoCD Helm app
Kubernetes distro and version: MIcroK8s v1.27.4 revision 5643

Number of management node in the cluster:
Number of worker node in the cluster: 3

Node config

OS type and version: Ubuntu 22.04.3 LTS
Kernel version: 5.15.0-79-generic
CPU per node: 4
Memory per node: 66
Disk type: NVMe
Network bandwidth between the nodes: 1 Gbps

Underlying Infrastructure: Baremetal
Number of Longhorn volumes in the cluster: 0

Additional context
Helm deployment of Longhorn 1.5.1 appeared to have worked normally,
Adding these annotations to ServiceAccount should control the order ArgoCD deploys it in. Instead the ServiceAccount never showed up.
serviceAccount:
    annotations:
        argocd.argoproj.io/hook: Sync
        argocd.argoproj.io/sync-wave: "-1"

See https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/

Same bug when using ArgoCD 2.7.11 and trying to deploy longhorn 1.5.1

cc @mantissahz

same issue here, argocd 2.8, longhorn 1.5.1
fixed it by temporarily removing the pre-sync job , syncing, and re-adding it.
this is of course a no-go and blocks automation, but this is my home setup.

It's related to https://github.com/longhorn/longhorn/issues/6415
we will have an improvement by disabling the pre-upgrade hook for Argocd

fixed it by temporarily removing the pre-sync job , syncing, and re-adding it.

@tabnul  thanks for this workaround.

Track in https://github.com/longhorn/longhorn/issues/6415.

same issue here, argocd 2.8, longhorn 1.5.1 fixed it by temporarily removing the pre-sync job , syncing, and re-adding it. this is of course a no-go and blocks automation, but this is my home setup.

@tabnul Could you tell me, how to remove it?


proto(engine): remove error.proto

What problem does this PR solve?

Issue Number: ref https://github.com/pingcap/tiflow/issues/7475
https://github.com/pingcap/tiflow/pull/7362 has removed all error fields from gRPC response structure. engine/proto/error.proto will no longer need in the future.
What is changed and how it works?
Remove engine/proto/error.proto.
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

/merge

/run-engine-integration-test

Codecov Report

Merging #7479 (471d08c) into master (6b48846) will decrease coverage by 6.0793%.
The diff coverage is 66.6666%.

Additional details and impacted files

Flag
Coverage Δ

dm
51.9781% <ø> (?)

engine
61.1987% <66.6666%> (+0.0149%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7479        +/-   ##
================================================
- Coverage   65.9877%   59.9083%   -6.0794%
================================================
  Files           564        803       +239
  Lines         52337      92346     +40009
================================================
+ Hits          34536      55323     +20787
- Misses        15129      32222     +17093
- Partials       2672       4801      +2129

/merge


java

test

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f94a6e7d-3cb5-790c-2b8b-c09abd1de3f6
Version Independent ID: a0d381e1-07ad-9191-4697-6faf600a7bd8
Content: Use Azure Pipelines - Azure Pipelines
Content Source: docs/pipelines/get-started/pipelines-get-started.md
Product: devops
Technology: devops-cicd
GitHub Login: @steved0x
Microsoft Alias: sdanie

@SamirNabadov  Thanks for your feedback; we appreciate it. To make sure we have all the information needed to triage your issue, please provide more context around the general task.


Any timeframe on releasing the new trained model?

Hi,
I saw that you plan on releasing a trained detector and recognition model on the updated dataset?
Can you please tell me if you still plan on releasing the model and the approximate timeframe.
Thanks,
Akshay

@AKSHAYUBHAT An image-level classifier trained on OpenImages v2 was released a few days ago (see the updated README.md). As for the object detector, I have no information I can share, sadly.

@AKSHAYUBHAT @rkrasin Tensorflow released an object detection model on OpenImages V2 a couple days ago -> https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

Closing as we now have info in the README on how to get classifier and detector models.


Example 2 is misleading

The second example has a bizarre output.  The default output should be as follows.
An error occurred on the server when processing the URL. Please contact the system administrator.
 If you are the system administrator please click here to find out more about this error.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 51cdca0a-de14-9ef4-6488-404968dcb273
Version Independent ID: 0a08acf0-78bb-1d77-7f60-91e2244e8296
Content: Get-IISConfigAttributeValue (iisadministration)
Content Source: docset/windows/iisadministration/get-iisconfigattributevalue.md
Product: w10
Technology: powershell-windows
GitHub Login: @coreyp-at-msft
Microsoft Alias: brianlic

@officedocsbot assign @e0i


The repository does not contain a CC metadata file

Description
Each repo in the CC organisation should have a .cc-metadata.yml file. This one does not.
Expectation
The .cc-metadata.yml file should be present.
Resolution

[ ] I would be interested in resolving this bug.

please can you elaborate more on the issue so i can work on it

@amycruz97 If you go to any other creative commons repo, you'll see we use custom .cc-metadata.yml files to store information about the repo (here's an example).
This repo (creativecommons/cc-licenses-data) does not have one of these files and needs one added to the project root.

How can i go about it

@amycruz97 I would need a more specific question to help you. You would need to clone the repository, create a .cc-metadata.yml file with the correct information filled, and submit a pull request. Then someone could give you more specific feedback.

okay on it

For this issue, it is this repo: https://github.com/creativecommons/cc-licenses-data
https://github.com/creativecommons/cc-licenses has the same issue, so someone will need to make a PR on that one too though.

i have cloned ut but dont know how to add .cc-metadata.yml to the repo. pls can you help

can i work on this ?

@tushar912 please allow a week of inactivity before requesting to work on an issue that someone has already expressed an intention to resolve. @amycruz97 please refer to the PR creativecommons/cc-licenses#43 for an example.

Sorry @dhruvkb and @amycruz97 Please take your time

Hi, @dhruvkb I would like to work on this issue.


feat(content): support event tags

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/ngneat/transloco/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Issue Number: https://github.com/angular-sanctuary/angular-hub/issues/6
What is the new behavior?
NOTE: I'm terrible designer, open for feedback!

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Thanks for this contribution, I just reviewed it and added comments.

Merged, thanks a lot!


Messaging refactor

There are several overrides for SA1402 in source with this PR.. That rules was disabled in #361 so you shouldn't need to add those anymore


Remove dependency on unpkg.com

Hey there,
We're using react-rutter-link in our application and have found that unpkg.com has been offline at some points today, meaning that Rutter Link is broken across all instances including production.
Would it be possible to refactor this library to import @rutter/rutter-link-js through package.json, rather than adding it to the page as a script element? I can see that it allows you to always use the latest version of that module, but it also makes projects using react-rutter-link more fragile.
Thanks for your help :) the package is great otherwise!

Hey there, we will update our CDN provider to something different to resolve this issue as soon as possible!


Log Tracing is not working as expected in OpenTracing

Description
When you enable log tracing as mentioned in [1], the log file will not contain correct information. It only prints something like, n14:11:48,992 [-] [PassThroughMessageProcessor-1] TRACE
Steps to Reproduce
Follow the steps in [1]
Affected Component
APIM
Version
4.2.0-Pre-Alpha
Environment Details (with versions)
No response
Relevant Log Output
n14:11:48,992 [-] [PassThroughMessageProcessor-1] TRACE
n14:11:50,073 [-] [PassThroughMessageProcessor-2] TRACE
n14:11:51,513 [-] [PassThroughMessageProcessor-3] TRACE
n14:11:51,513 [-] [PassThroughMessageProcessor-3] TRACE
n14:11:51,515 [-] [PassThroughMessageProcessor-3] TRACE
n14:11:51,552 [-] [PassThroughMessageProcessor-4] TRACE
n14:11:51,571 [-] [PassThroughMessageProcessor-4] TRACE
n14:11:51,575 [-] [PassThroughMessageProcessor-4] TRACE
n14:11:51,576 [-] [PassThroughMessageProcessor-4] TRACE
n14:11:51,576 [-] [PassThroughMessageProcessor-4] TRACE
n14:11:52,178 [-] [PassThroughMessageProcessor-5] TRACE
n14:11:52,179 [-] [PassThroughMessageProcessor-5] TRACE
n14:11:52,180 [-] [PassThroughMessageProcessor-5] TRACE
n14:11:52,180 [-] [PassThroughMessageProcessor-5] TRACE

Related Issues

https://github.com/wso2/api-manager/issues/1118

Suggested Labels
No response
[1] https://apim.docs.wso2.com/en/4.2.0/observe/api-manager/traces/monitoring-with-opentracing/#enabling-log-tracing

Potential fix can the one done in https://github.com/wso2/api-manager/issues/968 for OpenTelemetry. Doing the same for OpenTracing may solve this issue.

Fix: https://github.com/wso2/carbon-apimgt/pull/11781


Updade node to v16

Substitute this line for a meaningful title for your changes
Upgrading nodejs version to 16.10 as a plan B, since memory leak issued in Jest are starting with Node > 16.10
Please write a description. If the PR is hard to understand, provide a quick explanation of the code.
Designs
Link to the related design prototypes (if applicable)
Testing instructions
Please explain how to test the PR: ID of a dataset, steps to reach the feature, etc.
Feature relevant tickets
Link to the related task manager tickets

Checklist before submitting

[ ] Meaningful commits and code rebased on develop.
[ ] If this PR adds feature that should be tested for regressions when
deploying to staging/production, please add brief testing instructions
to the deploy checklist (docs/deployment-checklist.md)
[ ] Update CHANGELOG file

@yulia-bel please remember to ruthlessly close this once you've merged #1328!


Add Sakai datepicker to the Add/Edit Assignment form for duedate

Heya @steveswinsburg, I think I finally figured out a way around the conflicting jQuerys! By marking Wicket's jQuery 1.11.1 as a PriorityHeaderItem it should always be ordered to the top of the header resource list.  So we won't need to include jQuery in our wicket:head as the Wicket jQuery should win out.
Also, I went through and made the date format consistent MM/dd/yyyy.  Should this be a locale or a configurable string?
Thanks!

Yeah that needs to be configurable eventually. Likewise with the add/edit gradebook item one. Mark it as a TODO and we can sweep back through.


[Accessibility]A11y_VSCode_StatusBar_Screenreader: NVDA is not reading the selected item name of "StatusBar".

Environment Details:
VSCode Version : 1.24.0
OS Version : Win10
Additional Details:
ScreenReader,NVDA[2018.2],JAWS[18.0.5038],MAS1.3.1
Repro Steps:
1.Launch VS Code while NVDA is ON.
2.Navigate to "Status Bar" at bottom of the screen after login.
3.Navigate to item list of "Status Bar" such as "Error,Warning,ScreenReaderOptimized".
4.Observed that,NVDA is not reading the selected/clickable item name.
Actual:
While reading through the screenreader such as NVDA, it is not reading the selected item name of status bar "Error,Warning,ScreenReaderOptimized,Spaces:4,Plain Text,Tweet Feedback,Notification".
Same issue is observed in JAWS
Expected:
NVDA should reads the name of each selected item name of "Status Bar".
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/Pages/browse-fixes.aspx
User Impact:
User will not understand which item is selected from the "StatusBar".
MAS Reference:
MAS1.3.1- https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Attachment For Reference:
[Accessibility]A11y_VSCode_StatusBar_Screenreader.pptx
Does this issue occur when all extensions are disabled?: Yes

Duplicate of https://github.com/Microsoft/vscode/issues/51977


I have the latest version of Aerial running on the most recent Mac OS Update, 10.14.6

General troubleshooting tips
Before logging an issue please check that:

[x] You have the latest version installed (There may be a beta version that fixes your issue), see here for the latest releases and bug fixes: https://github.com/JohnCoates/Aerial/releases
[x] Your issue isn't already mentioned in our issues. You may find a workaround there or a similar request already made.
[x] Your problem isn't mentioned in the troubleshooting section.

If none of this fixes your issue, tell us about the problem you are experiencing or the feature you'd like to request.
Required information
In order to help us sort your issue, we ask that you provide the following information:

[ ] Mac model:
[ ] macOS version:
[ ] Monitor setup:

If appropriate, please enable Debug mode and Log to disk in Advanced tab and replicate your bug, then attach the AerialLog.txt file (You can access this file through the Advanced tab).
Description of issue / Feature request
{{Replace this}}

I have a 2018 model 15" Macbook pro with maximum configuration running 10.14.6 MacOS.
Screen saver is BEAUTIFUL let me first say that, and you should put links for a paypal donation or something. It looks so utterly mindblowing rendered on two 27" 5k displays from LG.
All was working very well and fluid until I recently modified my setup. Thunderbolt 3 from each display into each opposite side (separate controllers) of the MacBook Pro. Last night I added dual RAID 1 setup to my system for Time Machine. I believe this may be the culprit
I have two 5TB drives in Raid 0 backing up to one 10TB Drive, and I have configured the whole setup as RAID (2x5 TB striped = 10TB, then the other 10TB is set up to mirror)
I believe when I did this, I experienced a significant performance hit for the screen saverr.
My guess, and maybe you can help add any credence to this theory: I am just trying to push too much data down the thunderbolt cable - Time machine doing essentially "dual RAID" (2 6TB drives mirroring to one 10 TB drive over USB C).
The drives are all plugged into the back of my monitors, and I am using them as USB C hubs.
I was hoping that thunderbolt and USB C would be able to handle the bandwidth of 2 x 5k displays + the three hard driver plugged in, buy it appears to greatly bog down and make the screen saver "stutter" - I get about  3 frames per second (literally).
I unplugged the external drive to validate my assumption that too much data was coming over one thunderbolt 3 cable. However, this did not seem to help, and instead of being very fluid as before, the screen saver is still only producing about 3 franes per second.
I have disabled auto-graphics switching, forcing the Macbook Pro to use the Radeon Pro Vega 4GB video card, but still no luck.
Is there something in settings or perhaps another app or something that may be interfering with the fluidity of the screen savers? Previously they were silky smooth and amazing looking.
Please keep up the good work. Best screen saver I've ever had.
Carter

I have a 2018 model 15" Macbook pro with maximum configuration running 10.14.6 MacOS.
All was working very well and fluid until I recently modified my setup. Thunderbolt 3 from each display into each opposite side (separate controllers) of the MacBook Pro. Last night I added dual RAID 1 setup to my system for Time Machine. I believe this may be the culprit
I have two 5TB drives in Raid 0 backing up to one 10TB Drive, and I have configured the whole setup as RAID (2x5 TB striped = 10TB, then the other 10TB is set up to mirror)
I believe when I did this, I experienced a significant performance hit for the screen saverr.
My guess, and maybe you can help add any credence to this theory: I am just trying to push too much data down the thunderbolt cable - Time machine doing essentially "dual RAID" (2 6TB drives mirroring to one 10 TB drive over USB C).
The drives are all plugged into the back of my monitors, and I am using them as USB C hubs.
I was hoping that thunderbolt and USB C would be able to handle the bandwidth of 2 x 5k displays + the three hard driver plugged in, buy it appears to greatly bog down and make the screen saver "stutter" - I get about 3 frames per second (literally).
I unplugged the external drive to validate my assumption that too much data was coming over one thunderbolt 3 cable. However, this did not seem to help, and instead of being very fluid as before, the screen saver is still only producing about 3 franes per second.
I have disabled auto-graphics switching, forcing the Macbook Pro to use the Radeon Pro Vega 4GB video card, but still no luck.
Is there something in settings or perhaps another app or something that may be interfering with the fluidity of the screen savers? Previously they were silky smooth and amazing looking.

Hi Carter
Let me try and understand your setup exactly with some extra questions (->) so we can figure this out:

2018 model 15" Macbook Pro 10.14.6 MacOS
-> I will assume Aerial 1.5.0 (not the beta)

two 27" 5k displays from LG connected via TB, one monitor per port
-> Are you using just those two screens or also the internal MacBook Pro screen too ?

2x5TB drives in Raid 0
-> About that, you mention that's plugged into one of your monitor, what kind of enclosure are you using for these ? Those are connected as USB-C ?
-> Also, are you using these as storage or did you install macOS there (instead of your MBP ssd) ?
-> Fairly important question, where did you setup your Aerial cache, is it on your MBP SSD, or on that RAID 0 volume?

If I got this right, things worked with that setup but you've added:

1 10 TB drive mirroring the 2x5TB
-> You seem to imply it's in the same enclosure than your 2x 5 TB or did I get this wrong. And this is configured as a... RAID 1 over your RAID 0 ? You also mention time machine so I'm a bit lost here. You're setting this RAID config with disk utility on your mac ? A screenshot would be nice. Also please clarify exactly what kind of drives you are using and what is connected to which monitor.

I'm not exactly sure what your setup looks like but RAID1ing a RAID0 (I assume all are platter hard drives) is not a good idea. You are severely limiting your disk writes in that configuration and that itself may be an issue, and reads may be terrible.
Now with all that said, 3 FPS is terrible and if you were disk limited, I would assume Aerial wouldn't be the only slow thing on your mac right now (depending on your usage, of course).
Thanks !

Screen saver is BEAUTIFUL let me first say that, and you should put links for a paypal donation or something. It looks so utterly mindblowing rendered on two 27" 5k displays from LG.

There's actually one next to my name on the readme, it's pretty well hidden. I don't feel good asking for donations more directly as I didn't start the project, although I'm taking care of it now ;)

Hi there, thanks for the quick response and also for making this screen saver available. It is my all time favorite.
Yes, two 27" 5k LG displays, connected by TB, one to each side of the macbook pro (1 TB cable per controller)
I am also using the Mackbook Pro 15" screen.
The two x 5 TB drives are external Lacie portable hard drives. I have them set to RAID 0, so 10TB
I took that 10 TB RAID set, and then "RAIDED it again" with an external 10TB Western Digital drive.
So, the two 5tb making up 10TB are also being mirrored to the other 10TB external drive
All 3 drives are in their own chassis and connected by USB C to the back of one monitor.
I used MacOS RAID assistant to set this up. I am frankly not sure if what I am doing is actually a "good idea" since I'm RAIDing the two 5TB drives, and then RAIDing them again to mirror to a 10 TB drive. However, it seems to be working.
So, all 3 drives are plugged into one of the LG displays (it has 3 usb C and 1 TB port).
The idea is that I have 2TB of SSD on the Macbook Pro, and then 10TB of redundant storage externally as time machine backup. I also backup to the cloud, but I do like the convenience of Time Machine.
Yes, I have the cache for the screen saver set up on the internal SSD.
I was thinking that I was basically maxing out the bandwidth of the TB / USB connection by sending all the data to the drives in RAID config, while at the same time pushing 2x 5k displays. But I do believe that the specs for TB / USB C have enough bandwidth, so this should not be an issue.
I will have to check out the readme and send a donation.
Thanks for the heads up on RAID1ing a RAID0 -- I tried it because I am basically a little crazy and wanted to see if it worked, but suspected it would create read and write issues. Despite that, it actually is working pretty well now, but I am going to "Un-RAID" them and then just have the two 5TB in RAID0, and the 10TB as stand alone. Time Machine has a setting where it can take turns backing up to separate drives and that sounds like the better option performance wise.
Regardless, the problem 'magically went away' after just letting the machine chug on the Time Machine backup all night long. This morning when I came out, the screen savers are running fluid and smooth as ever.
I am guessing there was just a lot of system overhead in first setting up the RAID devices and then also making the initial 555GB backup.
So, whatever was causing the issue has vanished (at least for now).

Hi again, answers below

The two x 5 TB drives are external Lacie portable hard drives. I have them set to RAID 0, so 10TB

Ok, if you are using two separate USB drives, you're paying a bit of a penalty by doing RAID 0 here but that should be "fine" for Aerial in any case, even if you had your cache there.

I took that 10 TB RAID set, and then "RAIDED it again" with an external 10TB Western Digital drive.

This I would probably recommend against. I'd suggest you don't RAID, but either use Time Machine to backup from the 2x5 to the 10, or some other sort of tool (Super Duper, etc) as that should make things massively faster for you in daily usage.
In terms of performance, there's a bit of a penalty that you are paying from the USB to SATA bridges chips in those external drives, to which you have to add the thunderbolt transport, etc... So that doesn't help.

I used MacOS RAID assistant to set this up. I am frankly not sure if what I am doing is actually a "good idea" since I'm RAIDing the two 5TB drives, and then RAIDing them again to mirror to a 10 TB drive. However, it seems to be working.

It should work but is probably not very fast nor the best use of those drives. It really depends on what you need in terms of performance from them. There are benchmark tools like this one http://katsurashareware.com/dl/AmorphousDiskMark.zip for example that will show you the speed of your volume in different tasks. 4K should be the most interesting, especially compared to 4K32 (32 being the size of the queue).

So, all 3 drives are plugged into one of the LG displays (it has 3 usb C and 1 TB port).

I'm not 100% sure of how macOS handles USB data over thunderbolt, but I would highly recommend keeping the 3 drives behind the same monitor.

The idea is that I have 2TB of SSD on the Macbook Pro, and then 10TB of redundant storage externally as time machine backup. I also backup to the cloud, but I do like the convenience of Time Machine.

Ok that part has me lost here, if you are double RAIDing, what are your time machining from/to ?

Yes, I have the cache for the screen saver set up on the internal SSD.

Ok that definitely clear things up.

I was thinking that I was basically maxing out the bandwidth of the TB / USB connection by sending all the data to the drives in RAID config, while at the same time pushing 2x 5k displays. But I do believe that the specs for TB / USB C have enough bandwidth, so this should not be an issue.

Yes, that's definitely not your issue. Thunderbolt has more than enough bandwidth and since your Aerial cache is on SSD, there should be no issue there.

Thanks for the heads up on RAID1ing a RAID0 -- I tried it because I am basically a little crazy and wanted to see if it worked, but suspected it would create read and write issues. Despite that, it actually is working pretty well now, but I am going to "Un-RAID" them and then just have the two 5TB in RAID0, and the 10TB as stand alone. Time Machine has a setting where it can take turns backing up to separate drives and that sounds like the better option performance wise.

Hehe, it's always good to try ! I have to say I'm a bit curious about the performance you got. You can use the benchmark I linked above to compare performance between those different solutions, that should be interesting !

Regardless, the problem 'magically went away' after just letting the machine chug on the Time Machine backup all night long. This morning when I came out, the screen savers are running fluid and smooth as ever.

Ok but I don't get what were you time machining from to where ? Internal SSD to the double RAID ?
If that's correct, I'm pretty sure that Time Machine writes a lot of small files, so in general, it's the worse case scenario for a USB drive, and if you double RAID it, it probably makes it much worse (when you write to a RAID 1 ,each write is delayed by making sure both drives actually wrote the data, while RAID 0 will write to one then the other). So it's possible you were suffering from some Queue Depth issue depending on what protocol your USB drives uses (whether your drive uses Bulk Only Transport protocol, or UASP).
The fact it's smooth now makes me think that was your issue. The only other thing I could think of, considering you were storing your cache on internal SSD, is that you were on a slow internet connection and were trying to play an uncached video that was streaming slowly from the internet.

I am guessing there was just a lot of system overhead in first setting up the RAID devices and then also making the initial 555GB backup.

The first time you run Time machine is pretty hard on any configuration in any case so that makes sense that it was extra hard here. Aerial was "competing" for disk I/O with the rest of the system (those videos are large in 4K!).

So, whatever was causing the issue has vanished (at least for now).

If it ever comes back just let me know (and if you happen to try the performance benchmark I linked in various situations, feel free to post some screenshots of the results).


Secure website entry redirects to Ryan's blog

https://githawk.com/ shows https://whoisryannystrom.com/
🤔

Can we move to the website repo?
Sent with GitHawk

Sorry I'm not following @rnystrom, is there another repo for the website that I don't know of?

 Minor issue anyway we just slightly confused when I went on secure and wasn't seeing the site!

Site is in it's own domain and with a Let's Encrypt certificate.
Ready to be closed.


[SPARK-33088][CORE] Enhance ExecutorPlugin API to include callbacks on task start and end events

What changes were proposed in this pull request?
Proposing a new set of APIs for ExecutorPlugins, to provide callbacks invoked at the start and end of each task of a job. Not very opinionated on the shape of the API, tried to be as minimal as possible for now.
Why are the changes needed?
Changes described in detail on SPARK-33088, but mostly this boils down to:

This feature was considered when the ExecutorPlugin API was initially introduced in #21923, but never implemented.
The use-case which requires this feature is to propagate tracing information from the driver to the executor, such that calls from the same job can all be traced.
a. Tracing frameworks usually are setup in thread locals, therefore it's important for the setup to happen in the same thread which runs the tasks.
b. Executors can be for multiple jobs, therefore it's not sufficient to set tracing information at executor startup time -- it needs to happen every time a task starts or ends.

Does this PR introduce any user-facing change?
No. This PR introduces new features for future developers to use.
How was this patch tested?
Unit tests on PluginContainerSuite.

Can one of the admins verify this patch?

@vanzin, @tgravescs, @LucaCanali tagging you all as you seem to have worked on the latest refactor on this area of the code on https://github.com/apache/spark/pull/26170.

Can one of the admins verify this patch?

thanks for adding this. I can definitely see use cases for this and have thought it would be nice to have something like this.
I want to look at the api details more. You also have other situations where tasks are killed, which luckily I guess the TaskContext does have a isInterrupted field for that.   The executor ends up making some pass/fail decisions that go to the scheduler

You also have other situations where tasks are killed, which luckily I guess the TaskContext does have a isInterrupted field for that. The executor ends up making some pass/fail decisions that go to the scheduler

I see. For my use-case, I don't really care about the distinction of success vs fail, only that a method will be called at least once when the task finishes in the same thread the task is executed on (for me to dismantle the tracing stuff I've built up onTaskStart).
Could expose instead an onTaskCompleted method, which does not leak the fact that a task succeeded or failed. Or could move triggering onTaskSucceeded/onTaskFailed from the Executor. Think the latter is better, because it seems useful to have the distinction if a task succeeded or failed, but happy to implement whatever maintainers prefer.

The changes mostly look good, thanks for working on it @fsamuel-bs !
Given TaskContext.get() exposes a pretty much everything about the task which the plugin could require, we are in a pretty good shape.
Do we want to include additional metadata to be passed in from driver for a subset of stage/task to the plugin ?
Currently global info can be passed in via init and job properties can be used to pass in metadata; but wondering if we need something more fine grained ... thoughts ?

You also have other situations where tasks are killed, which luckily I guess the TaskContext does have a isInterrupted field for that. The executor ends up making some pass/fail decisions that go to the scheduler

Currently we document isInterrupted as a task kill by platform (instead of user code related task failure). Essentially we have:
a) Succeeded.
b) Failed.
b.1) Task killed by platform
b.2) Task failed due to user code.
Do we want to distinguish b.1 from b.2 explicitly via api ? (isInterrupted currently does that - imo that should suffice).
Is there any other failure flows ? (ignoring executor crash here).

That is exactly what I wanted to look at some more.
There are a few corner cases Executor handles like failing on memory leak. The other thing is that the fetchFailed error is private[spark] in the TaskContext. If something happens such that user/Spark wraps that exception you might not be able to tell that.  There is also the task commit denied exception and then failures due to just stopping early.
Most of these are corner cases but really it comes down to do we care this if users using this api infer what the real Spark status was in these few cases. they just mostly just have to reproduce some of the logic that Executor does. like check for commit denied exception for instance.   This is a developer api and think it would be ok as long as we document appropriately.
I think we should definitely keep something that allows user to tell if task passed or failed.
@mridulm thoughts on leaving here vs we could just move the task end notification about into the Executor which would be in the same thread still. That feels like it would be more reliable with the plugin knowing same status of task that the scheduler will see.

Thanks @tgravescs, I did miss out on other cases where task can fail due to spark infra causing the task to fail (commit denied is a very good example).
If it helps with catching more cornee cases, without spi impl's having to duplicate what spark does - that is a great direction to take.

@mridulm @tgravescs: I've moved triggering the methods from Task to Executor. Also modified the signature of onTaskFailed to receive a TaskFailedReason instead of throwable to better match what it's sent to the scheduler. Let me know your thoughts.

the test that failed was barrier task context, I rekicked the tests, if it fails again we should look at to ensure something here didn't break it.

ok to test

Test build #129841 has started for PR 29977 at commit 8a5e436.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34446/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34446/

Test build #129841 has finished for PR 29977 at commit 8a5e436.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129841/
Test PASSed.

Thanks for the reviews @rshkv and @tgravescs !
Merging to master.
Thanks for the contribution @fsamuel-bs !
I was not able to assign the jira to you @fsamuel-bs, your id was not showing up - can you reassign it to yourself pls ? Thx

I added @fsamuel-bs as a contributor in lira and assigned it to him. thanks..


Inheritance

Isn't TextBlock supposed to inherit from Control and not directly from FrameworkElement?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 27ad25f2-d06e-135c-240c-99c8a0cfa728
Version Independent ID: eccc6b3a-5607-158c-2ed6-949293923f2d
Content: TextBlock Class (Windows.UI.Xaml.Controls) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.ui.xaml.controls.textblock.yml&version=GBlive&_a=contents
Product: windows
Git Login: wdg-dev-content
Microsoft Alias: wdg-dev-content

TextBlock does derive directly from FrameworkElement.  TextBox derives from Control.