SSL enabled server hangs on request

I seem to be having the exact same issue as described at the end of #90: the server starts OK with a valid cert and key but hangs after receiving a request. The provided gist (https://gist.github.com/CamJN/4369785b198a6dd513f75c8ad24023bd) hangs too.
rustc 1.31.1
on debian
rouille version: 3.0.0

There's open issue and PR in tiny_http:

https://github.com/tiny-http/tiny-http/issues/144
https://github.com/tiny-http/tiny-http/pull/151

Same for me. Will check at tiny_http level maybe...

This has been fixed in tiny_http (https://github.com/tiny-http/tiny-http/pull/151) and released as version 0.7.0: CHANGELOG.
PR #231 updates rouille's tiny_http version to 0.7.0. Merging that and releasing new rouille should fix this issue.

This was killing me for a while!
Seems to be fixed (for me) in latest rouile release v3.1.0.

Excellent news, I'll close the issue and if it pops up again feel free to reopen.

I take it back!
It seems to have problems when first trying to connect to a site (on Chrome) and then it is fine and acts as normal.
Will try to give more info in a bit.

Hmm not even #231 seems to work.
Apologies, I don't know any more advanced techniques to say exactly what is going wrong, it seems to just be hangs when returning the response.
If I println for the handler, it can print the request, the browser, however, does not recieve a response; it just hangs.
What makes this especially weird is that my main browser seems to have accepted the site (at first it was having issues too) and now it works entirely fine every time.

Hmmm!!!
I'm in a bit of a rush right now so don't have a chance to investigate fully, when I have a chance I will try to do so (also, apologies for the multi-comment!).
Quick findings are: It seems to maybe sometimes only allow the first connection of a process in? It wasn't letting my firefox session in, I restarted the process, it let it in, now it works fine (even after restarting the process).  However trying to do the same for my android chrome didn't work.
I'm a bit lost!
I tried another few browsers:

Vivaldi: Same experience as Firefox: not working, restart process, try again, working and continually so.
Chromium: Seemed to work straight away.
Opera: Worked.
Waterfox: Worked.
Brave: Same as Firefox and Vivaldi.
Chrome and Firefox on another machine: Worked.
Restarted my phone: Worked.

I can't see any real patterns here! It seems to be a weird mess, perhaps it has to do with:

Responding to requests out of order with HTTPS won't work (this could conceivably be fixed with some check-is-ready-to-read to supply more requests if they're available)

https://github.com/tiny-http/tiny-http/pull/151#issue-231760240

But I can't seem to find a pattern nor solution.
Once again, will have a better look when I have a bit more time. If anyone else could also investigate that would be much appreciated.
(
Or perhaps just see if experience is different to mine using:
a. Latest Rouille
b. https://github.com/tomaka/rouille/pull/231
c. https://github.com/tomaka/rouille/pull/231 with tinyhttp set to latest
)

Thanks for continuing to investigate this, based on what you've added so far, I suspect request ordering is at fault, it could be that depending on the browser, it might open one or more connections, and depending on which of those succeeds the page either appears to work or does not.
I'll try the SSL example from the repo on the off chance that reproduces the issue, if not, if you could drop a minimal example here that would be great.

Unfortunately I'm not able to reproduce this when I wrap examples/hello-world.rs in a server built with new_ssl(), so a snippet that exhibits the issue would be really helpful.
I tested both the Threaded and ThreadPool executors with the same result, which one are you using?

I'll try to do some more testing, the biggest annoyance to this is that it is unreliable to reproduce and seems to not really be reproducable for a given machine:browser combination once they are working.
I'll try to figure some more out.
Not entirely sure how one might change between the executors, I'm using whatever the default is with a loop which .poll()s multiple servers the way I am doing it might be contributing to the issue &| weirdness and if it was reliable to test I would be comparing with a normal .run() now.

I'm starting to suspect the changes in https://github.com/tiny-http/tiny-http/pull/151 are related.
The PR references fixing a deadlock, but at least at first glance it doesn't look like it should have been dead locking there in the first place. The added synchronisation would have the side effect of changing the timings which could mask a deadlock from elsewhere.
I'll keep investigating too.

Maybe it is working now (?!) I can't reproduce again.
I'll try getting rid of the changes I've added beyond current rouille and report back.

I've gotten rid of all of the changes I've added and cannot reproduce. Very weird.
Would appreciate others who have had issues with SSL in this thread giving rouille latest a test.
For now, until I find issues, I'll leave it be.

Not sure if its related to this exact issue but, I was seeing the an ssl enabled server hang for curl, but not for firefox, which oddly enough resolved itself when I forced curl to use IPV4 (curl -4 ...)


[Idea] Save shuffle state for every slot in inventory

I guess “issue” name is explanatory
I don't know if it's possible to do, if it doesn't, just close the issue with comment with explanation

+1 Would be nice


Fix missing unit in drone-ssh plugin

The appleboy/drone-ssh plugin has recently changed and does now require units.
Description of changes
Add unit, s, to .drone.yml file on command_timeout on plugin. Error before fix:
could not parse 600 as duration for flag command.timeout,T: time: missing unit in duration 600

💪😍


Cannot sign in using admin after docker-compose up

Hey guys! I am new to superset and I am excited to try it out, but I have some difficulty trying to log in.
After docker-compose up and see the login page on http://localhost:8088/login/, I cannot successfully sign in using account name admin and password admin. This is the same situation as described in #9852. If you need pictures to refer to, please refer to the ones in that issue.
Any help is appreciated. Thanks in advance!

Same here....!

same here :/

Can you see any errors in the console where superset is running?

Please look carefully at the output from docker-compose up. the superset-init container is supposed to create the proper admin user. Please check this container's output carefully for errors - it's possible for that process to fail and still have the server boot successfully.

Running docker logs superset_init returns:
Init Step 1/4 [Starting] -- Setting up admin user ( admin / admin )

######################################################################

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 584, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 901, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 792, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (SQLAlchemy-Utils 0.36.6 (/usr/local/lib/python3.6/site-packages), Requirement.parse('sqlalchemy-utils<0.36.5,>=0.33.2'), {'apache-superset'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/superset", line 4, in <module>
    __import__('pkg_resources').require('apache-superset==0.999.0.dev0')
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3261, in <module>
    @_call_aside
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3245, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3274, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 586, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 599, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 787, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'sqlalchemy-utils<0.36.5,>=0.33.2' distribution was not found and is required by apache-superset

Reducing the dependency in requirements.txt: sqlalchemy-utils==0.36.5tosqlalchemy-utils==0.36.4` gets me past that step; however further investigation needs to be done as to whether the dependency at 0.36.5 functions with any other elements of the code calling it.
superset_init            |
superset_init            | ######################################################################
superset_init            |
superset_init            |
superset_init            | Init Step 1/4 [Complete] -- Setting up admin user
superset_init            |
superset_init            |
superset_init            | ######################################################################
superset_init            |
superset_init            |
superset_init            | ######################################################################
superset_init            |
superset_init            |
superset_init            | Init Step 2/4 [Starting] -- Applying DB migrations
superset_init            |
superset_init            |
superset_init            | ######################################################################

sqlalchemy-utils==0.36.5 is broken, so you need to either be on 0.36.6 (this is what master branch is on), or go back to 0.36.4.

Looks to have been resolved in https://github.com/apache/incubator-superset/commit/d61594982025d7a05d97b15e99a0253a46c43dfd

OK. @Yuchen-Wang-SH please re-open this issue if it is not resolved for you.


Path argument is ignored when passing a config file

Hello,
Running pycln with only a config file as CLI options seems to ignore the path specifiied in the provided config file
To reproduce
According to the following pyproject.toml file
[tool.pycln]
path = "/user_management_rest_api/"

Running following command
pycln --config pyproject.toml

Produce the following output
No Path provided. Nothing to do 😴

While I expected pycln to run over /user_management_rest_api/ folder specified in provided config file

I tried to set verbose = true in my pyproject.toml file to ensure it was loaded and it worked as expected. Just the path looks like to be somehow ignored

Environment

Python Version: 3.7
Pycln Version: 1.1.0
OS Type: [e.g.macOS Big Sur]

Hi @g0di, after doing some investigation I found that this problem is related to Config class:
https://github.com/hadialqattan/pycln/blob/9ed66c98ba1b9d64489d7e388755877b48662997/pycln/utils/config.py#L26-L39
(on Config we have "paths" attr while in the config file(s) we use "path")
also, I used hasattr for validating the config keys which returns False when the key is "path" (so "path" value will be ignored):
https://github.com/hadialqattan/pycln/blob/9ed66c98ba1b9d64489d7e388755877b48662997/pycln/utils/config.py#L152-L160

Thank you for your feedback ;)


Cop requests: ActiveRecord's where, pluck, and array includes

Is your feature request related to a problem? Please describe.
There is some cop requests below.
Sorry for these maybe contain ruby feature.

ActiveRecord's .pluck(:id) -> .ids
1.in?([1,2,3]) -> [1,2,3].include?(1)
ActiveRecord's .where(column1: :a).where(column2: :b) -> .where(column1: :a, column2: :b)

Describe the solution you'd like
I'd like to auto fix it, maybe :)
Describe alternatives you've considered
Or, do we ourselves write these cops?
Additional context
Nothing.

ActiveRecord's .pluck(:id) -> .ids

Rails/PluckId exists. Please see the doc for more details:
https://docs.rubocop.org/rubocop-rails

1.in?([1,2,3]) -> [1,2,3].include?(1)

I'm not sure if this should be enforced. It would at least need to be accepted by the Rails Style Guide first:
https://github.com/rubocop/rails-style-guide

ActiveRecord's .where(column1: :a).where(column2: :b) -> .where(column1: :a, column2: :b)

This can be implemented.  Can you open this a new separate issue?
I am closing this issue as it contains multiple proposals. Thank you.

Thank you for your fast reply!
I opened new issue https://github.com/rubocop/rubocop-rails/issues/955 about multiple where


improvementImprove auto analyze visibility.

show auto analyze can show the running jobs, not only the finished/failed jobs.
show analyze task status could show auto tasks as well.
remove some useless code.

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall


Accessibility audit

It would be super helpful to get an idea on which parts of the webapp need to be improved in order to make the application accessible for visually impaired people.
The end goal would be to eventually make accessibility a standard feature for our template.

Hello @AlexITC,
I'm very interested in contributing to this issue. I have previous experience working on projects involving visually impaired users,  where I gained an understanding of the varying levels and types of impairment. While I'm relatively new to the Scala environment, I'm very eager to learn and contribute to this issue. I'd appreciate it if this issue could be assigned to me.

Hey @AlexITC,
I have thoroughly reviewed the web app to check its accessibility for visually impaired users. While the web app is largely compatible with commonly used screen readers, here's a summary of my findings and suggested improvements:

Proper HTML Structure and Labeling: The current HTML structure supports screen readers, ensuring proper navigation and comprehension. No issues found here.

Responsive Website: Although the web app is responsive, I noticed an issue regarding the toggle menu button's readability on smaller screens. This button is not easily identifiable by screen readers, potentially obstructing navigation for visually impaired users on mobile devices.

Audio Feedback Options: To improve the completion process, introducing audio feedback options during the completion process can significantly benefit users reliant on screen readers.

Contrast and Font Size for Warnings: Increasing contrast colors and font sizes specifically for warning messages would enhance readability and ensure crucial information is more perceivable for visually impaired users.

Keyboard Navigation: Verified that the web app supports proper keyboard navigation. No issues found here.

Screen Reader Compatibility: While the web app is generally compatible with screen readers, I observed a need for enhanced alternative text for images. Providing descriptive alternative text would significantly improve the understanding of visual content for users relying on screen readers.

These suggestions aim to further enhance the accessibility of our web app for visually impaired users. I welcome any feedback or additional considerations regarding these proposed improvements. Thank you

Thanks for sharing, are you interested interesting in working on any of these improvements?

Yes, I'm interested in working on these improvements but I lack Scala.js knowledge so first I'd like to take time to familiarize myself with Scala before diving into addressing these issues. I'll keep you updated on my progress and I will start contributing as soon as i feel sufficiently confident in Scala.js.
Thank you for your understanding and patience.

Hey @AlexITC, I gave few days to learn Scala and now Im moving forward to get started with installing webapp locally and saw the video but it was for Ubuntu and currently i use windows 10 OS. Is there any other resource i can refer to or there will be no difference even if i follow same step for windows?
Thank you for your time :)

The steps likely work if you use WSL, otherwise, the stuff to install is more-or-less the same but the approach can be different.
Feel free to raise any issues you find.
Thanks.

Got it. I will update you about my progress.
Thank you for your time :)

Just follow the "Compile-time dependencies" section, then, run this:

API_URL="https://template-demo.wiringbits.net/api" sbt dev-web

Unfortunately, I can't help you with the Windows setup, given that you don't need postgres, have you tried setting everything up with Windows powershell?
Related to using a VM, that should not be an issue.

Scala-center is participating on GSoC 2024, I was invited to be a mentor but I had to reject due to my limited time.
If you are interested, feel free to propose a project related to this template and I'll evaluate whether I can make the time to be a mentor or provide someone else from Wiringbits.
Good luck.

Great.
Feel free to create a new issue summarizing your findings.

Hello @AlexITC, I'm sincerely sorry for the delay in getting back to you about this issue. I encountered an unexpected issue with my development environment a few days ago.
While troubleshooting an Out of Memory problem in VirtualBox, I made some changes to my Ubuntu VM instance. Unfortunately, these changes led to data loss, and I didn't have a recent backup, so I had to rebuild the entire environment from scratch.
I want to assure you that I'm actively working on the project now. I'll create a new issue and follow up with a PR as soon as I have something concrete to contribute.
Thanks for your understanding and patience :)


Rewrite top-level README in preparation for documenting each component.

An almost complete rewrite.

@michaelcfanning is added to the review. #Closed

@EasyRhinoMSFT is added to the review. #Closed

@rtaket is added to the review. #Closed

@cfaucon is added to the review. #Closed


refactor sensors: split source into separate classes

sensors.cpp got too large. This splits the source file into separate classes.
Bench tested on pixracer including calibration. Needs to be flight tested.

Will merge this only after 1.4 release.

@bkueng Can you rebase and fix CI failure?

rebased & bench tested

Can one of the admins verify this patch?

Reviewed. I wonder how many conflicts there are now though.

@bkueng Can you rebase and get in?

Rebased with lots of conflicts. SITL & bench tested (including sensors & RC calibration), which went fine.

Flight tested on the Aero, didn't notice any problems


Storage adapter improvements

Currently, we only have one kind of storage adapter.
When we added theme uploads to Ghost, the image adapter was changed to also support themes. However, in practice these things are quite different, requiring different methods and therefore each one would benefit from having their own adapter spec.
In addition to splitting the adapters into 2, we'd also like to move the base adapters out of Ghost and into their own repos so that they can be used as dependencies.
Also, the adapters currently only support save, serve & delete methods, there is currently no need to read a file, which we will need in the near future in order to support better icon/favicon behaviour.

[x] add read to the storage adapter
[ ] split the adapter into theme or image specific adapters
[ ] move the base adapter out into it's own repo(s)

I'm dying for this, commenting here so it keeps me updated. 😃

I've changed the issue title to: Adapter improvements. This issue is a collection of all adapter improvements we would like to do for Ghost 1.0. There are no more open issues regarding adapters.


Add version popout to "Packaged Distributions" table

This PR improves the "Packaged Distributions" table by making it clearer how old/new each Kubeflow Version is. Right now, it's very confusing to new users, as they might not know that Kubeflow 1.7 is actually very old (released in March 2023), so they might start the process of adopting a long-abandoned distribution.
The key changes this PR makes are:

In the "Packaged Distributions" table under the "Kubeflow Version" column:

Put a hover-able icon that says how long ago that version of Kubeflow was released. (Note, this is the Kubeflow released date, not the release date of the distribution).
Highlight distributions which are up to date (within 1 minor version of the latest), and de-emphasize distributions which are 2+ minor versions out of date.
Place warning icons beside versions which are very old (2 = warning, 3+ = scull)

Remove the very old link to the historical "conformance program" which was started by google but never continued.

Please note, all of the styling is automatic:

when the short-codes for that distribution's version are updated everything will change automatically
when we release a new version of Kubeflow, can use the content/en/docs/started/installing-kubeflow/get_new_releases.sh to cache that version's release date into the content/en/docs/started/installing-kubeflow/release-info folder of JSON (the build will fail to remind you if you try referencing a version which it does not know about)

Screenshots
OLD

NEW
Table Overview

On-Hover ("Latest Version")

On-Hover ("1 from Latest Version")

On-Hover ("2 from Latest Version")

On-Hover ("3+ from Latest Version")

@jbottum @andreyvelich @kimwnasptd @terrytangyuan @ederign please take a look at this important style update to the "Packaged Distributions" table.
It should help avoid confusion with new users about which distributions are currently supported.
See the preview site here:

https://deploy-preview-3842--competent-brattain-de2d6d.netlify.app/docs/started/installing-kubeflow/#kubeflow-platform

The screenshots look good to me.

Since this impacts how distributions are promoted, my suggestion is that it would be good if a majority of the distribution owners approved this i.e. we need 6 distributions to provide a +1  or lgtm

/cc @kubeflow/kubeflow-steering-committee
/hold

I personally like the version, but am -1 on the emojis.   I propose that this should be implemented if a majority of the distributions are +1.

@jbottum @terrytangyuan as discussed in the last community call, I have removed the warning icons (see new screenshots), which should make this PR very non-controversial now.
As agreed in that meeting, we will give people a week or so to make comments about the proposed change (I will highlight it again in the community meeting tomorrow) and if we don't hear anything, I think we can go ahead and merge this.
PS: the code will automatically keep everything up to date, so there is no maintenance overhead to this PR

@andreyvelich I have updated the PR with the changes discussed from the community meeting (all distributions are now blue, and the wording is less strong on the 3+ versions out of date message).
I think you can approve this now.

@thesuperzapper thanks for these updates.    I am lukewarm to the commentary in the version popups i.e. the 2nd sentences.   The 1st sentence already tells the user if the distribution is current.    Do we need the 2nd sentence ?  Do they need to be different if the distribution is not current ?   If not current, then something like...Please check with this distribution's maintainers to understand their support plans.

@jbottum I have updated the text in the second paragraph so that they all have the same text.
See the updated screenshots above, or deploy preview.
If no one has any disagreements by the next community meeting, we should be good to merge this.

@nvkassus @chensun @james-jwu @yhwang @johnugeorge @nagar-ajay @rimolive @juliusvonkohout @xujinheng @alexeadem please review the proposed presentation of your distribution on the Installing Kubeflow page and provide your +1 or -1 and/or comments.   We have put a lot of time/work into this (during the Community calls) and would like to finish up and merge.   thanks!

@nvkassus @chensun @james-jwu @yhwang @johnugeorge @nagar-ajay @rimolive @juliusvonkohout @xujinheng @alexeadem please review the proposed presentation of your distribution on the Installing Kubeflow page and provide your +1 or -1 and/or comments. We have put a lot of time/work into this (during the Community calls) and would like to finish up and merge. thanks!

Can we fix the documentation link for the Kubeflow/QBO distro it should be https://www.qbo.io/demos/kubeflow
We made a couple of changes to our website.  If a PR is needed please advise where to submit it

/lgtm

Thank you for this effort @thesuperzapper!
/lgtm
/assign @kubeflow/wg-training-leads @kubeflow/wg-pipeline-leads @kubeflow/wg-data-leads @kubeflow/wg-notebooks-leads @kubeflow/wg-manifests-leads

@james-jwu or @andreyvelich I think we can approve this now, as agreed in the community meeting.

@jbottum can you please approve this, rather than just lgtm?

/approve

/unhold


Not all agents are approved after update

Some agents remain stuck at seen stage after the first update.

This has been resolved with commits up to d6ec6862315d0e5fdd0f9b506b109609c8125b2e. Since then this error hasn't occurred anymore.


Update BF cpp doc link in Model Docs

See https://ci.openmicroscopy.org/view/Docs/job/FORMATS-merge-docs/631/warnings3Result/ - the BF cpp docs moving broke the link in the Model Docs. Given the 5.1 docs are now live since the m5 release, I thought it was fine to link to them now.
cc @rleigh-dundee

Looks fine to me.  My only question would be whether we need to retain the reference to the JACE C++ bindings in addition to the new C++ native implementation, since that's currently more featureful.

Happy to add that back in too. Will push a fix shortly.

Better?

Yes, thanks for that.

--no-rebase

Green on merge build, merging because I'm fed up of waiting on Travis.


Update link to document

fixed broken links

The links are auto generated so you should not manual update the file

You are welcome to create a JIRA with those broken links.
We need to fix this in the tooling that generate this table, which is a bit harder to do.
https://github.com/apache/camel/blob/master/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareReadmeMojo.java

I see. Thanks.


Option to have number of submissions database driven

Currently limiting the submissions per user is cookie based, however if the user clears their cookies or  uses another device they can submit again.
I know this is probably the best option for anonymous users however for known users (members) it would be useful to allow them to submit only once in a database driven fashion.

Hi @BarryGibson,
The cookie based solution is indeed the best solution I could come up with for anonymous users, and it's along the lines of how others handle it - for examle Survey Monkey.
I get where you're going with logged in members, but at least for the time being I don't see it implemented as part of the core. However, I'll have a look at facilitating a provider based solution so you can plug in your own system for keeping track of submission limitations per user.
For now you'll have to add your own solution here (for synchronous form postback) or here (for asynchronous form postback).
-Kenn

Thanks @kjac

@kjac Hi I am intruding in a debate. Right now I had a scenario that we have to limit the submit to 1 but only for a specific time period (1h), I did roll may one solution with an AfterInset.. .but it may be more mainstream to include it in the form properties. What do you think? Regards.

Hey @eriksimonic,
You're not intruding 😄 any and all input are welcome.
I think a provider based solution will work perfectly in your case as well. The benefit over using the events is that you can utilize the "Max submissions" title and text to give the end users a meaningful explanation, and it'll "just work" once you plug your own provider in.
I'll get to this soon, promise.

@BarryGibson @eriksimonic I published a new release with the provider based solution mentioned above - read more here.
You can replace the default handling with your own, either globally (by configuration) or per instance.
You should probably consider basing your own handling on the default one (MaxSubmissionsForCurrentUserHandler) by simply extending it and overriding its methods. This way you can still use the cookie based handling for your anonymous users, and replace then handling with your own custom one for whenever you can identify your users.
Let me know how it works for you :)

Thanks for your help @kjac

Closing this - the feature is documented here.


database is locked error with WAL journal mode

Note: I activated WAL journal mode on the sql database.
In my flutter application when trying to insert a specific entry into the database I get the error below. I can insert other entries in the database before and after getting this error but every time I try to insert this specific entry it throws the error below. I'm using one single database connection for all insert operations. When restarting the flutter app then I can insert the specific entry to the database without any problem.
In summary it appears that the database (set in WAL mode) is locked only for the insertion of this specific entry and after reconnecting to the database i can insert the entry without any problem.
 It's pretty weird that the database is only locked with the one particular row though. Also, are you sure it's related to the entry and not something like "the first 5 inserts work and then this happens"?

In the case above the insert that failed was
INSERT INTO "datasets" ("uuid", "alt_uid", "collected", "created", "modified", "name", "scope_id", "creator", "description", "keywords", "search_helper", "ranking", "synchronized") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), parameters: 16896f843dfc4f31901cef9ec5f1e989, null, 2024-05-30 16:10:23.818075, 2024-05-30 16:10:24.665727, 2024-05-30 16:10:37.462207, 2D_Sweep_0D_param_test, 14, sphilips, null, [], 16896f84-3dfc-4f31-901c-ef9ec5f1e989
But i get this randomly every say 500 inserts, for different datasets entries I try to insert.
I can insert other dataset entries before and after getting "database locked error when inserting dataset X", to be able to insert database X into the database i need to restart the application. If I don't restart the application I can still insert other datasets but every time I try to insert dataset X i get "database locked" error.
The application is running on windows desktop app.
Let me know if there is any useful test I could do to debug this.

I managed to systematically reproduce the error with the following code.
void main() async {

  final db = MyDb('test_db.sql');
  final db2 = MyDb('test_db.sql');

  final futures = [];
  for (int i=0; i<100; i++) {
    futures.add(db.into(db.datasets).insert(createRandomDataset(scopeId: 1)));
    futures.add(db2.into(db2.datasets).insert(createRandomDataset(scopeId: 1)));
    print('insert: $i');
  }

  for (var f in futures) {
    await f;
  }

  // await Future.delayed(const Duration(seconds: 10));
  await db.close();
  await db2.close();
}

I set the database WAL mode like this:
  @override
  MigrationStrategy get migration => MigrationStrategy(
        beforeOpen: (details) async {
          await customStatement('PRAGMA journal_mode=WAL'); //TO enable access from multiple processes
        },
      );

I have most recent dependencies
dependencies:
  drift: ^2.18.0
  sqlite3_flutter_libs: ^0.5.0
  path_provider: ^2.0.0
  path: ^1.9.0

dev_dependencies:
  drift_dev: ^2.18.0
  build_runner: ^2.4.9

and running latest dart sdk Dart SDK version: 3.4.1 (stable) and stable flutter: 3.22.1
Let me know if there is something wrong from my side.

Do you have multiple concurrent writers in your real application as well? WAL only allows concurrent reads and a single writer. Two concurrent writers will still cause lock errors with WAL. If that's the problem you could try setting the busy_timeout pragma which will make sqlite3 sleep and retry the operation shortly afterwards if a lock is active. That can reduce the likelihood of the error, a proper solution is to coordinate access between the two databases to avoid concurrent writers (doable with drift, I can provide more pointers on this if that turns out to be the root cause, but it gets much harder if one of the databases is opened natively and not from Dart).

I'm having similar issue and even with WAL and busy_timeout, the write does not succeed.
Here's the setup:
return NativeDatabase(
  File(dbPath),
  setup: (db) {
    // Check that we're actually running with SQLCipher by querying the
    // cipher_version pragma.
    final result = db.select('pragma cipher_version');
    if (result.isEmpty) {
      throw UnsupportedError(
        'This database needs to run with SQLCipher, but that library is '
        'not available!',
      );
    }

    db
      // Set the database password.
      ..execute("pragma key = '${credentials.databasePass}'")
      ..execute('pragma journal_mode=WAL;')
      ..execute('pragma synchronous=normal;')
      ..execute('pragma busy_timeout=500;')

      // Test that the key is correct by selecting from a table.
      ..execute('select count(*) from sqlite_master');
  },
);
});

After struggling with this issue I came up with a following wrapper for write operations, but it still tends to fail :/ There may be multiple write operations happening but they should not take more than few hundred milliseconds. Even though waiting for 2-3 seconds doesn't help.
  /// Generic function to retry a query that might fail due to
  /// [SqliteException] e.g. when database is locked.
  Future<T> retry<T>(Future<T> Function() computation) async {
    var retryCount = 0;

    while (retryCount < 5) {
      try {
        final rs = await computation();
        if (retryCount > 0) {
          _log.i('Successfully recovered from database access issue');
        }
        return rs;
      } catch (e, s) {
        if (e is DriftRemoteException || e is SqliteException) {
          if (retryCount == 5) {
            _log.e('Did not manage to recover the database despite retrying');
            Error.throwWithStackTrace(e, s);
          }
          if (retryCount == 4) {
            // Last chance to fix the access issue, let's close the connection
            // and try to reconnect
            _log.w('Closing database to recover from access issue');
            await _bgDatabase?.close();
            _bgDatabase = null;
          }
          retryCount++;
          _log.w('Problem with accessing the database, retry $retryCount', e);
        } else {
          Error.throwWithStackTrace(e, s);
        }
      }
      await Future<void>.delayed(const Duration(milliseconds: 300));
    }
    throw Exception('Did not manage to recover the database despite retrying');
  }

And example operation:
2024-11-12T15:08:29.605541Z +4 W [ALDC] SqliteException(5): while executing statement, database is locked, database is locked (code 5)
2024-11-12T15:08:29.605935Z +4 W [ALDC]   Causing statement: INSERT OR IGNORE INTO "average_heart_rate" ("timestamp", "heart_rate", "source") VALUES (?, ?, ?), parameters:<PHONE_NUMBER>000, 92, local
2024-11-12T15:08:29.605993Z +4 W [ALDC] Problem with accessing the database, retry 2
2024-11-12T15:08:30.923184Z +5 W [ALDC] SqliteException(5): while executing statement, database is locked, database is locked (code 5)
2024-11-12T15:08:30.923242Z +5 W [ALDC]   Causing statement: INSERT OR IGNORE INTO "average_heart_rate" ("timestamp", "heart_rate", "source") VALUES (?, ?, ?), parameters:<PHONE_NUMBER>000, 92, local
2024-11-12T15:08:30.923246Z +5 W [ALDC] Problem with accessing the database, retry 3
2024-11-12T15:08:31.840791Z +6 I [AppLifecycleHandler] App state changed to AppLifecycleState.inactive, last action was 2024-11-12 15:08:25.808535
2024-11-12T15:08:32.231507Z +6 W [ALDC] SqliteException(5): while executing statement, database is locked, database is locked (code 5)
2024-11-12T15:08:32.231714Z +6 W [ALDC]   Causing statement: INSERT OR IGNORE INTO "average_heart_rate" ("timestamp", "heart_rate", "source") VALUES (?, ?, ?), parameters:<PHONE_NUMBER>000, 92, local
2024-11-12T15:08:32.231743Z +6 W [ALDC] Problem with accessing the database, retry 4
2024-11-12T15:08:33.546673Z +8 W [ALDC] Closing database to recover from access issue
2024-11-12T15:08:33.549480Z +8 W [ALDC] SqliteException(5): while executing statement, database is locked, database is locked (code 5)
2024-11-12T15:08:33.549885Z +8 W [ALDC]   Causing statement: INSERT OR IGNORE INTO "average_heart_rate" ("timestamp", "heart_rate", "source") VALUES (?, ?, ?), parameters:<PHONE_NUMBER>000, 92, local
2024-11-12T15:08:33.549918Z +8 W [ALDC] Problem with accessing the database, retry 5
2024-11-12T15:08:33.855383Z +8 E [] Exception: Did not manage to recover the database despite retrying
2024-11-12T15:08:33.855605Z +8 E [] #0   AverageHrDatabaseClient.retry (package:local_database_client/src/average_hr_database_client.dart:74)
2024-11-12T15:08:33.855638Z +8 E [] #1   <asynchronous suspension>
2024-11-12T15:08:33.855659Z +8 E [] #2   HeartRateDataRepository.syncAverageHeartRate (package:heart_rate_data_repository/src/heart_rate_data_repository.dart:158)
2024-11-12T15:08:33.855692Z +8 E [] #3   <asynchronous suspension>
2024-11-12T15:08:33.855713Z +8 E [] #4   HeartRateSyncCubit.processHrData (package:visible_app/pace_points/cubit/heart_rate_sync_cubit.dart:150)
2024-11-12T15:08:33.855811Z +8 E [] #5   <asynchronous suspension>
2024-11-12T15:08:33.855834Z +8 E [] #6   HeartRateSyncCubit.onLifecycleResumed.<anonymous closure> (package:visible_app/pace_points/cubit/heart_rate_sync_cubit.dart:99)
2024-11-12T15:08:33.855858Z +8 E [] #7   <asynchronous suspension>
2024-11-12T15:08:33.855885Z +8 E [] Received error from Flutter in PlatformDispatcher.onError

Are you using long-running transactions anywhere? If you have a way to reproduce this, it might be helpful to enable statement logging across all isolates using the database to see why the database is locked for so long.


problem with lr

hi, ty for ur sharing. It's very helpful.
I have some question with lr.
I saw ur GPU_number is 4, num_images_per_GPU is 8. And lr rate is 0.01.
But according to the original mmdetection setting, shouldn't it to be  0.01*2?
(mmdetection GPU=8,num_images_per_GPU=2 lr is 0.01)

Hi Ken
Regarding LR-scheduling, yes you have to apply linear learning-rate policy according to the changed batchsize.
However, with linear learning-rate rule in my experiments where I resized input size and total learning-rate iterations for fast prototyping, I found it led to a divergence of FSAF. Thus, I used original learning-rate that produced stable training. For the original setting where 8GPU and larger input size is used, linear learning-rate scheduling might "not" lead to divergence. But, I didn't check about it due to my limited resources.


too many outstanding requests

At first: thanks for sharing your work!
I followed your howto ( https://voidquark.com/parsing-nextcloud-audit-logs-with-grafana-loki/ ) and successfully get nextcloud logs into Loki.
The dashboard works in general but often gives me: "Too many outstanding requests"
Could you share a working loki-config maybe, I wonder if I miss something there?
My environment:

nc-26.0.5 in docker
grafana/loki:2.8.4
grafana/promtail:2.8.4
grafana/grafana-oss:10.1.1

all hosted on Debian-12.1.
This is a rather small nextcloud-instance with ~50 users.
Additional thoughts:

I managed to use the loki docker driver to directly pipe nextcloud-logs (type "syslog") into loki without writing and reading the logfiles (basically avoiding promtail). This looks like an improvement to me and might be worth a look. But the queries in the dashboard would have to be adjusted as well. I wonder if this might help to improve the overall perfomance.

Hello @stefangweichinger
Unfortunately, this issue falls outside the scope of this repository. It is related to the Loki configuration. I highly recommend referring to the documentation for guidance on resolving this issue. You can find discussions related to this problem here: https://github.com/grafana/loki/issues/5123. This issue may provide insights into why you're encountering this problem and how you can optimize your Loki configuration.
Regarding piping Nextcloud logs:
Currently, I do not have plans to create multiple variations of dashboards. However, you are welcome to download the dashboard and customize it to suit your specific setup and requirements.

Hello @stefangweichinger
Unfortunately, this issue falls outside the scope of this repository. It is related to the Loki configuration. I highly recommend referring to the documentation for guidance on resolving this issue. You can find discussions related to this problem here: grafana/loki#5123. This issue may provide insights into why you're encountering this problem and how you can optimize your Loki configuration.

Thanks, browsing through right now and trying ...

Regarding piping Nextcloud logs: Currently, I do not have plans to create multiple variations of dashboards. However, you are welcome to download the dashboard and customize it to suit your specific setup and requirements.

Sure, thanks

Just to get things right:
Might query errors also play a role here:
prometheus-loki-1  | level=error ts=2023-09-06T12:58:04.645439838Z caller=retry.go:73 org_id=fake msg="error processing request" try=0 query="{env=~\"production\", job=~\"nextcloud\", instance=~\"cloud\\\\.my\\\\.tld\"} | json | level=\"4\" | line_format \"➡☠ IP {{.remoteAddr}} {{.method}} {{.url }} with ? {{.user}} ? {{.message }} \"" err="context canceled"

Could you please share the raw log line from Loki explorer, specifically from the Nextcloud audit log with level 4? It's important to note that this issue may not be directly related to your Loki configuration but could be connected to the dashboard itself.
Additionally, could you check if there are any log lines displayed in the Nextcloud Recent Log panel? Please make sure to redact any sensitive information before sharing.
Also, it would be helpful to verify if the count of FATAL Log Lines in the panel matches the number of Fatal messages in the Nextcloud Recent Log. For example, if the FATAL Log Lines panel shows 4, you should also find 4 instances of Fatal messages in the Nextcloud Recent Log.
You can also share these FATAL messages in a screenshot, which would provide further clarity and aid in resolving the issue.

@voidquark just a quick and partial look:
No "FATAL Log Lines" in the panel. Are they even logged with 'loglevel' => 1, in config.php ?
Yes, there are log lines displayed in the Nextcloud Recent Log panel.

No "FATAL Log Lines" in the panel. Are they even logged with 'loglevel' => 1, in config.php ?

Yes, they are indeed logged with 'loglevel' => 1 in the config.php file. You can find more information on Nextcloud logging in the Nextcloud documentation.

Yes, there are log lines displayed in the Nextcloud Recent Log panel.

Great to hear that there are log lines being displayed in the Nextcloud Recent Log panel.
However, it appears that you are not seeing any FATAL messages with the ☠ emoji.
Please check Loki explorer for any FATAL log lines that contain level=4

@voidquark I assume that this means that these FATAL log lines would have to be in either nextcloud.log or audit.log, right?
I grep the 2 files and only find such lines in nextcloud.log. That one is rather long and only level 3:
{"reqId":"SBmBXNEX2rwYCWyjZcGt","level":3,"time":"2023-09-07T05:28:59+00:00","remoteAddr":"<IP_ADDRESS>","user":"--","app":"core","method":"PROPFIND","url":"/remote.php/dav/files/wexxx/","message":"Failed to connect to the database: An exception occurred in the driver: SQLSTATE[08006] [7] connection to server at \"postgres_db\" (<IP_ADDRESS>), port 5432 failed: FATAL:  sorry, too many clients already","userAgent":"Mozilla/5.0 (Windows) mirall/3.9.3stable-Win64 (build 20230818) (Nextcloud, windows-10.0.22621 ClientArchitecture: x86_64 OsArchitecture: x86_64)","version":"<IP_ADDRESS>","exception":{"Exception":"Doctrine\\DBAL\\Exception","Message":"Failed to connect to the database: An exception occurred in the driver: SQLSTATE[08006] [7] connection to server at \"postgres_db\" (<IP_ADDRESS>), port 5432 failed: FATAL:  sorry, too many clients already","Code":7,"Trace":[{"file":"/var/www/html/3rdparty/doctrine/dbal/src/Connection.php","line":1531,"function":"connect","class":"OC\\DB\\Connection","type":"->","args":[]},{"file":"/var/www/html/3rdparty/doctrine/dbal/src/Connection.php","line":1029,"function":"getWrappedConnection","class":"Doctrine\\DBAL\\Connection","type":"->","args":[]},{"file":"/var/www/html/lib/private/DB/Connection.php","line":262,"function":"executeQuery","class":"Doctrine\\DBAL\\Connection","type":"->","args":["SELECT * FROM \"oc_appconfig\"",[],[],null]},{"file":"/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":345,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->","args":["SELECT * FROM \"oc_appconfig\"",[],[]]},{"file":"/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->","args":[]},{"file":"/var/www/html/lib/private/AppConfig.php","line":418,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->","args":[]},{"file":"/var/www/html/lib/private/AppConfig.php","line":184,"function":"loadConfigValues","class":"OC\\AppConfig","type":"->","args":[]},{"file":"/var/www/html/lib/private/AppConfig.php","line":374,"function":"getApps","class":"OC\\AppConfig","type":"->","args":[]},{"file":"/var/www/html/lib/private/legacy/OC_App.php","line":976,"function":"getValues","class":"OC\\AppConfig","type":"->","args":[false,"installed_version"]},{"file":"/var/www/html/lib/private/Server.php","line":731,"function":"getAppVersions","class":"OC_App","type":"::","args":[]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\{closure}","class":"OC\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":122,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OC\\Memcache\\Factory"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Memcache\\Factory",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OC\\Memcache\\Factory"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":193,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Memcache\\Factory"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":118,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OCP\\ICacheFactory"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\ICacheFactory",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":97,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OCP\\ICacheFactory",true]},{"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":84,"function":"array_map","args":[["Closure"],[["ReflectionParameter","config"],["ReflectionParameter","oldDispatcher"],"*** sensitive parameters replaced ***",["ReflectionParameter","eventDispatcher"]]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":124,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[["ReflectionClass","OC\\User\\Manager"]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":142,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\User\\Manager"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\User\\Manager",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OC\\User\\Manager"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":193,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\User\\Manager"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":118,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OCP\\IUserManager"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IUserManager",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OCP\\IUserManager"]},{"file":"/var/www/html/lib/private/Server.php","line":557,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IUserManager"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\{closure}","class":"OC\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":122,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OC\\User\\Session"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\User\\Session",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OC\\User\\Session"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":193,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\User\\Session"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":118,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OCP\\IUserSession"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IUserSession",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OCP\\IUserSession"]},{"file":"/var/www/html/lib/private/Server.php","line":1406,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IUserSession"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\{closure}","class":"OC\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":118,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OCP\\ISession"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\ISession",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OCP\\ISession"]},{"file":"/var/www/html/lib/private/Server.php","line":1281,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\ISession"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\{closure}","class":"OC\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":122,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OC\\Security\\CSRF\\TokenStorage\\SessionStorage"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Security\\CSRF\\TokenStorage\\SessionStorage",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":97,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OC\\Security\\CSRF\\TokenStorage\\SessionStorage",true]},{"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":84,"function":"array_map","args":[["Closure"],[["ReflectionParameter","tokenGenerator"],"*** sensitive parameters replaced ***"]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":124,"function":"buildClass","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":[["ReflectionClass","OC\\Security\\CSRF\\CsrfTokenManager"]]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":142,"function":"resolve","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Security\\CSRF\\CsrfTokenManager"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Security\\CSRF\\CsrfTokenManager",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OC\\Security\\CSRF\\CsrfTokenManager"]},{"file":"/var/www/html/lib/private/Server.php","line":1062,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OC\\Security\\CSRF\\CsrfTokenManager"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":171,"function":"OC\\{closure}","class":"OC\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php","line":122,"function":"OC\\AppFramework\\Utility\\{closure}","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":138,"function":"offsetGet","class":"Pimple\\Container","type":"->","args":["OCP\\IRequest"]},{"file":"/var/www/html/lib/private/ServerContainer.php","line":171,"function":"query","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IRequest",true]},{"file":"/var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php","line":65,"function":"query","class":"OC\\ServerContainer","type":"->","args":["OCP\\IRequest"]},{"file":"/var/www/html/lib/private/Server.php","line":1547,"function":"get","class":"OC\\AppFramework\\Utility\\SimpleContainer","type":"->","args":["OCP\\IRequest"]},{"file":"/var/www/html/lib/private/legacy/OC_Template.php","line":320,"function":"getRequest","class":"OC\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":92,"function":"printExceptionErrorPage","class":"OC_Template","type":"::","args":[["Doctrine\\DBAL\\Exception"],500]},{"file":"/var/www/html/remote.php","line":174,"function":"handleException","args":[["Doctrine\\DBAL\\Exception"]]}],"File":"/var/www/html/lib/private/DB/Connection.php","Line":140,"CustomMessage":"--"}}

I don't find anything with grep -i fatal /mnt/nextcloud-data/nextcloud.log | grep "level\":4".
And no FATAL log lines in audit.log.

No, this is not considered a level 4. It's actually categorized as an Error level because it's marked as level 3, even though it displays a fatal message. The crucial factor here is level 4.
Could you please open Grafana, navigate to Explore, and execute the following query:
{job=~"YOURJOB", instance=~"INSTANCE"} | json | level="4" | line_format "➡☠ IP {{.remoteAddr}} {{.method}} {{.url }} with 👤 {{.user}} 💬 {{.message }}"

Please ensure that you've replaced the values in the job and instance fields. If you encounter any warnings or errors during parsing, please provide the specific line and error details. It would be most helpful if you could include a screenshot of the log message directly with all labels.

Did the mentioned query, no results.
For a check I edited the query to level 3, this gives results.

Alright, in this case, we can consider it not to be an issue because there are no level 4 messages, which, from Nextcloud's perspective, are categorized as FATAL. I will go ahead and close the issue since it is not a problem.

Hm, might be.
Still seeing this in the docker logs:
prometheus-loki-1  | level=error ts=2023-09-07T13:23:35.096152064Z caller=retry.go:73 org_id=fake msg="error processing request" try=0 query="{instance=~\"cloud\\\\.my\\\\.tld\", job=~\"nextcloud\", instance=~\"cloud\\\\.ikw-amstetten\\\\.at\"} | json | level=\"4\" | line_format \"➡☠ IP {{.remoteAddr}} {{.method}} {{.url }} with ? {{.user}} ? {{.message }} \"" err="context canceled"

Seems I found a working loki-config, things look smooth now. Thanks.

Seems I found a working loki-config, things look smooth now. Thanks.

Could you please share it?

Seems I found a working loki-config, things look smooth now. Thanks.

Could you please share it?

Sure, but give me some time. Busy days ... and I have to look it up and rethink the context.

Seems I found a working loki-config, things look smooth now. Thanks.

Could you please share it?

here my full loki-config. Maybe it helps.
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  instance_addr: <IP_ADDRESS>
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h

limits_config:
  split_queries_by_interval: 24h
  max_query_parallelism: 100

ruler:
  alertmanager_url: http://alertmanager:9093

query_scheduler:
  max_outstanding_requests_per_tenant: 4096

querier:
  max_concurrent: 100

frontend:
    max_outstanding_per_tenant: 4096

It definitely could be improved, I assume ... hints welcome.

here my full loki-config. Maybe it helps.

Thank you mate!


conditional buttons based on conditions

I'm using this for the Lesser Restoration spell for 5e, and trying to find a way to only have the conditions affecting the target show as button options. Currently have it set up that if they select a condition the target doesn't have, to call the macro again. Is there a way to have buttons that only show based on found conditions?
await Requestor.request  (    {      img:'false',      title: "Statuses:",      limit: Requestor.LIMIT.OPTION,      buttonData:        [          {                label: "Diseased",                command: async function()                  {                    if (typeof game.user.targets.effects.find(effect => effect.name == "Diseased") !== 'undefined')                         {                          game.user.targets.effects.find(effect => effect.name == "Diseased").delete();                          ChatMessage.create({content: 'Diseased has been removed'})                         } else {                                  ChatMessage.create({content: 'This status is not active'})                                  game.macros.find(macro => macro.name == "Lesser Restoration").execute()                                }                  },          },          {                label: "Blinded",                command: async function()                  {                    if (typeof game.user.targets.effects.find(effect => effect.name == "Blinded") !== 'undefined')                         {                          game.user.targets.effects.find(effect => effect.name == "Blinded").delete();                          ChatMessage.create({content: 'Blinded has been removed'})                          console.log(request)                         } else {                                  ChatMessage.create({content: 'This status is not active'})                                  game.macros.find(macro => macro.name == "Lesser Restoration").execute()                                }                  },          },          {                label: "Deafened",                command: async function()                  {                    if (typeof game.user.targets.effects.find(effect => effect.name == "Deafened") !== 'undefined')                         {                           game.user.targets.effects.find(effect => effect.name == "Deafened").delete();                           ChatMessage.create({content: 'Deafened has been removed'})                         } else {                                  ChatMessage.create({content: 'This status is not active'})                                  game.macros.find(macro => macro.name == "Lesser Restoration").execute()                                }                  },          },          {                label: "Paralyzed",                command: async function()                  {                    if (typeof game.user.targets.effects.find(effect => effect.name == "Paralyzed") !== 'undefined')                         {                          game.user.targets.effects.find(effect => effect.name == "Paralyzed").delete();                          ChatMessage.create({content: 'Paralyzed has been removed'})                         } else {                                  ChatMessage.create({content: 'This status is not active'})                                  game.macros.find(macro => macro.name == "Lesser Restoration").execute()                                }                  },          },          {                label: "Poisoned",                command: async function()                  {                    if (typeof game.user.targets.effects.find(effect => effect.name == "Poisoned") !== 'undefined')                         {                          game.user.targets.effects.find(effect => effect.name == "Poisoned").delete();                          ChatMessage.create({content: 'Poisoned has been removed'})                         } else {                                  ChatMessage.create({content: 'This status is not active'})                                  game.macros.find(macro => macro.name == "Lesser Restoration").execute()                                }                  },          },        ]     },  )

Hi there, Slapnuts. Pop into the discord, and we can figure something out.

Resolved on Discord.


ARROW-16674: [Java] C data interface: Reading as nioBuffer from imported buffer causes error

13249

 Quality gate: Passed
 Everything looks good
Details

 Quality gate: Passed
 Everything looks good
Details


Bump rabbitmq operator to v2.2.0

We cannot go higher as v2.3.0 pulls in new k8s and controller runtime versions we are not compatible with yet.
Also we cannot point to v2.2.0 directly as they are not properly releasing the v2 versions.

/hold we need to decide if we want this before the dev preview

/test infra-operator-build-deploy
prow did not re-run the job after the last push :/

https://review.rdoproject.org/zuul/build/47697b5618a045688b828d4c5fd7a1b4/log/job-output.txt :
"oc wait pod -n openshift-nmstate -l component=kubernetes-nmstate-webhook --for condition=Ready --timeout=300s", "pod/nmstate-webhook-6c7cff4dd4-pcpg8 condition met", "WORKERS='' \\", "bash scripts/gen-nncp.sh", "Please set WORKERS"], "uid": 1000}

/test infra-operator-build-deploy
I don't see the reason in the logs why the deploy failed. The OpenStackControlPlane CR is in Ready state.

recheck

We tagged v0.1.0 already so we can technically land this.


Remove e.printStackTrace()

I guess we could use a logger if we really want to print the stacktrace? Alternatively, we could add e as the cause of the RuntimeException?

Thanks! Unfortunately your change doesn't compile, so rather than going back and forth over a 1 line PR, I just made the change directly to main.

You did the right thing 👍


Is there a way to make one locale "extend" another?

If we want to change "localization" to "localisation" for en_gb but define all the "base" strings in the en_us locale, can we have a brief en_gb file with only the overridden values and have en_us be a fallback locale for when the user is using en_gb ?
I realize there's a feature to do this in js, but I'm asking if it can be done in a way where we don't have to specify a fallback string every time we render the word "localization" and just do something where we search for the string in the specific locale and then fall back to the base one if it doesn't exist

If we want to change "localization" to "localisation" for en_gb but define all the "base" strings in the en_us locale, can we have a brief en_gb file with only the overridden values and have en_us be a fallback locale for when the user is using en_gb ?
I realize there's a feature to do this in js, but I'm asking if it can be done in a way where we don't have to specify a fallback string every time we render the word "localization" and just do something where we search for the string in the specific locale and then fall back to the base one if it doesn't exist

You can do it overwritting loadLocaleFrom configuration prop, something like:
i18n.js
{
  // ...rest of config
  "loadLocaleFrom": async (lang, ns) => {
     const defaultValues = lang === 'en_gb'
      ? await  import(`./locales/en_us/${ns}.json`).then((m) => m.default)
      : {}

     return {
       ...defaultValues,
       ...(await import(`./locales/${lang}/${ns}.json`).then((m) => m.default))
      }
   },
}


Enabling WCAG tests

Description
Enabling most wcag tests, but disabling tests because 2 SVGs on the group page seems to be missing alt-attributes/title-tags. Passing the rest over to @Magnusrm (I tried adding title='' to these icons, but I've scratched my head on why that didn't work for too long now..
Related Issue(s)

https://github.com/Altinn/altinn-studio/issues/9273

Verification

Manual testing

[ ] I have tested these changes manually
[ ] Creator of the original issue (or service owner) has been contacted for manual testing
[x] No testing done/necessary

Automated tests

[ ] Unit test(s) have been added
[x] Cypress E2E test(s) have been added
[ ] No automatic tests are needed here
[ ] I want someone to help me make some tests

User documentation @ altinn-studio-docs

[ ] Has been updated

[x] No changes/updates needed

Changes/additions to component properties

[ ] Changes are reflected in both layout/index.ts and layout.schema.v1.json, and these are all backwards-compatible
[x] No changes made

Support in Altinn Studio

[ ] Issue(s) created for support in Studio

[x] This change/feature does not require any changes to Altinn Studio

Sprint board

[x] The original issue (or this PR itself) has been added to the Team Apps project and to the current sprint board

Thansk a bunch, @Magnusrm!! :godmode:


chore(master): release 0.4.3

:robot: I have created a release beep boop
0.4.3 (2023-08-30)
Bug Fixes

highlights: fix misaligned rendering in visual mode (#1401) (479f525)
options: force disable colorcolumn and winblend (de11cf3)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/vscode-neovim/vscode-neovim/releases/tag/v0.4.3 :sunflower:


swift-module-digester: use getEffectiveAccess() to get accessibility when checking ABI stability.

This allows us to include internal decls with @usableFromInline attribute, whose stored property changes can affect ABI.
This PR also re-generates ABI baseline after incorporating this enhancement.

@swift-ci please smoke test

@swift-ci please smoke test


[FR] Multiline (and rich?) yank reason

What's the problem this feature will solve?

Having a comprehensive explanation for yanking. I think it is important not to limit the maintainers with a very small input box. It would be useful to be able to show a descriptive message to the end-users too (related to FR #9837).
Describe the solution you'd like

I want <textarea> in the UI, not an <input> (the backend doesn't enforce single-line input here — I verified this by turning it into a textarea w/ DevTools in production).
It could then also be displayed on the individual release pages and only the first line (maybe) would appear in badge tooltips (as suggested in #9837).
Not sure if allowing renderable Markdown would be safe but, I'd at least make the links clickable there too.
Additional context

N/A

We likely need to set a maximum allowable length for this field on https://peps.python.org/pep-0592/ before being able to support this, as we likely don't want this to be completely unbounded.

I have submitted my pull request. Thank you!


[WFSSL-89] add warn log when no SSL lib is found.

Issue: https://issues.redhat.com/browse/WFSSL-83

@Skyllarr Please review, thanks!

@baranowb Looks good, but a total minor, which issue number should this be? it seems the issue number in the commit message is not right, since the https://issues.redhat.com/browse/WFSSL-89 is an already resolved release issue

@Skyllarr ^^


Lesson 53 hidden attribute

hidden attribute not working because it seems picture 'Reset' overrides it
in your index.css there is a typo at row 102

img,
picutre {

I had the same problem with 'hidden' attribute used with .  If you only use  they have to be in div's. Now you have to collect the image divs in a container or the @media with 45em goes nuts.  (Of course, tabs.js has to follow these mods as well.)  MDN says  tab works with hidden...? Best design is with , but how to get it to work.

I am overwhelmed and excited
nice project

Do a pr


Reset read pointer

Please reference https://github.com/swiftmailer/swiftmailer/issues/551 for description.

Thank you @rabas.


Auto arrange forced after show attributes changed even if for a table only

After manually arranging a diagram if I change the show attributes for a selected table from say none to show keys then the whole diagram is auto arranged.
I did see that a keep layout exists somewhere not sure if that would help if I can find it but basically I would simply like to not have arrangement changed after changing the show attributes for a table.
The only thing to do right now is to perhaps set show attributes for each table prior to any manual  arranging.

Thanks for the bug report!


Remote Desktop - not able to take on another machine

hi,
I can take remote desktop or control only if the server code is running on a host. No support to run the server code on another client and perform RAT operations.

@bhalajisw When you say running the Server on another client, are you talking about on a Virtual Machine?

@bhalajisw Also, could you elaborate a little more about the issue you are having?  More specific information such as 'Keyboard input isn't working' or 'The screen capturing isn't working'.

Hi,
I want server code to be able to run on any machine. Client connects to host. But i can connect all clients only when i run server app on that host alone. Server code should have flexibiluty to run and take remote desktop anywhere. Eg. Like teamviewer.

Set up a DNS https://freedns.afraid.org/ and point it towards your IP address

Hi d3agle,
This is my scenario - I want that client app to be run on several clients pointing to a server. Server app should be able to run on any client application and connect the remote machines.
Running Server application on any machine not only on the host machine.
A more simple is i want this remote desktop to be used like teamviewer like anywhere conecting.

xRAT doesn't work like this. The Server is meant to be run on a stationary host, which acts as a controller for the Clients. Just use a dynamic DNS service and point your domain to other machines if you want to switch the host.


[BUG] When player joins for the first time database connection breaks

What's the bug
When a player joins for the first time the database tries to fetch data from the data set that is not created or is empty
Cause:
All join events that require to get the player ID.
What's expected to happen
Everything to run as normal without getting exceptions.

Found issue#45 while testing and fixing this issue


Elixir-based tests fail to run with Elixir 1.15

For the latest version of CouchDB main (as the time of creating this ticket), it is not possible run the Elixir-based integration tests with Elixir 1.15.
Consider the following log where Elixir is 1.15.4 is used (via asdf, built for OTP 25, and CouchDB is also built with that version):
% make elixir-suite
* creating /Users/gaborpali/.asdf/installs/elixir/1.15.4-otp-25/.mix/elixir/1-15/rebar3
* creating /Users/gaborpali/.asdf/installs/elixir/1.15.4-otp-25/.mix/archives/hex-2.0.6
Resolving Hex dependencies...
  Also, for further invocations, the command simply hangs.

Hi @pgj!
I've been checking this issue.
Initially I had the same error related to ibrowse. I fully cleaned up the elixir environment and then a new issue appears with the jiffy module.
Could you try if it is the same for you?
1 - Clean CouchDB build
make clean
2 - Clean up elixir build artifacts
 mix clean --deps
 rm src/*/_build
 rm _build

3 - Rebuild CouchDB and test
 make couch elixir

I get this kind of errors
 1) test Basic reduce functions (ReduceTest)
     test/elixir/test/reduce_test.exs:16
     ** (UndefinedFunctionError) function :jiffy.decode/2 is undefined (module :jiffy is not available)
     stacktrace:
       (jiffy 1.0.9) :jiffy.decode("{\"ok\":true}\n", [:return_maps])

If it is the case, I think the problem is related to this change (https://hexdocs.pm/elixir/1.15.4/changelog.html#potential-incompatibilities)
By adding prune_code_paths: false  to the project section in mix.exs file solves the issue for me, around line 49 on the file.
  def project do
    [
      app: :couchdbtest,
      version: "0.1.0",
      elixir: "~> 1.13",
      lockfile: Path.expand("mix.lock", __DIR__),
      deps_path: Path.expand("src", __DIR__),
      build_path: Path.expand("_build", __DIR__),
      compilers: [:elixir, :app],
      start_permanent: Mix.env() == :prod,
      build_embedded: Mix.env() == :prod,
      deps: deps(),
      consolidate_protocols: Mix.env() not in [:test, :dev, :integration],
      test_paths: get_test_paths(Mix.env()),
      elixirc_paths: elixirc_paths(Mix.env()),
      prune_code_paths: false,
      test_coverage: [
        tool: CoverTool,
        dirs: get_coverage_paths(),
        type: "html"
      ]
    ]
  end

Seems to be a temporary solution but unlock the build using Elixir 1.15. I'll prepare a PR with this change.

Hi @jjrodrig :  Yes, this issue sometimes happens with jiffy as well.  I have experimented with the prune_code_paths compiler flag too, but it looks like I put that to a wrong place because I could not see any improvements.  But it is good that I was proven to be wrong and I am happy to test your PR.

Jiffy is used for encoding/decoding requests/responses during testing. It is a core element in the elixir test suite.
I was checking what is wrong with this dependency but I din't found anything.
Jiffy is properly declared as a local elixir dependency in mix.exs file.
defp deps() do
    deps_list = [
      {:junit_formatter, "~> 3.0", only: [:dev, :test, :integration]},
      {:httpotion, ">= 3.1.3", only: [:dev, :test, :integration], runtime: false},
      {:excoveralls, "~> 0.12", only: :test},
      {:b64url, path: path("b64url")},
      {:jiffy, path: path("jiffy")},
      {:jwtf, path: path("jwtf")},
      {:ibrowse, path: path("ibrowse"), override: true},
      {:credo, "~> 1.6.4", only: [:dev, :test, :integration], runtime: false}
    ]
 ...

MIX_ENV=integration mix deps responds that dependency is ok
 jiffy 1.0.9 (/Users/juanjo/projects/couchdb/src/jiffy) (rebar3)
  ok

Elixir 1.15 release notes indicates this potential incompatibility.

Due to the code path pruning, if you have an application or dependency that does not specify its dependencies on Erlang and Elixir application, it may no longer compile successfully in Elixir v1.15. You can temporarily disable code path pruning by setting prune_code_paths: false in your mix.exs, although doing so may lead to runtime bugs that are only manifested inside a mix release

In our case, if we set prune_code_paths: false tests works, but if we unset this property tests compile but fail to load jiffy at runtime. Any clue about what to check will be apreciated.

jiffy uses a couple of NIFs -- maybe that is related?  I have faced similar problems when I tried to use jiffy in a project where I wanted to do rebar3 escriptize.

Thanks for fixing Elixir 1.15! It's nice to be up-to-date.
One downside I think is it broke the deb package building in the full (main) CI. I noticed it in the PR: https://github.com/apache/couchdb/pull/4726#issuecomment-1682446731
It seems to complain about missing hex and trying to install it to build junit_formatter. Wonder if it's because we removed _build or ran clean --deps while before we relied on packaging those in the dist tarball (perhaps by accident).

Hi @nickva
It seems that the packaging process depends on the elixir environment but it is not prepared as we cleaned it completely. Some step is missing to recover it but i don't know where.
As a quick fix I can separate the elixir clean from the main clean target. So the new clean steps will not interfere in the current CI.

Thanks @jjrodrig, yeah maybe a separate clean step would work.
To verify it would pass or not a pr branch that starts with jenkins- prefix would end up running both the quick PR CI and the full main one. That can help with checking if it would work or not without having to figure out the couchdb-pkg locally.

I gave it a try in https://github.com/apache/couchdb/pull/4740 and it seems to have restored deb package builds. Unfortunately that means not cleaning the _build dirs and deps so may need another look over it. But at least for now it seems we can use Elixir 1.15.

Thanks @nickva !  Yeah, I agree that the package building should be fixed.  But the main build is at least unbroken.

Thanks @nickva
I think we should have a complete cleanup target but until we solve the CI issue I'll separate the elixir clean from the main clean in a new PR.
It looks like that we need to run elixir-init target during dist execution but I don't know how to test it.

@jjrodrig one way to check dist behavior is to make a draft pr with a branch which starts with jenkins-... then we'd run the full CI which makes packages as the last step.
It can be done locally as well:
After ./configure && make if you run make dist it should create a .tar.gz tarball with all the sources. This tarball will then be used as a source from which we build the .deb package.
To build the deb package could clone our bullseye CI image:
docker run -it apache/couchdbci-debian:bullseye-erlang-<IP_ADDRESS>

Copy the dist tarball to it:
docker cp ./apache-couchdb-3.3.2-d5701f4.tar.gz $docker-container-name:/tmp

In the container then in tmp unpack the tgz into /tmp/couchdb directory:
mkdir -p couchdb
tar -xf ./apache-couchdb-3.3.2-d5701f4.tar.gz -C ./couchdb

Then alongside it also in /tmp clone couchdb-pkg repo https://github.com/apache/couchdb-pkg
So tmp/ would have
/tmp/
  couchdb
  couchdb-pkg
  ...

Then from couchdb-pkg run make:
   cd couchdb-pkg
   make

It should build deb then:
jenkins@a52ac07fc336:/tmp/couchdb-pkg$ make
make `bin/detect-target.sh`
make[1]: Entering directory '/tmp/couchdb-pkg'
cp debian/control.in debian/control
sed -i 's/%SPIDERMONKEY%/libmozjs-78-0/g' debian/control
sed -i 's/%SPIDERMONKEY_DEV%/libmozjs-78-dev/g' debian/control
echo 'SM_VER = 78' > debian/sm_ver.mk
rm -rf /tmp/couchdb/apache-couchdb-3.3.2-d5701f4/debian
cp -R debian /tmp/couchdb/apache-couchdb-3.3.2-d5701f4
cd /tmp/couchdb/apache-couchdb-3.3.2-d5701f4 && dch -v 3.3.2-d5701f4~bullseye "Automatically generated package from upstream."
cd /tmp/couchdb/apache-couchdb-3.3.2-d5701f4 && dpkg-buildpackage -b -us -uc
dpkg-buildpackage: info: source package couchdb
dpkg-buildpackage: info: source version 3.3.2-d5701f4~bullseye
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by "CouchDB Developers"<EMAIL_ADDRESS>dpkg-buildpackage: info: host architecture amd64
 dpkg-source --before-build .
 ...

In the end we should end up in with a .deb package in the pkgs directory:
$ ls pkgs/couch/debian-bullseye/*.deb
 pkgs/couch/debian-bullseye/couchdb-dbgsym_3.3.2-d5701f4~bullseye_amd64.deb
 pkgs/couch/debian-bullseye/couchdb_3.3.2-d5701f4~bullseye_amd64.deb

Thanks @nickva for the detailed explanation! I managed to test it locally.
It seems that the dpkg-buildpackage starts running the clean target and then build couchdb.
The command @mix clean --deps fails as the mix environment is not initialized.
We can safely ignore the error in mix clean as elixir is not required to complete de package build.
Do you think could be an option to run the mix cleanning ignoring the errors (@-mix clean --deps)?

@jjrodrig apologies, I just noticed missed your comment! I am sorry.
Nice find. Yeah, let's try running @-mix clean --deps then, that makes sense. So we will get a better clean target and won't fail for package builds. If you get a chance can try to make a PR with a jenkins- branch name prefix and that way the package builds will run.

Closing this, fixed with fc05f26 for 3.3.x and 52ef014 for main.


Cannot login to any of the portals after configuring IS as KM using DB Sharing

Description
After configuring IS as KM using DB sharing and then trying to login to any of the portals, the UI Page gets blank and redirects to
https://localhost:9443/devportal/services/auth/callback/login?error_description=Server+error+occurred+while+performing+authorization&state=%2F&error=server_error
No errors are logged in the terminals.
A potential reason could be changes mentioned in https://github.com/wso2/product-is/issues/13946
Steps to Reproduce

Follow the steps in [1] to configure IS as a KM using DB Sharing.
Login to any of Publisher, Devportal, Admin portals and also IS portals (console, myaccount)

[1] https://apim.docs.wso2.com/en/latest/install-and-setup/setup/distributed-deployment/configuring-wso2-identity-server-as-a-key-manager/
Affected Component
APIM
Version
APIM 4.2.0 M1 testing pack
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

The issue here is that the Table 'IDN_OAUTH2_USER_CONSENT' doesn't exist.


⚠ Elibs has degraded performance

In 9204aca, Elibs (https://elibs.unmer.ac.id) experienced degraded performance:

HTTP code: 200
Response time: 10331 ms

Resolved: Elibs performance has improved in 78fc105.


WIP: Bug fix #6

Fixed disabled issue by resetting the error state before performing the async call to both login and register routes.
Before being merged, this branch needs to be rebased after https://github.com/CptToucan/waryes/pull/7 is merged.


Problem calling JS functions from Rust with WasmerJS/WASI in the browser

Summary
I'm trying to build a browser WASI app using WasmerJS and Rust. I can call parameterless Rust functions from JS and vice versa, but as soon as the Rust imports a JS function which has parameters I have a problem. This is with a WasmerJS/WASI app and the Rust compiled to target wasm32-wasi.
I'm not using wasm-pack or cdylib because I'm coming from a WasmerJS/WASI direction, and am not sure how to do this for target wasm32-wasi.
Additional Details
The working example is on branch main and the error on wasm-bindgen-jsparams of https://github.com/happybeing/svelte-wasi-with-rust
I have a test Svelte app which uses WasmerJS/WASI in the browser, and a Rust subsystem which can share the wasmFS filesystem with the App JavaScript. I've added bindings and can call Rust/WASI functions from the App JS and vice versa, so long as I leave the Rust main(){} empty.
When I add parameters to my test JavaScript function and try to call this from Rust I get an error on WebAssembly.instantiate() in the browser console:
App.svelte:73 Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #2 module="./wasi-example_bg.js" error: module is not an object or function
    at startWasiTask

This following import only appears when the Rust is importing a JS function which has parameters, and seems to be the cause of the error:
(import "./wasi-example_bg.js" "__wbg_jstestn_2988839aa0c9917f" (func $wasi_example::js_test_n::__wbg_jstestn_2988839aa0c9917f::h573713d50e0d1da7 (type $t2)))

JavaScript being called from Rust (test.js):
export function js_test() {
    console.log("hello from js_test()")
}

export function js_test_n(n) {
    console.log("hello from js_test_n(): ", n)
}

The Rust in main.rs:
#[wasm_bindgen(module = "test")]
extern "C" {
    fn js_test();
    fn js_test_n(n: u32);
 }

#[wasm_bindgen]
pub fn rust_js_test() {
    println!("Rust calling js_test()...\n");
    js_test();

    println!("Rust calling js_test_n(123)...\n");
    js_test_n(123);
}

This generates wasm-example_bg.js:
import { js_test_n } from 'test';
import * as wasm from './wasi-example_bg.wasm';

function logError(f) {
    return function () {
        try {
            return f.apply(this, arguments);

        } catch (e) {
            let error = (function () {
                try {
                    return e instanceof Error ? `${e.message}\n\nStack:\n${e.stack}` : e.toString();
                } catch(_) {
                    return "<failed to stringify thrown value>";
                }
            }());
            console.error("wasm-bindgen: imported JS function that was not marked as `catch` threw an error:", error);
            throw e;
        }
    };
}

export const __wbg_jstestn_2988839aa0c9917f = logError(function(arg0) {
    js_test_n(arg0 >>> 0);
});

Wow, it is thrilling to see how this project is coming along.
This is a total shot in the dark here because I don't understand what wasm-bindgen is doing; but it seems like you are expected to import the generated wasi-example_bg.js somehow. Right now your JS side (in App.svelte) just imports test, in both branches.
Then you probably need to pass that module to WASI as imports, smt along the lines of:
imports = {'./wasi-example_bg.js': await import('./wasi-example_bg.js')}

Wow, it is thrilling to see how this project is coming along.
This is a total shot in the dark here because I don't understand what wasm-bindgen is doing; but it seems like you are expected to import the generated wasi-example_bg.js somehow. Right now your JS side (in App.svelte) just imports test, in both branches.
Then you probably need to pass that module to WASI as imports, smt along the lines of:
imports = {'./wasi-example_bg.js': await import('./wasi-example_bg.js')}

Yes it looks likee this is missing an import? I'm not sure how things are set up in the environment that you're using but I don't think that this is an issue with wasm-bindgen itself, so I'm going to close. Unfortunately I can't offer too much help of using wasm-bindgen in nonstandard environments because there's so many variables in play.

Yes it looks likee this is missing an import? I'm not sure how things are set up in the environment that you're using but I don't think that this is an issue with wasm-bindgen itself, so I'm going to close. Unfortunately I can't offer too much help of using wasm-bindgen in nonstandard environments because there's so many variables in play.

@alexcrichton thanks for reviewing this and I agree it doesn't belong here so have resumed it on this wasmerJS issue. If you can have a look at that comment I'd appreciate any pointers on how wasm-pack + wasm-bindgen handles this. I'm thinking that if I can see how it happens there I might be able to figure out how to get it to work with wasmerJS/WASI, but I don't yet understand much about how either system, or wasi itself works under the hood and I'm not sure where to look.

@alexcrichton thanks for reviewing this and I agree it doesn't belong here so have resumed it on this wasmerJS issue. If you can have a look at that comment I'd appreciate any pointers on how wasm-pack + wasm-bindgen handles this. I'm thinking that if I can see how it happens there I might be able to figure out how to get it to work with wasmerJS/WASI, but I don't yet understand much about how either system, or wasi itself works under the hood and I'm not sure where to look.


fix(library/type_context): properly undo tmp mvars assignments

@kha In principle, we should not override assigned meta variables. Before merging this PR, I want to understand in which circumstances this is happening, and whether it is a bug or not. My concern is that the "override" may be a bug. Could you send me an example that triggers the assignment override?

@kha The override can happen when compressing the assignment. Example: subst[?x] = t, then we instantiate metavars in t and want to update the assignment. This "compression" is an optimization, and it is not clear whether it is useful in tmp mode. So, if this is the only case where we can override the assignment, I suggest we disable "compression" in tmp mode.

Would this be the location of the compression? I tried to skip the assignment when !in_tmp_mode(), but it didn't seem to fix my n-queens example.

It is performed in the following two places:
https://github.com/leanprover/lean/blob/8ea2bc08cb03b49f61db90c28115dfa9f4d09410/src/library/metavar_util.h#L89
https://github.com/leanprover/lean/blob/8ea2bc08cb03b49f61db90c28115dfa9f4d09410/src/library/metavar_util.h#L137

Indeed, the following commit also fixes the problem: https://github.com/Kha/lean/commit/36daf0c8660196e94f53a4de761713c2acdfbc2f
I haven't run it through the test suite yet.

We will merge #1526


change current date on sunset time

Hello,
i want to change current date on sunset time so please help me out.
example:-
suppose today date is 01/12/2015 and next date change date on 01/12/2015 at time of 7pm.

U can use UILocalNotification, and get notified in AppDelegate
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.fireDate =yourSunsetTime;
    notification.repeatInterval = NSCalendarUnitDay;
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    NSLog(@"notifify");
    // Post NSNotification to set calendar 'today'
}

so can we change calendar date from notification notification fire date?

In application:application didReceiveLocalNotification:notification, use NSNotificationCenter to post another notification to your viewController. When you receive the NSNotification in your viewController, set calendar.today.

ok thanks


Porting to Qt6/KF6

Hi / Cześć
I'm sending below changes with hope it will make the project alive again:
https://github.com/arturbac/kdevcxx_with_ai/pull/8
It compiles and plugin appears in the latest Kdevelop:  6.0.240801 (24.08.1)

... but I can't find a menu option in Kdevelop

Sure thx for Your work, I will check soon PR.
I lost a bit interest after switching to claude with artifacts it is much more comfortable that direct call to openapi.
But sure it is wort at least upgrade it to qt6.

switching to claude with artifacts it is much more comfortable that direct call to openapi.

Seems like other IDE are starting to using AI:

Qt Creator

Zed

VS Code

... but Kdevelop is the best, so this is how I found this repo.
However I couldn't find any "official" plans to add such a functionality/plugin to it.


Remove version: Wondershare.Filmora version <IP_ADDRESS>3

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://download.wondershare.com/cbs_down/filmora_64bit_11.7.7_full846.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 911)


Latest beta introduce new python errors

With the latest beta as of today, the following errors are showing a lot in the logs.
This error originated from a custom integration.
Logger: homeassistant
Source: custom_components/lifx/light.py:345
Integration: LIFX (documentation)
First occurred: 17 January 2023 at 21:49:02 (669 occurrences)
Last logged: 01:09:16
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 168, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 316, in _async_refresh
self.async_update_listeners()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 121, in async_update_listeners
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 381, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 556, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 599, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 986, in state_attributes
color_mode = self._light_internal_color_mode
File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 812, in _light_internal_color_mode
if (color_mode := self.color_mode) is None:
File "/config/custom_components/lifx/light.py", line 345, in color_mode
has_sat = self.bulb.color[HSBK_SATURATION]
TypeError: 'NoneType' object is not subscriptable
And
Log Details (ERROR)
Logger: homeassistant.components.light
Source: helpers/entity_platform.py:536
Integration: Light (documentation, issues)
First occurred: 17 January 2023 at 21:48:33 (14 occurrences)
Last logged: 17 January 2023 at 21:48:33
Platform lifx does not generate unique IDs. ID 00:00:00:00:00:00 already exists - ignoring light.lifx_00_00_00_00_00_00
And also this one
Log Details (ERROR)
Logger: homeassistant.components.sensor
Source: custom_components/lifx/coordinator.py:150
Integration: Sensor (documentation, issues)
First occurred: 17 January 2023 at 21:48:33 (15 occurrences)
Last logged: 17 January 2023 at 21:48:33
Error while setting up lifx platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/lifx/sensor.py", line 47, in async_setup_entry
async_add_entities([LIFXRssiSensor(coordinator, RSSI_SENSOR)])
File "/config/custom_components/lifx/sensor.py", line 104, in init
self._attr_native_unit_of_measurement = coordinator.rssi_uom
File "/config/custom_components/lifx/coordinator.py", line 150, in rssi_uom
if AwesomeVersion(self.device.host_firmware_version) <= RSSI_DBM_FW:
File "/usr/local/lib/python3.10/site-packages/awesomeversion/awesomeversion.py", line 202, in le
return self.eq(compareto) or self.lt(compareto)
File "/usr/local/lib/python3.10/site-packages/awesomeversion/awesomeversion.py", line 176, in lt
raise AwesomeVersionCompareException(
awesomeversion.exceptions.AwesomeVersionCompareException: Can't compare  and <SimpleVer 2.77>

Thanks @mark007. I know what the problem is, I think. Will try and get an updated version out ASAP.

Thanks a lot. If you would prefer separate issues written for each log I can do that. As I pasted a lot in the one ticket here :)

Nah, it's fine. It's all caused by the same thing.