Added 30 days of code in c

Added many solutions for '30 Days of code' in C, created a new directory for the same.
Created a readme.md linking the solutions to their problem page.
For the issue #2

please add the hacktoberfest-accepted tag , thanks!


⚠ BeyondHD has degraded performance

In 40e1893, BeyondHD ($BHD) experienced degraded performance:

HTTP code: 200
Response time: 1381 ms

Resolved: BeyondHD performance has improved in bbe199b.


Add get_correction_from_cmt to corrections_services.py

Before you submit this PR: make sure to put all operations-related information in a wiki-note, a PR should be about code and is publicly accessible
What is the problem / what does the code in this PR do
Add get_correction_from_cmt, this function would return any correction value, it replace get_elife and serves as a general purpose function for single values
Can you briefly describe how it works?
See https://github.com/XENONnT/corrections/blob/master/CMT/examples/CMT_user_guide.ipynb block [5]
elife_file = ('elife','ONLINE',True)
straxen.get_correction_from_cmt('010126', elife_file)
Can you give a minimal working example (or illustrate with a figure)?
see above
Please include the following if applicable:

Update the docstring(s)
Update the documentation
Tests to check the (new) code is working as desired.
Does it solve one of the open issues on github?

Please make sure that all automated tests have passed before asking for a review (you can save the PR as a draft otherwise).

Thanks a lot for very useful comments @WenzDaniel, I've implemented let me know if you have missed something

Hi @WenzDaniel and @jorana
Thanks for the useful comments


Refactor error handling

We should really refactor error handling and make it cleaner.

:+1:
One of the thing that should be changed in my opinion is returning only first validation error in errors.server.controller.js:
for (var errName in err.errors) {
    if (err.errors[errName].message) message = err.errors[errName].message;
}

In order to display all server-side validation errors this must be changed and I have changed it in my project.

I would also like to agree with this. I have had to change how things are handled so that I get a proper 404 response instead of a 500 when a model is not found. I feel that the default behavior of error handling is too generic.

@HappyTreesDev we're open to any suggestions. If you want to even make small PRs, that would be very helpful and very easy to merge in. If you do, please send them for the 0.4.0 branch.

would anyone like to re-visit this one?
cc @ilanbiala @HappyTreesDev @darko-mijic


What should NoConns be able to do?

"Policy" questions on what the no-connect Signal-type should and should not allow.
The initial implementation from #7 has:

(a) "Strict" single-port, no other connection to anything requirements
(b) Connects to Signals, not Bundles

Questions and proposals:

Should they be allowed to connect non-unity-width ports?

Propose yes. This is part of #33.

Should they be allowed to connect to Bundle valued ports?

Propose yes. This is part of #33.

Should they be allowed in Concat?

Propose yes
I suppose the weird part would be the inference of widths, given the answers above. The most clear, I guess, would be inferring each NoConn as unit-width(?).
This may be a "no for now", just make a Signal instead, especially for non-unit widths.

Should they be allowed in AnonymousBundle?

Propose yes

Should they be Slice-able?

Propose no

Should stuff like the test in #7 work, or fail:

@h.module
class Inner:
  p = h.Port()

@h.module
class Bad:
  # Create two instances of `Inner`
  i1 = Inner()
  i2 = Inner()

  # Connect the first to a `NoConn`
  i1.p = h.NoConn()
  # And then connect the second to the first.
  # Herein lies the "problem"
  i2.p = i1.p

Currently this fails.
The rationale: NoConn as compared to an otherwise unconnected Signal is really just a marker, saying "I intend for this to connect nowhere". Hdl21's port-to-port connection semantics can then override this intent.
I think this should continue to fail.

I agree. Perhaps also create a NoConn that always acts as a single-width, and a NoConns that conveniently expands to connect however many wires as there are to NoConns? There would be ambiguity in some concatenations, but then the user can fallback to the single-width:
:heavy_check_mark:  some_concat = h.Concat(some_sig, h.NoConns(), pwr, gnd, another_bus)
:x: some_concat = h.Concat(some_sig, h.NoConns(), pwr, gnd, h.NoConns()
:heavy_check_mark: some_concat = h.Concat(some_sign, 3 * h.NoConn(), pwr, gnd, h.NoConns())

Agree the Concats are probably the diciest part.
And a very good point - the Signal-multiplication change proposed in #37 would also be a nice play to specify the "width" of NoConns in such concatenations. (Really by just creating several of them.)

I've taken a look at the NoConn problem using the example test:
def test_elab_noconn3():
    """Test bundle-valued noconn"""

    @h.module
    class M2:
        p = h.Diff()

    @h.module
    class M1:
        m = M2()
        m.p = h.NoConn()

    h.elaborate(M1)

    assert len(M1.signals) == 1

The error occurs in PortRefs, with some debugging, I'm noticing that before this ElabPass begins that the Module has an empty Bundle dict. So I'm beginning to think that a Bundle-valued NoConn solution without the rest of the Bundle elaboration plumbing is going to be hacky one.
So, good first step, could be to start by making the Bundles attached to Modules available throughout the elaboration process and then figure out where NoConns feature around that?

The error occurs in PortRefs, with some debugging, I'm noticing that before this ElabPass begins that the Module has an empty Bundle dict.

Not sure I totally follow what you mean here.
Expanding on that example:
import hdl21 as h

@h.module
class M2:
    p = h.Diff()

@h.module
class M1:
    m = M2()
    m.p = h.NoConn()

# Expansion here!
print("M2.bundles:")
print(M2.bundles)
print("M1.bundles:")
print(M1.bundles)

Yields:
M2.bundles:
{'p': BundleInstance(name=p of=Bundle(name=Diff))}
M1.bundles:
{}

Which is right - M2 has a bundle-instance, and M1 does not.
If we do this again after elaborating up to the RESOLVE_PORT_REFS pass, which handles NoConns:
from hdl21.elab.elabpass import ElabPass

h.elaborate(
    M1,
    passes=[
        ElabPass.RUN_GENERATORS,
        ElabPass.ORPHANAGE,
        ElabPass.INSTANCE_BUNDLES,
        ## ElabPass.RESOLVE_PORT_REFS ## This would be next, stop right before it
    ],
)

print("M2.bundles:")
print(M2.bundles)
print("M1.bundles:")
print(M1.bundles)

We get the same thing:
M2.bundles:
{'p': BundleInstance(name=p of=Bundle(name=Diff))}
M1.bundles:
{}

More specifically -
I think the logic to replace a “Bundle-valued NoConn”, such as m.p in that example, would all live in replace_noconn here:
https://github.com/dan-fritchman/Hdl21/blob/09668d735cf692f6deb3de2d1ecd8324ec45db30/hdl21/elab/elaborators/portrefs.py#L260
That would require checking the bundle_ports as well as just ports of the target module mod here:
        # Get the target Module's port-object corresponding to `portref`
        mod = portref.inst._resolved
        port = mod.ports.get(portref.portname, None) ## <- searching `mod.ports` here; also needs to search `bundle_ports`

From there, it looks like the copy_port function knows how to copy Bundle-valued ports. (And if it doesn’t, it’ll need to!)
https://github.com/dan-fritchman/Hdl21/blob/09668d735cf692f6deb3de2d1ecd8324ec45db30/hdl21/elab/elaborators/portrefs.py#L243

Yes, but bundle_ports aren't automatically populated the same way that ports are for modules.

Yes, but bundle_ports aren't automatically populated the same way that ports are for modules.

Sure they are!
Maybe this is a bit of confusion about what makes a Bundle port-visible.
E.g.:
import hdl21 as h

@h.module
class M2a:
    p = h.Diff()

@h.module
class M2b:
    p = h.Diff(port=True)

print(M2a.bundle_ports)
print(M2b.bundle_ports)

Yields:
{}
{'p': BundleInstance(name=p of=Bundle(name=Diff))}

Having port-visibility is an attribute of a BundleInstance. Particularly a boolean-valued one, named port.
This mirrors the difference between the Port and Signal "types" - which is, there really is only one type. All of Port, Input, Output, etc are convenience functions which return Signals, with an appropriate SignalVisibility attribute.
Related: https://github.com/dan-fritchman/Hdl21/issues/39

Should bundle_ports presentation be default (ie. no args required) - given that this is the desired cue that leads to a simple replace_noconn solution?

OK I think we've just been misunderstanding each other a bit here.
6da279e has the changes to enable NoConns to connect to Bundle-valued ports. The "fix" is really all this line:
https://github.com/dan-fritchman/Hdl21/blob/6da279eae510fd598565eb7d956a1f5061683629/hdl21/elab/elaborators/portrefs.py#L265
The rest is testing and the like. If you've got other test cases - let's roll them in!
That change is layered atop some other things I'd done of late on #35, but I think should work stand-alone.

Said change is really only one part of the issue scope here.
Reaching back to the original bullet list:

Should they be allowed to connect non-unity-width ports?

Done. This... already appeared to work actually? This change tests it and succeeds.

Should they be allowed to connect to Bundle valued ports?

Done as of this change

Should they be allowed in Concat?

Intent is "yes", implementation pending

Should they be allowed in AnonymousBundle?

Intent is "yes", implementation pending

Should they be Slice-able?

Intent is "no", and that intent is being met

So of those, there are two "pending":

NoConn in Concat
NoConn in AnonymousBundle

We can make those separate issues, or continue keeping tabs on them here. I'd probably recommend the latter.


Split package definitions by distro

This enables future splitting by distro, which will be required going forward. For example, mariner is now separated since it doesn't use container-selinux.

Superseded by #75


ecosystem blog post: vscode gitops extension

cc @juozasg & @kingdonb
Signed-off-by: Daniel Holbach<EMAIL_ADDRESS>

→ https://deploy-preview-1166--fluxcd.netlify.app/blog/

This looks great to me 👍


Authorization middleware

Card: Middlewares
Feat:

authorization middleware to all endpoints

Tests:

Admin endpoints
Manager endpoints
Healthcheck endpoint

Ao testar no Insomnia/Postman, adicionar um Header 'user-type: admin/manager/employee' de acordo com a rota a testar.


Change orientation asynchronously

I use horizontal orientation for weekly view and vertical for monthly view. I'd like to be able to switch between weekly and monthly view asynchronously. calendarView.orientation = HORIZONTAL works but it takes a couple sec to execute and freezes the main thread.

This is a bug, changing the orientation should not recalculate the days. I will fix this in the coming version.

This is now fixed.


fips: make installations FIPS compliant by default

[ ] documentation is added or updated
[ ] tests are added or updated

Not sure how this doesnt break some test somewhere?

None of our tests broke.  Our test suite doesn't rely on the file this generates.

Shouldn't there be a big heads-up in NEWS and/or CHANGES for this change? See also @beldmit's https://github.com/openssl/technical-policies/pull/69#issuecomment-1623075276.

@mspncp, I'd prefer to add that separately.  This is the minimal immediate time critical fix.

Needing second approval now that the vote has finished.

What would the changes/news entry say?
The fips provider is now installed in a compliant manner by default?

What would the changes/news entry say?

It should talk about the change in default behaviour with truncated hashes and EMS (and the reasons why we're making this breaking change)

Smth like "This is a strict NIST requirement and it is breaking compatibility with old systems that don't support either EMS in TLS 1.2 or TLS 1.3"

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged, thanks for the reviews.


[OAuth] SQL functions are not reassigned to the app owner role

Context
When you create a function from SQL API with an OAuth API key, the oauth_reassign_tables_trigger event trigger should change the ownership of the function to the app owner role, as it does with the tables.
Steps to Reproduce

Request an OAuth token with schemas:c scope
Create a function with the SQL API: CREATE FUNCTION hello_world() RETURNS text AS $$ BEGIN RETURN 'hello world'; END; $$ LANGUAGE PLPGSQL;
Check the owner of the function (from psql: \df+)

Current Result
The owner is a role like carto_role_a7c5fa41caf250d1a2f2646e0f37c6d8
Expected result
The owner is a role like carto_oauth_app_o_ab573e51-6c76-4969-822c-a8df3b9912d7
Additional info
Possibly related to https://github.com/CartoDB/cartodb/issues/15159

How does this affect the Kepler integration? Are we using functions for the Kepler use case?
cc. @jesusbotella

Yes, I have checked and we do. We use a function to generate uuids for our PKs in some tables. Here it is the code: https://github.com/CartoDB/toolkit/blob/d9055b86fa6836b4a23917067b49baee92409567/packages/custom-storage/src/CustomStorage.ts#L47
In the project we rely on @carto/toolkit, which provides a CustomStorage. That's our abstraction on the top of SQL API to manage visualizations and datasets.
In the case of kepler, the namespace is 'keplergl', so we end up having this function: keplergl_create_uuid

After some conversations with @alrocar, it looks like we could have a fix soon, so no need to make a work-around

@esloho After last week deployment & acceptance with kepler, I think we can now close this issue, right?. Feel free to reopen if anything is missing.


[Feature] : Update the mail service for the Contactus page

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description

In this /Contact page cannot responding the mail if there backend url missing and allowing for the backend.

Use Case

simply change to the backend Url it's working for normally.
please assign me.

Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

@sivaprasath2004, you can check out https://github.com/CodeHarborHub/codeharborhub.github.io/pull/3012. The issue seems to be originating from the API rendered by Render. I have deployed my backend using Render, and it appears that the response times are slower, possibly due to delays or waiting periods.

Wait, I want to deploy it on another platform and then check if it's working fine or not.

@Ajay-Dhangar yes onrender can be slow of the deploy it's make some time to response use another platform to deploy


Hide select date section and set to shifts any date ranges

Hi, good job 👍, just what I've been looking for 💡
Is it possible to hide the select date (day) section and set to shifts section any date ranges (without icons):
for example:
1 q, 2 q, March, April, May etc
Long time I'm using this plugin, but not working on 8.5

Hi, good job 👍, just what I've been looking for 💡
Is it possible to hide the select date (day) section and set to shifts section any date ranges (without icons): for example: 1 q, 2 q, March, April, May etc
Long time I'm using this plugin, but not working on 8.5

With the upcoming release you will be able to hide the select day.
Your request of having date ranges with the shift buttons, need a bit more refinement.
I will get back to this.

Thank you, Will wait!!!

Thank you, Will wait!!!


Codecov Report

Merging #6821 (2ae8050) into main (11a193e) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #6821   +/-   ##
=======================================
  Coverage   71.91%   71.92%
=======================================
  Files         314      314
  Lines       10129    10129
  Branches      932      932
=======================================
+ Hits         7284     7285    +1
+ Misses       2845     2844    -1

Impacted Files
Coverage Δ

...n/scala/org/http4s/laws/discipline/arbitrary.scala
86.86% <0.00%> (-0.20%)
:arrow_down:

core/shared/src/main/scala/org/http4s/MimeDB.scala
97.64% <0.00%> (ø)

core/shared/src/main/scala/org/http4s/Uri.scala
92.20% <0.00%> (+0.45%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

We might also want to change this in sbt-typelevel-site and sbt-http4s-org, since the twitter icon in the navbar is configured there.

There's a Typelevel Mastodon account already.  It wouldn't be so hard to add an http4s.  We don't have domain email set up, and I'd like to get out of the antipattern of accounts being<EMAIL_ADDRESS>so I'd say there's a prerequisite project.


Add encoding when opening files in generate_mkdocs.py

Summary
Open files with utf8 encoding when writing files in generate_mkdocs.py.
The following can happen otherwise.
../ruff> python scripts/generate_mkdocs.py
    Finished dev [unoptimized + debuginfo] target(s) in 0.25s
     Running `target\debug\ruff_dev.exe generate-docs`
Traceback (most recent call last):
  File "C:\..\ruff\scripts\generate_mkdocs.py", line 185, in <module>
    main()
  File "C:\..\scripts\generate_mkdocs.py", line 141, in main
    f.write(clean_file_content(file_content, title))
  File "C:\..\AppData\Local\Programs\Python\Python310\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1396-1397: character maps to <undefined>

I could not determine which character was causing the issue, but opening with utf8 encoding fixed it.
Test Plan
Condering the change is small, I simply ran the file and confirmed it worked, but opened to suggestion on more robust testing.

Oops sorry I had reverted my change for testing. I force pushed the missing change.

All good, thanks!


Try to safely encode foreign module paths which can't made relative

This PR lacks a test case. Contributions welcome!

Should be rendered moot since we only allow package.mill files in subfolders now


Gelf output plugin: improved docs and add missing flags

This pull request corrects documentation and adds the missing max_bytes flag (introduced in version 1.3.4 of fluent-plugin-gelf-best).
Additionally, the term "GELF" has been changed to "Gelf" in the code for clarity, as there's no reason to capitalize it.
we need to update the gem to version 1.3.4 as it fixes: https://github.com/Graylog2/graylog2-server/issues/873

There should be information about which Fluentd image supports the max_bytes flag, but I don't know it at the moment.
// Available since ghcr.io/kube-logging/fluentd:v1.16-4.8-full

@bmichalkiewicz most probably it will be 4.10

Thanks for the information :)

@bmichalkiewicz would you mind updating the image to v4.10 once https://github.com/kube-logging/fluentd-images/actions/runs/11032457110 has been built?
this is where the image is configured:
https://github.com/kube-logging/logging-operator/blob/184dbc2312189e8658679a7f0fdfd0f293d8e369/pkg/sdk/logging/api/v1beta1/logging_types.go#L181
https://github.com/kube-logging/fluentd-images/pull/146

the image has already updated in main, started a rebase


[Feature Request] Support error prefixes in # noqa comments

flake8 supports error prefixes in # noqa comments, e.g. # noqa: D4 will block all D4xx errors, where pydocstyle requires exact matches, e.g. # noqa: D400, D401, etc..
I don't have a need for this as I primarily use flake8, but mentioning it as I noticed the discrepancy in implementations. Feel free to close as "won't fix".

Again, I don't expect pydocstyle to support every nuanced behaviour of Flake8 unless Flake8 breaks these things out into libraries that pydocstyle can reuse. And that's not likely to happen for something like this


python garbage collector can trigger in any thread

🐛 Bug
Interactions with Qt objects often need to be done on the GUI thread.  Furthermore, Qt objects backed by opengl require an openGL context that needs to be actively managed among threads (deactivate on one thread, and activated in the new thread it will be operated on).  Unfortunately, deallocations count as interactions, and garbage collection in python can be triggered from any thread.
A potential solution to this is to disable the default python garbage collector, and explicitly run the garbage collector periodically on the GUI thread.

FYI, this is not a theoretical crash.  I have seen this and debugged it enough to understand it, but cannot reproduce it at will.

I'm happy to fix it but will probably need some guidance to make sure I cover all the entry points for napari.  It is likely that every entry point would need this logic.

FYI, this is not a theoretical crash. I have seen this and debugged it enough to understand it, but cannot reproduce it at will.

Can you give any indication on when the crash comes? I.e. is it during "normal usage"? I.e. loading / displaying / manipulating images, or maybe if you use napari for > 1 hr without closing? Or more extreme testing / CI usage?
I wonder if vispy has reported any issues like this when using their Qt backend. I tried poking around their repo but couldn't see any.

A potential solution to this is to disable the default python garbage collector, and explicitly run the garbage collector periodically on the GUI thread.

I certainly don't have any problems with this, but I'm not sure if there are larger implications that @kne42 or @jni might want to comment on.

I'm happy to fix it but will probably need some guidance to make sure I cover all the entry points for napari. It is likely that every entry point would need this logic.

That would be great @ttung! Maybe you could give an example of what fixing one of these would be like, and then maybe I or others can help point you to other places in the repo which need fixes?
Maybe also @tlambert03, @royerloic, @AhmetCanSolak who have more experience around this than I and can weigh in before you start work too

Can you give any indication on when the crash comes? I.e. is it during "normal usage"? I.e. loading / displaying / manipulating images, or maybe if you use napari for > 1 hr without closing? Or more extreme testing / CI usage?

It can happen whenever multiple threads in python exist (if Qt launches multiple threads, it's not a problem).  There are reports of it to pyqt.  I can try to find it in my browser history if you want.

I certainly don't have any problems with this, but I'm not sure if there are larger implications that @kne42 or @jni might want to comment on.

The biggest potential problem is that we don't tune the periodicity of the GC correctly, I believe.  Love to hear others' thoughts.

I'm not sure if I totally understood the claim about openGL context. @ttung would you mind trying to explain again? What is a concise condition for the crash you mentioned?
I have been using multiple threads with QThreadPool and they play well with python garbage collector so far. Also, what is an example for multiple python threads trying to interact with a single Qt application? If you are thinking of plugins I believe we can share a threadpool with plugins.

Sure, one situation is when the garbage collector removes a QObject and calls its destructor in a non GUI thread.  Here's an example report.
I encountered one more situation where a destructor path called QOpenGLContext's makeCurrent, and triggered the fatal at this line. https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/kernel/qopenglcontext.cpp#n799  I'll have to dig through my logs to get that stacktrace.

Here's a partial stacktrace of the second situation:
* thread #28, stop reason = signal SIGABRT
  * frame #0: 0x00007fff6f03f7fa libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff6f0fcbc1 libsystem_pthread.dylib`pthread_kill + 432
    frame #2: 0x00007fff6efc6a1c libsystem_c.dylib`abort + 120
    frame #3: 0x00000001108f3de9 QtCore`qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) + 9
    frame #4: 0x00000001108f5534 QtCore`QMessageLogger::fatal(char const*, ...) const + 202
    frame #5: 0x00000001149e463b QtGui`QOpenGLContext::makeCurrent(QSurface*) + 1499
    frame #6: 0x000000011606f7d6 QtWidgets`QOpenGLWidgetPrivate::reset() + 70
    frame #7: 0x0000000116070b77 QtWidgets`QOpenGLWidget::~QOpenGLWidget() + 39
    frame #8: 0x000000011690f832 QtWidgets.abi3.so`QOpenGLWidgetWrapper::~QOpenGLWidgetWrapper() + 66
    frame #9: 0x0000000103fa23dd libshiboken2.abi3.5.14.dylib`SbkDeallocWrapperCommon(_object*, bool) + 349
    frame #10: 0x00000001001b7af9 Python`subtype_dealloc(self='0x70000ebbd1d8') at typeobject.c:1278:5
    frame #11: 0x0000000100188184 Python`dict_dealloc(mp=0x000000015e1873c0) at dictobject.c:1905:17
    frame #12: 0x00000001001ca25e Python`subtype_clear(self='0x70000ebbd280') at typeobject.c:1123:13
    frame #13: 0x0000000100309574 Python`delete_garbage(collectable=0x000070000ebbd380, old=0x0000000100463e40) at gcmodule.c:761:17
    frame #14: 0x0000000100306d81 Python`collect(generation=2, n_collected=0x000070000ebbd3c8, n_uncollectable=0x000070000ebbd3c0, nofail=0) at gcmodule.c:913:9

Destruction of an QOpenGLWidget calls reset() and that leads to makeCurrent().

In my particular situation, this is because I'm experimenting with dask-distributed to load data (so that I can cancel requests).  That definitely spawns threads.  I don't know if napari uses threads elsewhere, so it's possible that no one else has encountered this issue.
However, napari is moving in the directions of extensibility, it is only logical to assume that people may employ threads in plugins.  I don't think it would make sense to preclude the possibility of threads in napari.

However, napari is moving in the directions of extensibility, it is only logical to assume that people may employ threads in plugins. I don't think it would make sense to preclude the possibility of threads in napari.

Absolutely agree with this - I know there have been other bug reports in our issues around things like this for example #679 that was closed because we couldn't reproduce - and fixing them seems high value

Got it. I'm not sure if this worth to disable python garbage collector. I am hoping that we can come up with ways to extend napari without passing QObjects between python threads. We can possibly share a threadpool with plugins to interact with QObjects. Im looking forward to come up with a fix and hopefully keeping python garbage collector in too.

You don't have to pass the QObjects between python threads for this problem to manifest.
timeline:

GUI thread allocates QObject.
GUI thread dereferences QObject, but for whatever reason, it's not destructed (maybe a reference cycle).
other thread allocates memory, triggers garbage collector.  QObject destructor called, BOOM.

From one of Tony's links about, this contains code to run garbage connection manually using a QTimer in the GUI thread. If you disable GC overall, and let this be the only way GC is run, then presumably it will only happen in the GUI thread:
https://riverbankcomputing.com/pipermail/pyqt/2011-August/030378.html
Above should be 100% fine, garbage will still be collected often enough, yet it does seem pretty invasive to turn off GC.
Some other thoughts are here:
https://stefanoborini.com/pyqt-gotchas/
There are a LOT of tricks and traps with PyQt and interplay between C++, Qt's special memory stuff and Python. The three are just not seamless at all. I wonder if you do everything right, if the GC trick is really needed? Is that sort of a catch-all that allows you to be sloppy?
Some options:

Do the GUI-only GC thing and just see if that's enough.
Learn the subtle usage issues to avoid crashes without the GC change.
Implement the GUI-only GC but have it off by default. Toggle it on with a config flag when debugging, to see if a crash is GC related.

I just encountered a crashed caused by finalizers running in an unexpected thread in ChimeraX.  In our case it happened because a finalizer del() method was trying to free OpenGL resources not in the main thread while ChimeraX does molecule rendering OpenGL only in the main thread.  Our main way of avoid things has been to not use finalizers.  In fact this crash case was a coding error by a third-party extension that did not call a delete method on a ChimeraX graphics Drawing and let the Python garbage collector clean up.  We can't have the application crashing because of simple Python coding mistakes.  So I changed the code to not free the OpenGL resources in the finalizer and instead warn that a code error has failed to delete a graphics object leading to a memory leak.  It is not great because the traceback does not give much of a clue what Python failed to properly clean up.   Another part of our solution is to never make PyQt calls in a finalizer.  But the trouble is developers won't always be aware of this restriction.  We have not resorted to running garbage collection manually as Napari does.  More details here https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/10239

ChimeraX does use the safety check that it is in the main thread before making its OpenGL context current.  That is good for heading off crashes or mysterious errors and instead giving a clear warning.  But the fact that the wrong thread called some thread-unsafe code is still a bug and likely to cause user's some grief, for instance if OpenGL make_current() fails because it is in the wrong thread, then the rendering that it was attempting in the wrong thread won't happen.
I think there is no good solution here.  Threads require a degree of programming care that even a crash-safe language like Python can't always protect you from.

Python in it's documentation clearly samsung that fragile operations (closing file, release problematic resources, etc should not be done in destructors (finalizer is form of destructor) As there is no guarantee when and where it will be called.


ONE PIECE

MORE LIKE THOUSANDS PIECES

I won't set a limit on how many characters it has. I will lower it based on how many high-rated characters it got. That also applies to everything else.

Note that won't mean that media with lower amounts of high-rated characters will me more common.


Fix linter issues

https://github.com/IntegraSDL/pygats/actions/runs/4155712498

closed via 204831b


Two permissions alerts appear upon visit to ipld explorer

Upon my first visit to the ipld explorer, i was greeted by these two — count ’em, two — identical pop-up alerts.

osx chrome 79.0.3945.130

@ericronne I tried to reproduce this but was unable to (tested Chromium 78, 79, 80)
May be specific Chrome version / macOS build.
Does this happen every time?

No it was only on first visit. Loads without any alert now, including in private mode.

Odd. Let's keep it open for now.
If someone else can reproduce, please comment in this issue.

Not relevant since  #60, we may reopen in the future, when windows.ipfs is back.


Docu is disorienting :)

This doesn't work:
          {# @var schema \Spatie\SchemaOrg\Schema #}
          {% set schema = craft.schema %}
          {{ schema
            .person
            .name("Rias Van der Veken")
<EMAIL_ADDRESS>            .company(
              schema.localBusiness
              .name("Marbles")
              .address(schema.postalAddress
                .addressCountry("Belgium")
                .addressLocality("Antwerp")
                .addressRegion("Antwerp")
                .postalCode(2000)
                .streetAddress("IJzerenpoortkaai 3")
              )
            )
          }}

When I add | raw it's fine. Maybe you can update this.

          {# @var schema \Spatie\SchemaOrg\Schema #}
          {% set schema = craft.schema %}
          {{ schema
            .person
            .name("Rias Van der Veken")
<EMAIL_ADDRESS>            .company(
              schema.localBusiness
              .name("Marbles")
              .address(schema.postalAddress
                .addressCountry("Belgium")
                .addressLocality("Antwerp")
                .addressRegion("Antwerp")
                .postalCode(2000)
                .streetAddress("IJzerenpoortkaai 3")
              )
            ) | raw
          }}

And is there a trick to use autocompletion? When I write every property in a own line it does not work.

I've updated the readme to include | raw that was a good point!
Autocompletion only works in PHPStorm with the Symfony plugin installed and activated, are you sure you have all these requirements?

yes, it's all active. schema.foo works fine but when I try it like the format in the readme:
 schema
  .foo
  .bar

the autocomplete does not work.

Finally had time to look into this, seems like it's just a limitation of the twig autocompletion.
So this has full autocompletion:
{{ schema.person.name }} ✅
Only when you keep it on a single line. But if you want to add something else this doesn't autocomplete:
{{ schema.person.name("Rias").em }}l ❌
So what you can do is always start with your cursor from person again:
{{ schema.person.<cursor here>.name("Rias") }} ✅
This will bring up all the properties. Then afterwards you can clean up the the code with new lines.


Removed extra 'be' from en.json, en-GB.json, and core.yaml

Three files contained an extra be, before the word also. I have removed this typo.

Thanks @SeanBarber!  Yay first time contributor 🎉
It's not a problem to include en-GB.json in this PR, but that file will be overwritten when I make a new release of iD.  So somebody will need to fix the en-GB translation on Transifex also (@JamesKingdom?).

I've updated this on transifex. :+1:


Unable to drag out controller dx / dy blocks

Describe the bug
Getting 'tried to start same gesture twice':

reported on forum a few times: https://forum.makecode.com/t/fail-controller-dx-dy-tool-code-link/7299/8, https://forum.makecode.com/t/dx-dy/7335
To Reproduce
Steps to reproduce the behavior:

Go to arcade/live
open project
controller -> try to drag out 'dx' block
See error

Expected behavior
should successfully drag out block

Broke between v1.3.42 and v1.3.44


⚠ PrivateHD has degraded performance

In 7323328, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2360 ms

Resolved: PrivateHD performance has improved in c45ac4a.


Ingress path issue in default generated Chart

The example Helm chart generated via helm create throws this error when the value for ingress is set to true and the rest of the values are left as the default:
[ERROR] templates/: template: test/templates/ingress.yaml:35:21: executing "test/templates/ingress.yaml" at <.path>: can't evaluate field path in type interface {}

This looks to be because the change introduced in #9057 didn't update the corresponding default section generated in values.yaml.
Output of helm version:
version.BuildInfo{Version:"v3.4.2", GitCommit:"23dd3af5e19a02d4f4baa5b2f242645a1a3af629", GitTreeState:"dirty", GoVersion:"go1.15.5"}

Also tested with 3.5.0
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-19T08:38:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4+k3s2", GitCommit:"8f9e5628c1b5f0a673cde6051cea1afb65dcff7f", GitTreeState:"clean", BuildDate:"2020-12-07T21:30:05Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Various (K3s, Kind)

Thank you for report and the fix! This does help the user use ingress with ease in the generated chart. I wonder if there was a reason this was skipped in the first place.

Thank you for report and the fix! This does help the user use ingress with ease in the generated chart. I wonder if there was a reason this was skipped in the first place.


Can not load saved model with S3 path

We have the ability to load save SFrames and SArrays using S3 paths. However we can not load saved model using S3 paths. We get the error: ValueError: Unsupported protocol .
We should support loading model with S3 paths.

Is this a regression from 5.8? or was it always broken?

Is this a regression from 5.8? or was it always broken?

It does not work in 5.8. I believe it worked at some point.
I just put up a PR. It was a simple fix.


Mock supabase for testing

Mockup supabase so the data functions can be properly tested.

This is a duplicate ticket


GH-1949 Fix logic to deal with multiple binder multi-initialization

Fixed logic which was creating an instance of every available binder configuration. This is primarily an issue for
Kafka Streams binder which as a module brings 3 different binder configurations - KTable, KStream, GlobalKTable.
Resolves #1949

LGTM. Merged upstream.


Added REST API tests [**/tasks GET, POST]

Motivation and context

How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[ ] I have added a description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[x] I have updated the license header for each file (see an example below)

# Copyright (C) 2022 Intel Corporation
#
# SPDX-License-Identifier: MIT

@kirill-sizov Could you please look at the tests? I see there are some snyk issues, but I didn't install any 3rdparty components.


[WIP] Add clang-tidy test

This is for development of this approach to running clang-tidy as it is faster to iterate here than on moveit.

This is for development of this approach to running clang-tidy as it is faster to iterate here than on moveit.

Glad to be the MoveIt guinea pig

Closing. We have clang-tidy support in MoveIt2.


allow broader set of characters in file names

cmd.exe is used for creating directories, but it does not seem to be able to encode arbitrary strings in arguments (e.g. double quotes, null characters, etc.). Of course such characters are not necessarily valid use cases, but it is better to let Windows and the underlying file system define what characters are allowed, rather than restricting it on our end (this way we accept all possible characters).
On the other hand, PowerShell supports string literals and arbitrary strings can be escaped. So we should update directory creation logic to use powershell instead: see https://github.com/ansible/ansible/blob/8ef2e6da05333f49988949f973e627b582a27beb/lib/ansible/plugins/shell/powershell.py#L273 for an impl

Now we just have to change the directory creation logic to run in PowerShell instead of cmd.exe, so that we can leverage the PowerShell escape logic. Since PowerShell command go through a layer of base64 encoding, command batching is tricky. Specifically, it requires that users know how many bytes would be added to the encoded command to determine if the batch is full. This should be doable by looking purely at the length of the currently buffered command.


Can not install on mac

It seems like the plugin does not support MacOS?
I tried installing it through NPM and received the following error:
npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"linux","arch":"any"} (current: {"os":"darwin","arch":"x64"}) npm ERR! notsup Valid OS:    linux npm ERR! notsup Valid Arch:  any npm ERR! notsup Actual OS:   darwin npm ERR! notsup Actual Arch: x64

There's "dev" package inside dependencies in package.json, it requires inotify package.

would be appreciated if someone can provide a fix for the issue.

I've published version without 'dev' package, can you try to install it now?

Thanks for fixing it, I got it installed with no issues now.


unable publish the site on IIS

site is working when i run it through visual studio
but i am getting below error every time when i publish it to IIS
An error occurred while starting the application.
.NET Core X64 v<IP_ADDRESS> | Microsoft.AspNetCore.Hosting version 1.1.0-rtm-22752 | Microsoft Windows 6.1.7601 S |

Change the build configuration to "Release"
Update the gulp task to copy .dll in the Release folder instead of Debug
Build the solution.
Publish
Verify the *.dll of modules are being copied to the published folder. For example "Modules\SimplCommerce.Module.ActivityLog\bin"

thanks @thiennn for your assistance
your solution resolved the issue :+1:


fix(cardano): add string array concatenation for blockfrost asset provider

Checklist

[x] JIRA - LW-11789

Proposed solution

images and descriptions for FTs or NFTs can be either strings, arrays of strings, or undefined
in these instances, convert all to either undefined, or as a single concatenated string

Allure Report
allure-report-publisher generated test report!

processReports: ✅ test report for b0ed31a8

passed
failed
skipped
flaky
total
result

Total
32
0
4
0
36
✅


Add loong64 support for seccomp

The LoongArch architecture (LoongArch) is an Instruction Set Architecture (ISA) that has a RISC style.
Documentations:
ISA:
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
ABI:
https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
More docs can be found at:
https://loongson.github.io/LoongArch-Documentation/README-EN.html

@AkihiroSuda any update? 😘

@AkihiroSuda any update? 😘

https://github.com/opencontainers/runtime-spec/pull/1187#discussion_r1135160582

libseccomp v2.6.0 does not appear to be released yet

Alternative:

https://github.com/opencontainers/runtime-spec/pull/1229


[DOCS] Link to existing CLA signatories is not accessible to public

At https://github.com/Islandora/islandora-community/wiki/Contributor-License-Agreements:

Please see the full list on of Contributor License Agreements on file at this link.

That Google Docs link is no longer open to public viewing. Suggest the link might be removed if the information is no longer accessible.

Describe your documentation request.

The link at present is not accessible to the general public. Clicking it leads to a Google Sheet which is restricted to a limited set of users.
If access is not granted, it reads:

You need permission to access this published document.
You are signed in as<EMAIL_ADDRESS>but you don't have permission to access this published document. You may need to Sign in as a different user

Which version of islandora are you using?

n/a

What user roles is this documentation intended for?

Contributors and potential contributors, organisation owners.

What implementations of islandora does this documentation request apply to?

List of contributors is not discoverable.
Any related open or closed issues to this bug report?
Not found.
Screenshots:
Well, okie dokie then!

您好！您的邮件我已收到！谢谢！

I have gotten access to the new version of the CLA spreadsheet from Noah. I need to find time to make a less verbose of the data to share on a public page. While keeping all the raw data from the spreadsheet private to be accessible to some community members.

您好！您的邮件我已收到！谢谢！

Thanks Noah! No rush here, though it may be an obstacle to folks considering whether they can submit a PR or issue (which was my situation when I noticed this).
Btw, Super's email auto-reply which I expect below translates to

Hello! I have received your email! Thank you!


Replaces update_vote with a direct calculation from the database

Fixes #137. The previous update_vote broke severely on deletion. This optimises the queries done in full_calculate (to use a single annotate) and makes update_vote use the inner query of full_calculate. Far less weird, far more working.

The flake8 check here should now be properly placated. Oops

@paltman Can this be merged?


fix: Correct invalid policy for app mesh controller

Description

fixed invalid iam policy for app mesh controller.
https://github.com/terraform-aws-modules/terraform-aws-iam/pull/231#discussion_r856940564

Motivation and Context

Fixed invalid policy

Breaking Changes

none

How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

This PR is included in version 4.22.1 :tada:


Fix typo in article "Protecting DNS Zones/Records"

definition was mis-spelled in a code snippet.

@stevekerrison : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; thanks for this update @stevekerrison.


InterpretApplication failed to join multiple multicast groups

Hi, All,
I am trying to use InterpretApplication to join multiple multicase groups, but failed.
I can join any one of these two multicast groups without problem.
Maybe I misunderstand the command line configurations, please correct me if I am wrong.
I am calling it by:
./InterpretApplication -t xxx.xml -mname A -multicast 224.a.b.c:5000 -mname b -multicast 224.a.b.d:5001
Seems the problem is in src/Application/DecoderConfiguration.h
void setMulticastGroupIP(const std::string & multicastGroupIP)
{
needMulticastFeed();
multicastFeeds_[0].groupIP_ = multicastGroupIP;
}
This one will always set the multicast group to index 0. I guess this should be set to the last one pushed in.
multicastFeeds_.back().groupIP_ = multicastGroupIP;
Same thing applies to other places.

Hmm.. After above fix, from tcp dump, I can see I have packets from both streams. But
QuickFAST::Communication::MulticastReceiver::MulticastFeed::handleReceive is never called.
It just stuck in epoll_wait
(gdb) bt
#0  0x000000320f0e8e63 in epoll_wait () from /lib64/libc.so.6
#1  0x0000000000463124 in boost::asio::detail::epoll_reactor::run ()
#2  0x00000000004638f9 in QuickFAST::Communication::AsioService::run() ()
#3  0x00000000004642af in QuickFAST::Communication::AsioService::runThreads(unsigned long, bool) ()
#4  0x000000000041a89f in QuickFAST::Examples::InterpretApplication::run (this=0x7fffffffe2f0)
But from captured tcpdump, I see traffic coming.
Any idea?
Thanks

Update, seems the problem is that I give multiple multicast feed the same listen address. -mlisten
once I change the listen address to <IP_ADDRESS>, the issue is resolved.


resend previous PR with test fixes

fixed the unstable test case as well as a few test cases that were not reported as failures (noticed some unhandled promise rejections when inspecting the logs) but not executing properly.
original PR: https://github.com/microsoft/azuredatastudio/pull/19897

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 7 (85.71%)  changed or added relevant lines in 1 file are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.2%) to 42.338%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/sql-database-projects/src/models/project.ts
6
7
85.71%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
28337

Relevant Lines:
62439

💛  - Coveralls


[FIX]: Update the Tailwind Configuration...

Fixes Issue
RESOLVES #48

Proposed Changes

Checklist (Check all applicable boxes)

[x] My code adheres to the project's coding style.
[ ] My changes require updates to the project's documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests have passed successfully.
[ ] This PR does not contain any plagiarized content.
[ ] The title of my pull request provides a brief description of the requested changes.

[ ] I am contributing independently.
[ ] I am contributing for Hacktoberfest 2023.

Potential Impact on Existing Code

Screenshots

Reviewer Notes

@Petsamuel Thankyou for your contribution

Looking forward to working more with you...


Adds GObject reference to DBus sample

@knuxbbs : Thank you for your pull request. You are right the project references are incorrect. Actually there only needs to be a reference towards Gio for the DBus sample to work. If you fix this I'm happy to merge.


unable to load the mod.

MC 1.18.2 Forge: 40.1.76 and Latest. Mod: 1.2.1

Nothing in the log

Update. This is caused by the latest update from Project MMO and it is a re write

Correct.  pmmo 1.18.2-4.0.0 includes the NBT features of this mod, so this is not necessary anymore.

that is great to hear. Thanks for letting me know about this


Graphing-Calculator-stati30241

My artwork is a graphing calculator with which you can graph many different types of curves. Not only can you graph functions, but also implicit curves, which are much harder to graph. I put some examples of functions in the code, but you can create your own and it will graph it. You can also change the window in which the curve is graphed, and the resolution at which the graph gets drawn. The drawing of the curve is done using the marching squares algorithm, which a very interesting algorithm.
I had plenty of fun coding this. I had implemented marching squares once before in C++, but I had little experience in javascript, and none with Blot. It took me a while and a dozen google searches, but I got it working eventually.

I like the idea, it's a bit of a tech demo at the moment! Could you make a proper composition using this?

Can you be more specific as in what you mean by a proper composition? Would graphing something like the batman equation with my calculator be enough?

Check out this video to get a sense of using equations to make something really artistic.
https://www.youtube.com/watch?v=8--5LwHRhjk
Also, you'll also need to update this to the new toolkit. It is described in the editor toolkit on the editor page.
https://blot.hackclub.com/editor
We've been in beta and incorporated the feedback into the version that will go public very soon. Would love your feedback after using both. Let me know if you have any questions!
Going to close this for housekeeping but looking forward to your updated submission.
I think you're almost there you have a great technique in hand!


Support for multi index baseline calculations

TODO

add tests for partial result sets e.g. 1 age bracket empty
test redaction


Can't use scala.html as file extension for selecting Twirl templates

It is not possible to use scala.html as file extension for selecting Twirl template. html does work but will also select plain HTML files.

@hseeberger do we need this for 2.0.0?

Don't think so.


Update colors of images to fall within WCAG guidelines

I've found the following images which need to also be updated to a contrast ratio of 7:1 or above:

codec_history_timeline.png
h264_bitstream_macro_diagram.png
nal_units.png

Since I already did issue #130 I have the colors and templates set up so I can fix this as well. It might take a little longer as I need to find time over the next week.

I'd be happy @curtisbarnard thank you so much :)


Instrumentation should be included in file manager

As well as duration of recording, and some measure of how much has been transcribed

While I'm at it, should get the draggable table as well, like in recordings and the collections

All implemented.


Replace deprecated Assert.assertThat(...) with MatcherAssert.assertTh…

…at(...)
Motivation:
junit deprecated Assert.assertThat(...)
Modifications:
Use MatcherAssert.assertThat(...) as replacement for deprecated method
Result:
Less deprecation warnings

See https://github.com/junit-team/junit4/blob/HEAD/doc/ReleaseNotes4.13.md#pull-request-1150-deprecate-assertassertthat

@netty-bot test this please


[iOS] App does not correctly render RNTester borders, backgrounds, and shadow  examples

Description
The RNTester  examples for border, Old arch and New arch also does not seem to correctly draw borders when a border-radius is set, and draws the border as if the radii is not present.
Table below represents the desired behavior, that is happening for Android, and how iOS renders the same scenario for the Old Arch and the New Arch

Android (✅)
Old Architecture (❌)
New Architecture (❌)

Steps to reproduce

Run RNTester
Scroll down to Image
Scroll down until Box Shadow is visible

To disable the New Architecture on iOS, you can also add this to the AppDelgate:
- (BOOL)newArchEnabled {
  return NO;
}

React Native Version
0.76
Affected Platforms
Runtime - iOS
Areas
Fabric - The New Renderer
Output of npx react-native info
n/a

Stacktrace or Logs
n/a

Reproducer
https://github.com/facebook/react-native/packages/rn-tester
Screenshots and Videos
No response

Hey, I can check this out.

IIRC @joevilches and @jorge-cab may have fixed some of these?

Yes, this can be closed.


Chat responses with "code format" in Markdown makes the result of the chat be inconsistent

VS Code Version: 1.90.0
OS Version: macOS Sonoma 14.4.1

Steps to Reproduce:

Ask the chat to create the content of a README.md with instructions for running a command like "npm install"
That's it. The response is inconsistent because it will start with the right content generated but when trying to close the formatted code it makes the formatted content visible. (It looks like copilot is also using markdown for responses.

Take a look of the screenshot attached and check how it renders the content of the generated Markdown instead of sharing the code after "npm install"

Update: I tested with ChatGPT and the same issue happens. I need to ask the chats not to use ```bash or simmilar blocks in markdown code responses

https://github.com/microsoft/vscode-copilot-release/issues/793


[CSS] Select options are closed on hover when used in a popin in Firefox 37

Current behaviour
On Firefox 37, Select options are closed on a mouse hover when used in a Popin.
I use 100% pure focus css.
The list is working when :

I disable the "transform" attribute in the slideInRight KeyFrame animation.
I disable the overflow-y

With newer version of Firefox the select options are working.
Web Resources found with the same prob :
https://css-tricks.com/forums/topic/options-disappearing-on-hover-in-firefox/
http://stackoverflow.com/questions/13163613/select-tag-doesnt-work-properly-when-container-has-css3-transform-in-firefox
https://bugzilla.mozilla.org/show_bug.cgi?id=664707
Firefox 37 Win32 Install  : https://ftp.mozilla.org/pub/firefox/releases/37.0/win32/fr/Firefox Setup 37.0.exe
Expected behaviour
Fix the focus-components CSS or add a hack to firefox 37 to disable the animation:
Example css hack :
/* Firefox 37 Only */
@supports (-moz-appearance:none) and (display:contents)
   and (not (ruby-position:over)) {
      .selector { property:value; }
}

Or <html>’s conditional classes (http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/)
Or modernizer ...
Versions
Focus-core: 0.13.0
Focus-components: 0.13.0

@durandx Thanks for your issue.
We have a few browser specific issue.
It will not be in the 0.15 release but in the next.
Thanks

@durandx Can you provide us a screen capture (if possible gif animated) so we can visualize the problem ?

Here is the fix to disable animation using CSS hack :
/* Disable opening animation for Firefox 37 Only  */
@supports (-moz-appearance:none) and (display:contents)
   and (not (ruby-position:over)) {

   [data-animation].slideInRight {
        animation-name: none;
   }
}


Missing thumbnails in Newspaper

Hello Mauricio
Well done, we are getting very close.
We've just noticed that some thumbnails in Newspaper category are missing eg.

It seems to be due to the source data pointing images to the wrong location. eg.
https://files02.sl.nsw.gov.au/fotoweb/thumbnails/300_300/4494/4494550 (2).jpg
If we strip out the %20(2):
https://files02.sl.nsw.gov.au/fotoweb/thumbnails/300_300/4494/4494550.jpg
the image works.
Is it possible to do a hacky replace('%20(2)', '') on the frontend so we can show these images?
Thanks!

the problem was that those images were not processed and in some cases the same image points to different files... if i recall correctly, the assumptions i had when i began image processing (the uniqueness of file_key and access_pid in the dataset i received) i came up with a naming convention that produced collisions like these (i used the access_pid for the name)... this means that to fix these 24 or so images (plus the few others in other categories) i would need to rename 1.2 million files 😬
i have a list of 589 total images affected by this... considering this represents 0.05% of the total, i decided to punt on this issue
i really wanted to fix it but just the renaming alone and pushing to S3 is a significant effort... it was my mistake for not double checking the assumptions... i am glad that it's such a small set, though...
what do you think? i can explain further the problem involved if you're interested

Hey thanks for the explanation. Understand that renaming 1.2 million files is not feasible!
This has actually surfaced an issue with the current data - not all image links work in the new collection API eg:
https://files02.sl.nsw.gov.au/fotoweb/thumbnails/300_300/4494/44945522 (2).jpg
which comes from

I'll chat with the collection team to see if that can be fixed up.


Cannot run Launch Files on Turtlebot4 Lite

Please provide the following information:

OS: Ubuntu 20.04
ROS Distro: Galactic
Built from source or installed: Installed
Package version: "sudo apt install ros-galactic-desktop" is how I installed ROS2

Expected behaviour
Pressing Button1 on the Create3 produces a message in the terminal that says "Button 1 Pressed!" As per this link here: https://turtlebot.github.io/turtlebot4-user-manual/tutorials/first_node_python.html
Actual behaviour
No message appears upon pressing the button. Pressing CTRL+C to halt the command yields the error message attached in the image.
To Reproduce
Provide the steps to reproduce:

Power on the Turtlebot4 (raspberry pi was previously set up to connect to a 5GHz network via wifi.sh)
Go to :8080 and connect the Create3 to a 2.4GHz network
Follow https://turtlebot.github.io/turtlebot4-user-manual/tutorials/first_node_python.html until "Test Create3 Button1 "
Run "ros2 run turtlebot4_python_tutorials turtlebot4_first_python_node"
Press Button 1 on the Create3

Other notes
I am currently attempting to follow the guide for the Turtlebot 4 lite. Specifically the "Creating your first node (Python)" section: https://turtlebot.github.io/turtlebot4-user-manual/tutorials/first_node_python.html. I get to the point where I need to run "ros2 run turtlebot4_python_tutorials turtlebot4_first_python_node." However, nothing happens when I press the first button on the Create3. Instead, when I CTRL+C out of the command, I get the error attached. I have connected the Raspberry Pi to a 5GHz network (wifi.sh) and the Create3 to a 2.4 GHz network. Please let me know how I can resolve this, Thanks!

@rohanchandra-cpe Can you call ros2 topic list and paste the output here?

Sure thing. The first image is from my normal Ubuntu environment, and the second image was taken after ssh'ing into the raspberry pi. Should I be doing all of my development inside the Raspberry Pi?

@rohanchandra-cpe It looks like there may be some networking issues going on.
Can you confirm that the Create 3 is connected to Wi-Fi by going to the webserver and checking the "Connect" tab? It should display the IP address if connected like this:

If there is no IP address, try connecting the Create 3 again by following these instructions.
It also looks like your PC cannot see the RPi topics. Can you make sure you are using the same ROS_DOMAIN_ID on both, and call ros2 multicast receive on your PC, followed by ros2 multicast send on the RPi to check that multicast packets aren't being blocked by your network?
Regarding development, you should be able to run the tutorial python node on either your PC or the RPi once all of the nodes can communicate with each other properly.

Ok, I ran the tests you wanted me to above:

An IP address does appear, so it looks like my Create 3 is connected
rosdomainids.png shows the result of searching for the ros domain ids. RPI on left, PC on right
the next image shows what happens when I did a ros2 multicast receive on my PC, followed by a ros2 multicast send on the RPI (RPI left, PC right). Nothing happened for about 15 seconds after I did the send command, so I did a CTRL+C on the right and I get that error message.

@rohanchandra-cpe Are you running the robot on a university or corporate network? It's possible that your network blocks multicast packets over Wi-Fi which is used for discovery.
If your network is blocking multicast packets, I would recommend following these instructions to configure your robot to use the FastDDS discovery server.

I am on my home network. We have a 5.0Ghz network and 2.4Ghz network. I have connected the former to the Raspberry Pi and the latter to the Create 3. According to the WiFi that I used to set up the RPi (wifi.sh), it should support multicast (image below).

Your Wi-Fi interface will support multicast, but your router may still block those packets. You can try going to your router gateway and looking for any multicast settings.

Ok, I'm going to try following the FastDDS instructions and see if that makes a difference. I'll let you know. Thanks!

The FastDDS instructions are not working for me. I get up to the point where I need to run
sudo systemctl daemon-reload
sudo systemctl enable ip_route.service
sudo systemctl start ip_route.service
And I get the error below.

I am running WSL <IP_ADDRESS>.

@rohanchandra-cpe Instead of running the ip_route service, you can manually add the ip route by calling sudo ip route add <IP_ADDRESS>/24 via xxx.xxx.xxx.xxx, replacing the x's with your RPi IP address. You can add this line to your ~/.bashrc file to have it run every time a new terminal is opened.

That did not work either.

Is there any other information I can give you to help resolve this error?

Also, I already have that exact line you suggested I run in /usr/local/sbin/ip_route.sh on the remote PC.

@rohanchandra-cpe Can you paste the output of ip a?

There appears to be some sensitive information in that output. Is there anything specifically you want to see?

Your Wi-Fi interface. You may need to call something like sudo ip route add <IP_ADDRESS>/24 via <IP_ADDRESS> dev wlan0, replacing wlan0 with your interface name.

I am able to ping that IP address. I also did a ros2 daemon stop before calling ros2 topic list. However, nothing has appeared in the ros2 topic list output in neither the RPi nor my remote PC.

By the way, I do not see an IP address in the online portal for the Create 3. Is this an issue, or to be expected from a FastDDS setup?

The systemctl status is showing a time jump from when the services were started. When you call date on your robot, does it display the correct time and date?

Hey, sorry for the delay @roni-kreinin . Here are the screenshots you asked for.
date appears to show the correct time and date:

And here is htop on the robot:

I did everything you asked for. The screenshot is from the second Rpi terminal you asked me to make. It looks like I got all the topics at first, but then with multiple "ros2 topic list" calls it went away

@rohanchandra-cpe There is likely some configuration that is missing, though I am not seeing anything wrong. Would you be interested in updating to Humble? There is a new setup tool that takes care of all this configuration automatically.
See https://turtlebot.github.io/turtlebot4-user-manual/setup/discovery_server.html#robot

@rohanchandra-cpe Did you update the RPi4 to Ubuntu 22.04 manually? Or did you use a humble image from http://download.ros.org/downloads/turtlebot4/?

Can you try to follow https://turtlebot.github.io/turtlebot4-user-manual/setup/basic.html#install-latest-raspberry-pi-image to install the official humble image?

Will I need to ssh into the rpi and do this, because if so, I currently cannot ssh into it. The old IP address I used to ssh to does not work anymore. And if I try to ping it, I just get "Destination Host Unreachable"

No, you will have to remove the SD card from the RPi and flash it with a new image. Note that this will overwrite all data on the SD card, so save any changes you have made before doing so.

Ok, I'll do that and let you know how it goes. Thanks!

It said there wasn't enough space on the microsd for the pi. I noticed a lot of these files above that all have the same date (3/20/23), which is when I did the manual upgrade. Can I safely delete these?

Where are you seeing this error?

Ah yes, sorry. I do

Is this running on a VM?

This is what I see on the Powershell: The D: is my SD Card

I'm not too familiar with WSL but you can try following a tutorial like this to mount the SD card. https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk

Run the suggested ssh-keygen command in the warning message, then try to ssh again.

The top window is what happened after I finished running the setup tool. I think the RPI rebooted twice, but that top terminal has not changed at all. The bottom terminal shows what happened after I tried calling "ros2 topic echo /ip"

The ssh session will freeze because the RPi has changed networks. You can close that terminal.

Ok, I was able to ssh into it. What should I do from here?

Seems to be missing the Create 3 topics. Did you update the Create3 to the latest Humble firmware? https://iroboteducation.github.io/create3_docs/releases/h_1_1/

I think so

Just one

I followed the above link up until User PC (I have not done the User PC steps yet). This is what I see when I call "ros2 topic list"

I started the User PC config, I got this error

Some more testing I did (ip route did have the additional ip address)

Also @roni-kreinin I selected the defaults for the Discovery Server IP address and port

The ros2 topic list on the RPi looks correct.
I think WSL does not use systemd so the ip_route service won't work. You will have to add the sudo ip route add ... command to your ~/.bashrc file to have it executed every time you open a terminal. If ip route is showing the route then you should be able to ping the Create 3 from your PC by calling ping <IP_ADDRESS>.
If you are able to ping then you can check if the ros2 topics are showing up by calling
ros2 daemon stop; ros2 daemon start
ros2 topic list

Ok, adding the stuff at the end did work. This is now what I see when I do "ip route"

But I cannot ping <IP_ADDRESS>

Does your Wi-fi interface show up in WSL?

How would I check that?

@roni-kreinin Is this what I would need to check to see if my wi-fi interface is in WSL?

You might need to do something like this to get WSL on the same network as your Windows PC. Or you can try running a VM instead.

Honestly, I think at this point a Linux VM would be the best option. If I were to go that route, I imagine I would have to do the entire User PC configuration again, but would I need to do any of the Raspberry PI/Create3 configs again?

You would just need to do the PC configuration.

@roni-kreinin I have lost the ability to ssh and ping the raspberry pi.

As you can see I am now in rohan@asterix, which is a linux vm running Ubuntu 22.04 LTS. I am no longer using WSL.
When I went through the discovery server steps on this VM, everything worked just fine, including "ip route"

@roni-kreinin I tried again today, still cannot ssh in. Could this be because of the port number?

@roni-kreinin VMWare EXSI 6.5.0 (VMKernel Release Build 4564106)

@roni-kreinin How would the VM I am using affect my ability to SSH into the RPi?

You may need to do some configuration to bridge the VM network to your PC. Try this https://www.minitool.com/backup-tips/vmware-bridged-network-not-working.html

@roni-kreinin Even on the original thing I was using, the Ubuntu 22.04 LTS application I downloaded from the Windows playstore, I cannot ssh into the R-Pi

@roni-kreinin Ok, the RPi address changed. However, now I cannot view the topics on the RPi. This is true on both rohan@asterix (the linux VM) and on WSL. When I first SSH'd into the R-Pi I was able to see them, but then they went away.

Does this still happen after you restart the daemon? ros2 daemon stop; ros2 daemon start


add default --from_date

github add both my commit together :-(

without option --from_date script return error.
add default date to argument "1970-01-01"

First test get more info from JSON to TCX
add timezone from JSON to TCX
PS
in this and previous commit i leave original lines as comment... (not all)
and no change in version number....

Patch for setting timezone is wrong....
I misunderstood the standard for time format... :-(


Enforce maven using Java 11+ with profile java-11

Why are the changes needed?

Enforce maven using Java 11+ with profile java-11
adding minimalJavaBuildVersion prop to profile java-11 for maven-enforcer-plugin's enforce-java-version execution in Apache parent pom (https://github.com/apache/maven-apache-parent/blob/apache-29/pom.xml#L361)

As inmvn validate -P java-11 running with profile java-11 using Java 8 will fail in validate phase and get the error message below:
[INFO] --- maven-enforcer-plugin:3.1.0:enforce (enforce-java-version) @ kyuubi-parent ---
[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Detected JDK Version: 1.8.0-301 is not in the allowed range 11.

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Thanks, merged to master


Mirror a post body

Currently this can be done with https://github.com/openresty/echo-nginx-module, like:
location /post {
  if ($request_method != 'POST'){
      return 405;
  }
  if ($http_content_type  != "application/json") {
      return 406;
  }
  default_type application/json;
  echo_read_request_body;
  echo $request_body;
}

But it would be more convenient to offer it out of the box here. With a custom query param:
GET /pathological?response_body=$request_body

The Postman API also has a similar function:
curl https://postman-echo.com/post -d @- <<EOF
123
EOF

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "123": ""
  },
  "headers": {
    "host": "postman-echo.com",
    "x-request-start": "t=1727193277.228",
    "connection": "close",
    "content-length": "3",
    "x-forwarded-proto": "https",
    "x-forwarded-port": "443",
    "x-amzn-trace-id": "Root=1-66f2e0bd-2c0883262b1fc6101b8c07c8",
    "user-agent": "curl/7.81.0",
    "accept": "*/*",
    "content-type": "application/x-www-form-urlencoded"
  },
  "json": {
    "123": ""
  },
  "url": "https://postman-echo.com/post"
}


removed text from contact page, removed about page

Will need to all remove from all blog posts - time to do some templating!

closes #21 #25


[Bug]: [Auto layout] Unable to resize 2d widgets in mobile viewport , if they were initially placed  on desktop view

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Unable to resize 2d widgets in mobile viewport , if they were initially placed  on desktop view
Steps To Reproduce

DnD a Form on to canvas
resize the canvas to mobile viewport using resize indicators on the canvas
Try to increase size of form
https://www.loom.com/share/6122e0ab1b5f4d8aabad92ede94cce8c

Public Sample App
No response
Issue video log
No response
Version
DP

Waiting on decision if we need vertical resizers or Auto height. QA on hold.


Issue/203 big numbers (#2543)

Pull request opened by the merge tool on behalf of #2543

Processing this pull request

An unexpected error occurred while processing this pull request. The request might have been partially processed. Caused by: GitHub API query failed: got errors in response: [{'type': 'UNPROCESSABLE', 'path': ['createPullRequest'], 'locations': [{'line': 2, 'column': 9}], 'message': 'A pull request already exists for inmanta:issue/203-big-numbers.'}]


ci: update stale action

GitHub Actions deprecated Node.js 12 and actions/stale support Node.js 16.
Updating actions/stale to v6 will the deprecation warning.

Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/stale

Coverage remained the same at 94.326% when pulling f564ca23d3c6223844315ffa7a500056eb6be987 on outsideris:update-stale-actions into 5f96d511dbf913f135b92198aab721a27f6b44fe on mochajs:master.

@outsideris there is still one deprecation warning remaining in your PR test run.
Could you fix this as well, please?
Have you checked the rest of our actions?

Yes, we use coverallsapp/github-action@master.
However, coverallsapp/github-action doesn't support Node.js 16 yet even upgrading Node.js 16 PR exist.

I will merge this in a few days.


Functionality Request: Multiple Images on one PDF page

I often scan different cards like insurance cards, drivers license, government id, etc.
My request is to detect the pictures on a pdf or take two pictures (or more) and align them in order on a pdf page (not just one image per page)?
Preferably I would mostly select two images which would be combined into a PDF which is cropped to the images but would print in the original size.

I can work on this. Could you please let me know which existing features should be enhanced with this feature request, if any? @Frooodle

So this seems like they want to detect images from scans
Not extract from a digital pdf file
Meaning it would need some computer vision to detect what is photos
We do have some python code that does this but not very well
I guess this code could be enhanced to "merge images into new pdf" as a checkbox with maybe options how many per page etc

Hello! I've been working on this issue and came up with a simpler solution that I believe will work well. My approach involves creating a predefined template for the layout, which determines how the images are placed within the PDF file. The images are then arranged according to the user-selected template. I have a pull request ready with more details.
The scanning part, however, seems a bit tricky to address at the moment.

Scanning as mentioned already exists here
https://stirlingpdf.io/extract-image-scans

But i think what you have done as enhancement to image to PDF is better place for it, users should extact images separately,
then use image to PDF

Thanks a lot guys :)
This fulfills what the topic of the feature request is but not the use-case I described.
If that use-case is negligible for most thats fine but I will just elaborate in case its something others might be interested in:
Simply said, I scan (mostly credit card sized) documents that have two sides that need scanning.
Currently I scan them separately on two PDF pages (I could scan to two separate images as well) and then use the crop function to only have the area of the document.
this ends up creating two pages but keeps the size information, so if I print it out it will print the real size of the document (and I can select to print both pages on a single piece of paper if I ever need to print it).
having one document on a single PDF page would be even better but the cropping down to only the image(s) gives me the great advantage of saving those documents (I keep them in an app called paperless-ngx as well as on nextcloud) and being able to show them on my smartphone when needed (often) without having to zoom in accidentally moving into an area without the full document (meaning without empty/blank areas).
I think with the choice of how many images should be distributed on a page joint with an automatic cropping, that would end up being even better than what I do right now but that would need some kind of auto-detection on the location and size of the image.
This way I could select just two images for one document or select a whole bunch and select two per page and have one document per page (e.g. all health insurance cards of each family member, one per page... or all identification cards (like drivers license, government ID, company ID, etc.) of one person but one card per page)

Scanning as mentioned already exists here
https://stirlingpdf.io/extract-image-scans

This ^ is used to try to auto grab images that are scanned be that cards or docs etc..
Right now it expects a white background and tries to grab images that are there, I use it to scan two 6x4 photos and then I can extract them to 2 separate images to save on scan times


[i2c] Do not make timeouts persist.

After timeout (and interrupt triggered), recount the timeout period again instead of allowing it to immediately re-trigger.
Signed-off-by: Timothy Chen<EMAIL_ADDRESS>

I reran #16495
./util/dvsim/dvsim.py ./hw/ip/i2c/dv/i2c_sim_cfg.hjson -i i2c_target_timeout -r 1 -v m -s 1 -w fsdb
with this update and @271589707ps,  tb.dut.i2c_core.u_i2c_fsm.sda_o go low and never comes back.
is it waiting for scli low?

did you change anything in the test? i was not able to reproduce this.

did you change anything in the test? i was not able to reproduce this.

Hmm.. no I just used #16495 + this rtl change.
maybe I rebased my local branch. Let me push #16495 again. Try now.
you will see following.
UVM_FATAL @<PHONE_NUMBER>1 ps: (i2c_target_smoke_vseq.sv:75) [target_smoke_vseq] wait timeout occurred!

sounds good, let me try again.

ah okay you're right.
It looks like the host kept the clock high during the the target transmit phase.
The target transmit across the entire high pulse of a scl. Since there was never a negedge, the target never stops transmitting, that's why we see sda_o always 0 here, since it happened to be the value it wanted.

updated with idle fix.


main.yml

Hi @lwanyintaung! Could you please update the PR with a description of what you're looking to accomplish here? Thanks!


Add unicode support config to email_otp_config.toml

$subject to avoid EmailOTPTestCase failing when using outdated config which got outdated from https://github.com/wso2/product-is/pull/21784.
https://github.com/wso2/product-is/pull/21784#issuecomment-2491683475

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/11957381134

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/11957381134
Status: cancelled


correction to section 'Usage for react-navigation'

Hello,
I've corrected the navigationOptions configuration.
According to the doc from https://reactnavigation.org/docs/navigators/tab, navigationOptions should contain properties called tabBarLabel and tabBarIcon.
I also included a line to register the app into the react-native.
Thanks for your work!

Thank you! Looks good to me


Make threadDelay duration unbounded

https://github.com/input-output-hk/ouroboros-network/issues/2026
Timeout duration is still bounded by Int
A ci failure was detected https://hydra.iohk.io/build/2668383/nixlog/1. It's related to threadDelay, but I'm not sure if it's related to this pr.

bors merge


Support format string with streaming operators?

boost::format allows you to specify a printf style format string, and then stream arguments with the % operator
boost::format formatter("hello %s");
formatter % "world";

std::cout << formatter.str() << '\n';

Does cppformat support this?
If not, are there plans to support this?

No. Like printf, C++ Format functions require all arguments be passed at once:
std::cout << fmt::format("hello {}", "world") << '\n';

This way there is no need to worry about the arguments' lifetimes and the implementation can be much more efficient.
It might be possible to construct ArgList incrementally and pass it to a formatting function, but it will rely on internal APIs and I wouldn't recommend it.


HDF5 Normalizer not working.

def preprocess_train(array):
    """ Given a batch of numpy arrays, it outputs a batch of numpy of arrays with all preprocessing

    size : (w, h)
    """
    num1 = np.random.randint(0, 128 - 112)
    num2 = np.random.randint(0, 171 - 112)
    crop = array[ :, num1:num1+112, num2:num2+112, :]
    crop = crop/255.0
    return  crop

X_train = HDF5Matrix(train_loc, 'images', start=0, normalizer=preprocess_train)
y_train = HDF5Matrix(train_loc, 'labels')

model_final.fit(X_train, y_train, batch_size=16, shuffle='batch', validation_data = [X_test, y_test], epochs=10)

ValueError: Error when checking model input: expected conv1_input to have shape (None, 16, 112, 112, 3) but got array with shape (5797, 16, 128, 171, 3)

Basically I have a h5py file with shape (5797, 16, 128, 171, 3) and my preprocess function should output (16, 112, 112, 3). this is not happening.
However when I run only X_train and used X_train.getitem_(1). It outputs an array with (16, 112, 112, 3) shape.
Not sure where I am going wrong. Can someone help me ?

The HDF5Matrix calculates the shape based on the shape of the input data https://github.com/keras-team/keras/blob/aab55e649c34f8a24f00ee63922d049d3417c979/keras/utils/io_utils.py#L97-L113
which means having a normalizer function that changes the dimensions (and type) will not work since the model.fit command uses the predefined type

as a temporary hack-fix you can use NormalizedHDF5Matrix in place of HDF5Matrix and it should work
# we dont need full resolution images so we can just use a downsampled version
class NormalizedHDF5Matrix(HDF5Matrix):
    def __init__(self, datapath, dataset, start=0, end=None, normalizer=None):
        ds_norm = lambda x: x if normalizer is None else normalizer
        super(NormalizedHDF5Matrix, self).__init__(datapath, dataset, start=start, end=end, normalizer=ds_norm)
        t_val = self[0:1]
        self._base_shape = t_val.shape[1:]
        self._base_dtype = t_val.dtype

    @property
    def shape(self):
        """Gets a numpy-style shape tuple giving the dataset dimensions.
        # Returns
            A numpy-style shape tuple.
        """
        return (self.end - self.start,) + self._base_shape

    @property
    def dtype(self):
        """Gets the datatype of the dataset.
        # Returns
            A numpy dtype string.
        """
        return self._base_dtype


runtime/pprof: regression in TestMemoryProfiler/debug=1 starting in April 2021

2021-05-30T02:37:38-1607c28/linux-amd64-sid
2021-04-27T21:55:07-214c8dd/linux-amd64-nocgo
2021-04-27T21:44:16-645cb62/linux-amd64-nocgo
This test has otherwise been passing consistently since it was last fixed in November 2019, so this looks like a 1.17 regression (CC @golang/release).

2019 failures
2019-11-11T12:40:04-f07059d/linux-amd64-noopt
2019-11-10T20:36:44-47bc240/linux-amd64-noopt
2019-11-10T17:13:25-298be61/linux-amd64-noopt
2019-11-10T17:12:35-46c9fd0/linux-amd64-noopt
2019-11-10T17:12:15-40ebcfa/linux-amd64-noopt
2019-11-10T17:11:34-cd53fdd/linux-amd64-noopt
2019-11-10T13:41:45-4d4ddd8/linux-amd64-noopt
2019-11-10T12:12:46-9eb9c7b/linux-amd64-noopt
2019-11-10T04:23:22-e6fb39a/linux-amd64-noopt
2019-11-09T22:14:01-78d4560/linux-amd64-noopt
2019-11-09T20:08:06-29cfb4d/linux-amd64-noopt
2019-11-09T19:31:32-7148478/linux-amd64-noopt
2019-11-09T19:25:46-6e11195/linux-amd64-noopt
2019-11-09T05:51:04-a0262b2/linux-amd64-noopt
2019-11-09T00:36:15-bde1968/linux-amd64-noopt
2019-11-08T23:22:06-11da2b2/linux-amd64-noopt
2019-11-08T22:44:29-42db1da/linux-amd64-noopt
2019-11-08T21:32:23-0bbcce9/linux-amd64-noopt
2019-11-08T21:27:51-b7d097a/linux-amd64-noopt
2019-11-08T21:05:17-9ee6ba0/linux-amd64-noopt
2019-11-08T20:50:17-9e914f5/linux-amd64-noopt
2019-11-08T20:24:43-bababde/linux-amd64-noopt
2019-11-08T20:05:25-7a5e0fe/linux-amd64-noopt
2019-11-08T19:28:57-904e113/linux-amd64-noopt
2019-11-08T19:28:49-f6ff806/linux-amd64-noopt
2019-11-08T19:24:30-e6c12c3/linux-amd64-noopt
2019-11-08T18:55:44-b2b0992/linux-amd64-noopt
2019-11-08T18:00:31-c444ec3/linux-amd64-noopt
2019-11-08T17:56:35-a84ac18/linux-amd64-noopt
2019-11-08T17:01:32-4517c02/linux-amd64-noopt
2019-11-08T17:01:05-a5a6f61/linux-amd64-noopt
2019-11-08T17:00:57-dac936a/linux-amd64-noopt
2019-11-08T16:46:24-47232f0/linux-amd64-noopt
2019-11-08T16:44:48-374c284/linux-amd64-noopt
2019-11-08T16:35:48-ffb5646/linux-amd64-noopt
2019-11-08T15:10:39-52aebe8/linux-amd64-noopt
2019-09-19T20:26:22-1c50fcf/netbsd-arm-bsiegert

CC @cherrymui  for runtime/pprof.

@cherrymui Following up, as we're approaching RC1 and this is a release-blocker.

All of these failures are because we expect an entry like:
0: 0 [1: 2097152] @ 0x52cb88 0x49ed54 0x49e485 0x52cca7 0x52cec5 0x4c5e22 0x466121
            #	0x52cb87	runtime/pprof.allocateReflectTransient+0x27	/workdir/go/src/runtime/pprof/mprof_test.go:56

but get one like
1: 2097152 [1: 2097152] @ 0x52cb88 0x49ed54 0x49e485 0x52cca7 0x52cec5 0x4c5e22 0x466121
            #	0x52cb87	runtime/pprof.allocateReflectTransient+0x27	/workdir/go/src/runtime/pprof/mprof_test.go:56

The only mismatches are the first two numbers: want 0, got 1 and 2097152.
The first number is InUseObjects() => AllocObjects - FreeObjects. The second is InUseBytes() => AllocBytes - FreeBytes.
Since these are "transient" allocations and the test runs GC, we are expecting to see the allocations freed. The frees are recorded during sweep, so at first glance this would look like another case of #45315. However, this started failing after that was fixed, so I suspect that something in http://golang.org/cl/307915 or http://golang.org/cl/307916 is subtly broken and triggering this.
cc @mknyszek

FWIW, I've been unable to reproduce this locally so far.

I think @prattmic is right and that this is probably a regression. Looking into it.

I ran the full suite of runtime/pprof tests overnight and I reproduced it. Unfortunately because of limited terminal scrollback I don't actually know how many executions it took...
Specifically, I ran:
CGO_ENABLED=0 go test -short -count=1 runtime/pprof

On the hunch that CGO_ENABLED=0 somehow makes the regression reproduce more easily.

OK I can probably shorten time to reproduce: TestMemoryProfiler is the third test to be executed. The only tests that could be causally influencing the failure are the two tests before it. Together they take much less time to run.

@mknyszek We're close to the RC date for Go 1.17. Just a friendly ping.

I was able to reproduce again. I added a check for some potential issues with how reflect changed in Go 1.17, and I think I've successfully ruled that out.
I captured the output, so I can say now that it took about 2 hours of continuously running the full runtime/pprof test suite to hit it. I think I can actually stress test this into something useful, but now I need to figure out what I want to learn.

FWIW, I'm not 100% sure if this should be an RC blocker. What this test failure means is that there's a very rare chance that a heap profile ends up stale, specifically in the case of calling runtime.GC. That's not great, and I will continue to try to stress test it and fix it (builders should be green!), but it does not critically impact users of Go.

Got another reproducer, while running only the first 3 tests in the package in a loop. 206267 executions at ~0.077s per execution... about 4 hours to reproduce.
But hey, this time, I got a GC trace! And there's something very peculiar about this. The GC trace for the failing test is the only one that actually has a forced GC! You'd think that every single execution would have a forced GC, but that's not true at all, as it turns out.
I wonder if I'll be able to reproduce this more easily by adding a sleep, to make sure another GC cycle doesn't stomp on the forced GC.

Added a 1 second sleep before runtime.GC and now I have an instant reproducer. :)

Oh, wait. It occurs to me that because time.Sleep allocates, it might just be breaking the test.

Yeah, the time import changes the line numbers. Sigh.

False alarm. STDERR output for the test itself was hidden, so while I have a GC trace, the forced GC is not unique.

Thanks for investigating this Michael. In a release meeting we discussed we're primarily looking to understand the failure mode before RC 1, if possible. Then we can make a better decision about it.

I'm slowly gathering information, but given that it takes hours to reproduce, this is going to take a while.

Alrighty, new update: I've got a ~3 minute feedback loop now. I'm using debuglog to slowly whittle down the possibilities. Hopefully should have something soon. If I start floundering, I'll start bisecting.

I think I've confirmed this is a subtle bug in the isSweepDone condition.
I've got the following output, annotated for clarity:
/tmp/go-stress-20210701T205000-498548926
runtime/pprof.allocateReflectTransient <--- the profile stack entry that was incorrect.
>> begin log 1 <<
[0.032741835 P 2] PostSweep 6 3 3 2 <--- heap profile published in runtime.GC. GC cycle is #3, forced GC was triggered during GC cycle #2.
>> begin log 0 <<
[0.033512719 P 0] freed 6 3 <--- the allocation created by runtime/pprof.allocateReflectTransient is actually freed
[0.033651934 P 2] MemProfile 6 3 <--- the test grabs proflock and copies the profile out

I think I might know what the problem is.
Looking at sweepone as an example of sweepLocker usage, it appears that sweepDrained can be set by sweepone before another, concurrent, instance of sweepone (or similar) calls tryAcquire. That tryAcquire is what actually blocks completion. Consider the following events:

Some sweeper pulls the last span for sweeping out of the list of spans that need sweeping. It has not yet acquired ownership of the span for sweeping.
Some other sweeper notices there's no more work. Hooray! They mark sweepDrained. However note that at this very point, mheap_.sweepers == 0, because the last span hasn't actually been acquired for sweeping.
runtime.GC is looping, checking isSweepDone. It happens to fire right at this moment, so it continues on to publish the heap profile.
Then the last span actually gets swept.

Lo and behold, we've missed a free in the published heap profile.
Assuming this is actually the problem (I will continue to try to confirm this), I think that this does not indicate a larger potential issue. This issue of isSweepDone conflating "no more spans to sweep" with "no more outstanding sweeps" already existed in earlier releases. Austin's CLs were trying to fix this. I believe they succeeded them in making them less likely, eliminating the flakiness of another test Austin wrote in the 1.17 cycle. However, it appears that this test manages to take advantage of this race window.
When Austin was working on fixing this, we discussed how this condition wasn't actually problematic for GC correctness, because the GC will actually ensure all outstanding sweeps are complete because it needs to stop the world to begin the next mark phase. Sweeping in every case does always prevent preemption -- this is necessary for a much broader sense of correctness -- so a new GC will actually only start once all outstanding sweeps have completed.
@dmitshur As a result, I don't think this should block the RC, but I think this should be fixed prior to release. Ultimately, the worst it can do is make some tests (particularly ones that rely on runtime.GC) flaky.

I'm currently testing my theory by adding an extra blockCompletion call in sweepone, just after newSweepLocker is created. There's a risk that this could cause the isSweepDone condition to flap, but because sweepone bails out early if isSweepDone is already true, it can't actually happen, for this case anyway. AFAICT, this is the only path that matters for this test... a real fix may need more, more on that later...
The good news is that it's been 30 minutes and nothing has failed yet.
This ensures that mheap_.sweepers is always >0 before we grab that last span out of the list (i.e. before mheap_.nextSpanForSweep()). If someone else then marks sweepDrained, then that other sweeper will always be accounted for until it's actually finished. As a result, anyone checking isSweepDone will never observe it switch to true prematurely.
Unfortunately I think this is a hacky fix. I think even if with isSweepDone check, there's still a small window where the condition could flap. Consider this set of events:

A sweeper notices sweepDrained == 0 so it says that isSweepDone is false. There are no other outstanding sweepers.
Another sweeper notices that there's nothing left to sweep, so it sets sweepDrained. isSweepDone is now observable as true.
The first sweeper increments mheap_.sweepers because it passed the c heck. isSweepDone is now temporarily observable as false.
The first sweeper decrements mheap_.sweepers and now isSweepDone is true again.

Basically, what we need to guarantee is that:

mheap_.sweepers is incremented before any pop operation from the unswept lists.
mheap_.sweepers is incremented only if there's any more spans to be swept.

I think that these might be two contradictory conditions. I need to think about this more, though I'm certain there's a clean resolution to all this.

2.5 hours later and this narrower window has prevented a test failure. I think this is our culprit.

I've been thinking about this more. I think the right fix is to make the process of updating mheap_.sweepers and sweepDrained should be updated together. Consider a design where they're packed in the same uint32, with the top bit reserved as the boolean sweepDrained, the rest of the bits for mheap_.sweepers (2 billion concurrent sweepers should be enough for anyone :P).
Then it gets manipulated in the following way:

A potential sweeper is considering doing some sweeping. They read the combined value, and check sweepDrained. If it's set, then don't sweep. There's nothing to do.
Otherwise, they try a CAS-loop where the they increment sweepers, backing out if they ever observe sweepDrained as set.
If they successfully CAS, they can go on and pop a span and sweep. If they notice that there's nothing to sweep, they CAS-loop on setting sweepDrained and decrementing sweepers, then return.
Otherwise, acquire the span they popped for sweeping, sweep the span and whatever else, then CAS-loop to decrement sweepers.

isSweepDone is then just an atomic load, then a comparison with 0x80000000. The condition will never flap, because a sweeper is guaranteed to never increment sweepers once sweepDrained is set. Existing sweepers or CAS-loopers will simply decrement and drain sweepers as intended.
There's one more caveat here with reclaimers that don't pop from the list but do acquire spans for sweeping. They need only be accounted for in sweepers, so I think they can just do the same as above.
@aclements does this sound right to you?
My one concern here is contention due to CAS-looping. I think it should be relatively OK because this happens on the allocation slow path (the first slow path, refilling spans), though there are a number of other potential sweepers (reclaimers, proportional sweepers, or the background sweeper). I guess we'll just have to benchmark it.

I've sketched out a fix at https://golang.org/cl/333389 (be warned: it may not even compile, I didn't try) and that seems way too big for this release.
I think we should just add an extra runtime.GC call and a TODO to prevent this test from flaking for the release.


Taskbar and start menu jumplist items should not be pinnable/unpinnable or removable

Describe the bug
A few months ago, the calculator added items to the jumplist you can show in the taskbar or start menu. There are items for the default, scientific, programmer, and date conversion modes. It's a great addition but the items on this list can be pinned, unpinned or even removed from the list, which I feel should not be possible. E.g., what happens when you remove an entry? Can you bring it back then? I think it would be more appropriate to do it like e.g. Edge or Your Phone, where there are static items that you can neither pin nor unpin or remove.
Steps To Reproduce
Right-click on the calculator on either the taskbar or start menu, then right-click on any of the jumplist's items. All items display options for pinning or unpinning/removing.
Expected behavior
Right-clicking any jumplist items should only show an "open" option.
Screenshots
This is how it looks like:

This is how I feel it should be like:

Device and Application Information (please complete the following information):

OS Build: 17134.590
Architecture: x64
Application Version: 10.1812.10048.0

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.

Good catch! I appreciate the thoroughness of your bug report. I agree that pin/unpin should not be enabled for these static items.

Other than pin/unpin, user can also remove items from the jumplist, but then they get added on next app launch. This can be confusing to the users.
It seems that the only way for UWP apps to remove pin/unpin and remove ability from jumplist items is to not specify a group name for them. The downside is, the header for jumplist items will be "Tasks" instead of the current "Calculator" text.
If this tradeoff is managable, I've submitted PR #499 to do it.