Context menu is transparent after latest FF update

After the latest firefox updates, the context menu went completely transparent, making the context menu unreadable at most occasions.
Examples from Firefox Developer Edition 72.0b2

Sorry for the late response. I assume this is a Firefox bug, but on my end I fixed it by toggling the dark and light modes in the Settings application while Firefox is open.
I use this on Firefox Nightly and no updates so far have broken it (they are usually only transparent for me when I try this out with a fresh installation of Windows and a fresh profile of Firefox).
Some people report that not working, so you can do this in the meantime (assuming you want the dark theme)
Remove the @media (prefers-color-scheme: light) section (all lines 16-27), and delete line 3 and its brackets (line 4 and 14) and the context menus will be dark using my theme if you want to try it again.

Neither of those seemed to work for me, broke with FF72.

Commenting the @namespace line will solve the issue.


Replace PositiveSmallIntegerField against PositiveIntegerField

Description
In performing a migration towards version 4 I encountered a "value to big for small integer" exception.
This is because migration 0026 adds a temporary field for title_id. In my case some values do not fit in there.

Hi @jrief!
I fear the issue goes further than just changing the migration. The position field of the CMSPlugin model in both v3 and v4 is a PositiveSmallIntegerField. The restrictions caused by the Small part are different, however:

On v3 it implies that a plugin can have at maximum 32767 children. The number of plugins in a placeholder is not limited.
On v4 it implies that a placeholder can hold at maximum 32767 plugins (which obviously is a much stronger restriction). Considering how the CTE work, it even means, you in practice can work with "only" 16383 max plugins in a placeholder. (When inserting the CTE temporarily move plugins to positions behind the last current plugin position.)

It seems you have more than 32767 plugins in at least one of your placeholders. Could you please double-check?
I do not want to discuss the usability effects of having so-and-so many plugins in a placeholder, but generally feel that saving a few bytes in the DB should not be the reason for the restriction.
@marksweb @Aiky30 Does it make sense to change the position field to a regular PositiveIntegerField? To not block the migration, then all CMS v4 migrations should immediately also move from PositiveSmallIntegerField to SmallIntegerField.


Process per-chain block removal sequentially

Right now JobRunner::remove uses FuturesUnordered to process every chain concurrently. Each chain though uses an unbounded amount of space during the deletion process though, so I would prefer to process the chains in sequence.
Switch from FuturesUnordered to a simple for loop.

fixed


Use symfony/clock in DocumentEmbedder

Closes #80

In the next step I would like to move away from the mocks

Ready to merge from my side


Update celery to 4.2.2

This PR updates celery from 4.2.1 to 4.2.2.

Running the bot with an API key allows it to query pyup.io's API for changelogs and insecure packages. This is highly recommended for production use. Learn More

Should be fixed when Celery 4.3 is released: https://github.com/celery/celery/blob/6a171440208ae9fbb8c0d821be65e5fc0b26add2/requirements/default.txt#L3

Replaced by #2008


Display Agile Export prices.

As above - support Agile Export as an additional mode. Perhaps add a new configuration option for agile_price mode which is either "import" or "export".

Closed by 89bddc80f6cc5e677304f57ac51fba2bd94b861d

89bddc80f6cc5e677304f57ac51fba2bd94b861d


tf-nightly: Cannot import name 'tensorflow' from 'opt_einsum.backends'

pip install tf-nightly --> pip install tf-nightly-gpu, or in reverse order, fails in a fresh Anaconda virtual environment w/ error shown below - install/uninstall steps also shown. Any workarounds?

Installation:

Clone Anaconda base environment (which doesn't have TF or Keras) as tf3_env
Delete any files/folders in env w/ name substring "tensorflow", "nightly", or "keras" (just in case)
Run Anaconda Powershell Prompt:

conda activate tf3_env
conda clean --all (removes TF, Keras, cudatoolkit, cudnn, others from Anaconda/pkgs)
pip uninstall grpcio
pip install grpcio (tf-nightly asks for >=1.24)
pip install tf-nightly-gpu

Run Spyder, import tensorflow --> ERR
Run Anaconda Powershell Prompt:

pip install keras
pip install tf-nightly

Run Spyder, import tensorflow --> ERR

Environment:

Win-10 OS, GTX 1070, i7-7700HQ 2.8 GHz CPU
CUDA 10.1.243, cuDNN 7.6.4, Python 3.7.5, Anaconda 11/2019, Spyder 3.3.6

ERR: Full Error Trace (error is printed repeatedly and can only be stopped by restarting the kernel -- restarting the kernel only stops the error, but doesn't restart the kernel, unless restarted a second time)
File "D:\Anaconda\envs\tf3_env\lib\site-packages\IPython\extensions\autoreload.py", line 538, in post_execute_hook
  _, pymtime = self._reloader.filename_and_mtime(sys.modules[modname])
File "D:\Anaconda\envs\tf3_env\lib\site-packages\IPython\extensions\autoreload.py", line 184, in filename_and_mtime
  if not hasattr(module, '__file__') or module.__file__ is None:
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
  module = self._load()
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow\__init__.py", line 44, in _load
  module = _importlib.import_module(self.__name__)
File "D:\Anaconda\envs\tf3_env\lib\importlib\__init__.py", line 127, in import_module
  return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\__init__.py", line 46, in <module>
  from ._api.v2 import compat
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\__init__.py", line 39, in <module>
  from . import v1
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\__init__.py", line 32, in <module>
  from . import compat
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\__init__.py", line 39, in <module>
  from . import v1
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\v1\__init__.py", line 29, in <module>
  from tensorflow._api.v2.compat.v1 import app
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\__init__.py", line 39, in <module>
  from . import v1
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\__init__.py", line 32, in <module>
  from . import compat
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\__init__.py", line 39, in <module>
  from . import v1
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\v1\__init__.py", line 35, in <module>
  from tensorflow._api.v2.compat.v1 import debugging
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\debugging\__init__.py", line 10, in <module>
  from . import experimental
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\_api\v2\compat\v1\debugging\experimental\__init__.py", line 10, in <module>
  from tensorflow.python.debug.lib.dumping_callback import disable_dump_debug_info
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\python\debug\lib\dumping_callback.py", line 31, in <module>
  from tensorflow.python.debug.lib import debug_events_writer
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\python\debug\lib\debug_events_writer.py", line 24, in <module>
  from tensorflow.python import _pywrap_debug_events_writer
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
  module = self._load()
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow\__init__.py", line 44, in _load
  module = _importlib.import_module(self.__name__)
File "D:\Anaconda\envs\tf3_env\lib\importlib\__init__.py", line 127, in import_module
  return _bootstrap._gcd_import(name[level:], package, level)
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\python\__init__.py", line 83, in <module>
  from tensorflow.python.ops.standard_ops import *
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\python\ops\standard_ops.py", line 48, in <module>
  from tensorflow.python.ops.special_math_ops import *
File "D:\Anaconda\envs\tf3_env\lib\site-packages\tensorflow_core\python\ops\special_math_ops.py", line 30, in <module>
  import opt_einsum
File "D:\Anaconda\envs\tf3_env\lib\site-packages\opt_einsum\__init__.py", line 9, in <module>
  from .contract import contract, contract_path, contract_expression
File "D:\Anaconda\envs\tf3_env\lib\site-packages\opt_einsum\contract.py", line 10, in <module>
  from . import backends
File "D:\Anaconda\envs\tf3_env\lib\site-packages\opt_einsum\backends\__init__.py", line 7, in <module>
  from .dispatch import (get_func, has_einsum, has_tensordot, build_expression, evaluate_constants, has_backend)
File "D:\Anaconda\envs\tf3_env\lib\site-packages\opt_einsum\backends\dispatch.py", line 13, in <module>
  from . import tensorflow as _tensorflow

ImportError: cannot import name 'tensorflow' from 'opt_einsum.backends'
(D:\Anaconda\envs\tf3_env\lib\site-packages\opt_einsum\backends\__init__.py)

Are you able to import TF in the anaconda prompt after installation?

@yacoder No, same error

You may try installing TF in virtual environment using conda create
See (Create virtual environments for python with conda)[https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/]

@ymodak It's what I did, as shown under "Installation" - my base env is clean, so creating a new one would be same as cloning base env

Same error for tf-nightly 2.2.0; any resolution?

So, site-packages\opt_einsum\backends\tensorflow.py was missing - adding it from the tf2 virtual environment made the error go away. Unsure if things are stable now, will close issue if they are.

Severe performance degradation relative to 2.1-stable: one LSTM(500, return_sequences=True) layer runs 15.6x slower.

Nevermind, didn't know tf-nightly-gpu is still needed for GPU.


Fix l2vlan igmp snooping enabled not being configurable

Change Summary
Seems like with the introduction of #897, the tenant igmp snooping enabled option was changed correctly but this was overlooked.
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes)
[ ] Documentation content changes
[ ] Other (please describe):

Related Issue(s)
Component(s) name
arista.avd.eos_designs
Proposed changes

How to test

Checklist:

[X] My code has been rebased from devel before I start
[X] I have read the CONTRIBUTING document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have updated molecule CI testing accordingly
[X] All new and existing tests passed (pre-commit, make linting and make sanity-lint).

@melkypie Thanks for catching this. Can I ask you to add test coverage in molecule since it must be missing (your change did not give any molecule output changes). We should have one l2vlan with false and another with true and the rest unset.


BFF code cleanup.

Inorder for me to make changes to talk to the new API, I felt the existing code/setup needs some cleanup. In that process I had made the following changes.

Created vagrant configuration so that we can run grafana with blueflood finder code pointing to local blueflood run.
Added logging capability. I cant deal with print statements.  Also figured out a way to enable these logs in staging/prod servers.
Fixed the current enum bug that exists in prod while populating drop down for enum metrics.
Organized dependencies(setup.py, test_requirements.txt).
Wrote brand new tests to capture the behavior of finder for various scenarios.

I learned a little bit about the grafana server setup that happens with the heat template. I had documented all that info. I would appreciate if you can review the wiki as well along with this.
[https://one.rackspace.com/display/cloudmetrics/Blueflood+Finder+grafana+server+internal+details](Grafana server setup with blueflood finder)

Other than clarifying my vagrant question, lgtm.

me too... looks good other than the logging clarifications.


Light version of boilerplate

Without Redux support and related libraries. Would be handy to have in some development cases.

There is a a lot of react-boilerplate without redux out there so I don't think that this enhancement is necessary

@Ouadie Yes indeed. Apart from that i noticed, that personally use more and more React+Redux combination, thus will keep these two in my upcoming update to the boilerplate as well.


CSS Flex gallery Project

Hey I made CSS Flex gallery Project Which Is Very Good!
This Project is very Helpfull,
I Make This Project With the help of HTML&CSS.
The CSS Code are Available in very well mannered! & Easy to understand!

Add some SS or videos

Add some SS or videos

Sure!
https://user-images.githubusercontent.com/88212870/162807959-34375ecd-ea69-4da8-83a7-466a84ff3d2d.mov

@kalashvasaniya currently we are not assigning any new project.

@kalashvasaniya currently we are not assigning any new project.

MAke this last one pls.


Use Prisma @updateAt signature instead of manually doing

We have a few updateAt columns in our database schema. To avoid boilerplate codes Prisma has a sophisticated solution for this particular problem. They made an @updateAt signature: automatically stores the time when a record was last updated. If you do not supply a time yourself, the Prisma Client will automatically set the value for fields with this attribute.
Prisma Reference documentation: https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#updatedat

Hi @polaroi8d, saw your post in Hacktoberfest Discord.
I'm interested in prisma, can I work on this issue?

Hello @Kit-p, for sure 👋🏻 If you have any questions hit me up in our Discord server.


database config 'mysql.version' and 'mysql.server_version' used in the same way

Laravel Version: 8.83.5
PHP Version: 8.0.14
Database Driver & Version: MySQL (any version)

Description:
Our customer uses an Azure MySQL database, and automatic version detection for those databases is not implemented in DBAL. As a result we had to add an option to set the server version in the database config. However I found that the config database.mysql.version and database,mysql.server_version both have to be set.
This line uses server_version:
https://github.com/laravel/framework/blob/bb071a97b4cc14ab66605fea30c6d3766d474a77/src/Illuminate/Database/Connection.php#L1011
and this line uses version:
https://github.com/laravel/framework/blob/bb071a97b4cc14ab66605fea30c6d3766d474a77/src/Illuminate/Database/Connectors/MySqlConnector.php#L200
I couldn't find anything about it in the documentation, and as far as I can tell the two fields should always have the same value. It's really counterintuitive that you would need to fill out both of these fields.

Heya, Isn't this because the doctrine connection can be a different server version? I think it's best that if you want to optimize something here that you attempt a PR, thanks.


Adding New link

https://github.com/dfir-iris/iris-web
Here is a collaborative plateform for Incidence Response that you could maybe include in one of the categories

Added in https://github.com/cugu/awesome-forensics/commit/6f61d766778520e415c5672489dac2a2cda1aa30


IRGen: Private witness table utilities should have private linkage.

@swift-ci Please smoke test and merge


$size only seems to support a number, not an object with operators

This is a support question/feature request :)
I need to make sure that the length of an array is in a specific range, and I tried doing something like:
> require('sift')({yeah: {$size: {$gt: 1}}})({yeah: [123, 456]})
false

The $size operator only seems to match when passing a number:
> require('sift')({yeah: {$size: 2}})({yeah: [123, 456]})
true

Is that an oversight, or is it supposed to work like that? I don't have a mongo setup, so I can't easily test if it's supported by the "original" implementation.

Found a mongo shell on the web (https://www.tutorialspoint.com/mongodb_terminal_online.php), and it seems like it's not supported:
> db.foo.find({tags: {$size: {$gt: 1}} })
Error: error: {
        "ok" : 0,
        "errmsg" : "$size needs a number",
        "code" : 2,
        "codeName" : "BadValue"
}

Never mind, then ;)


Feature/android/add mba dependency

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: pawelByszewski:white_check_mark: mikolak:x: Pawel ByszewskiPawel Byszewski seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Flood the swamps.  They now show up on the map as marshes.

Creating as a draft, as a reminder to clean up duplication between this one and forest/jungle.  It is fully functional for marsh displaying, so if you're hankering for marshes, you can take it for a spin.

Noticed that the "isHilly" method was blowing up for hills next to the edge of the map.  Traced it to a non-null default name for TerrainType.  Couldn't figure out why it didn't blow up on Development.  Eventually realized that the default was not null on Development.  Fired up git blame, realized I fixed that 24 minutes before the first commit to this branch.
Yeah, branches hanging out for a month is annoying.  Things like that happen as a result.  If the turnaround time were a few days, that investigation would have never had to happen.
Merging now to avoid future wild goose chases, and since there's already approval.


Math for returning to higher offset items appears off

Your own demo does this as well, though less reliably than my own work with more items and a larger offset. Observe this recording:

You can see the issue happens twice; once when I click "Section 2" then again when I click "Section 1". Also note as I click "Section 3" afterward, it momentarily jumps to highlight "Section 1" before sliding down through the other items.
It appears as though the window needs to scroll up an additional pixel or three to trigger activation of the correct menu item. It only occurs when scrolling up; I have never seen the issue when clicking an item that scrolls down.

Hi @isolationism!
Thank you for bringing this to my notice.
I have fixed this issue on Demo2 by adding an offsetBottom.
For your own work you can try the following:

Reduce the value of scrollThrottle.
If your page contains a navbar a header don't forget to add the following CSS

html {
  scroll-padding-top: 120px;
}

Try using offsets.

Let me know if this solved your problem!


[ ARGMAX ] Fix bug about argmax

Need to fix to calcuate argmax in tensor
Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #819. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.


chart not updating

`import React from 'react';
import { Chart } from 'react-charts'
function MyChart(props) {
// Use any data object you want
const data = React.useMemo(
    () => props.data,
    [props.data]
  )

  const axes = React.useMemo(
    () => props.axes,
    [props.axes]
  )

return (
  <div
    style={{
      width: '400px',
      height: '300px'
    }}
  >
    <Chart
        data={props.data}
        axes={axes}
        tooltip
    />
  </div>
)

}
export default MyChart;`
updating the props.data value does not update the chart. What am I missing?

Due to a massive overhaul and rewrite of React Charts to TypeScript and a massively upgraded public API, this issue is being bulk closed for triage. The latest version can be tested via the react-charts@beta tag. Documentation is in the process of being upgraded, but thankfully, everything is fully typed now, so you can explore the API that way for now.
If, after testing or playing with the v3 beta, you believe your issue is still not addressed or relevant, feel free to open a new issue.


Small changes

Description

Test Plan

Commentary (optional)

Checklist

[ ] User-facing API changes need the "User-facing API Change" label.
[ ] Release notes should be added as a separate file under docs/release-notes/.
See Release Note for details.
[ ] Licenses should be included for new code which was copied and/or modified from any external code.

@liamcli I did a pass on Model Hub and Transformers index.html. Happy to get your feedback and feel free to change the files directly.


fix: pip-compile on windows

Related issue
# followed by the number of the issue
Summary
Notes
Please check if the PR fulfills these requirements

[ ] If the feature has an impact on the user experience, the changelog has been updated
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] The commit message follows the conventional commit specification

/e2e --tests=substrafl --benchmarks=camelyon

End to end tests: :hourglass_flowing_sand: STARTING


MQTT  fails when numerous clients with bad creds try to publish

BUG REPORT

What were you trying to achieve?
benchmark the mqtt

What are the expected results?
mqtt working properly

What are the received results?
mqtt fails

00000000\",\"redis_git_dirty\":\"0\",\"redis_build_id\":\"cbfa5816ce932578\",\"redis_mode\":\"standalone\",\"os\":\"Linux 4.15.0-54-generic x86_64\",\"arch_bits\":\
mainflux-mqtt   | <--- Last few GCs --->
mainflux-mqtt   |
mainflux-mqtt   | [1:0x561dc049d800]    13937 ms: Mark-sweep 972.3 (1029.9) -> 972.3 (994.4) MB, 88.0 / 0.0 ms  (average mu = 0.863, current mu = 0.000) last resort GC in old space requested
mainflux-mqtt   | [1:0x561dc049d800]    14025 ms: Mark-sweep 972.3 (994.4) -> 972.3 (993.9) MB, 88.0 / 0.0 ms  (average mu = 0.751, current mu = 0.000) last resort GC in old space requested
mainflux-mqtt   |
mainflux-mqtt   |
mainflux-mqtt   | <--- JS stacktrace --->
mainflux-mqtt   |
mainflux-mqtt   | ==== JS stack trace =========================================
mainflux-mqtt   |
mainflux-mqtt   |     0: ExitFrame [pc: 0x5234825be1d]
mainflux-mqtt   |     1: StubFrame [pc: 0x52348214822]
mainflux-mqtt   |     2: StubFrame [pc: 0x5234853598e]
mainflux-mqtt   | Security context: 0x286e0c7f2229 <JSObject>
mainflux-mqtt   |     3: flatstr(aka flatstr) [0x2cf147b10579] [/node_modules/flatstr/index.js:11] [bytecode=0x8223e86ef71 offset=3](this=0x3c1799e826f1 <undefined>,s=0x08223e806581 <Very long string[637855849]>)
mainflux-mqtt   |     4: pinoWrite [0x3364a67ffdb9] [/node_modules/pino/pino.js:225] [bytecode=0x382f8962f919 ...
mainflux-mqtt   |
mainflux-mqtt   | FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
mainflux-mqtt exited with code 137

What are the steps to reproduce the issue?

go get github.com/krylovsk/mqtt-benchmark
mqtt-benchmark --broker tcp://xxx.xxx.xxx.xxx:1883 --count 1000 --size 100 --clients 1000 --qos 2 --format text --password="$KEY" --username="$THING" --topic="channels/$CH/messages/test"

In what environment did you encounter the issue?
client pc ubuntu 18.04
mainflux server DO machine ubuntu 18.04 RAM 2GB

Additional information you deem important:

Exit code 137 means that the process was sent a SIGKILL. Which means that the container was send a kill signal because it has reached the memory limit.
We might have a memory leak in the authentication methods.

This happens usually when you are dealing with large datasets, but in our case not sure what can cause this error, which pointing out of memory as @chombium said.

@nmarcetic yes, the problem is the default allowed memory in node (V8). I would say that the reason is the size of the dataset. V8 gives the user 1.7GB per default.
@mteodor you could eventually re-test this by allowing more memory to node with NODE_OPTIONS=--max-old-space-size=SPACE_IN_MB.
Depending on how you start the mqtt server, you should change the startup command for the node mqtt server:

[docker-compose|https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L228] add the following envvar (adjust the space if needed)

 NODE_OPTIONS:--max-old-space-size=4096

[directly from the console|https://github.com/mainflux/mainflux/blame/master/mqtt/aedes/README.md#L77] add another envvar:

NODE_OPTIONS="--max-old-space-size=4096"

run inside a docker container without docker-compose add the envvar with  -e NODE_OPTIONS="--max-old-space-size=4096 to your docker run command. The command will be something like:

docker run -p 9000:9000 -e NODE_OPTIONS="--max-old-space-size=4096"  -d me/app

@nmarcetic @mteodor personally I would not raise the allowed memory in the configs by default as it depends on the use case: mqtt topics, message size and the deployment infrastructure. I would suggest that we test this and add the config changes to the docs, instead.

@chombium Agree, make sense :+1:  In the mine time, We are testing VerneMQ integration.

@mteodor I can confirm the issue and the solution @chombium proposed seems to be working. This scenario where many unauthorized clients try to connect to the broker simultaneously is unlikely to happen (DDOS should be handled elsewhere) and adding something like:
NODE_OPTIONS: --max-old-space-size=8192

(here)[https://github.com/mainflux/mainflux/blob/93d939ea521defea184b8f25e0b2a6aa6c0f0c19/docker/aedes.yml#L31] should solve it. I would keep it like it is, at least for now. If somebody else has this problem, the solution is offered in this issue. I'm closing the issue now but I'll add a label wontfix.

@dusanb94 I think that instead of searching and pointing to this issue whenever someone has this problem, we could add the config parameter in the dev guide, . I will prepare a PR for this.

Thanks @chombium.
I propose that we keep this issue open until your doc PR is merged, so please refer to it in the PR commit message.


windmill: 1.333.2 -> 1.410.3

Things done
Just a long overdue update

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 350049

x86_64-linux

:white_check_mark: 1 package built:

windmill

@inayet hey ! Its possible to update automatically, a script has to be made though.
Also i dont have a linux machine at hand to make the update myself. If you have time to make a PR though, i would ne happy to review it.


Improve the migration UX

Formatting changes and real migration changes are mixed together. It's not easy for users to locate the real migration changes given the diff is pretty big.
We can try to split the formatting changes from the real migration changes. For example, we can do it in the following steps:

Format the resources
git commit the formatting changes
Run the fix function and inspect the real changes.

I like to see a brief doc or discussion on the style of formatting being performed by kpt. See this thread: https://github.com/GoogleContainerTools/kpt-functions-sdk/pull/307#discussion_r638385436


Please fix the painter node to work on Stable Swarm UI.

I tried it with regular comfyUI, it worked perfectly, but in swarm it gives a blank gray panel. nothing.
would be nice to fix

Hi, ok, I'll see what's wrong there.

Hi, ok, I'll see what's wrong there.

I figured it out i am quite sure, in the painter_node.js
I changed
(line 8 and 9)
import { app } from "/scripts/app.js";
import { api } from "/scripts/api.js";
(line 8 and 9)
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";

Updated the paths to the scripts for the finicky Stable Swarm UI :blush:


(Unnamed) semaphore issues when  using ISIO through pybind.

Hey guys - in particular @a-sevin and @drbitboy .
Since merging Brian's PR #40 and transitioning to embedded semaphores, I'm having a misbehavior when calling SHMs through pyMilk/ImageStreamIOWrap.
Calling a semwait upon a semaphore that's not immediately passing (i.e., sem == 0) causes a futex crash.
Unclear to me what the heck is going on... here's a minimum crashing example.
import numpy as np
from ImageStreamIOWrap import Image
print('Create')
img = Image()
img.create('something', np.array([0], np.uint16), location=-1, shared=1, NBkw=50)
print('OK.')

print('semwait get.')
for k in range(10):
    print(k)
    img.semtimedwait(0, 0.1)
print('OK.')

----
Create
OK.
semwait get.
0
1
The futex facility returned an unexpected error code.
Aborted (core dumped)

However... the same in straight C isn't a problem...
#include "ImageStreamIO.h"
#include "ImageStruct.h"

#include <time.h>

int main() {
    char name[] = "asdf_ghjjk";

    IMAGE image;

    uint32_t dims[3] = {2,3,4};

    ImageStreamIO_createIm(&image, name, 2, dims, _DATATYPE_INT16, 1, 50, 0);
    ImageStreamIO_destroyIm(&image);
    ImageStreamIO_createIm(&image, name, 2, dims, _DATATYPE_INT16, 1, 50, 0);
    ImageStreamIO_closeIm(&image);
    ImageStreamIO_openIm(&image, name);

    int sem_idx = ImageStreamIO_getsemwaitindex(&image, 0);

    struct timespec t;

    float timeout_sec = 0.1;

    for (int i = 0; i < 20; i++) {
        printf("sem_timedwait %d...", i);
        clock_gettime(CLOCK_ISIO, &t);
        t.tv_nsec += (long)(timeout_sec *<PHONE_NUMBER>L);
        t.tv_sec += t.tv_nsec /<PHONE_NUMBER>L;
        t.tv_nsec = t.tv_nsec %<PHONE_NUMBER>L;
        ImageStreamIO_semtimedwait(&image, sem_idx, &t);
        printf("ok.\n");
    }

    return 0;
}
--------
$ ./isio_test
sem_timedwait 0...ok.
sem_timedwait 1...ok.
sem_timedwait 2...ok.
sem_timedwait 3...ok.
sem_timedwait 4...ok.
sem_timedwait 5...ok.
sem_timedwait 6...ok.
sem_timedwait 7...ok.
sem_timedwait 8...ok.
sem_timedwait 9...ok.
sem_timedwait 10...ok.
sem_timedwait 11...ok.
sem_timedwait 12...ok.
sem_timedwait 13...ok.
sem_timedwait 14...ok.
sem_timedwait 15...ok.
sem_timedwait 16...ok.
sem_timedwait 17...ok.
sem_timedwait 18...ok.
sem_timedwait 19...ok.

Any thoughts....?
Unfortunately, this breaks pyMlk, which is fairly mission-critical in a number of spots.
The most obvious is a variety of mismatches between duplicate compiled libraries... I hope I have been careful enough...?
Vince

Update:
It works with 32 bit datatypes... only broken with np.uit8, np.int8, np.int16, uint16.
The plot thickens.

Confirmed:
With uint32_t dims[3] = {3,3}; for an odd size in the C example, it performs a beautiful futex crash as well.
I'm pretty sure this is due to an x4 byte data alignment problem. Possibly in the new size computation methods? Possibly we had it before, but we never noticed because the memory overstepping was in some section of the metadata we never bothered to care about. But now it seems to mess up the newly embedded semaphores!!

For the memory mapping, I am pretty sure I could create a macro or function that increments the (uint8*)map pointer to ensure 8-byte boundaries for each data member.
Another option would be to re-order the metadata items by decreasing element size (8-byte items, 4-byte, 2-byte, 1-byte (strings).
I was wondering when this would show up, which was one reason I moved the metadata address calculations to a single routine, i.e. so we would only have to fix this in one place instead of three.


KAFKA-4863: Querying window store may return unwanted keys. Backport to 0.10.2

@guozhangwang as requested on https://github.com/apache/kafka/pull/2662


Ported CC 039 Mad Libs Generator

This PR is ready for review 🚂🚂 (preview)
Summary:

tabletop.js is now deprecated. The library papa parse could be used as a replacement.
A PR has been made to merge these changes to the codebase (https://github.com/CodingTrain/Coding-Challenges/pull/5)
I have added Papa Parse in the reference links
The Google Sheet link has been updated by @shiffman

p5 web editor example has been updated, thank you so so much for this!!


Add support to remove foreign key constraints

Make sure these boxes checked before submitting your pull request.

[x] Do only one thing
[x] No API-breaking changes
[x] New code/logic commented & tested
[x] Write good commit message, try to squash your commits into a single one

Adding support to Remove a Foreign Key constraint.

Going to merge this for now, but will move it to be a dialect method in v2.


time: Timer.Stop documentation example easily leads to deadlocks

I needed timeout functionality for one of my projects, so I looked in the time package. My timeouts where fallbacks in case a channel receive took too long. Most of the time the channel would receive before the timeout and I wanted to release the timeout resources when they where no longer needed. Documentation for time.After() says:

[...] If efficiency is a concern, use NewTimer instead and call Timer.Stop if the timer is no longer needed.

So I used a time.Timer and according to the documentation for time.Timer.Stop() one should drain the channel if time.Timer.Stop() returns false:
if !t.Stop() {
	<-t.C
}

I later discovered that my threads got stuck on receive like in this playground example when timer where triggered before I called stop:
t := time.NewTimer(time.Second * 3)
defer func() {
	if !t.Stop() {
		<-t.C
	}
}()
<-t.C

Wrapping the drain in a select seems to do the trick:
t := time.NewTimer(time.Second * 3)
defer func() {
	t.Stop()
	select {
	case <-t.C:
	default:
	}
}()
<-t.C

Documentation should make it clear how to safely drain the channel.

t := time.NewTimer(time.Second * 3)
defer func() {
	if !t.Stop() {
		<-t.C
	}
}()
<-t.C

Isn't this incorrect usage because you've already received from t.C. Isn't the point of the timer to fire after the delay except if you call Stop on it? <-t.C already waits for the timer to fire so the stop in the defered function is entirely useless because the timer has already fired anyway?

t.Stop() returns false when the timer has already fired so the receive there should deadlock, yes. What the documentation suggests is really weird though because:
What's the problem with it firing? This is only a problem if there are other receivers and the documentation mentions that this is incorrect if there are concurrent receives. Wrapping it in a select
select {
  <-t.C..
  default..
}

wouldn't prevent anything unless Stop causes the timer to fire because you'd just immediately go into the default case and somebody later could still receive something from t.C because it hasn't been read yet. Also, the documentation mentions that you sholudn't use this if !t.Stop() if you've already read from t.C so what you're doing is incorrect usage according to the documentation.

FWIW: This would be an example of proper usage:
package main

import "time"
import "fmt"

func main() {
	t := time.NewTimer(time.Second * 3)
	foo := make(chan int)
	go func() { foo <- 1 }()
	select {
	case <-t.C:
		fmt.Println("timeout")
	case <-foo:
		fmt.Println("foo")
		if !t.Stop() {
			<-t.C
		}
	}
}

My timeouts where fallbacks in case a channel receive took too long. Most of the time the channel would receive before the timeout and I wanted to release the timeout resources when they where no longer needed.

I believe you don't really need to drain the timer channel for this, calling Timer.Stop will suffice:
timer := time.NewTimer(3 * time.Second)
defer timer.Stop()
select {
case res := <- workChannel:
    return res, nil
case <-timer.C:
    return nil, ErrTimeout
}

You may find such pattern in use in standard library.

@FMNSSun
Thanks for the explanation. Your example looks somewhat like what I did in the first place. But I had more channels in my select and didn't like all the extra t.Stop() calls:
t := time.NewTimer(time.Second * 3)
bar := make(chan int)
chicken := make(chan int)
egg := make(chan int)
go func() { foo <- 1 }()
select {
case <-t.C:
	fmt.Println("timeout")
case <-foo:
	fmt.Println("foo")
	if !t.Stop() {
		<-t.C
	}
case <-chicken:
	fmt.Println("chicken")
	if !t.Stop() {
		<-t.C
	}
case <-egg:
	fmt.Println("egg")
	if !t.Stop() {
		<-t.C
	}
}

@artyom

I believe you don't really need to drain the timer channel for this, calling Timer.Stop will suffice

Looks scary. What if timer triggers between the select block and the defer? Won't you have a thread stuck on channel send?

@palsivertsen No because timer uses a buffered channel with capacity 1 exactly for this reason: that it can't get stuck if there's nobody reading from it.

timer uses a buffered channel with capacity 1 exactly for this reason: that it can't get stuck if there's nobody reading from it.

Cool. I did not know that.

Also... it might make sense in that case to move the t.Stop past the select instead of repeating it in every case.

Wouldn't that deadlock if case <-t.C: happens?

@palsivertsen it would but you could set a flag in the case <-t.C case and then only invoke stop if that flag isn't already set. But

+1 this issue just cost me an hour :(  I also have the keep-alive scenario.  Perhaps the the docs should link to this discussion?

I don't think we want to link to this discussion.
Does anyone have specific improvements to suggest?  Anyone want to send a pull request?  Thanks.

Some suggestions/thoughts:

Update the doc to underline that ignoring the value of the time.Timer.C channel is safe because the channel has a buffer length of one.
Remove channel draining from time.Timer.Stop documentation. Are there any usecases where one would need/want to drain the channel when stopping (not resetting) the timer?
Make time.Timer.Reset do the draining internally, thus no need to expose the drain concept in the docs.  This sadly changes the behaviour of time.Timer.Reset, possibly breaking existing code. Adding time.Timer.ResetAndDrain might be an alternative.

@palsivertsen No because timer uses a buffered channel with capacity 1 exactly for this reason: that it can't get stuck if there's nobody reading from it.
Also... it might make sense in that case to move the t.Stop past the select instead of repeating it in every case.

@FMNSSun do you have a source for this?

The documentation no longer gives this example, because it is no longer necessary.


docs(breaking-changes): mention deprecated block::Title

#1372

Oops I guess it's not needed, just realized it's not breaking


As a user, i want to be reminded of birthdays of my contact

So that i can plan and prepare for the birthday of my contact

Completed.


ceph: apply patch for CVE-2020-10753

Motivation for this change
Fixes: CVE-2020-10753
(cherry picked from commit f76a83c2c6c679722721567ec62cf56d0fc05331)
Backports #91602
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@srhb

@GrahamcOfBorg test ceph-single-node
@GrahamcOfBorg test ceph-multi-node


Fixes #688

Loading the minified version of fastclick doesn't work. My guess is that the FastClick object gets renamed in the minification process, making the check for "typeOf FastClick" useless and causing FastClick to never execute. Loading the unminified version of fastclick removes the 300ms click delay across the board.

That's interesting. I am gonna test your code soon and get back to you. :+1:

The easiest way to test is to open adminLTE in the ios simulator (comes free with xcode on macos) or by running it on your device. 😎


Missing a LICENSE file?

Hi, assuming this is Open Source, under what license is it released? The https://github.com/IBM/detect-secrets is licensed under Apache

@jonathan-r-young you are right, adding now in #118


BUG, ARCH: GameState and RollbackState are hugely incompatible

This is most likely the source of #23 and #17. #20 is also partially affected.
The GameState and RollbackState are extremely incompatible.
Or rather, the way I am using GameState is incompatible.
For instance, the RNG and UI are using GameState, but these must
be rollback-able, otherwise the RNG breaks and the UI will show the wrong things.
I will most likely have to restructure the whole thing and figure how to make this work.
This should be one of the highest priorities.

So the two states aren't all that incompatible it turns out. It's simply that you must not mix them whatsoever.
You mustn't call GameState changes in a GgrsSchedule and you musn't call RollbackState changes in the
Update schedule. Under no circumstances should you ever break this rule (as far as I can tell).
If you follow it, then these two states coexist fairly alright.

This is pretty much dealt with. I found a way to use them both that isn't too bad, and even after 2 weeks this is still pretty maintainable and nice to work with (even after adding a new state for the MainMenu).


Enhancement: Execute script pre-boot of Jenkins.

I would like to run a pre-jenkins startup script before Jenkins.  Right now, I build my own docker image based on upstream Jenkins docker images.  I'm opening this issue in case others express interest in such a feature.
The beginning of jenkins.sh could have a change as simple as:
[ -x '/usr/share/jenkins/preboot.sh' ] && /usr/share/jenkins/preboot.sh

Use case for such a script includes:

preparing $JENKINS_HOME for a different environment (e.g. using production configurations in a staging environment).
Any scripted task a user wishes to do before Jenkins starts up.

Then when a user bakes their own customized docker image based on the upstream Jenkins docker image they need only populate /usr/share/jenkins/preboot.sh for Jenkins startup.
Please tell me your thoughts.

Currently I'm using the patch command to patch jenkins.sh and insert my script at the very top of the file before anything else.

This seems like a reasonable enhancement to me :+1:

Okay I'll prepare a PR for review.

@samrocketman Have you ever gotten the PR up for review?

Not yet, I still remember what I want it to do.  I'm traveling from Greece at the moment (on a plane now).  I'll open a PR this week.  Thanks for the reminder.

@isuftin @rtyler finally submitted my PR.  Sorry it took so long; got distracted by other things.

Closing given https://github.com/jenkinsci/docker/pull/544#issuecomment-384118526


Silent failure when parsing a resonse.body from a 404

Describe the bug
Originally mentioned in https://github.com/purescript-contrib/purescript-affjax/issues/26#issuecomment-768384728
I never was able to figure this out, and ran out of time on the issue for now. It seems like response.body was defined, and looked like this: "{\"errors\":[{\"status\":\"404\",\"title\":\"The resource you are looking for doesn't exist.\"}]}". As I was asking affjax for a string type (and indeed confirmed that this was a string in JavaScript), then parsing it manually. I confirmed that my JSON parser can gracefully fail on that particular string as well, as part of a unit test.
The really interesting this is that in purescript, if I do something like:
log $ response.body
log $ response.statusText

The first log will succeed, but execution in that codepath seems to stop after that. The second message is never logged. If I reverse the order of the log statements, the same occurs: the first one logs, the second one does not.
No other errors show up in the web console other than the XHR 404, making it a bit of a mystery there as well.
To Reproduce
Tested with affjax 10.0.0
I haven't yet come up with a self-contained example, but will update here when I do. What is the best way to make some nested widgets in try.purescript.org?
Briefly, my original code looks something like this:
      resEi <- liftAff $ try $ AJ.get AJ.string $ urlToString jsonUrl
      -- ... snip ...
      let res = join $ lmap AJ.XHRError resEi
      in case res of
        Left err -> errorBox $ EX.error $
          "GET /api response failed to decode: " <> AJ.printError err
        Right response -> pure $ Tuple doi (Just $ readRecordJSON response.body)

Adding the log statements after the Right response ->  is where things get interesting.
Expected behavior
No silent failures - if a failure occurs, an exception should be thrown, or ideally a left value should be generated if possible.

Definitely going to need an exact reproduction case for this one! It seems "impossible" that it would stop after the first log.
The library has also definitely been used to handle many varied status-code responses for errors and successes.
Probably the easiest way to set up a reproduction is just put it in a small repo - have an express server with an endpoint that serves that error, or something like that, and then the affjax thing running from main for the PS part.

Definitely going to need an exact reproduction case for this one! It seems "impossible" that it would stop after the first log.
The library has also definitely been used to handle many varied status-code responses for errors and successes.
Probably the easiest way to set up a reproduction is just put it in a small repo - have an express server with an endpoint that serves that error, or something like that, and then the affjax thing running from main for the PS part.


[buy] Restrict amounts to be whole numbers

It is possible currently to list a non-integer amount, such as 3.5 tonnes, and then for someone to buy the integer floor of this number, 3 tonnes. This leaves a fractional amount listed which is impossible to buy.
I believe the solution to this is to restrict listing and buying amounts to whole numbers in the frontend (and potentially the backend).
Example

Fractional retirements is a requirement in my opinion, as users may want to retire a specific emissions count in full (e.g., a flight).
And the API should also support fractional retirements, which would appear in the Activity feed anyways.


Feat: add deploy app log

CP offers real-time display of pod running logs based on various space_uuids. Upon receiving a job, CP generates build_log_url and container_log_url, both of which are sent back to the server. The frontend utilizes these URLs to establish WebSocket objects and load the log data stream.

CP receives a job, triggers app image building, and simultaneously stores log data as files during the build process. The resulting build log file's stream is returned as the WebSocket data source.
CP retrieves the app pod log stream data associated with the space_uuid and sends it back by streaming through WebSocket.
On the CP end, it monitors WebSocket client connections for closure events. When such an event occurs, CP discontinues fetching log data and releases the connection.

@PlutoNbai  please leave your comment about the CP log to Lagrange server and web.

we can refer the similar design

The new features have been developed in this branch: https://github.com/sonic-chain/go-computing-provider/tree/feat-cp-logs

Use case:

build image log

ws://[publicIp]:[port]/api/v1/computing/lagrange/spaces/log?space_id=xxxx&type=build

pod log

ws://[publicIp]:[port]/api/v1/computing/lagrange/spaces/log?space_id=xxxx&type=container


Disable styled-components (question)

Hi, sorry for new issue, but I think devs could help in my question very quickly.
I have a few different projects, and single code base. Now I am moving from sass  to styled-components. And common code base already has styled-components integrated. But some others projects has not. And I should use sass there for some time. Can you help me, how could I turn off styled components for such projects? Maybe replace style tag or something?
Thank, you.

Do you use webpack? If so, you could replace styled-components module using https://webpack.js.org/plugins/normal-module-replacement-plugin/ with your shim of no-op functions. For styled.<tag> you need to loop through all used tags - https://github.com/styled-components/styled-components/blob/master/src/utils/domElements.js

@msokk I tried this way, but in some files we have multi exports and so on. So just file replace is not an option.

Also tried to simply delete style components, but bundle compiled with windows will broke all app (

Can you help me, how could I turn off styled components for such projects?

I mean just don't import it and use it? I don't really understand the question.


Number part types unable to cope with small numbers

I want to ask questions about numerical precision, and the Number part type is failing to recognize entered numbers or produce valid revealed answers.
For one question, the smallest acceptable answer is 1e-300, and the largest is 2.22e-16 (roughly epsilon for 64-bit floating-point). The question fails to accept 1e-100, it incorrectly accepts zero, and it reports "0e+0" as the "correct" answer when "Reveal" is pressed. I have set "Scientific" as the only acceptable number format.
The system also fails for the range 2.22e-16 to 4.45e-16, but seems to work for the range 2.22e-14 to 4.45e-14.
All of these are acceptable floating-point numbers in standard double precision.

I don't understand how gapfill types identify correct answers, so it's not clear whether they can be used for this; code parts could be made to work but are extremely awkward. Are there other ways to solve this? A numeric-range part type that simply checks whether the number is in the approved range? Accepting only "scientific" format ever?
Even if another part type exists, it would be valuable to have a warning that "number" part types don't actually check whether the value is in the specified range.

decimal values don't get wiggle room added.
The wiggle room is added to number values because it's very easy to construct the "same" number two ways that don't produce exactly the same float. For example, (1+1/7)*2 - 2 = 0.2857142857142856, while 2/7 = 0.2857142857142857.
When you're doing basic arithmetic, it's not reasonable to have to worry about and understand these kinds of errors. I believe that adding this wiggle room automatically is much better than asking authors to systematically add - 10^-12 and + 10^-12 each time they use a number entry part, or to think really hard about whether floating point error might accumulate in their calculations. (and whether the min and max values are the wrong way round, which would mean the plus and minus signs on the wiggle terms would have to be swapped)
For each of the minimum and maximum value considered separately, if the value used is a number type, it will have the wiggle room added before being converted to a decimal. If it's already a decimal, or something which converts automatically to a decimal such as a rational, then it's used as-is.


Persist data with Room

[URL of codelab:]
(https://developer.android.com/codelabs/basic-android-kotlin-compose-persisting-data-room#5)
Specify the language of the codelab if it is not English:
SQL
In which task and step of the codelab can this issue be found?
6. Create the item DAO
Describe the problem
Error in SQL query.
Wrong table name in @Query("SELECT * from item WHERE id = :id")
Right string  @Query("SELECT * from items WHERE id = :id")

Duplicate of #17

Hello @lyay,
Thank you for reaching out to us. It is fixed and published.


lens stays open, not visible in cmd+tab

alt+tab does not show it

Hi, what's the context? I see this behaviour when the Lens window is closed but Lens is still active (in the tray). Seems consistent with other apps (like docker desktop)

Duplicate of #1906


Trams now allowing for legal requirements on transfers

Can you confirm that you've applied the migration to your local db and run a test in swagger to retrieve and update the legal requirements.


Svelte 5 page loads twice: once before layout, once after layout

Describe the bug
After upgrading to Svelte 5, a page route change sometimes causes the page component to load before its layout, and then again afterwards.
I was able to reproduce this bug with both 5.0.0-next.1 and 5.0.0-next.6.
Reproduction
Reproduction repository here. It's a barebones projects with SSR disabled, once using Svelte 4 and once using Svelte 5. The only difference between v4 and v5 is the Svelte version in package.json.
Svelte 4 behavior (normal)

cd v4; npm install; npm run dev
Visit http://localhost:5173/
Click To /other
Click To /

Console output
/ (layout)
/ (page)
/other (layout)
/other (page)
/ (layout)
/ (page)

Svelte 5 behavior (bug)

cd v5; npm install; npm run dev
Visit http://localhost:5173/
Click To /other
Click To /
Click To /other
Click To /

Console output
/ (layout)
/ (page)
/other (page)
/other (layout)
/other (page)
/ (page)
/ (layout)
/ (page)
/other (page)
/other (layout)
/other (page)
/ (layout)
/ (page)

Notice that /other (page) and / (page) get printed both before and after /other (layout) and / (layout) respectively, until exactly the 4th navigation event (?!) where the extraneous "before" page load does not occur anymore.
Instead of clicking the anchors tags, you can use the browser back/forward navigation to trigger the same behavior.
Logs
No response
System Info
System:
  OS: Linux 5.15 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
  CPU: (12) x64 Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
  Memory: 9.57 GB / 15.57 GB
  Container: Yes
  Shell: 5.8.1 - /usr/bin/zsh
Binaries:
  Node: 17.5.0 - ~/.asdf/installs/nodejs/17.5.0/bin/node
  npm: 8.4.1 - ~/.asdf/plugins/nodejs/shims/npm
npmPackages:
  @sveltejs/adapter-static: ^2.0.3 => 2.0.3
  @sveltejs/kit: ^1.27.4 => 1.27.6
  svelte: 5.0.0-next.6 => 5.0.0-next.6
  vite: ^4.4.2 => 4.5.0

Severity
blocking an upgrade
Additional Information
No response

This appears to be fixed. Current system info:
System:
  OS: Linux 5.15 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
  CPU: (12) x64 Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
  Memory: 12.15 GB / 15.57 GB
  Container: Yes
  Shell: 5.8.1 - /usr/bin/zsh
Binaries:
  Node: 21.1.0 - ~/.asdf/installs/nodejs/21.1.0/bin/node
  npm: 10.2.0 - ~/.asdf/plugins/nodejs/shims/npm
  bun: 1.0.11 - ~/.asdf/shims/bun
npmPackages:
  @sveltejs/adapter-auto: ^3.0.0 => 3.1.1
  @sveltejs/kit: ^2.0.0 => 2.5.4
  @sveltejs/vite-plugin-svelte: ^3.0.0 => 3.0.2
  svelte: ^5.0.0-next.78 => 5.0.0-next.78
  vite: ^5.0.3 => 5.1.6

We're experiencing a similar double page load on Svelte5, and I'm not sure why.  Will be looking into it soon.


AutoGluon fails installation on Super Computer [BUG]

I am trying to install AutoGluon on my university computer (Linux)
I followed the instruction given here https://auto.gluon.ai/stable/index.html
pip3 install -U pip
pip3 install -U setuptools wheel

# CPU version of pytorch has smaller footprint - see installation instructions in
# pytorch documentation - https://pytorch.org/get-started/locally/
pip3 install torch==1.12+cpu torchvision==0.13.0+cpu torchtext==0.13.0 -f https://download.pytorch.org/whl/cpu/torch_stable.html

pip3 install autogluon

all steps ended successfully except for the last one pip3 install autogluon
I am getting this error

user99@tinaroo1:~/autogluon> pip3 install autogluon
Keyring is skipped due to an exception: 'EntryPoints' object has no attribute 'get'
Defaulting to user installation because normal site-packages is not writeable
Collecting autogluon
  Using cached autogluon-0.6.0-py3-none-any.whl (9.8 kB)
Collecting autogluon.multimodal==0.6.0
  Using cached autogluon.multimodal-0.6.0-py3-none-any.whl (279 kB)
Collecting autogluon.timeseries[all]==0.6.0
  Using cached autogluon.timeseries-0.6.0-py3-none-any.whl (101 kB)
Collecting autogluon.features==0.6.0
  Using cached autogluon.features-0.6.0-py3-none-any.whl (59 kB)
Collecting autogluon.core[all]==0.6.0
  Using cached autogluon.core-0.6.0-py3-none-any.whl (224 kB)
Collecting autogluon.vision==0.6.0
  Using cached autogluon.vision-0.6.0-py3-none-any.whl (49 kB)
Collecting autogluon.tabular[all]==0.6.0
  Using cached autogluon.tabular-0.6.0-py3-none-any.whl (285 kB)
Collecting autogluon.text==0.6.0
  Using cached autogluon.text-0.6.0-py3-none-any.whl (62 kB)
Requirement already satisfied: numpy<1.24,>=1.21 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (1.21.5)
Requirement already satisfied: scipy<1.10.0,>=1.5.4 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (1.7.1)
Collecting autogluon.common==0.6.0
  Using cached autogluon.common-0.6.0-py3-none-any.whl (41 kB)
Requirement already satisfied: matplotlib in /mnt/sw/legacy/sw1/RCC/Anaconda/2020.02/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (3.2.2)
Requirement already satisfied: tqdm>=4.38.0 in /mnt/sw/legacy/sw1/RCC/Anaconda/2020.02/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (4.47.0)
Requirement already satisfied: requests in /mnt/sw/legacy/sw1/RCC/Anaconda/2020.02/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (2.24.0)
Requirement already satisfied: scikit-learn<1.2,>=1.0.0 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (1.0.2)
Requirement already satisfied: pandas!=1.4.0,<1.6,>=1.2.5 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (1.3.5)
Requirement already satisfied: boto3 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (1.26.23)
Requirement already satisfied: dask<=2021.11.2,>=2021.09.1 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (2021.11.2)
Requirement already satisfied: distributed<=2021.11.2,>=2021.09.1 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (2021.11.2)
Requirement already satisfied: ray<2.1,>=2.0 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (2.0.1)
Requirement already satisfied: hyperopt<0.2.8,>=0.2.7 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.core[all]==0.6.0->autogluon) (0.2.7)
Requirement already satisfied: psutil<6,>=5.7.3 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.features==0.6.0->autogluon) (5.9.4)
Collecting seqeval<=1.2.2
  Using cached seqeval-1.2.2.tar.gz (43 kB)
  Preparing metadata (setup.py) ... done
Collecting omegaconf<2.2.0,>=2.1.1
  Using cached omegaconf-2.1.2-py3-none-any.whl (74 kB)
Collecting scikit-image<0.20.0,>=0.19.1
  Using cached scikit_image-0.19.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (13.5 MB)
Collecting sentencepiece<0.2.0,>=0.1.95
  Using cached sentencepiece-0.1.97-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)
Collecting torchmetrics<0.9.0,>=0.8.0
  Using cached torchmetrics-0.8.2-py3-none-any.whl (409 kB)
Requirement already satisfied: torchvision<0.14.0 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.multimodal==0.6.0->autogluon) (0.13.0+cpu)
Collecting accelerate<0.14,>=0.9
  Using cached accelerate-0.13.2-py3-none-any.whl (148 kB)
Collecting evaluate<=0.2.2
  Using cached evaluate-0.2.2-py3-none-any.whl (69 kB)
Collecting nptyping<1.5.0,>=1.4.4
  Using cached nptyping-1.4.4-py3-none-any.whl (31 kB)
Collecting defusedxml<=0.7.1,>=0.7.1
  Using cached defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting openmim<=0.2.1,>0.1.5
  Using cached openmim-0.2.1-py2.py3-none-any.whl (49 kB)
Requirement already satisfied: torchtext<0.14.0 in /home/user99/.local/lib/python3.7/site-packages (from autogluon.multimodal==0.6.0->autogluon) (0.13.0)
Collecting albumentations<=1.2.0,>=1.1.0
  Using cached albumentations-1.2.0-py3-none-any.whl (113 kB)
Collecting pycocotools<2.0.7,>=2.0.5
  Using cached pycocotools-2.0.6.tar.gz (24 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: -11
  ╰─> [35 lines of output]
      OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
      OpenBLAS blas_thread_init: RLIMIT_NPROC 50 current, 514567 max
      OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
      OpenBLAS blas_thread_init: RLIMIT_NPROC 50 current, 514567 max
      OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
      OpenBLAS blas_thread_init: RLIMIT_NPROC 50 current, 514567 max
      OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
      OpenBLAS blas_thread_init: RLIMIT_NPROC 50 current, 514567 max
      OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
      OpenBLAS blas_thread_init: RLIMIT_NPROC 50 current, 514567 max
      Traceback (most recent call last):
        File "/home/user99/.local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 351, in <module>
          main()
        File "/home/user99/.local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 333, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/user99/.local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
          self.run_setup()
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 335, in run_setup
          exec(code, locals())
        File "<string>", line 7, in <module>
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/numpy/__init__.py", line 142, in <module>
          from . import add_newdocs
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
          from numpy.lib import add_newdoc
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
          from .type_check import *
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
          import numpy.core.numeric as _nx
        File "/scratch/user/user99/tmp/pip-build-env-j7xhslnv/overlay/lib/python3.7/site-packages/numpy/core/__init__.py", line 16, in <module>
          from . import multiarray
      KeyboardInterrupt
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: -11
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
user99@tinaroo1:~/autogluon>

I wonder if it makes sense to anyone and can help me fixing that.

It appears like your issue is with the pycoco package. You may want to focus on that package specifically when debugging.

Hi, based on the error message, the issue might be different than #2494 . The error message here shows pthread_create: Resource temporarily unavailable, which means it takes more threads than default in your system when building wheels. See these posts for similar issues, stackoverflow, eDFTpy. Maybe you can try to set the environment variable first, like export OMP_NUM_THREADS=1 or export OPENBLAS_NUM_THREADS=1

Also, @asmgx what’s the Linux distribution that you are using? In addition, I recommend Anaconda, which is a tested environments.

@asmgx  Hi, we have removed pycocotools from our dependencies and release 0.6.1. Please try pip install autogluon again. Let me know if the problem persist, thank you.

Marking as resolved due to removing pycoco dependency. Please indicate if this problem has been fixed, and please re-open if errors still occur in AutoGluon v0.6.1.


Add AIChat.session() as context manager

After seeing ai.create_session() and ai.delete_session() in your examples, I've thought it would be nice to have a context manager to create sessions.
ai = AIChat(console=False)

with ai.session(...) as sess:
    print(sess.id)  # d374f2dc-7ffe-455c-add1-c7213cc86efe
    ai("hello!", id=sess.id)

with ai.session(...) as sess:
    print(sess.id)  # 341bf5e6-8330-44fa-91ce-9a07cc1e83fe
    ai("hello!", id=sess.id)

huh, TIL it's that easy to add a context manager.
Thanks!


Opening of database read-only must be followed by a RoTxn commit calls

Getting to data a Database opened with with Env::open_database on a process without a  previous Env opened as Read Write held by the process lead to error "22 EINVAL", due to Env metadata not sync'ed in the Env at the end of the RoTxn openning transaction.

Linked to #20
Already fixed in https://github.com/meilisearch/heed/pull/10
Regressed in c40afad6bbd223832a2f86c38702313beb78366bd30bbfcd6d014e8cc651dafe L30-L39
Fix in https://github.com/meilisearch/heed/pull/176

Steps to reproduce

Open an Env on a database
Open a RoTxn with Env::read_txn let's call it ro_txn_0
Open databases db_0 with open_database with ro_txn_0
ro_txn_0 is aborted through the drop

Fix involve commit() ro_txn_0` who was used for openning.

Then

open an other ro_txn_1 with Env::read_txn
get data on db_0 with ro_txn_1 -> Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })' (EINVAL)

How to fix?
Committing the RoTxn that open of databases fix the issue. LMDB log an empty commit but not so empty!
Why it fixes? The committing like said below synchronize the lmdb Env internal data about opened databases with the currents openings done with the RoTxn, the RoTxn is Read only but only in respect to the data in the databases not the Env in memory or the process.
Possible work around? Force RwTxn for database opening, maybe not desirable.
How it escaped Heed test suite?
The problem arise if the database is opened without prior Env about that database opened previously.
Context
I am in a setup with one process doing writes and read call it the Producer (no problem it's perfect) and an other doing only read the Reader.
The issue also apply when doing read-only access without other Env held inside the process.
In both case used the open_database
It leads to the following error:
Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })'

The investigation
mdb_get checkout the txn->mt_numdbs on the reader it will be 2 because it's the stock value due to DB_CORE LMDB macro.
mdb_get L6821
    if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID))
        return EINVAL;

define TXN_DBI_EXIST
    /** Check \b txn and \b dbi arguments to a function */
#define TXN_DBI_EXIST(txn, dbi, validity) \
    ((txn) && (dbi)<(txn)->mt_numdbs && ((txn)->mt_dbflags[dbi] & (validity)))

define CORE_DBS
    /** Number of DBs in metapage (free and main) - also hardcoded elsewhere */
#define CORE_DBS    2

Where is set  txn->mt_numdbs.
Here at least for my code-path in the reader: mdb_txn_renew0
    /* Setup db info */
    txn->mt_numdbs = env->me_numdbs;
    for (i=CORE_DBS; i<txn->mt_numdbs; i++) {
        x = env->me_dbflags[i];
        txn->mt_dbs[i].md_flags = x & PERSISTENT_FLAGS;
        txn->mt_dbflags[i] = (x & MDB_VALID) ? DB_VALID|DB_USRVALID|DB_STALE : 0;
    }
    txn->mt_dbflags[MAIN_DBI] = DB_VALID|DB_USRVALID;
    txn->mt_dbflags[FREE_DBI] = DB_VALID;

Ok but it should be right no? env->me_numdbs shall have the right value 3 here!
It turns out the open_dbi does not update it, it updates the txn->mt_numdbs and on commit it will update the env->me_numdbs back!! ;)
Leading us to this little piece of code: mdb_dbis_update
    if (keep && env->me_numdbs < n)
        env->me_numdbs = n;

Called back mdb_txn_end
static void
mdb_txn_end(MDB_txn *txn, unsigned mode)
{
    MDB_env    *env = txn->mt_env;
#if MDB_DEBUG
    static const char *const names[] = MDB_END_NAMES;
#endif

    /* Export or close DBI handles opened in this txn */
    mdb_dbis_update(txn, mode & MDB_END_UPDATE);

And since RoTxn only expose mdb_txn_abort we cannot update the database number of the environment.
void
mdb_txn_abort(MDB_txn *txn)
{
    if (txn == NULL)
        return;

    if (txn->mt_child)
        mdb_txn_abort(txn->mt_child);

    mdb_txn_end(txn, MDB_END_ABORT|MDB_END_SLOT|MDB_END_FREE);
}

RoTxn::drop

impl Drop for RoTxn<'_> {
    fn drop(&mut self) {
        if !self.txn.is_null() {
            abort_txn(self.txn);
        }
    }
}

Using mdb_txn_commit even empty looks definitely better since it set correctly the parameters for synchronizing database openned to the Env LMDB struct.
Screenshot of the debugging session
Here a screenshot of a debugging session showing the issue:
In this session I opened 1 database (+ the 2 code DB managed by lmdb itself) so n = 3.

And since RoTxn only mdb_txn_abort we cannot update the database number of the environment.
The logs
Added the following patch for debugging lmdb and producing the log
diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile
index 942d0db..142989a 100644
--- a/libraries/liblmdb/Makefile
+++ b/libraries/liblmdb/Makefile
@@ -22,7 +22,7 @@ CC = gcc
 AR  = ar
 W   = -W -Wall -Wno-unused-parameter -Wbad-function-cast -Wuninitialized
 THREADS = -pthread
-OPT = -O2 -g
+OPT = -O0 -g
 CFLAGS  = $(THREADS) $(OPT) $(W) $(XCFLAGS)
 LDLIBS  =
 SOLIBS  =
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index 26b7cba..a3a40da 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -566,6 +566,7 @@ typedef MDB_ID   pgno_t;
      *  See struct MDB_txn.mt_txnid for details.
      */
 typedef MDB_ID  txnid_t;
+#define MDB_DEBUG 3

 /** @defgroup debug Debug Macros
  *  @{
@@ -575,12 +576,12 @@ typedef MDB_ID txnid_t;
      *  Set this to 1 for copious tracing. Set to 2 to add dumps of all IDLs
      *  read from and written to the database (used for free space management).
      */
-#define MDB_DEBUG 0
+#define MDB_DEBUG 3
 #endif

 #if MDB_DEBUG
-static int mdb_debug;
-static txnid_t mdb_debug_start;
+static int mdb_debug = 1;
+static txnid_t mdb_debug_start = 1;

     /** Print a debug message with printf formatting.
      *  Requires double parenthesis around 2 or more args.
@@ -6817,6 +6818,7 @@ mdb_get(MDB_txn *txn, MDB_dbi dbi,
     DKBUF;

     DPRINTF(("===> get db %u key [%s]", dbi, DKEY(key)));
+    DPRINTF(("READ txn %"Yu" mt_numdbs %u ", txn->mt_txnid, (txn)->mt_numdbs));

     if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID))
         return EINVAL;

Full logs including LMDB logs
cargo test -- env::tests::open_already_existing_database_multiprocess

   Compiling heed v0.20.0-alpha.2 (/heed/heed)
    Finished test [unoptimized + debuginfo] target(s) in 0.54s
     Running unittests src/lib.rs (target/debug/deps/heed-9bbbf71c6c2f5ce8)

running 1 test
mdb_env_open2:4955 new mdbenv
mdb_env_init_meta:4266 writing new meta page
mdb_env_open2:5033 opened database version 1, pagesize 4096
mdb_env_open2:5035 using meta page 0
mdb_env_open2:5036 depth: 0
mdb_env_open2:5037 entries: 0
mdb_env_open2:5038 branch pages: 0
mdb_env_open2:5039 leaf pages: 0
mdb_env_open2:5040 overflow pages: 0
mdb_env_open2:5041 root:<PHONE_NUMBER>3709551615
mdb_env_open:5669 opened dbenv 0x7f43e8000ed0
mdb_txn_begin:3283 begin txn 1w 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page<PHONE_NUMBER>3709551615
mdb_page_search:6655 tree is empty
mdb_cursor_put:7637 ==> put db 1 key [73686172656430], size 7, data size 48
mdb_cursor_put:7698 allocating new root leaf page
mdb_page_new:8235 allocated new mpage 2, page size 4096
mdb_cursor_push:6114 pushing page 2 on db 1 cursor 0x7f43ef762840
mdb_cursor_put:7720 inserting key at index 0
mdb_node_add:8336 add to leaf page 2 index 0, data size 48 key size 7 [73686172656430]
mdb_txn_commit:4096 committing txn 1 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page 2
mdb_cursor_put:7637 ==> put db 1 key [73686172656430], size 7, data size 48
mdb_page_search:6680 db 1 root page 2 has flags 0x12
mdb_page_search_root:6565 found leaf page 2 for key [73686172656430]
mdb_node_search:6000 searching 1 keys in leaf page 2
mdb_node_search:6045 found leaf index 0 [73686172656430], rc = 0
mdb_cursor_set:7269 ==> cursor placed on key [73686172656430]
mdb_page_search:6655 tree is empty
mdb_page_flush:3861 committing page 2
mdb_page_flush:3792 committing page 2
mdb_env_write_meta:4315 writing meta page 1 for root page 2
mdb_txn_end:3350 committed txn 1w 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page 2
mdb_txn_begin:3283 begin txn 2w 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page 2
mdb_page_search:6680 db 1 root page 2 has flags 0x2
mdb_page_search_root:6565 found leaf page 2 for key [73686172656430]
mdb_node_search:6000 searching 1 keys in leaf page 2
mdb_node_search:6045 found leaf index 0 [73686172656430], rc = 0
mdb_page_search:6655 tree is empty
mdb_cursor_put:7637 ==> put db 2 key [73686172656430], size 7, data size 17
mdb_cursor_put:7698 allocating new root leaf page
mdb_page_new:8235 allocated new mpage 3, page size 4096
mdb_cursor_push:6114 pushing page 3 on db 2 cursor 0x7f43ef7628b0
mdb_cursor_put:7720 inserting key at index 0
mdb_node_add:8336 add to leaf page 3 index 0, data size 17 key size 7 [73686172656430]
mdb_txn_commit:4096 committing txn 2 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page 2
mdb_cursor_put:7637 ==> put db 1 key [73686172656430], size 7, data size 48
mdb_page_search:6680 db 1 root page 2 has flags 0x2
mdb_page_search_root:6565 found leaf page 2 for key [73686172656430]
mdb_node_search:6000 searching 1 keys in leaf page 2
mdb_node_search:6045 found leaf index 0 [73686172656430], rc = 0
mdb_cursor_set:7269 ==> cursor placed on key [73686172656430]
mdb_page_touch:2766 touched db 1 page 2 -> 4
mdb_page_search:6655 tree is empty
mdb_cursor_put:7637 ==> put db 0 key [0200000000000000], size 8, data size 16
mdb_cursor_put:7698 allocating new root leaf page
mdb_page_new:8235 allocated new mpage 5, page size 4096
mdb_cursor_push:6114 pushing page 5 on db 0 cursor 0x7f43ef762b70
mdb_cursor_put:7720 inserting key at index 0
mdb_node_add:8336 add to leaf page 5 index 0, data size 16 key size 8 [0200000000000000]
mdb_freelist_save:3582 IDL write txn 2 root 5 num 1
mdb_freelist_save:3585 IDL 2
mdb_page_search:6680 db 0 root page 5 has flags 0x12
mdb_page_search_root:6565 found leaf page 5 for key [null]
mdb_cursor_next:6946 cursor_next: top page is 5 in cursor 0x7f43ef762970
mdb_cursor_next:6954 =====> move to next sibling page
mdb_page_flush:3861 committing page 3
mdb_page_flush:3861 committing page 4
mdb_page_flush:3861 committing page 5
mdb_page_flush:3792 committing page 5
mdb_env_write_meta:4315 writing meta page 0 for root page 4
mdb_txn_end:3350 committed txn 2w 0x7f43e8002750 on mdbenv 0x7f43e8000ed0, root page 4
mdb_env_open2:5033 opened database version 1, pagesize 4096
mdb_env_open2:5035 using meta page 0
mdb_env_open2:5036 depth: 1
mdb_env_open2:5037 entries: 1
mdb_env_open2:5038 branch pages: 0
mdb_env_open2:5039 leaf pages: 1
mdb_env_open2:5040 overflow pages: 0
mdb_env_open2:5041 root: 4
mdb_env_open:5669 opened dbenv 0x7f43e8000ed0
mdb_txn_begin:3283 begin txn 2r 0x7f43e8003350 on mdbenv 0x7f43e8000ed0, root page 4
mdb_page_search:6680 db 1 root page 4 has flags 0x2
mdb_page_search_root:6565 found leaf page 4 for key [73686172656430]
mdb_node_search:6000 searching 1 keys in leaf page 4
mdb_node_search:6045 found leaf index 0 [73686172656430], rc = 0
mdb_cursor_set:7269 ==> cursor placed on key [73686172656430]
mdb_txn_end:3350 abort txn 2r 0x7f43e8003350 on mdbenv 0x7f43e8000ed0, root page 4
mdb_txn_begin:3283 begin txn 2r 0x7f43e8003350 on mdbenv 0x7f43e8000ed0, root page 4
mdb_get:6820 ===> get db 2 key [73686172656430]

mdb_get:6821 READ txn 2 mt_numdbs 2

mdb_txn_end:3350 abort txn 2r 0x7f43e8003350 on mdbenv 0x7f43e8000ed0, root page 4
test env::tests::open_already_existing_database_multiprocess ... FAILED

failures:

---- env::tests::open_already_existing_database_multiprocess stdout ----
thread 'env::tests::open_already_existing_database_multiprocess' panicked at 'called `Result::unwrap()` on an `Err` value: Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })', heed/src/env.rs:985:65
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    env::tests::open_already_existing_database_multiprocess

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 16 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p heed --lib`

@Kerollmops worked like a charm on pre-production for us. :)


Freshservice connector showing html tags in ticket description

A CX has pointed out that the Freshservice connector is not removing the html tags from the description sent into the ticket. This is working properly for Freshdesk connector but for Freshservice there seems to be an issue.

Hi @glavincrasta10! Thank you for submitting this bug for the FreshService connector. @ptalrejagithub will reach out to the partner to notify them about this issue and figure out a workaround or solution.

Hi @glavincrasta10 we just wanted to let you know that we have added this bug to our backlog and will prioritize accordingly. I will now be closing this issue.


Use of string_view in StartSpanOption::tags is dangerous

`#include
#include <opentracing/tracer.h>
#include <opentracing/tracer.h>
using namespace std;
using namespace opentracing;
void SetStandardOptions(StartSpanOptions& options)
{
{
string mystring = "user_agent";
opentracing::SetTag o1 = opentracing::SetTag{mystring, "test1"};
o1.Apply(options);
}
{
string mystring = "blah";
opentracing::SetTag o1 = opentracing::SetTag{mystring, "test2"};
o1.Apply(options);
}
}
void PrintOptions(StartSpanOptions& options)
{
string test = "someString1";
string test2 = "someString2";
for (auto a : options.tags)
{
cout << a.first << endl;
}
}
int main()
{
StartSpanOptions options;
SetStandardOptions(options);
PrintOptions(options);
return 0;
}`
Output should be:
user_agent
blah
I get:
&@����P�L
&@��
This is due to the tags storing the string_view instead of a copy of the string.
I don't really understand the purpose of using string_view throughout the API. I would love to know the reasoning? I don't see any performance benefit to using over passing a string by reference. You might be able to get some improvement though the use of move semantics but in all likelihood all the strings will be small enough to avoid the free store anyway.

Yes, StartSpanOptions isn't meant to be used like that.
string_view is more efficient because not everything stores character sequences as std::string's. (See for example the instrumentation nginx or any other c library). It's also quite common to use sting literals where string_view allows you to avoid construction of an std::string object. See here if you want a full list of examples.

Can I suggest that string_view unary constructor from a string is made explicit or removed as it has been in std::string_view? This would make it more apparent to the user of the api but still support the most common use case where a string literal is behind passed in.

On 15 Sep 2017, at 23:04, Ryan<EMAIL_ADDRESS>wrote:
Yes, StartSpanOptions isn't meant to be used like that.
string_view is more efficient because not everything stores character sequences as std::string's. (See for example the instrumentation nginx or any other c library). It's also quite common to use sting literals where string_view allows you to avoid construction of an std::string object. See here if you want a full list of examples.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

std::string is meant to be implicitly convertible to std::string_view.
std::string_view doesn't have that constructor because there's a conversion operator on std::string.

Oh, I didn't realise that. I saw that the implicit constructor has been moved from the string_view and made the assumption it was to make sure it had to be explicit. (you don't know why they removed it, and made it a conversion operator?).
Is this to make the noop tracer faster?
The reason I saw this was because I was having a go at implementing the interface and I wanted to just move the tags from the StartSpanOptions object into another object for processing later. I suspect this is what most implementations will want to do. At least they will need to create copies of the tags anyway. Obviously I cannot if they are string_views because I don't know if the tags are going to live as long as the span will. The zipkin implementation I've seen does just this, so it has to do more work as far as I can see in most cases and you have the possibility of errors happening due to the unaware using it incorrectly.
I did a quick and dirty test to see what the performance difference was:
`template <typename T, typename T2>
void SetStandardOptions(T2& options)
{
// I would guess 6 is a little on the higher side for the number of tags.
for (int i = 0; i< 4; ++i)
{
auto o1 = T{"user_agent", "test1"};
o1.Apply(options);
}
}
int main()
{
auto t1 = {
auto s1 = std::chrono::high_resolution_clock::now();
for (auto i = 0; i < 1000000; ++i)
{
StartSpanOptionsStringView options;
SetStandardOptions(options);
}
auto s2 = std::chrono::high_resolution_clock::now();
for (auto i = 0; i < 1000000; ++i)
{
StartSpanOptionsString options;
SetStandardOptions(options);
}
auto e2 = std::chrono::high_resolution_clock::now();
auto string_view_d =  static_cast((s2 - s1).count());
auto string_d =  static_cast((e2 - s2).count());
double diff_perc  = (1.0-(string_d/string_view_d))*100.0;
cout << "Noop: " << diff_perc << endl;
};
auto t2 = [](){
    auto s1 = std::chrono::high_resolution_clock::now();
    for (auto i = 0; i < 100000; ++i)
    {
        StartSpanOptionsStringView options;
        SetStandardOptions<SetTagStringView>(options);
        vector<pair<string, Value>> tags(options.tags.begin(), options.tags.end());
    }
    auto s2 = std::chrono::high_resolution_clock::now();
    for (auto i = 0; i < 100000; ++i)
    {
        StartSpanOptionsString options;
        SetStandardOptions<SetTagString>(options);
        vector<pair<string, Value>> tags(std::move(options.tags));
    }
    auto e2 = std::chrono::high_resolution_clock::now();
    auto string_view_d =  static_cast<double>((s2 - s1).count());
    auto string_d =  static_cast<double>((e2 - s2).count());
    double diff_perc  = (1.0-(string_d/string_view_d))*100.0;
    cout << "Copies tags: " << diff_perc << endl;
};
for (int i = 0; i < 6; ++i)
{
    t1();
    t2();
}
return 0;

}`
Ignoring the first due to caching effects.
Noop: -14.5767
Copies tags: 27.2606
Noop: -16.6628
Copies tags: 25.2908
Noop: -10.7711
Copies tags: 18.595
Noop: -17.12
Copies tags: 25.3837
Noop: -19.5725
Copies tags: 28.4645
And in the case of a Noop, if you are that sensitive to latency, you would be better off just not calling the API in the first place, if you don't want to do tracing or possibly caching the span options before hand.
There are a lot of variables which effects the results however:
Depend on the number of tags you have per span. I don't know what an average number of tags is. I found that the break even point was about 20 tags per span.
The length of your tag. If they are under the SSO limit also makes a significant difference too.
If your tags are char* or strings will make a difference too.
As this is an API I would argue that it should be safer over speed. If the use needs speed they can always work around the API where as you cannot make people know they have incorrect assumptions.
Anyway, I'll just work around it in my case.

I think this is why it was removed.
string_view isn't meant to eliminate string copies; it's just meant to reduce them. If SetTag took a const std::string& as an argument instead of std::string_view, then calling
span.SetTag("abc", 123);

would result in two copies instead of one.
But I'm ok changing it to std::string in StartSpanOptions. I can see how it might not handle dynamically generated tag keys well.

Changed in #19


qBittorrent.qBittorrent version 4.3.6

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

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.0 schema?

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

Microsoft Reviewers: Open in CodeFlow

It is a fairly popular application but smartscreen will warn you until many people download it.

@denelon it would be nice if someone from the MS team would answer/check these PRs instead of having to be told to do so..

@OfficialEsco We're working to improve the validation processes.  When the error is something we need to look at, it should get assigned to one of the engineers.
This one looks like it's triggering SmartScreen from the image @KaranKad provided. It is possible to submit sites to SmartScreen and installers to Defender for analysis. I'll see if I can get confirmation on this one.

/azp run

Looks like there's a hash mismatch again, but in addition it looks like the Defender scan is failing for them as well

Cute message, however wrong detection
7/15/2021 1:26:13 PM
Status: Completed
##[error] Installer https://sourceforge.net/projects/qbittorrent/files/qbittorrent-win32/qbittorrent-4.3.6/qbittorrent_4.3.6_x64_setup.exe/download Scan information: 'Error information: BlockingDetectionFound'
##[error] Result: Failed

7/15/2021 1:26:18 PM
Status: Completed
##[error] Installer https://sourceforge.net/projects/qbittorrent/files/qbittorrent-win32/qbittorrent-4.3.6/qbittorrent_4.3.6_setup.exe/download Scan information: 'Error information: BlockingDetectionFound'
##[error] Result: Failed

It's probably marked as PUP in Windows Defender, but it's somehow allowed to execute in my environment.

What results does the Microsoft Security Intelligence report provide?

x64 version is the one detected as PUA

@KaranKad at least we know why it's failing now. I'm not sure how long it takes after submission to get the review so it isn't marked as PUA (assuming it's not).

It's only detected as PUA when downloading from Edge, it installs without any smartscreen popup in sandbox unlike before.

/azp run

Something weird here, cuz i am not getting any SmartScreen alert at work, home, sandbox or vm...
https://www.microsoft.com/en-us/wdsi/submission/77197cb8-fd0f-4135-9284-8cc5d8daa6e6
This is the one i submitted yesterday but all it says is
The details for the submission were not found or the submission has expired.
and
Status: In progress in Histroy

@OfficialEsco I don't have permissions to view the contents at that URL. I'll see if I can get one of the engineers to trace this one down if it doesn't pass with this run. I'm also a bit confused at the moment. This is somewhere in one of the defense in depth layers that likely isn't exposing sufficient meta-data in the responses bubbled up to easily trace.

Looking into this one.

Do you guys like just not like qBittorrent? 🤔

I think one of the installers (I can't remember if it's x86 or x64) has a PUA on it with one of the analysis services.

Its the x64 https://github.com/microsoft/winget-pkgs/pull/19135#issuecomment-880929563
The one i've downloaded multiple times without any warnings and sent in for review a week ago..

Still

but for once i got this

@KaranKad did you forget to reopen the PR btw?

Ahh i see, hopefully there is a new version soon and that it passed Microsoft Defender/SmartScreen

The thing is Defender does not detect it as PUA now and does not block installation when I tested it using Sandbox Test. Although Edge blocks it. VirusTotal Reports 0/68, so I doubt that Sandbox machines used in validation process run old defender definitions. idk 🤷♂


Refactor digest!() method for better extensibility, add GOST-R 34.10/11-2012 algorithms, fix digest node ID reference, cleanup

Implemented everything that we discussed in #21. I also made some cleanups with signature algorythm setup. I would also remove cert=() method (tries to guess appropriate signature algorythm) because it does no actually work as expected. It relies on certificate signature algorithm (CAs private key algorithm) which might not equal to certificate public key algorithm, which we are actually interrested in. But it's removal might break some existing applications, so I left it for now.

@netcitylife thanks, looks good :)

released in v1.9.0


[Feature Request] Register bots programmatically

Issue Description
At the moment if you want to register your bot you have to do it from https://dev.botframework.com/ manually. It would make life a lot easier if bots could be registered programmatically using the sdk.
Code Example
This is how the syntax could look:
botbuilder.registerBot({ auth: 'authKey' }, { name: 'bot name',  handler: 'bot_name',   description: 'description',  endpoint: 'https://example.com/api/messages',  channels: ['skype', 'slack'] }).then( ({appId, appPassword}) => {} );
authKey could be obtained from account settings

We are working on something to address this. Stay tuned for updates.

@nwhitmont That sounds nice. Would love to see, if we can build an extension for VSTS for that 😄

@nwhitmont  Are there any updates on this one? Since Bot channel registration is now happening on Azure, can I use Azure SDK to achieve this?

You can use Azure CLI to create bots. Read more - Create bots with Azure CLI


chore(deps): bump aws-cdk from 1.66.0 to 1.70.0

Notes

Updates the CDK version from 1.66.0 to 1.70.0
Updates the dependencies of tools shared with CDK

Testing

Ran it through a CodePipeline and ensured it succeeded.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

When you say you ran it through a CodePipeline, do you mean a pipeline similar to the one we have set up for mainline? That essentially just makes sure the build and package run properly, but doesn't test functionality beyond the unit tests. We should probably make sure this can still deploy a render farm without issue. What do you think about running the integration tests on it, or at least maybe our TS (and/or python) example?

When you say you ran it through a CodePipeline, do you mean a pipeline similar to the one we have set up for mainline? That essentially just makes sure the build and package run properly, but doesn't test functionality beyond the unit tests. We should probably make sure this can still deploy a render farm without issue. What do you think about running the integration tests on it, or at least maybe our TS (and/or python) example?

That's a good idea. I deployed the example typescript app and ensured it succeeded. Also checked the CloudWatch logs to verify the components had no issues during setup.


Correct Sample README Product slug

"products" of sample README must be from the slugs of Taxonomy Service. Otherwise, the sample doc generation will have an error and won't proceed to process other SDKs' sample docs.
closes #20685

@YijunXieMS When will you be merging this PR? It is currently blocking me from merging one of my PRs that I need to merge before I do a release tomorrow

@YijunXieMS When will you be merging this PR? It is currently blocking me from merging one of my PRs that I need to merge before I do a release tomorrow

Merged.

@YijunXieMS When will you be merging this PR? It is currently blocking me from merging one of my PRs that I need to merge before I do a release tomorrow

Merged.

Thank you!


Middle mouse button click on editor tabs may close wrong tab

Found a minor UI issue: When clicking the middle mouse button on the filename in an editor tab, it closes that tab, as expected. However, when doing this anywhere on the "X" symbol part of the tab, Spyder closes the next tab to the right.
E.g. in this image:

Middle mouse button click in the red area should close "temp.py", but it closes "untitled1.py".
(Literal) Edge case: Clicking in the green area should close "untitled1.py", but does nothing.
Python 3.7.7 64-bit | Qt 5.9.6 | PyQt5 5.9.2 | Windows 10
clean miniconda environment & spyder --reset

Thanks for the report @matheger . I do not have a mouse handy to check this problem, but what you say indeed suggest something is wrong.
Will try to tackle this in a future release.
Cheers!

Hi @goanpeca I'm unable to check this issue because I don't have a mouse either. We can ask in the team to see if someone can reproduce this.

I can reproduce this in Ubuntu

Hi @goanpeca I'm unable to check this issue because I don't have a mouse either. We can ask in the team to see if someone can reproduce this.

@steff456 you can overcome this by using https://karabiner-elements.pqrs.org/ with some configuration like the following one:

On Mac the X is to the left, but if I click on the right where the X would be on other operating systems, I get the same behavior. On the animation, I clicked F1 (Fn+F1) in the py portion of the name and the next tab closed instead of the one I clicked. So I can reproduce this.


Do not unset release if release target is defined

This is a proposed fix for #134.
It doesn't have any changes to docs or anything like that for the moment, but the idea is that you can set the leapp_target_release variable to some release version, and that will add it to the leapp commands for analysis/upgrade as well as preventing it from being unset in the post-upgrade steps.
Perhaps a boolean true/false would be preferred for stopping the release from being unset?

Reviewers, please refer to the issue here for additional background and discussion.

I think we would need to test the code but from just looking at it, I think it looks good

When I get a moment later today, I will add an assertion to make sure that --target isn't in the *_opts vars if leapp_target_release is also set.
That or, if preferred, we can just add a boolean variable that defaults to true for the unset task. Or we could even do both.

I think it makes sense to include a task to set it to the desired destination release for the version of RHEL upgraded to as well.

@jeffmcutter do you mean having a separate subscription-manager release --set x.y task? Leapp itself sets the release to whatever it upgrades to, but I suppose there could also be a subsequent minor release target set after the major upgrade and before the minor upgrade steps.

That is what I was thinking.  I'm not sure how common it would be, but with the right conditionals it would be harmless and potentially helpful.

@djdanielsson @heatmiser How's this?

Oh hold on, I forgot to add to README.md and add a changelog fragment.

I believe this feature is going to be required for RHEL 8 High Availability cluster to RHEL 9.

Thank you for testing, @jeffmcutter. I just resolved some merge conflicts as well.

I believe this feature is going to be required for RHEL 8 High Availability cluster to RHEL 9.
I will test using this PR.

This is not the case specifically for the HA, I misread the docs on that.  Still testing.

Tested successfully.  @swapdisk OK to merge?

Fixed sanity checks. I had created the change fragment in browser, which created it with dos line-endings instead of unix. Should be good now.

can you fix the conflict?

@djdanielsson done