Build failure on tip

Hi there, I'm getting a build failure from the tip of the tree:
Bisected this down to:
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[6e0aedd08383eac2c1a55bba1b65ec85f19b9cff] File layout change to accomodate new tools, features and extensions
cc -L../../../lib -lpqos -I../../../lib -W -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-qual -Wundef -Wwrite-strings -Wformat -Wformat-security -fstack-protector -fPIE -D_FORTIFY_SOURCE=2 -Wunreachable-code -Wmissing-noreturn -Wsign-compare -Wno-endif-labels -g -O2 -Wcast-align -Wnested-externs    allocation_app.c   -o allocation_app
/tmp/cc0jYqxq.o: In function main': /home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:202: undefined reference to pqos_init'
/home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:244: undefined reference to pqos_fini' /home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:209: undefined reference to pqos_cap_get'
/home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:216: undefined reference to pqos_cpu_get_sockets' /tmp/cc0jYqxq.o: In function set_allocation_class':
/home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:139: undefined reference to pqos_l3ca_set' /tmp/cc0jYqxq.o: In function print_allocation_config':
/home/king/repos/intel-cmt-cat/examples/c/CAT/allocation_app.c:171: undefined reference to `pqos_l3ca_get'
collect2: error: ld returned 1 exit status
: recipe for target 'allocation_app' failed
make[1]: *** [allocation_app] Error 1
make[1]: Leaving directory '/home/king/repos/intel-cmt-cat/examples/c/CAT'
Makefile:56: recipe for target 'all' failed
make: *** [all] Error 2

Hi Colin,
I admit there was a bit of revolution in the file structure and build files.
What are the steps to reproduce? pull the tip and run "make" at the top level?

I did a pull and make at the top level; I also did a fresh clean clone and get the same issue

..but I can wait until the next tagged release appears and re-try then if need be as I realize the current repo is in a state of flux.

I just cloned the tip (https://github.com/01org/intel-cmt-cat/commit/b3d6ac624d6a73b73ca1392e2715c5ab78c38845) and I could compile it without errors (make at the top level).
The library is built as DSO now & needs to be installed to make others apps link against it or LD environment has to be modified. I am guessing this change is causing issue in your environment - I am not sure how to replicate it though.

Interesting ... I can build it successfully on Fedora 20 but it fails on Ubuntu at the very place you pointed. I can reproduce it now so I should be able to fix it soon, too :)

This is an issue with linking order which perhaps varies on different tool chain versions. Fix for the problem is on its way.

https://github.com/01org/intel-cmt-cat/commit/a42362813b4c20d0a272d263c945fbb1d5765412 fixes the problem for me. Can you verify, please?

Thanks, this fixes the issue.


Change hbp_seafile to ebrains-drive

Change repo to access Collab v2 storage

implemented in https://github.com/HumanBrainProject/hbp-validation-client/pull/93


Cache Class detects APC support if disabled in php.ini

The problem of the is_supported() method in Cache_apc.php is, that it detects APC wrong!
If You set apc.enabled = 0 in php.ini, the extension_loaded('apc') will return TRUE, this is ok...
But function_exists('apc_store') will return TRUE as well, if the extension is loaded.
Better check by executing apc_cache_info like:
if ( ! extension_loaded('apc') OR ! function_exists('apc_cache_info') OR ! @apc_cache_info('user') )
This works well!
Greetings,
Patrick

I use ini_get() function to detect if apc is enabled or not.


[Sweep] Attach bugs in batches

When we prepare GA advisories, we attach bugs in numbers exceeding a thousand. Errata tool attaches bugs but fails on the part where it posts a single comment about all the bugs attached in a request. The single comment is huge and it exceeds the character limit defined. This is a change so that doesn't happen.

ooh we merged it too early. flake8 validation failed, which prevented the tests to run.


CNC control software crashing

Please provide a brief summary of the bug
A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe5d27acd4, pid=1692, tid=10948

JRE version: OpenJDK Runtime Environment Temurin-17.0.2+8 (17.0.2+8) (build 17.0.2+8)
Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (17.0.2+8, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
Problematic frame:
C  0x00007ffe5d27acd4

No core dump will be written. Minidumps are not enabled by default on client versions of Windows
Please provide steps to reproduce where possible
Open Firecontrol.exe
Expected Results
Firecontrol.exe should open and run properly
Actual Results
Firecontrol.exe crashes and I receive an error message that says "child process exited with code 1"
What Java Version are you using?
JRE version: OpenJDK Runtime Environment Temurin-17.0.2+8 (17.0.2+8) (build 17.0.2+8)
What is your operating system and platform?
Host: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, 8 cores, 13G,  Windows 10 , 64 bit Build 19041 (10.0.19041.1889)
How did you install Java?
No response
Did it work before?
Yes this was working fine until a recent windows update

Did you test with other Java versions?
No response
Relevant log output
No response

@BlackWaterMS Can you try the latest 17.0.5 - any extra app or crash logs will also help.


A few website fixes

Move /documentation to /docs
Remove docs in root README and point to the documentation website instead
A few improvements to the docs README
Fix a few typos, URLs, and wording

Mostly minor changes, so going to merge. Feedback is very welcome!


date format should use words rather than numbers

Subject: date format.  username format.
Description:
dates. 4/12/yyyy what is this? 4th dec or 12th apr.  never use numbers for dates. only words.  you are meant to be international. use dd/mmm/yyyy
only use programes that will take word written dates.  or this will be just more confusing that american notations.
username.  need to state what this means, how it is to be written, maybe use set boxes for users have to write in so can see minimum and maximin length, and must have no gaps.
Results:
Backend version: develop-3b94a107
Frontend version: develop-3b94a107
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Page: https://app.couchers.org/search?#loc=1/0/0
User: mrmax (8829)

Seems most people figure it out with the date picker


[Copilot] Azure OpenAI Tools support added to our Copilot Toolkit

Summary
This pull request introduces Azure OpenAI Tools to our Copilot Toolkit. Currently, this functionality is open for application by Microsoft only. We will open this for community when next GA version of Azure Open AI is available which supports tools.
Work Item(s)
AB#487896

Additionally, no test for any of it? :(

Tests added.

Fix minor, but LGTM

Done.


cleaned up notebooks

Hi.
Cleaned-up {SkinDeep,SkinDeep_good}.ipynb notebooks:

removed unused/repeated/unnecessary imports.

Tested in colab (run all).
P.S: everything works fine on CPU in about 10 seconds, no GPU needed.
P.S.S: with default libraries in colab env everything works fine (yes, they are newer than one's in colab_requirements.txt). Removing !pip install -r colab_requirements.txt  lowers total running time to ~10 sec.

Hi can you do something to maintain the same dimension for both input and output?

I will try to figure up.
torchsummary.summary shows correct shapes: ouput_shape is equal to input_shape, but lean.predict returns image of shape (3,400,400).
Seems that some kind of cropping is done on preprocessing step, because output image differs from input (not only by shape).


BaseSettings: Customization of field value priority via Config

Checks

[x] I added a descriptive title to this issue
[x] I have searched (google, github) for similar issues and couldn't find anything
[x] I have read and followed the docs and still think this feature/change is needed
[ ] After submitting this, I commit to one of:

Look through open issues and helped at least one other person
Hit the "watch" button on this repo to receive notifications and I commit to help at least 2 people that ask questions in the future
Implement a Pull Request for a confirmed bug

Feature Request
Currently, there is field value priority (from the docs):

In the case where a value is specified for the same Settings field in multiple ways, the selected value is determined as follows (in descending order of priority):

Arguments passed to the Settings class initialiser.
Environment variables, e.g. my_prefix_special_function as described above.
Variables loaded from a dotenv (.env) file.
The default field values for the Settings model.

However, in some cases it would be nice to swap 1 and (2,3) priorities. For example, I would like to create the configuration system based on config files (YAML, TOML, INI, etc) and env vars where envvars/dotenv have highest priority (env vars override values from config files that looks reasonable in some cases just like now env vars (2) override dotenv file (3)).
It might look something like this:
class Settings(BaseSettings):
    ...

s = Settings(**load_from_config_file(config_path))

In this case values from config file will override values from env vars.
Currently, the default behavior cannot be changed without subclassing BaseSettings class and overriding _build_values method. This is not mentioned in the current docs but previously it was mentioned (see pydantic/pydantic#340, pydantic/pydantic#341, pydantic/pydantic#343).
Would you mind considering the customization of this behavior via  Config of BaseSettings model?

You can do it by change source priority in pydantic-settings


Review readme 14 reactrouter Issue #22

This closes Lemoncode/react-by-sample#22

Fix minor typos in readme.md and src/page*.tsx .
Fix src/pageB.tsx text destination page (pageB goes to pageA).
Add title and h1 in src/index.html page.
Update readme.md with multiple fixes.
Update package.json:

Fix webpack-devserver to webpack-dev-server
Add @types/history to the dependencies.

Good stuff, merging, please @vicmator , @rocioghermoso update the issue status + kanban


Warning on console - shared strategy

Describe the bug
Using "next": "14.2.10" with "@module-federation/nextjs-mf": "8.6.2" and "webpack": "5.94.0" is getting this warning on console:

next.config.js
const { NextFederationPlugin } = require('@module-federation/nextjs-mf')

module.exports = {
  webpack(config, options) {
    config.plugins.push(
      new NextFederationPlugin({
        name: 'delivery',
        filename: 'static/chunks/remoteEntry.js',
        dts: false,
        exposes: {},
        remotes: {},
        shared: {},
        extraOptions: {
          exposePages: true,
        },
      })
    )

    return config
  },
}

▲ Next.js 14.2.10

Environments: .env.local

✓ Linting and checking validity of types
Creating an optimized production build ...
✓ Compiled successfully
Collecting page data  .[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
✓ Collecting page data
Generating static pages (2/5)  [=   ][Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[Module Federation Data Prefetch]: Your shared strategy is set to 'loaded-first', this is a necessary condition for data prefetch
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
[ Federation Runtime ]: "shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"
✓ Generating static pages (5/5)
✓ Collecting build traces
✓ Finalizing page optimization
Route (pages)                           Size     First Load JS
┌ ○ /                                   322 B          58.3 kB
├   /_app                               0 B              58 kB
├ ○ /404                                244 B          58.2 kB
├ ƒ /api/addresses/[zipCode]            0 B              58 kB
├ ƒ /api/carts/[cartId]                 0 B              58 kB
├ ƒ /api/checkout/carts/[cartId]        0 B              58 kB
├ ƒ /api/customers                      0 B              58 kB
├ ƒ /api/customers/addresses            0 B              58 kB
├ ƒ /api/date                           0 B              58 kB
├ ƒ /api/deliveries/quote               0 B              58 kB
├ ƒ /api/healthcheck/live               0 B              58 kB
├ ƒ /api/healthcheck/ready              0 B              58 kB
├ ƒ /api/last-commit                    0 B              58 kB
├ ƒ /api/orders                         0 B              58 kB
├ ƒ /api/orders/search                  0 B              58 kB
├ ○ /neighborhood-delivery              10.3 kB         600 kB
└ ○ /neighborhood-delivery-orders       5.51 kB         596 kB

First Load JS shared by all           62.9 kB
├ chunks/main-c0d52c21dff0ec6a.js     32.1 kB
└ chunks/webpack-2d075e27e48baec4.js  25.5 kB
└ other shared chunks (total)         5.27 kB

ƒ Middleware                            32.6 kB
○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand
Reproduction

Used Package Manager
npm
System Info
System:
    OS: macOS 15.0
    CPU: (8) arm64 Apple M3
    Memory: 87.64 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
Binaries:
    Node: 18.17.0 - /usr/local/bin/node
    Yarn: 1.22.21 - ~/.nvm/versions/node/v16.20.2/bin/yarn
    npm: 9.6.7 - /usr/local/bin/npm
    bun: 1.1.18 - ~/.bun/bin/bun
Browsers:
    Safari: 18.0

Validations

[X] Read the docs.
[X] Read the common issues list.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Module federation issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

Hey try to upgrade<EMAIL_ADDRESS>


Avoid double-decoding on attribute value

Chained replaces here may cause problems if the order isn't carefully arranged.Currently we get " after decoding &quot; while " is expected.
For a quick fix, I could move the replace which replaces &s to the last.However, I prefer one single replace so that we don't bother with chaining order.

Good catch!

It took me one hour to come up with the variable names:sob:

Codecov Report

:exclamation: No coverage uploaded for pull request head (fix-attr-decoding@9e539b6).

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 af1ec1b...9e539b6. Read the comment docs.


Accomodate new pan event changes

Adds fixes to accommodate changes from https://github.com/revery-ui/esy-sdl2/pull/11

It seem it miss some header

It seem it miss some header

Yep, this requires revery-ui/esy-sdl2#11 to build

This should also hopefully be GTG once the esy changes are merged @glennsl @Et7f3


checksum missing last character.

I believe your sha256 checksum displayed for your minimal install image is missing the last 'f' on the page https://github.com/rootzoll/raspiblitz/tree/v1.9
a5e14858a8a5976009bdc198f868f898185cbd9cebde72d077d5ffbf64bb817f  /raspiblitz-min-v1.9.0rc1-2022-12-21.img.gz

thx. Should get fixed with next RC fiels upload.


Incorporate responsive styling to user account forms

Add media queries & styling to make user account forms display correctly

Yes I will be able to do that
On Sun, Mar 25, 2018, 12:24 PM John Kwening<EMAIL_ADDRESS>wrote:

@alicepalazzolo https://github.com/alicepalazzolo if you're still
working on this, we will most likely need something similar for the search
input box and results list for map view and home screen. Would it b
possible to incorporate that into this issue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TheDevPath/Navi/issues/253#issuecomment-375982937,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AhrEFB4DRkMrWFIv3o3WGRlTTfzeHzohks5th8ShgaJpZM4Su9NX
.


Standardize comment characters

We use both ! and #!.  We should standardize on one or the other.

I thought #! was just to make Factor she-bang compatible?

It was (is?) used as a standard comment line in a few vocabs, probably by people whose editors know about # as comment in other languages. Maybe we start by cleaning up the uses-as-comments, and leave the uses-as-shebang, then see where it goes.

Removed all of the #! comments in e477f6996f57abc0d0f984d5b689ac731e408a82.
The shebang is "natively" supported in the lexer so we should be able to get rid of #!.
@erg?

Okay, got rid of #! and changed the lexer in eaa65bc66f8b006fb9deb970fa898f07591f6e22 because it required #! to be defined syntax, now it just skips over shebang on the first line.


MicroPython support

Can you please add an example of how to use micropython on the device? I tired following general guidance for esp32s3 but can't get REPL over the USB port

The indicator currently does not support MicroPython or any other type of environment.
On Sun, Feb 11, 2024 at 2:05 PM, Gideon Mendels @.***(mailto:On Sun, Feb 11, 2024 at 2:05 PM, Gideon Mendels < wrote:

Can you please add an example of how to use micropython on the device? I've trying following general guidance for esp32s3 but can't get REPL over the USB port
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Feat/frontend

UI and Schema enhancements

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

resolves #69 partially, will create a new ticket for adding search functionality to UI.


Project Text-Utils updated

@KrisJarvis ,
Follow the guidelines of this project : https://github.com/dev-AshishRanjan/Hacktoberfest-frontend/blob/dev/CONTRIBUTING.md
You have to add an html file to showcase your project.
And add the html file's path in contribution/ProjectList.json


S3 data mover to support checksum

I understand the S3 data mover does not currently support checksum for put/get operations.  Is this on the roadmap?

Currently (at least when I originally wrote this a couple years ago), the checksums are calculated while the file is being read or written. This works because the local mover is copying the file sequentially, so the checksum is basically "free." However, the S3 library copies the files in chunks and not necessarily in order, so it would be difficult to calculate a checksum as the file is being copied. At the time I didn't see any way of doing it other than scanning the file again before/after the operation but didn't get a chance to add that.


0.1 - Deliverables: informed by the concept note/contract (Finance OTF work)

Is your feature request related to a problem? Please describe.
As a Hypha user that intends to use the Reporting feature, I need to have a deliverables section for each fund/project deliverable as set out in their SOW/Contract/Concept Note (delete as appropriate) to be able to have any 'organisational areas of focus and goals/mission' tags assigned to a deliverable/s that a project may have. These 'organisational areas of focus and goals/mission' tags can be added by a fund lead/manager  during the transition between a fund application being Accepted into Committed/Contracting and then to Completed. The 'organisational areas of focus and goals/mission' tags will be assigned per deliverable as per the projects deliverable details.
Deliverables as a 'section' or 'tab' within a project in Hypha is part of OTF's Finance, Contracting and Compliance work due to complete in late Q1 2022.
Is your feature request related to an existing functionality? Please describe.
This feature enables The 'organisational areas of focus and goals/mission' tags to be assigned per deliverable as per the projects deliverable details. Expressed as a button (same as current meta terms) and then a model 'window' where check boxes can be allocated:

Describe the solution you'd like
Identical to Meta Terms in UX/user flow but labelled 'Core areas of funding' (translatable via translation files)
Describe alternatives you've considered
We considered using the existing 'Reports' section to add 'Core areas of funding' tags and/or a whole new section in the main 'details tab' page of a project.
Additional context
No other tags should be able to be added via 'Core areas of funding' button. However, a deliverable should be able to also have Meta Terms added via the Meta Terms. (Pending product team decision)
Priority

High (keeping you from completing day-to-day tasks) in regard to the reporting feature development generally.

Affected roles

Staff
Reviewers
Partners

Ideal deadline
Date when you'd like to see this accomplished and a reason, if appropriate.
April 18th

'A deliverable should be able to also have Meta Terms added via the Meta Terms.' @frjo and @ei8fdb Do you think users should be able to tag a deliverable both with Meta Terms and 'Core areas of funding'? I think yes but then things could get 'messy'.

The 'flat list' style can look one of two ways depending on the answer to this question: Do Adopters need to select more than one 'Core area of funding'.


console.log(undefined) from an Angular2 app issue

Very interesting behavior. console.log(undefined); executed from inside Angular2 application is killing the selenium-webdriver.
Steps to reproduce:

framework: 'jasmine'
directConnect: true
useAllAngular2AppRoots: true

describe('test', function() {
  it('console', function() {
    browser.get('https://run.plnkr.co/plunks/e4FR4IR8CIMmRnuVRcTx/');
  });
});

Result:
An error was thrown in an afterAll
AfterAll Failed: ECONNREFUSED connect ECONNREFUSED <IP_ADDRESS>:45256

[17:59:12] E/launcher - Error code: 135
[17:59:12] E/launcher - Error message: ECONNREFUSED connect ECONNREFUSED <IP_ADDRESS>:45256
[17:59:12] E/launcher - Error: ECONNREFUSED connect ECONNREFUSED <IP_ADDRESS>:45256
    at ClientRequest.<anonymous> (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:381:15)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at Socket.socketErrorListener (_http_client.js:269:9)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at emitErrorNT (net.js:1269:8)
    at nextTickCallbackWith2Args (node.js:442:9)
    at process._tickCallback (node.js:356:17)
From: Task: WebDriver.quit()
    at Driver.schedule (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:377:17)
    at Driver.quit (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:443:23)
    at /home/alex/AptanaWorkspace/sfp/node_modules/protractor/built/driverProviders/driverProvider.js:59:28
    at ManagedPromise.invokeCallback_ (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1379:14)
    at TaskQueue.execute_ (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14)
    at TaskQueue.executeNext_ (/home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21)
    at /home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2820:25
    at /home/alex/AptanaWorkspace/sfp/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (node.js:369:9)
[17:59:12] E/launcher - Process exited with error code 135

If console.log(undefined); is removed from the demo plunk (main.ts:7), or the parameter to console.log is defined - the test is passing.
Browser: Chrome Version 54.0.2840.59 (64-bit)
Protractor 4.0.9

Hi! This looks like a support question. Please ask your support questions on StackOverflow, Google Group discussion list, or Gitter. For more information please reference https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions
Thank you!

Thank you, but please read it carefully and prevent someone else to spend hours in debugging angular bindings and typescript getters for such simple bug...
It was fixed before submitting the issue :)


client.joinVoiceChannel never calls back if it fails.

this.client.joinVoiceChannel never executes the callback's if it fail's to connect. Tested by calling it on a  channel the bot did not have permission to join.

was using node 6.0 to test thins out. if  that could be the issue I can try with other versions.


Bar containing accents in typing

Description of the new feature / enhancement
Creation of a bar that displays accents and allows them to be written by holding down a key on keyboard.
Scenario when this would be used?
Recently I've been writing in qwerty in a country that requires accents, I'd like to access it easily on Windows while on Mac they have a feature that allows you to do it quickly and easily. I've seen quite a few people (especially students) who need this kind of tool. You will tell me that this already exists with HoldKey, but it's really not practical the way it's done.
Supporting information

great idea, tracked via https://github.com/microsoft/PowerToys/issues/2668


Adding a NetworkAttachment for the designate services to support

their necessity to communicate with DNS servers.

recheck

So I think 'DesignateApiNetwork' defaults to internal_api there. So do we need a custom network for designate here?

/lgtm


docker login fails with unauthorized error

I installed shipyard on 1 machine and added 2 other nodes to the cluster using below commands.

curl -sSL https://shipyard-project.com/deploy | bash -s on machine-1
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://$MACHINE_1_IP:4001 bash -s on machine-2
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://$MACHINE_1_IP:4001 bash -s on machine-3

From UI I can see all three nodes listed and adding a container schedules it to one of the node.
I want to connect to swarm master to see all the nodes via docker info. However when I try to access shipyard-controller through docker cli using username:admin, password:shipyard, it give unauthorized error.
docker -H tcp://MACHIN_1_IP:8080 login
Username: admin
Password:
Email:
Error response from daemon: unauthorized
Please let me know if I missed some basic step or connecting to the wrong port.
docker logs for shipyard-controller below.
DEBU[33336] GET: /containers/json?all=1
DEBU[33337] GET: /containers/json?all=1
DEBU[33343] DELETE: /containers/23676c4d920e3d0acc13ba0624b34d5285a6841f37afbc8efd6df564d40f4526?v=1&force=1
DEBU[33343] GET: /containers/json?all=1
WARN[34132] unauthorized request for /v1.20/info from <IP_ADDRESS>:47525
WARN[34138] unauthorized request for /v1.20/info from <IP_ADDRESS>:47539
WARN[34149] unauthorized request for /v1.20/info from <IP_ADDRESS>:47556
WARN[34158] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47571
WARN[34201] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47644
WARN[34216] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47670
WARN[34265] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47754
WARN[34316] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47843
WARN[34342] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47889
WARN[34359] unauthorized request for /v1.20/auth from <IP_ADDRESS>:47922
WARN[34435] unauthorized request for /v1.20/auth from <IP_ADDRESS>:48044
WARN[34440] unauthorized request for /v1.20/auth from <IP_ADDRESS>:48054
WARN[34569] unauthorized request for /v1.20/info from <IP_ADDRESS>:54889
WARN[34578] unauthorized request for /v1.20/auth from <IP_ADDRESS>:54890

After further investigation it looks like swarm master port 3375 is not exposed outside container. Is there a way to expose then via environment variable?

We are planning to add TLS authentication via the Docker client.  Optionally you can use the manual setup and expose Swarm on an external port.  See http://shipyard-project.com/docs/deploy/manual/ for manual deployment.

Thanks for your response. Any timeline for TLS authentication feature.


2 handed interaction

I love the PhysX interaction.  Is there anyway to get both controllers (on the Vive) to be able to grab one object?  Thanks.

I have implemented this on my version, i mentioned the basics of how I did it in a previous 'issue'.  i could probably make a fork with just that feature relatively quickly after the holidays.
it is a planned feature by the Newton devs too.

here is a link to the post.  i'll try to put up a fork link and pull request soon

Thanks!

I get an error when I copied the files over to replace the old oneS:  the NVRInteractableItemAutoAttach.cs (11,30): error CS0115: NVRInteractableItemAutoAttach.HoveringUpdate is marks as override but not suitable method [error ends]
How do I fix this or get around it? Thanks a lot!

Yeah those are off an old version and might have some unincluded
dependencies. I posted them just for reference, give me a couple days to
make a clean fork that will just work for you.
Trying to spend time with the family today!
On Sat, Dec 24, 2016 at 12:20 PM daedalus311<EMAIL_ADDRESS>wrote:

I get an error when I copied the files over to replace the old oneS: the
NVRInteractableItemAutoAttach.cs (11,30): error CS0115:
NVRInteractableItemAutoAttach.HoveringUpdate is marks as override but not
suitable method [error ends]
How do I fix this or get around it? Thanks a lot!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/TomorrowTodayLabs/NewtonVR/issues/106#issuecomment-269098840,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE3l1lEHEytOrrv3Qpr1eTAg8KVEkmh5ks5rLX6IgaJpZM4LVLFq
.

np! I'm a patient family man myself :)

Ok i made the pull request finally!  Happy holidays!
https://github.com/TomorrowTodayLabs/NewtonVR/pull/111

So....getting a few errors.  Copied the newest NewtoNVR, then copied your files.  Errors:
NewtonVR.NVRPhysicalController.PhysicalController is inaccessible due to its protection level.
Type 'NewtonVR.NVRButtonInputs' does not contain a definition for 'FrameReset' and no extension method 'FrameReset' of type 'NewtonButtonInputs' could be found.
'NewtonVR.NVRPlayer' does not contain a definition for 'NewtonVRExpectedDeltaTime'

Any luck?  I got an email saying you had some issues, but looks like you took down the post?  I hope it is working!


logo updates

2 updates:

Updated the badge to match the SVG from shields.io
Added a logo.svg file in the docs

Thanks @choldgraf


[Web Application] Implement managers for the implemented models as well as authentication.

As a developer, I want managers implemented for the models, so that I can keep track of the working models in the memory as well as authentication.

Additional requirements that will be covered with this issue:

The web application should have managers to keep track of the working models in memory as well as authentication.

Again, mistake with labels. This will be done during Sprint#3


"semicolon" rule does nothing in declare class

Bug Report

TSLint version: 5.0.0-dev.0
TypeScript version: 2.3.0-dev.20170321
Running TSLint via: CLI

TypeScript code being linted
declare class C {
    a(): void
}

declare interface I {
    a(): void
}

with tslint.json configuration:
{
    "rules": {
        "semicolon": [true]
    }
}

Actual behavior
Lint error in the interface.
Expected behavior
Lint error in the class, too.

Same thing on export.
export {
  A,
  B
}

Do we need a semicolon there? Based on this it seems we do: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-exports

Both should be fixed in master.
Can you please try that and report if something is still missing.

Works great! Thanks!


update to plot in steepest_descent

Codecov Report

Merging #41 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #41   +/-   ##
=======================================
  Coverage   99.24%   99.24%
=======================================
  Files           6        6
  Lines         396      396
=======================================
  Hits          393      393
  Misses          3        3

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 479d552...df9d7b7. Read the comment docs.


Missing / Bug Notification & Refresh in Dapp in Production

Describe the bug
Context : Conversion Manjarisoa NFTs into SFT
After using button "Migration Assets" on Manjarisoa Bronze, I was able to do the conversion.
Everything was good on-chain (her the transaction : https://starkscan.co/tx/0x033b5815c6675d2ea8f2d62084225d8a2a40d85b12ca1ef849e420402738465a)
Her the SFT : https://starkscan.co/nft/0x0516d0acb6341dcc567e85dc90c8f64e0c33d3daba0a310157d6bba0656c8769/155
Behavior
Expected behavior

Notification on the Dapp after transaction executed
Refresh of the Dapp afetr an amount of time

Actual behavior

No Notification on the Dapp
No refresh of the Dapp
Needed to be manually refresh after 1 min to have the new Manjarisoa SVG in SFT assets

Screenshots
If applicable, add screenshots to help explain your problem.

The notifications are indeed not triggered and the whole refresh system is based on the notifications calling the last status on the blockchain.
Need to investigate why the dapp doesn't receive the transaction hash after validation in the wallet which is the trigger of everything else.


Fix issue where blocks were not considered in priority mapping

cc @chef/client-maintainers

:+1:

:+1:


PA2 level 2

hi why do i get the error on line 10?  im trying to implement get(). below is the error message and my code

Hi ezclap, you can try returning a new StateM?

You might want to read #643 to see what get() really does...

can you remove that constructor completely? believe that solves your problem

finals is over you can close this issue


Change Name to BitcoinLitecoinAndDogecoinButNotNecessarilyInThatOrderClams

Given that BitcoinCash just forked, it seems clear to me that a chain that uses a chain state as the means of determining initial distribution of a coin is, indeed, a legitimate Bitcoin fork. While I understand that there might end up being great confusion with regard to which Bitcoin is to be used here or there, it also seems obvious to me that Clams is the longest running legitimate Bitcoin fork using the "state of the chain" (which would be a great name for a podcast) as a means for distribution.
As such, I think that Clams should consider changing its name to BitcoinClams, which will provide the longest running POS implementation of Bitcoin the legitimacy of the name, as well as emphasizing ClamCoins as an alternative to the disgusting censorship of Theymos and obvious collusion that Adam Back, his dark corporation Blockstreamm and the rest of the core team have had with Satan.
Alternatively, it might be worth considering that Clams, itself, be forked in much the same way that Clams was originally forked. We could copy the state of clams' blockchain and distribute more equitably the chains currency under the monkier "BitcoinClams" as proposed here, for the sake of better preserving the vision of our LORD and Savior Satoshi Nakamurmo.
Thank you for considering this proposal. I pray that the patron Saint of Blockchains, Saint Catherine, would heap upon your third eye the blessings you deserve for the open source work you have done unto Blockchain Jesus who is and was and is to come forever and ever.

Closed for future merging and worship.

Joshua, while I see the logic of your argument you must bear in mind that CLAM is just as much a fork of Litecoin and Dogecoin as it is of Bitcoin.
It doesn't seem fair to use "Bitcoin" in the name and not the other two. Or, for that matter, to put Bitcoin first.
How about we compromise and change the name to BitcoinLitecoinAndDogecoinButNotNecessarilyInThatOrderClams instead? A bit like how SegWit2X found a compromise between the people who don't want a hard fork and the people who don't want SegWit by giving everyone both things.

I think this sounds reasonable. Can we reopen this ticket under the title "Change Name to BitcoinLitecoinAndDogecoinButNotNecessarilyInThatOrderClams"?

I changed the title, but I'm too scared of creativecuriosity to reopen it.

Please leave this issue as closed.
Warmest Regards,
Justin Abraham
On Wed, Aug 2, 2017 at 2:00 AM, Chris Moore<EMAIL_ADDRESS>wrote:

I changed the title, but I'm too scared of creativecuriosity to reopen it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nochowderforyou/clams/issues/312#issuecomment-319585902,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATLS5desXyB-nGEG9_1knKCBmVd3jiCCks5sUB6SgaJpZM4Oqiaq
.

I can see it happen.. CashMeClamside, coming to fruition.
Hail The Clam Lords.


SoftwareBitmap properties are incorrect.

SoftwareBitmap width and height are byte, they should be int.

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

ID: a9d1d34d-0c30-2810-1bee-f1509b590b38
Version Independent ID: 0384b554-c858-97ba-8fc7-dad95ec15974
Content: SoftwareBitmap Constructor (Windows.Graphics.Imaging) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.graphics.imaging.softwarebitmap.yml&version=GBlive&_a=contents
Product: windows
Git Login: wdg-dev-content
Microsoft Alias: wdg-dev-content

This issue appears to have been resolved. The data types show as int in the current documentation.


ISPN-7114: Fix MergePolicy test failures.

I seem to have fixed the issues with the MergePolicy tests, but there is now a failure on the ConflictManagerTest. I'll fix all in this PR.

@ryanemerson please remove the : from the commit message.

The latest failure I've seen locally is from another test method:
16:33:08,072 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.conflict.impl.ConflictManagerTest.testGetConflictsDuringStateTransfer[DIST_SYNC]
org.testng.TestException:
Method org.infinispan.test.fwk.NamedTestMethod@8bf055db should have thrown an exception of class java.lang.IllegalStateException

My guess is that delayStateTransferCompletion() is called too late, after the relevant StateResponseCommand was already received (and the same with the rehash listener). To make it more reliable, the test should use a CountDownLatch or maybe an o.i.t.f.CheckPoint to make sure that the StateResponseCommand is blocked and that it's not unblocked before getConflicts(0) gets called. That way the test also doesn't have to wait for 4 seconds when getConflicts(0) finishes immediately.
Optional request: I suggest using Exceptions.expectException(..., () -> getConflicts(0)) or Exceptions.expectExecutionException(..., conflictsFuture) instead of the @Test(expectedException = ...)` annotation, to make it clearer where the exception is thrown.

@danberindei Good points. Everything seems fine on my machine, now lets see what CI says.

@ryanemerson Sorry for the delayed review. Latches come with their own set of problems, as you can see, but I'm sure the end result will be a reliable test.

@danberindei No worries, thanks for the insights. Updated and pushed

Integrated, thanks Ryan!


feat: remove underscore and default prop in instance

I think that could is more natural the useWasm export the functions without _ at beginning of the function name.
Also, I also remove the default prop __post_instantiate, to avoid confusion.

I agree, but I don't feel we need to add lodash for doing that and it can be configured by emcc vi CLI-opt. Also, this issue a little bit more deep because gopkg, emcc, turboscript and others have a different behaviour about exported modules/namespace/functions. So I'm avoiding fix this right now. Gonna close this PR for now, we can look it in the future.


Add swyxdotio template

Related:

https://github.com/sw-yx/swyxdotio/blob/bc7bd92bb34759cb39d20a3873a42c775b165b0c/content/writing/technical/jamstack-og-images.md

closed at https://github.com/microlinkhq/cards/commit/be70d6acededd5dcd0db81d9a808ef9a4d4f584f


Increase block validation timeouts

Motivation

The full synchronization test currently times out after running for 6 hours. One possible cause is that during synchronization the block validation may time out a few times, which leads to a few minutes of delays.
Solution

Increase the UTXO lookup timeout and the block validation time out to see if the synchronization finishes earlier.
Review

Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

Follow Up Work

This could be a bug in the recently merged PR #4149, or an intermittent error:

WARNING: Default device-name for disk name [zebrad-cache-28dc985-mainnet-checkpoint] will be [zebrad-cache-28dc985-mainnet-checkpoint] because it is being mounted to a container with [--container-mount-disk]
ERROR: (gcloud.compute.instances.create-with-container) Could not fetch resource:

The resource 'projects/zealous-zebra/global/images/zebrad-cache-main-e5f00c5-v23-mainnet-checkpoint' is not ready

https://github.com/ZcashFoundation/zebra/runs/6103901143?check_suite_focus=true#step:7:95
Maybe @gustavovalverde can help diagnose?

This did not lead to a performance increase that's enough to solve the issue (#4155).
This PR can be closed, but it might be useful for reference because it contains the workaround I used when synchronization gets stuck on a single block. This can happen on debug builds or on release builds using trace-level logging. It could also happen on some lower-end computers.

This did not lead to a performance increase that's enough to solve the issue (#4155).
This PR can be closed, but it might be useful for reference because it contains the workaround I used when synchronization gets stuck on a single block. This can happen on debug builds or on release builds using trace-level logging. It could also happen on some lower-end computers.

I'd like to fix this bug for low-end computers, if we can do it without breaking the full sync test.
Can we leave this PR in draft, fix the sync speed, and then re-test to make sure it doesn't make the sync worse?

@mergifyio update

I am updating this branch to delete the clean action, which causes other actions to fail.

@mergifyio update

I'm running a full sync test here:
https://github.com/ZcashFoundation/zebra/actions/runs/2267417739
If it takes around 5h50m, we should merge this PR, because it fixes part of the bug in PR #4286.

So the full sync tests was skipped, can we relaunch this to check how much time it takes ?

So the full sync tests was skipped, can we relaunch this to check how much time it takes ?

The test I ran manually took 5h47m, so it is about the same speed.


Missing Content-Type?

I'm working with Busboy in Koa, and passing this.headers into Busboy's options hash. For some reason, Busboy is missing the headers option. Here's the content type object from Koa's headers:
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7Q0vAPYV6vaXrhS5',

Parsing seems to work fine. I can pipe file streams and everything, yet this error persists.

Can you show the actual code you're using?

It's pretty basic:
var app = require('koa')()l

app.use(function *() {
   var context = this.req || this
   ,     parser = new Busboy({ headers: context.headers });

   busboy.on('file' function (args) {});
   // etc

   context.pipe(parser);
});

I'm not familiar enough with co/koa/etc., but as you can see, busboy merely checks that headers exists and headers['content-type'] is a string. So as long as typeof context.headers === 'object' && typeof context.headers['content-type'] === 'string' there shouldn't be any problem...

not sure what's going on, but you should do this.request.is('urlencoded', 'multipart') before trying to use busboy.

Hmmm. I'm kinda at a loss, because it looks like everything I'm passing in from Koa is correct.
var app    = require('koa')()
,   Busboy = require('busboy');

app.use(function *() {
  var context = this.req || this
  ,   files   = {}
  ,   parser  = new Busboy({ headers: this.req.headers });

  parser.on('error', function (err) {
    throw err;
  });

  parser.on('file', function (field, stream, name, enc, mime) {
    files[field] = name;
    stream.resume();
  });

  parser.on('finish', function () {
    console.log(files);
  });

  this.req.pipe(parser);

  this.body = "Yo, this is a test.";
});

app.listen(process.env.PORT || 9292);

I'm getting this error now, I can see Content-Type on the header and it seems valid, I guess it wants a lower case?


error wmi_tcp_connections_established metric type

why wmi_tcp_connections_established is counter type, but actually gauge is

@KingDomPan you're correct, the wmi_tcp_connections_established should be a gauge type. I suspect other TCP metrics may also be of an incorrect type.
I'll review the tcp collector and correct the metric types.


Add abilitly to delete connectors from system portal

Description
Users need the ability to delete connectors from the system portal. This ticket's purpose is to add a delete button to all the current connector forms

Deletion is working 👍


Bump version to 2.4.0

Questions
Answers

Description?
Bump version to 2.4.0

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
N/A

How to test?
N/A

Pull Request Test Coverage Report for Build 993875948

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 4.298%

Totals

Change from base Build 993856050:
0.0%

Covered Lines:
15

Relevant Lines:
349

💛  - Coveralls

Thanks @Progi1984


Error in Squidpy notebook due to rasterization

The Squidpy notebook shows an error liked to rasterizatation. @Sonja-Stockhaus could you please have a look at it? Thanks 😊
This is part of the log:
    300 else:
    301     array_module = np
--> 302 return lambda shape: tuple(c(shape, array_module) for c in creators)
File /mnt/miniconda3/envs/ome/lib/python3.10/site-packages/datashader/compiler.py:302, in <genexpr>(.0)
    300 else:
    301     array_module = np
--> 302 return lambda shape: tuple(c(shape, array_module) for c in creators)
File /mnt/miniconda3/envs/ome/lib/python3.10/site-packages/datashader/reductions.py:785, in by._build_create.<locals>.<lambda>(shape, array_module)
    783 def _build_create(self, required_dshape):
    784     n_cats = len(required_dshape.measure.fields)
--> 785     return lambda shape, array_module: self.reduction._build_create(
    786         required_dshape)(shape + (n_cats,), array_module)
File /mnt/miniconda3/envs/ome/lib/python3.10/site-packages/datashader/reductions.py:472, in Reduction._create_uint32(shape, array_module)
    470 @staticmethod
    471 def _create_uint32(shape, array_module):
--> 472     return array_module.zeros(shape, dtype='u4')
MemoryError: Unable to allocate 74.8 GiB for an array with shape (25783, 35416, 22) and data type uint32

@LucaMarconato  I feel like this also has to do with https://github.com/scverse/spatialdata-plot/issues/296 and might be solved with https://github.com/scverse/spatialdata-plot/pull/309 since with that version of the code everything runs for me.

I just tried: the error disappeared and the plot is fast! There is still a problem with the lims as I get this plot

Can you have a look at it as part of the PR please?

I confirm that my claim seems to be indeed the source of the issue, in fact a workaround that fixes the plot is to call
sdata['cell_circles'] = sd.transform(sdata['cell_circles'], to_coordinate_system='global')

before making the plot.
I think that a solution is to:

assign the correct coordinate transformations to the image element returned by the internal datashader functions
ensure that the resolution of the image computed by datashader is computed from the combination of:

figure DPI
figure size
eventually the range given by get_extent()
and not by the min/max computed from the original data. Probably this is already the case in the implementation, but better to double check.


MINOR: KafkaConfig should not expose internal config when queried for non-internal values

Side fix: Print the topic/broker/broker-loggers configurations in alphabetical/sorted order. This will be useful when the user supplies the '--all' flag.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@showuon @chia7712
Please take a look when you get a chance.

Test failures are unrelated to this patch.

@showuon @mimaison
ping for the review!

@kamalcph , could you help rebase with latest trunk to trigger the CI build again? Thanks.

@showuon
Rebased with the trunk. Thanks for reviewing it!

@ijuma @showuon
Can you merge this patch? Rebased with the trunk.

@showuon Are you going to merge this one?

@ijuma @showuon
can you please merge the patch?


eBPF_hub: fix header for docs

sync with eunomia-bpf examples
fix the include headers for auto generate docs website

Fix #372


Commercial Use about learned model

Shall I use this product as per Apache 2 license including learned model such as .tflite model ?

Hi @kuwarabbit, Could you please share your use case with complete details. Thanks!

Sorry for not explaining enough.
When we use this product with our SDK product for the purpose of 3d or 2d tracking, do we need to consider license for training data(may not be contained this repo) and learned model?

Hi @name-era, This https://github.com/google/mediapipe/issues/1290#issuecomment-727150276 will answer your query better.  Thanks!


Fix memory leak bug caused by query dictionary variable params

When invoking queries where one or more of the variable parameters is a dictionary, this causes every repeat execution of the query to add another operation result to the operation store after every completed ExecuteAsync request. This is caused by the fact that the call to GetOrAddStoredOperation in OperationStore performs a GetOrAdd on the ConcurrentDictionary<OperationRequest, IStoredOperation> _result, the .Equals equality comparison within the OperationRequest object that acts as the key and thus invoked by GetOrAdd, when comparing the content of variables will always return false with a dictionary variable because it treats it as an IEnumerable and ComparisonHelper.SequenceEqual only works for lists and not dictionaries so therefore returns false. The result is that every invocation adds another item to _results which will keep growing indefinitely, triggering a memory leak as well as higher and higher cpu usage (every time more items in _results needs to be compared to).
Co-Authored-By: davidbrazel2<EMAIL_ADDRESS>Summary of the changes (Less than 80 chars)

Adds a check for the contents of a dictionary variable

Closes #5382

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@declan-bourke can you sign the CLA please.

I will review this tonight.

Will this be backported to v12?

We are not far off the V13 release. So, I think it's not worth it. But If you want to have a go at it you can create a PR for the main-version-12 branch and  I can create a new version. Up for it?


& selector not supporting BEM style naming convention

Hello,
I have recently updated the packages and postCss. I am using the plugin with Webpack as before.
before my css was:
.classA {
    &__element {
        // css block code
    }
}

Before, this would cover classA__element as a class name. Now it seems that this is not possible.
Is there a different way I can implement this?
Thanks in advance for any help.

Not from what I know. I has never been possible per specification :(
Try something like precss maybe.


GITHUB#11728: Improve code clarity for OrdinalMap

Description
#11728

Added comments to OrdinalMap to hopefully make the code and map construction algorithm clearer
Changed some variable names
Replaced firstSegmentBits with firstSegmentHasAllTerms boolean, the latter makes the code a bit more clear

This class is indeed a bit subtle, but most of the comments that you are suggesting seem to be paraphrasing what the code is doing and I'm not sure that they would actually help someone who would try to get more familiar with this class.

That's fair, I think I also was getting a little too specific with the comments in some places. I'll go through and see if I can make the comments more general than they currently are.

Removed some of the comments that were maybe just paraphrasing the code too much. I also renamed some variables to what I think are more clear names. Hopefully the comments/variable names make more sense now?

Bumping this PR because I think it’s a good change in its current form. The increased expressiveness would be helpful to me if I was using this class.

Hey @mdmarshmallow. There have been some changes in the meantime that introduced many conflicts, so what I did is that I took your main comment that describes the OrdinalMap algorithm and pushed it under your name. Sorry for the delay.

Hi @jpountz, thanks for pushing! I took a look back at the comment and I think it references some variable names changes that were added with some of the code changes that weren't included. I'll make a follow up commit in the next few days to address some of those inconsistencies.

Oops, sorry about that. Thank you!


Add a Page titled "Wallaroo and Long-running data processing and other workflows"

Vid would like a page about long-running data processing.
This should be added to the appendix in a section with that title that contains the following text:

Wallaroo was designed to be a highly efficient and general purpose data processing engine, including event-by-event (stream) processing with microsecond response as well as other longer running tasks such as distributed logfile analysis or model training, and even real-time workflows that do not fit into standard real-time streaming topologies. In order to facilitate and simplify the deployment of such applications, we are building out additional APIs and libraries that will be released over the next few releases of Wallaroo. If you have specific needs or use-cases we encourage you to contact us.

Closed by #1506


fix: updated section configuration for rule 0003

In documentation previously it was saying to use dotnet_diagnostic.GlobalUsingsAnalyzer0003.severity = error but it was not working due to: https://github.com/bjorndaniel/GlobalUsingsAnalyzer/blob/main/src/GlobalUsingsAnalyzer/GlobalUsingsAnalyzer.cs#L55
I updated it to match the diagnostic convention/format.

Ohh, thank you very much! I hadn't even noticed that bug :)


Weird bug with spinners in viewpager fragments

I am having a very weird bug, which only happens if I use the slim LayoutManager for my recyclerview.
I have a viewpager which loads fragments with recyclerviews, each having a spinner.
When i change the fragment then get back to the same one, the spinners don't change their ItemSelected when a user selects an item (if I query what was clicked it does show correctly but the view doesn't update to reflect the new value in the spinner).
This happens only in viewpagers and in that very specific scenario, I have no idea how to report the bug.
It could be that it'll be solved by v5, but i've been holding the project release for a while and I have a deadline :\ any idea about the deadline of v5 release?

workaround from #175 fixed it now, but it's very ugly though.


fix SetupConsoleLogger which is a noop

When App.Before is called the options are not parsed yet, use Command.Before instead.

Codecov Report
Base: 40.59% // Head: 40.55% // Decreases project coverage by -0.05% :warning:

Coverage data is based on head (dbb0260) compared to base (a389287).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1564      +/-   ##
==========================================
- Coverage   40.59%   40.55%   -0.05%
==========================================
  Files         166      166
  Lines       11072    11072
==========================================
- Hits         4495     4490       -5
- Misses       6287     6292       +5
  Partials      290      290

Impacted Files
Coverage Δ

server/logging/log.go
48.83% <0.00%> (-5.82%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


proposal: runtime: add AddCleanup and deprecate SetFinalizer

Background
Go provides one function for object finalization in the form of runtime.SetFinalizer. Finalizers are notoriously hard to use, and the documentation of runtime.SetFinalizer describes all the caveats with a lot of detail. For instance:

SetFinalizer must always refer to the first word of an allocation. This means programmers must be aware of what an 'allocation' is whereas that distinction isn't generally exposed in the language.
There cannot be more than one finalizer on any object.
Objects with finalizers that are involved in any reference cycle will silently fail to be freed and the finalizer will never run.
Objects with finalizers require at least two GC cycles to be freed.

The last two of these caveats boil down to the fact that runtime.SetFinalizer allows object resurrection.
Proposal
I propose adding the following API to the runtime package as a replacement for SetFinalizer. I also propose officially deprecating runtime.SetFinalizer.
// AddCleanup attaches a cleanup function to ptr, which is executed some time
// after ptr is no longer reachable in a separate goroutine. The cleanup function is
// executed with the argument cleanupValue.
//
// cleanupValue must not be equal to ptr and this function will panic if it is.
// If ptr is reachable from cleanup or cleanupValue, ptr will never be collected
// and the cleanup will never run.
//
// The cleanup function is not guaranteed to run in general, and also not guaranteed
// to run before program exit.
//
// A single goroutine runs all cleanup functions for a program, sequentially. If a cleanup
// function must run for a long time, it should do so by starting a new goroutine.
func AddCleanup[T, S any](ptr *T, cleanup func(S), cleanupValue S) Cleanup

// Cleanup is a handle to a cleanup function for a specific object.
type Cleanup struct { ... }

// Stop cancels the cleanup function. Stop will have no effect if the cleanup function
// has already been queued for execution once the object becomes unreachable. To
// guarantee that Stop removes the cleanup function, the caller must ensure that the
// pointer that was passed to AddCleanup is reachable across the call to Stop.
func (c Cleanup) Stop() { ... }

AddCleanup resolves many of the problems with SetFinalizer.
It forbids objects from being resurrected, resulting in prompt cleanup, as well as allowing cycles of objects to be cleaned up. Its definition also allows attaching cleanup functions to objects the caller does not own, and possibly attaching multiple cleanup functions to a single object.
However, it is still fundamentally a finalization mechanism, so to avoid restricting the GC implementation, it does not guarantee that the cleanup function will ever run.
Similar to finalizers' restriction on the object not being reachable from the finalizer function, ptr must not be reachable from the value passed to the cleanup function, or from the cleanup function. Usually this results in a memory leak, but the common case of accidentally passing ptr as s out of convenience can be easily caught.
In terms of interactions with finalizers, the cleanup function will always run the first time the value pointed to by ptr becomes unreachable. That is, if an object has both a cleanup function and a finalizer, the cleanup function is guaranteed to run before the finalizer. In other words, the cleanup function does not track object resurrection and will not run again if the finalizer does resurrect the object.
Design discussion
Avoiding allocations in the implementation of AddCleanup
AddCleanup needs somewhere to store cleanupValue until cleanup is ready to be called. Naively, it could just put that value in an any variable somewhere, but this would result in an unnecessary additional allocation.
In the actual implementation, a cleanup will be represented as a runtime "special," an off-heap manually-managed linked-list node data structure whose individual fields are sometimes explicitly inspected by the GC as roots, depending on the "special" type (for example, a finalizer special treats the finalizer function as a root).
Since each "special" is already specially (ha) treated by the GC, we can play some interesting tricks. For example, we could type-specialize specials and store cleanupValue directly in the "special." As long as we retain the type information for cleanupValue, we can get the GC to scan it directly in the special. But this is quite complex.
To begin with, I propose just specializing for word-sized cleanup values. If the cleanup value fits in a pointer-word, we store that directly in the special, and otherwise fall back on the equivalent of an any. This would cover many use-cases. For example, cleanup values that are already heap-allocated pointers wouldn't require an additional allocation. Also, simple cases like passing off a file descriptor to a cleanup function would not create an allocation.
Why func(S) and not func()?
The choice to require an explicit parameter to the cleanup function is to reduce the risk of the cleanup function accidentally closing over ptr. It also makes it easier for a caller to avoid allocating a closure for each cleanup.
Why func(S) and not chan S?
 The downside however is that each channel owner needs its own goroutine for this to be composable, or some third party package needs to exist to accumulate all these channels and select over them (likely with reflection). It's much simpler if that package is just the runtime: there's already a system goroutine to handle the finalization queue. While this does mean that the handling of finalization is confined to an implementation detail, that's rarely an issue in practice and having the runtime handle it is more resource-efficient overall.
Why return Cleanup instead of *Cleanup?
While Cleanup is a handle and it's nice to represent that handle's unique identity with an explicit pointer, it also forces an allocation of Cleanup's contents in many cases. By returning a value, we can avoid an additional allocation.
Why not have the type arguments (T and/or S) on Cleanup too?
It's not necessary for the implementation of Cleanup for the type arguments to be available, since the internal representation will not even contain a reference to ptr, cleanup, or cleanupValue directly. It does close the door to obtaining these values from Cleanup in a type-safe way, but that's OK: the caller of AddCleanup can already package those up together if it wants to.

Another possibility:
func AddCleanup[T any](ptr *T, cleanup func(T)) Cleanup

When cleaning up, we pass a (shallow) copy of *T to the cleanup function.
This gets rid of the need to store cleanupValue anywhere. It is effectively the final state of the object.
On the downside, this may get weird if you're putting a cleanup on a type defined in another package, as you might not be able to do much with the argument.

@mknyszek I find it hard from reading the proposed signatures and doc comments to understand what S and cleanupValue are. Could you clarify that a bit? It might also help to get an example of how one would use the new API. For instance, how would one use AddCleanup to replace the use of SetFinalizer to close a file when it is GCed?
Another question: would AddCleanup replace some or all uses of SetFinalizer in the standard library? Are there instances where it cannot work, or would be undesirable?

In terms of interactions with finalizers, the cleanup function will always run the first time the value pointed to by ptr becomes unreachable. That is, if an object has both a cleanup function and a finalizer, the cleanup function is guaranteed to run before the finalizer. In other words, the cleanup function does not track object resurrection and will not run again if the finalizer does resurrect the object.

What's the reasoning here? ISTM that you can not assume that ptr is unreachable when the cleanup runs. e.g. in the case of go4.org/intern (yes, I know that this particular case will be obsolete by #62483, but just for illustration) that would mean you might get different Values for the same interned string. This seems to combine particularly badly with the idea that you can attach cleanups to values you don't own.
If this was done the other way around - cleanups run after finalizers and only if ptr did not get resurrected - you could rely on ptr being unreachable after the cleanup. And if there are no finalizers, ISTM that everything could work the same. So you'd get better invariants now at no cost for The Bright Future of no Finalizers™.
Or is there something (perhaps in the implementation of the runtime) that I'm unaware of?

When cleaning up, we pass a (shallow) copy of *T to the cleanup function.

Unfortunately, I think that requires treating the contents of ptr as a root, so you can no longer reclaim ptr if it participates in a cycle.

@mknyszek I find it hard from reading the proposed signatures and doc comments to understand what S and cleanupValue are. Could you clarify that a bit? It might also help to get an example of how one would use the new API.

The idea behind this API is to decouple cleanup from the object being freed, so S and cleanupValue represent that decoupling. I can understand that at first glance it seems odd, but this is really the way to avoid a lot of the footguns. Most of the time, finalizers (and cleanup functions) are necessary for cleaning up things that the GC is unaware of, like file descriptors, memory passed from C, etc. You pass that to the cleanup function, not the object itself.

For instance, how would one use AddCleanup to replace the use of SetFinalizer to close a file when it is GCed?

f, _ := Open(...)
runtime.AddCleanup(f, func(fd uintptr) { syscall.Close(fd) }, f.Fd())

I'm taking a lot of liberties in this snippet, but that would be the general idea. I can update the proposal later.

Unfortunately, I think that requires treating the contents of ptr as a root, so you can no longer reclaim ptr if it participates in a cycle.

That's a good point.

Most of the time, finalizers (and cleanup functions) are necessary for cleaning up things that the GC is unaware of, like file descriptors, memory passed from C, etc. You pass that to the cleanup function, not the object itself.

What about this case?
type T struct {
    buf unsafe.Pointer // pointer to some memory allocated with C.malloc
    ...
}

During the lifetime of a T, we may change buf several times, each time with a free/malloc pair.
When the T goes dead, we want to free the last value that was in buf.
How do I write a cleanup for that? I think I would need to Stop/AddCleanup each time I updated buf. I don't see a way to set a cleanup when T is allocated that does the right thing. Unless buf is indirect somehow.
But maybe that's the intention, that you have to Stop/AddCleanup each time?

@Merovius I think your point about interacting with existing objects using finalizers is interesting. AFAIK there's nothing in the implementation preventing the semantics you propose. I'll have to give this some more thought.

Most of the time, finalizers (and cleanup functions) are necessary for cleaning up things that the GC is unaware of, like file descriptors, memory passed from C, etc. You pass that to the cleanup function, not the object itself.

What about this case?
type T struct {
    buf unsafe.Pointer // pointer to some memory allocated with C.malloc
    ...
}

During the lifetime of a T, we may change buf several times, each time with a free/malloc pair. When the T goes dead, we want to free the last value that was in buf.
How do I write a cleanup for that? I think I would need to Stop/AddCleanup each time I updated buf. I don't see a way to set a cleanup when T is allocated that does the right thing. Unless buf is indirect somehow. But maybe that's the intention, that you have to Stop/AddCleanup each time?

Ah, that's interesting. Yeah, you would need to Stop/AddCleanup each time. I don't see a way around that (unless, like you say, you add an indirection on buf, and pass that to the AddCleanup), and having to do that makes the malloc/free somewhat more expensive compared to what you can do with finalizers.
I'm inclined to say that requiring the indirection isn't that bad. It's going to result in an additional allocation for each T that exists, but that allocation will be bound to the lifetime of T. In other words, it's kinda like extending T by 8 bytes. And I think the fact that you can release T's memory immediately (as opposed to waiting an extra GC cycle) may actually make AddCleanup win out in the long run.

The indirect scheme is basically the same thing you would do with finalizers if, e.g., the T's were in a cycle. You would allocate a child object, point T to it, put buf in the child object, and put a finalizer on the child object.
Having the option to Stop/AddCleanup each time instead of using the indirection technique might be useful.
I'm not sure I'm arguing for or against anything at this point. Just trying to understand.

What about deferCleanup as a name. Defer is already very understandable by Go developers (albeit in a different context). Add doesn't really say anything about when it happens.

Here is a nice (imho) use of AddCleanup where SetFinalizer would not be okay: https://github.com/golang/go/issues/67552#issuecomment-2195479919.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

The SetFinalizer documentation specifies that the function runs in a new go routine, I think this API documentation should also specify that (as long as that is indeed the case).

The SetFinalizer documentation specifies that the function runs in a new go routine, I think this API documentation should also specify that (as long as that is indeed the case).

Indeed. Read sec 3.5 of Destructors, Finalizers, and Synchronization, in which Hans Boehm argues that finalizers must be asychronous, for the rationale.

@perj This is maybe a little pedantic, but it's not quite true that it runs in a new goroutine. :) From the SetFinalizer docs (emphasis mine):

... When the garbage collector finds an unreachable block with an associated finalizer, it clears the association and runs finalizer(obj) in a separate goroutine. ...
...
A single goroutine runs all finalizers for a program, sequentially. If a finalizer must run for a long time, it should do so by starting a new goroutine.

I agree that we should copy this part of the docs to AddCleanup, as I was fully intending for the implementation to reuse this mechanism. I updated the proposal to include this text.
We do have the option here of changing the behavior of cleanups to always start on a new goroutine. It's more user-friendly, but may result in greater resource costs. I do think it's a valid question whether we want to retain the existing sequential behavior or not.
Perhaps one middle-ground is to relax the constraints and mostly reuse the same goroutine, but if a cleanup goroutine blocks, then we start a new one. The only concern with this is that data races between cleanup functions may be much harder to detect if they're not fully asynchronous by default.

@mknyszek If a new goroutine is desired for a finalizer it can always go func, so it might not be a huge issue.

Just to summarize, here are the three choices a described above as well as their pros/cons. There may be more options.
Guaranteed sequential execution of cleanups (What SetFinalizer does, and what is currently proposed.)

Pros:

No chance for data races between cleanups.
Minimal resource overheads (one goroutine only).

Cons:

One cleanup may hold up other cleanups. User must explicitly create a new goroutine.

Cleanups always run in a new goroutine

Pros:

Maximizes chance to detect races between cleanups.
No cleanup may hold up any other cleanup.

Cons:

Creating a new goroutine per cleanup can be expensive if there are many cleanups. Often, the asynchrony is unnecessary.

Cleanups may run in a new goroutine

Pros:

No cleanup may hold up any other cleanup.
Minimal resource overheads (exactly as much asynchrony as you need).

Cons:

Low chance to detect races between cleanups.

SetFinalizer has many footguns but I don't think I've seen many people complain about the fact that one can block others. It seems okay to leave just a single goroutine. I did a tiny bit of wordsmithing in the comment.
Reading the SetFinalizer comment, there is a lot of good advice and caveats that seem to carry over (zero-size allocations, small pointer-free allocations, globals, not using them for flushing buffers, how to use KeepAlive properly, memory model interactions). Let's not hash them out in the proposal process, but the real implementation's doc comment should probably carry them forward.

Have all remaining concerns about this proposal been addressed?
The details are in the top comment under the "Proposal" heading.

I think the only remaining question is whether cleanups should run before or after finalizers when both are present. @Merovius made a case for running cleanups after any attached finalizer completes, so that they can rely on the object they're attached to being truly dead. If there are no finalizers present, only cleanups and/or weak pointers, then the cleanups still get to run immediately and everything is great.
This is different from the semantics proposed for weak pointers, which are to go nil the first time an object becomes unreachable since the weak pointer was created. Meanwhile, cleanups would track object resurrection, but not resurrect objects themselves.
So far, I've been unable to come up with a situation where running cleanups after finalizers would be problematic, but I think there is a case to be made that running cleanups before finalizers would be problematic. But, I suspect cleanups don't have the same problem as weak pointers with respect to tracking resurrection, because there's no way for cleanups to reference the object they're attached to.
So, I guess I'm inclined to just change that one part of the proposal. If anyone has additional thoughts, I'd appreciate them. I'll update the proposal at the top of this issue.

I don't have an opinion, but I want to at least raise another possibility: calling SetFinalizer and AddCleanup on the same object panics.
Both of these functions are touchy in practice, and in the common case of releasing some external resource require careful use of runtime.KeepAlive (for example see all the KeepAlive calls sprinkled around the os and net packages).  Since people can't use them without careful attention to all uses of the object, it's difficult to imagine any case where somebody might want both finalizers and cleanups.

ISTM that such a restriction would make it dangerous to use AddCleanup on objects not "owned" by the caller, because they cannot control whether SetFinalizer has been called on the objects or not.

It's dangerous in any case to use AddCleanup on objects that you don't own.

But the proposal explicitly states

Its definition also allows attaching cleanup functions to objects the caller does not own

and https://github.com/golang/go/issues/67552#issuecomment-2200755798 demonstrates one such use case.

I agree with @dominikh, part of the point of AddCleanup is that it enables adding it to objects you don't own.
Ignoring finalizers for a moment, I don't see a reason why this would be a problem. With finalizers, the chance of object resurrection and catching the object in an inconsistent state is a real problem. But you can't actually reference the object from a cleanup function. You'd have to capture some of its state ahead of time to actually have any meaningful impact on it.
Also, I think it's important that cleanups compose with finalizers, specifically for examples like https://github.com/golang/go/issues/67552#issuecomment-2200755798 to be able to work. There are plenty of existing objects with finalizers; it seems too restrictive to me to prevent objects from having both.

It depends on what the cleanup does.
It's a fair point that adding a cleanup to an object that you don't own is OK as long as the cleanup only affects data that you do own, and that the object doesn't know about.
But if cleanups are used for data that the object does know about, then that data may be modified in ways that the object doesn't expect.  A perhaps-obvious example: if an object has associated memory allocated by C, and uses a cleanup to free that C memory, then if the final use of the object is to call a C function, it is possible for the garbage collector to free the memory while the C function is still using it.  That may sound esoteric, but in fact it happens all the time for people using SWIG.
Today there are objects with finalizers.  But unless there is a reason that people might prefer finalizers to cleanups, we can encourage people to move to cleanups.  I certainly have no objection to deciding how finalizers and cleanups should cooperate.  But I don't see any reason to expect that that will be a real problem for very many people.

I agree completely. Maybe the only thing I'd add to the proposal is that we should explicitly state in the documentation that it's bad form (and likely to be buggy) for a cleanup on an object you don't own to affect that object. That won't prevent misuse, but it's better than nothing.

Moving channel based conversation here.
Upon further reflection one can achieve a channel based approach simply by having the AddCleanup's function do nothing but put the value on a channel and pass it along to a goroutine under user control.

It's not totally clear to me if this allows the following:
let's say that I have a struct with a pointer to the handler of an external resource; am I able to register a cleanup function that (when there are no more references to such struct values) uses the very last struct reference, retrieve the handler and call the Close() method on it to dispose of the external resource ? If it's allowed, is it guaranteed to be executed ?

If it's allowed, is it guaranteed to be executed ?

Neither AddCleanup nor SetFinalizer is guaranteed to execute.

If it's allowed, is it guaranteed to be executed ?

Neither AddCleanup nor SetFinalizer is guaranteed to execute.

Even if I force a call to runtime.GC() ?

Neither AddCleanup nor SetFinalizer is guaranteed to execute.

Even if I force a call to runtime.GC() ?

Yes, even so.  No guarantees.

let's say that I have a struct with a pointer to the handler of an external resource; am I able to register a cleanup function that (when there are no more references to such struct values) uses the very last struct reference, retrieve the handler and call the Close() method on it to dispose of the external resource ?

My understanding of what you wrote and of AddCleanup is that this will not work.  As the proposal above says:

ptr must not be reachable from the value passed to the cleanup function, or from the cleanup function

In other words, if the struct references have cleanups, the cleanup function that you register can't look at any of those struct references.

Sounds like we've converged on cleanups after finalizers because resurrection subtleties are handled much better that way.

Have all remaining concerns about this proposal been addressed?
The details are in the top comment under the "Proposal" heading.

ptr must not be reachable from the value passed to the cleanup function, or from the cleanup function

In other words, if the struct references have cleanups, the cleanup function that you register can't look at any of those struct references.

Just to understand, can it actually be enforced ? if one misbehaves and writes something like the following, what would be the expected behavior ?
var ptr *T
var anything S
disposer := func(_ S) { ptr.Dispose() }
runtime.AddCleanup(ptr, disposer, anything)

@dezzeus It's in the godoc comment from the proposal:

If ptr is reachable from cleanup or arg, ptr will never be collected and the cleanup will never run.

Sorry, my bad; actually I was expecting it, but I was also envisioning other possibilities enforced by either the compiler or the runtime.

It might be possible to implement some sort of checking mode in which we detect whether the pointer is reachable from the cleanup.  But that's not part of this proposal, and I doubt that it would ever be the default behavior.

Not to veer too far off-topic, but we may be able to leverage GODEBUG=gccheckmark=1 mode to create such a checking mode, I think fairly easily. Because that debug mode exists, we have the infrastructure for separate, resettable mark state for each object. In theory, the way this could work is:

At the end of each GC cycle, during the STW, enable checkmarks.
Unlike checkmark mode, do not reset the mark state of the roots.
Iterate over all the cleanup functions in the program, calling runtime.scanobject on just their closure pointers.
Call runtime.gcDrain as checkmark mode does now.
Iterate over all the objects in the program with cleanup functions and check if their checkmark bits are set.

If any are set, report the objects as unreclaimable and exit.

Disable checkmarks, reset checkmark state.

We could also, just in this mode, take a stack trace each time a cleanup function is created to help guide users to the root of the problem. It occurs to me that we could also do something similar for finalizers.
At face value, this is slow, especially since it's during a STW, but I suspect the vast majority of cleanup functions will have a very shallow object graph. Simultaneously, it's just a debugging tool, and slow is better than nothing here. It's also possible I'm missing some subtlety that makes this not quite work.

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group
The details are in the top comment under the "Proposal" heading.

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group
The details are in the top comment under the "Proposal" heading.

Is this planned for Go 1.23?

@mknyszek one thing the proposal doesn't appear to address directly, will a cleanup function attached to either a cgo or syscall returned pointer eventually execute?

No, the call to AddCleanup will fail in such a circumstance, like it does for SetFinalizer. See #70224 which suggests either a separate API for that, or an extension.
In short, AddCleanup works by leveraging existing metadata structures for the heap. For anything off-heap we'd need to define new data structures, and crucially, what we're missing for off-heap things is size information. We can infer it from the type, but that is sometimes insufficient, if C code (or something) is use an arena allocator, for example. I believe that means we would benefit from a separate API.
(We could extend this API to support slices, and we could tell people to do some weird unsafe conversion to a []byte which is sized correctly for the off-heap memory, but that seems less clear than just taking p unsafe.Pointer, len int where p is enforced as off-heap.)

This proposal includes the deprecation of SetFinalizer. We don't want to deprecate SetFinalizer in the same release of Go as the version when AddCleanup is added. Issue #70425 tracks the future deprecation of SetFinalizer and the discussion surrounding it.


ambient workload uid may be reused with StatefulSets

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
While reviewing ambient code, I noticed that currently ambient generates UUID for its workloads like so:
https://github.com/istio/istio/blob/85a5b19061fdd24f9284b188a053237044d17d03/pilot/pkg/serviceregistry/kube/controller/ambientindex.go#L86
This means that pods with with the same name have the same UID.
A scenario that breaks this assumption is StatefulSets, where created pods have stable names.
For example, if some one edits a service account on a StatefulSet, the generated UID will be the same, even though the security properties of the pod has changed.
I'm wondering if this can cause any issues (might this prevent the new pod spec from being propagated to ztunnel?)
cc @kdorosh
Version
current master (85a5b19061fdd24f9284b188a053237044d17d03)

Additional Information
No response
Affected product area

[X] Ambient
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

I don't think it causes issues. The old key was IP which had far more re-use.

I think it can, and the old format can. but only in very contrived situations. but i think we should still solve for this and fix it, especially given how quick and easy the fix is

What is the fix? The UID is not intended or needed to be unique across time?
On Thu, Jul 6, 2023 at 10:54 AM Kevin Dorosh @.***>
wrote:

I think it can, and the old format can. but only in very contrived
situations. but i think we should still solve for this and fix it,
especially given how quick and easy the fix is
—
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/45789#issuecomment-1624094135, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXMSBZMFAERK5CRPRWLXO33U3ANCNFSM6AAAAAAZ43BCH4
.
You are receiving this because you commented.Message ID:
@.***>

we could just use the k8s resource UID + section-name. and possibly choose to append it to something more human-readable that's prefixed

I looked over all the cases ztunnel uses UID in the codebase (there are not many) and none of them look like potential sources of race conditions across request path and istiod communication. So I actually think this is fine (for now, since we don't need it)


Extract time information from the demo?

I am wondering if things like
ROUND_START_DEFAULT_TIME_IN_SECS = 20
FREEZE_DEFAULT_TIME_IN_SECS = 115
BOMB_DEFAULT_TIME_IN_SECS = 40

or tickrate are available in or could be extracted from the demo file directly?

Ah yea, probably this is set in the cvars. I like relying on those much better. Good idea! I'll make the fix


R Notebook log output should have newlines for each cell

Similar to Python based notebooks.

Fixed in https://github.com/orchest/orchest/commit/23379c06f3438cf6b717562f0a088af70da584dc


Update to PF V5

Now that we have the configurations set up and PF has released alpha candidates, we should begin updating user feedback to V5 officially. We should fix any issues that we find from the update.

https://github.com/patternfly/react-user-feedback/pull/60


Emails sent to the super-admins should have the user name instead of "admin"

The "Dear admin" should be replaced by the user name in the email sent to the super-admins. Also, could you format the content in separate lines?
Project details
Name - Project-test-publish-12-17-2022
ID - 30

@CS76 I think addressing as admin makes clear that this mail is for admin purposes and not personal.


Compatibility test

Description
TBD
Steps to Reproduce
Omit
Versions
develop
Additional Information
-----------------Chinese----------------
兼容性测试

对上个版本的兼容
对上个协议版本的兼容

@yangby-cryptape

Since the test team has their own management style, I added those test scenes in their task list.
Close this issue?

Since the test team has their own management style, I added those test scenes in their task list.
Close this issue?

Keep it. we need our own test, too

#223