Table UI view freezes

Description
The table UI freezes and I have to restart Dbeaver.
I still can press some buttons and some of other parts other then the table view show changes (very slowly).
DBeaver Version
Community Edition 23.2.0
Operating System
Ubuntu 22.04
Database and driver
mariadb mysql:8.0.20
docker container
Steps to reproduce
This only happens sometimes when I change to other application and come back with alt tab.
Additional context
No response

Hi, Could you please try to generate a thread dump and attach it here? Here is the instruction: https://dbeaver.com/docs/wiki/Making-a-thread-dump/
Thank you.

I'm not the original reporter but I'm seeing the same using dbeaver-ce installed via snap. While trying to create a thread dump I noticed pgrep simply doesn't find the PID and running jstack in the process manually results in
Unable to open socket file /proc/730091/root/tmp/.java_pid730091: target process 730091 doesn't respond within 10500ms or HotSpot VM not loaded

I'll use a version installed manually and report whether this changes things.

I'm not a heavy user of dbeaver myself. Yesterday I used it for a few hours and had freezes every quarter of an hour. After switching to a non-snap version and working with it for a few more hours I have not seen any freezes at all. This doesn't proof there are no freezes anymore, of course.
Maybe other people facing the same problem can try the "nojdk" tar.gz (which is what I used).
BTW whenever dbeaver wants to show a popup I see GTK logging a warning like
(DBeaver:759071): Gtk-WARNING **: 12:38:26.872: Negative content width -8 (allocation 5, extents 6x7) while allocating gadget (node separator, owner GtkSeparatorToolItem)

I have the same problem and I'm waiting for a fix

i got the same issue, its almost always happened after I minimize the dbeaver

any update on this issue ?

Confirming, also experiencing this issue with snap.
Version installed via apt on Debian using the .deb package has no such problems.

The problem is still not solved. I'm still waiting on fix.

i have same problem on ubuntu

@mayerro
Could you kindly provide some information as to why this was closed?
Was it fixed/will it be fixed?
If so, any ETA available ?
Thank you for your work!

I got the same issue here, have any workarround that we can do?

@petrisorciprian-vitals This should have been fixed in this release. Are you using snap release?

@Destrolaric
I tried the snap release a couple of days ago, version 23.3.2 of dbeaver.
After some time, the UI would freeze up, and I'd have to restart dbeaver in order to get it to work again.
I noticed it especially does this when I minimze and bring the window up again.
This happened consistently throughout the day. I experienced the same behaviour on the prior release (23.3.1), also instaled via snap.
The .deb has no such issues, so I reverted to that in the meantime.

Hi,
For me Dbeaver (Version <IP_ADDRESS>401072024) main window freezes but upper nav menu is available and when exiting asks about saving as usual.
I noticed similar freeze bug when switching windows with "Alt+Tab" combination on Ubuntu 22.04.3 LTS Wayland (Gnome v42.9).
When clicking separate windows as usual no freeze.

Hi everyone, during the freeze, could anyone try to make a thread dump jstack -e $(ps aux | grep java | grep dbeaver | awk '{print $2}') > ./dbeaver-thread-dump.txt

This is my dump. I hope it helps you
dbeaver-thread-dump.txt

@Destrolaric I tried the snap release a couple of days ago, version 23.3.2 of dbeaver.
After some time, the UI would freeze up, and I'd have to restart dbeaver in order to get it to work again. I noticed it especially does this when I minimze and bring the window up again. This happened consistently throughout the day. I experienced the same behaviour on the prior release (23.3.1), also instaled via snap.
The .deb has no such issues, so I reverted to that in the meantime.

I'd like to confirm that dbeaver installed using .deb package is solving the issue in contrary to the version installed using snap

Hello @lubakka,
The thread dump you've provided doesn't contain anything useful. Are you sure the dump was made after DBeaver started "freezing"?

@lubakka Hi. We still need additional information. Can you please try making the thread dump again?

@Destrolaric Now I have another problem with DBeaver and I had to go back to <IP_ADDRESS>312122044 version because when I open any table with many records it crashes. So first I have to wait for the new version from which it is currently so that I can install it on the new version and see if the freeze is there or not.

@lubakka We can't fix something we can't reproduce. Please provide at least some details regarding your issues.

@ShadelessFox
Here is the error I am getting now with the new version "Version <IP_ADDRESS>402060628" And I use a limit of 200 rows

java.lang.OutOfMemoryError: Java heap space
at org.eclipse.swt.graphics.Image.getImageDataAtCurrentZoom(Image.java:1053)
at org.eclipse.swt.graphics.Image.getImageData(Image.java:1124)
at org.eclipse.swt.graphics.Image.getImageData(Image.java:1013)
at org.eclipse.swt.graphics.GC.drawImage(GC.java:860)
at org.eclipse.swt.graphics.GC.drawImageInPixels(GC.java:810)
at org.eclipse.swt.graphics.GC.drawImage(GC.java:807)
at org.jkiss.dbeaver.ui.controls.ProgressLoaderVisualizer.lambda$0(ProgressLoaderVisualizer.java:167)
at org.jkiss.dbeaver.ui.controls.ProgressLoaderVisualizer$$Lambda$1096/0x00000001009c4af8.paintControl(Unknown Source)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5854)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1538)
at org.eclipse.swt.widgets.Control.gtk_draw(Control.java:3927)
at org.eclipse.swt.widgets.Scrollable.gtk_draw(Scrollable.java:365)
at org.eclipse.swt.widgets.Composite.gtk_draw(Composite.java:506)
at org.eclipse.swt.widgets.Canvas.gtk_draw(Canvas.java:174)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2482)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:6883)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6162)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1597)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4513)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
at org.eclipse.ui.internal.Workbench$$Lambda$220/0x0000000100377490.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)

eclipse.buildId=unknown
java.version=17.0.6
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Framework arguments:  -eclipse.keyring /home/lb/.local/share/DBeaverData/secure/secure_storage
Command-line arguments:  -os linux -ws gtk -arch x86_64

Please record a video showing the issue. It's not clear how this was achieved.

Bildschirmaufzeichnung vom 18.02.2024, 16:26:18.webm

I see, thank you. Try enabling this option to see if it helps:

@ShadelessFox
That doesn't help, same error again.

Could you provide the DDL for that table and the driver/server version?

@ShadelessFox
I have MariaDB with version: 10.3.39-MariaDB-1:10.3.39+maria~ubu2004

Thank you. I don't see anything suspicious. The issue might be with the driver.
Let's try a different approach. Try executing the following query in the SQL editor:
SELECT * FROM integris.changes LIMIT 200;

Adjust the limit to see when it starts consuming a lot of memory.

@ShadelessFox
Yes it works when I run the query it works it shows 200 results
And it shows an error again when the limit is 20000000
SELECT * FROM integris.changes LIMIT 20000000;

Thank you. I don't see anything suspicious. The issue might be with the driver.
Let's try a different approach. Try executing the following query in the SQL editor:
SELECT * FROM integris.changes LIMIT 200;

Adjust the limit to see when it starts consuming a lot of memory.

@ShadelessFox
I installed now the new version 23.3.5 and again I have a problem

java.lang.OutOfMemoryError: Java heap space
at org.eclipse.swt.widgets.Scrollable.vScrollBarSize(Scrollable.java:592)
at org.eclipse.swt.widgets.Scrollable.vScrollBarWidth(Scrollable.java:581)
at org.eclipse.swt.widgets.Scrollable.computeTrimInPixels(Scrollable.java:131)
at org.eclipse.swt.widgets.Scrollable.computeTrim(Scrollable.java:120)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:281)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:837)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:693)
at org.eclipse.e4.ui.workbench.renderers.swt.TrimBarLayout.computeSize(TrimBarLayout.java:178)
at org.eclipse.e4.ui.workbench.renderers.swt.TrimBarLayout$TrimLine.addControl(TrimBarLayout.java:52)
at org.eclipse.e4.ui.workbench.renderers.swt.TrimBarLayout.computeSize(TrimBarLayout.java:141)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:269)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:837)
at org.eclipse.e4.ui.workbench.renderers.swt.TrimmedPartLayout.layout(TrimmedPartLayout.java:132)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1877)
at org.eclipse.swt.widgets.Composite.setLayoutDeferred(Composite.java:1720)
at org.eclipse.swt.widgets.Display.runDeferredLayouts(Display.java:5088)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4504)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
at org.eclipse.ui.internal.Workbench$$Lambda$233/0x00000001003ad4c0.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.jkiss.dbeaver.ui.app.standalone.DBeaverApplication.start(DBeaverApplication.java:290)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)

eclipse.buildId=unknown
java.version=17.0.6
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Framework arguments:  -eclipse.keyring /home/lb/.local/share/DBeaverData/secure/secure_storage
Command-line arguments:  -os linux -ws gtk -arch x86_64

I'll attempt to extract a trace as well, reaching back when I have it.

@ShadelessFox , using the snap release, I'm getting the following error when attempting a thread dump:

I used the jstack bundled with the snap release, as you can see.
Visually, nothing under the top menu bar of dbeaver works (File, Edit, Navigate, etc all work and I can bring up new windows). Resizing the window leads to black borders.
The only solution is to close dbeaver and start it again; it seems like a crash/canvas painting bug based on the above.
Any pointers on how to get a thread dump/circumvent this issue?

Sorry, I don't know how to create thread dumps inside snap packages. It would be simpler to use a non-snap distribution.

The problem does not reproduce using non-snap releases, though.

Interesting, thank you for pointing that out. I'm going to discuss this issue with my colleagues.

I've tried to make a thread-dump while dbeaver was freezing. It happened after minimizing it for a while and opening it again.
As described by few people already, the top bar (File, Edit, Navigate, ..., Help) was the only part not frozen.
dbeaver-thread-dump.txt

I'm using it in Windows, currently on version Version <IP_ADDRESS>402060628  but since a few last minor releases I'm facing freezes rather frequent. Couldn't pin point exact operation that triggers it, but the result is the usual "Not Responding" application, and I have to kill it.
My frequently used DB connections these days have been are Postgres and Snowflake.
Here's a thread dump of while the it was "not responding"
dbeaver-thread-dump.txt

Hello @rgriffogoes
This issue is more about snap-problem. Please create a separate issue for your case on WIndows.

I've encountered an issue with DBeaver freezing. Initially, it froze only occasionally, but recently it started freezing consistently within 2-5 minutes after opening.
My environment:
Operating System: Ubuntu 22.04.4
DBeaver Version: 24.0.0  (the issue started in an older version, and I have tried updating to fix it, but it didn't help)
Solution:
To address this issue, I found that running the application via the command line provided a workaround.
Just open a terminal and run: dbeaver or dbeaver-ce

I've encountered an issue with DBeaver freezing. Initially, it froze only occasionally, but recently it started freezing consistently within 2-5 minutes after opening.
My environment: Operating System: Ubuntu 22.04.4 DBeaver Version: 24.0.0 (the issue started in an older version, and I have tried updating to fix it, but it didn't help)
Solution: To address this issue, I found that running the application via the command line provided a workaround. Just open a terminal and run: dbeaver or dbeaver-ce

I'm having the same problem same environment.

I've encountered an issue with DBeaver freezing. Initially, it froze only occasionally, but recently it started freezing consistently within 2-5 minutes after opening.
My environment: Operating System: Ubuntu 22.04.4 DBeaver Version: 24.0.0 (the issue started in an older version, and I have tried updating to fix it, but it didn't help)
Solution: To address this issue, I found that running the application via the command line provided a workaround. Just open a terminal and run: dbeaver or dbeaver-ce

I'm having the same problem same environment.
terminal doesn work and i have this error:
(DBeaver:181460): Gtk-WARNING **: 11:25:04.162: Negative content width -8 (allocation 5, extents 6x7) while allocating gadget (node separator, owner GtkSeparatorToolItem)

I had a similar problem with script screen freezing when truncating multiple remote tables.  Found a post somewhere indicating the increasing the memory allocated to DBeaver may help.  It worked for me.
Open dbeaver.ini in the installation folder.  The memory setting is at the bottom, -Xmx1024m.  Per recommendation I changed it to -Xmx4096m, 4GB, and the problem went away.

Facing the same issue.

Installing by downloading from the website, instead of using snap solved to me.
The downside its not updating it automatically and every two days receiving the message to update it.

Hi @monterhealth,
Unfortunately, such a complaint won't give us any insight into what actually causes your issue. Instead, during a freeze, please make a thread dump. You can find instructions here: https://github.com/dbeaver/dbeaver/wiki/Making-a-thread-dump

Hello,
I think I just resolved this bug in my computer.
It is someway related with Wayland. I changed it to Xorg And it works like a charm. Have you tried that?
To change from wayland to Xorg you have to edit the next files:
/etc/gdm3/custom.conf
In this file, uncomment the line with "WaylandEnable=false"
~/.bashrc or ~/.zshrc
Add the next line at the end of the file:
export QT_QPA_PLATFORM=xcb
And restart the computer.
I hope it helps :)

Hi, @Tuyuyi99 I haven't try your solution yet but will this affect other apps ?
I think the fix should come from dbeaver, not our machine

Hi, @Tuyuyi99 I haven't try your solution yet but will this affect other apps ? I think the fix should come from dbeaver, not our machine

Yes, it will affect other apps too, but it's the only solution I found for this problem :(

same here


FYI on Install

Path or pattern "bower_components/perfect-scrollbar/src/perfect-scrollbar.js" did not match any files
Looks like it's final resting place is now at:
bower_components/perfect-scrollbar/js/perfect-scrollbar.js
Just figured I'd let you know.  I could do a pull request if you want.

Oh, it looks like your git repo is up to date but maybe it needs NPM updated so it gets the latest release?
Sorry for the issue.

Indeed, NPM still needs to be updated. I had the same issue. :)

@joshuairl @t4t5 sorry guys I will publish update to npm

I'm having busy weeks doing my main job

If you want to help and contribute you are welcome

Oh, no worries, it was a simple fix. :) Thanks for the library, I'm trying it out right now. If I find something else, I'll make a pull request!


[TF-90] Automatic Cursor Window Resizing

Added a scaling remap to TouchFreeMain to adjust the cursor window size based on the cursor size.
Window sizes allow for max thickness rings at all times

[x] Code Review
[x] Test plan updated
[x] Developer Testing: Key item tests
[ ] Developer Testing: Execution of the updated test plan (changed items for this work only)
[ ] Product Owner Review (Optional)

[ ] Code Review
[ ] Test plan updated
[ ] Developer Testing: Key item tests
[ ] Developer Testing: Execution of the updated test plan (changed items for this work only)
[ ] Product Owner Review (Optional)

I noticed this has fallen behind develop by some way while sitting in review. There's no apparent conflicts but would we usually update the branch so we don't get any surprises during testing?

I think that's worth doing for any that we currently have open yeah


Rotation

This is a basic implementation of rotating a Rect using conversion to floating point numbers and rounding.
A more precise description of the process of rotating an array rects goes as follows.

Compute outer_rect, i.e., the smallest possible Rect that contains all the Rects in rects.
Normalize rects such that outer_rect can be thought of as the $1 \times 1$ square with anchor at  $(0, 0)$.
Rotate the normalized version of rects like translate_rotation did.
Apply the inverse of the normalization and take the integer part of the coordinates.
Fill in missing space that got lost by rounding down heights and widths: For each rect in rects, check whether it is one pixel off from intersecting another element of rects. If it is, increase the height and/or width by $1$ accordingly. This works because floating point conversion can introduce a difference of at most $1$. The case where the missing pixels are near the boundary of outer_rect needs to be treated separately, but with the same principle.

The main problem I have with my implementation is that I had to introduce a new structure, FloatRect, which has very primitive functionality and will probably not have any other use case in its current state. The next_anchor method of rotations now use this struct, because I apply it in step 3, which does computations on the normalized FloatRects. I briefly thought about generics for the Rect structure, but threw the idea out because there is no such thing as an unsigned float.
It seems to me that using floating point numbers (or an implementation of rational numbers for better precision in case of humongous monitors) are necessary to do step 5 in a legible way.

Sorry, didn't think it would get this complicated.

or an implementation of rational numbers for better precision in case of humongous monitors

:joy:

The main problem I have with my implementation is that I had to introduce a new structure, FloatRect

Yes, that was also the first thing bugging me a bit, but it shouldn't really matter, if we just don't expose the struct it won't clutter the API

I briefly thought about generics for the Rect structure

It made me think whether the Rect struct should use Size instead of integers, but I think it wouldn't make things easier and probably over-complicate the consumer API.

I think I'll merge and test it out. At least the rotation should work properly after that. There's always room for improvement, or maybe we'll  come up with a more concise / more efficient method in the future. You mentioned all the things that would be nice to get rid of. I think it would be nice if they were cleaned up, but they are probably negligible for now.

Remove (or hide) the code clutter (FloatRect)
Make code more efficient (I think there are quite a lot of allocations in fn rotate(...), maybe it would be possible to get rid of some)


Add a conda-lock setup for discussion.

PR Overview
This is the conda-lock specific stuff from #2900. See #2896 for some more general discussion of using lockfiles to make our environments reproducible.
Draft conda-lock setup for conversation...

Added configuration of conda-lock in pyproject.toml -- it still gets the newest versions of recordlinkage and sphinx-autoapi from PyPI.
See conda-lock.yml as an example of the lockfiles it generates.

To create a new lockfile:
conda-lock --mamba -f pyproject.toml

To install all the packages specified in that lockfile in an environment named pudl-dev:
conda-lock install --mamba -n pudl-dev --dev -E doc -E datasette

The --dev installs the somewhat standardized test and dev package extras.
Note that this requires having conda-lock installed in your base conda environment.

To get into the environment and work with PUDL:
mamba activate pudl-dev
pip install -e ./

You should see that absolutely every dependency has already been satisfied, and the only new package that gets installed is catalystcoop.pudl itself.
PR Checklist

[ ] Merge the most recent version of the branch you are merging into (probably dev).
[ ] All CI checks are passing. Run tests locally to debug failures
[ ] Make sure you've included good docstrings.
[ ] For major data coverage & analysis changes, run data validation tests
[ ] Include unit tests for new functions and classes.
[ ] Defensive data quality/sanity checks in analyses & data processing functions.
[ ] Update the release notes and reference reference the PR and related issues.
[ ] Do your own explanatory review of the PR to help the reviewer understand what's going on and identify issues preemptively.

Oh I hadn't seen conda-lock render that's great to know!
For Tox we could use tox-conda and let it use the environment generated by the lockfile / rendered environment files... or I think we could just let it keep using pip to install the package based on pyproject.toml couldn't we?  If it's running inside a conda environment that's satisfying the binary dependencies like libsnappydev then in theory the pip installed virtual environment should work fine, and would test whether it can actually be solved / installed using pip.  But it does seem like it would be less duplicative / more reproducible to use the locked conda versions for tox.

I do think we should think a bit about what kind of installation scenarios and environmental isolation we care about.
If we're treating PUDL as an application, and only expect it to be reliably installable in a conda environment corresponding to the lockfile, then what do we think about publishing tagged releases to PyPI and conda-forge?  And what do we think about using Tox to create an isolated environment into which a built package is installed, separate from the code that's stored in the repository?
One could imagine a world in which we assume PUDL will only ever be run from a checked-out repository, and only ever run in a conda environment built from a lockfile, which would imply a different set of things to test.


use nvidia's pytorch_quantization for int8 QAT

Thanks for your error report and we appreciate it a lot.
Checklist

I have searched related issues but cannot get the expected help.
The bug has not been fixed in the latest version.

Describe the bug
When the pytorch_quantization module is initialized, all the nn module is uspposed to be replaced by quant nn module, and weight should be quantized. However, only head and feature extract is quantized, others are not.

Reproduction
added lines below at the tools/test.py file
from pytorch_quantization import nn as quant_nn
from pytorch_quantization import calib
from pytorch_quantization.tensor_quant import QuantDescriptor
quant_desc_input = QuantDescriptor(calib_method='histogram')
quant_nn.QuantConv2d.set_default_quant_desc_input(quant_desc_input)
quant_nn.QuantConvTranspose2d.set_default_quant_desc_input(quant_desc_input)
quant_nn.QuantLinear.set_default_quant_desc_input(quant_desc_input)

from pytorch_quantization import quant_modules
quant_modules.initialize()

Use following command line:
python tools/test.py configs/pointpillars/hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d.py ./hv_pointpillars_fpn_sbn-all_4x8_2x_nus-3d_20210826_104936-fca299c1.pth --eval nuscenes

Did you make any modifications on the code or config? Did you understand what you have modified?
What dataset did you use?

Environment

Please run python mmdet3d/utils/collect_env.py to collect necessary environment information and paste it here.
sys.platform: linux
Python: 3.8.13 (default, Mar 28 2022, 11:38:47) [GCC 7.5.0]
CUDA available: True
GPU 0: NVIDIA GeForce RTX 3070 Laptop GPU
CUDA_HOME: /usr/local/cuda-11.3
NVCC: Cuda compilation tools, release 11.3, V11.3.58
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 1.10.0+cu113
PyTorch compiling details: PyTorch built with:

GCC 7.3
C++ Version: 201402
Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX512
CUDA Runtime 11.3
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
CuDNN 8.2
Magma 2.5.2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,

TorchVision: 0.11.0+cu113
OpenCV: 4.6.0
MMCV: 1.6.2
MMCV Compiler: GCC 9.3
MMCV CUDA Compiler: 11.3
MMDetection: 2.25.2
MMSegmentation: 0.29.0
MMDetection3D: 1.0.0rc5+fcb4545
spconv2.0: False

You may add addition that may be helpful for locating the problem, such as

How you installed PyTorch [e.g., pip, conda, source]
Other environment variables that may be related (such as $PATH, $LD_LIBRARY_PATH, $PYTHONPATH, etc.)

Error traceback
If applicable, paste the error trackback here.
A placeholder for trackback.

Bug fix
If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

@shuyuan-wang
https://github.com/open-mmlab/mmdetection3d/blob/fcb4545ce719ac121348cab59bac9b69dd1b1b59/mmdet3d/models/detectors/mvx_two_stage.py#L201
I guess that the dynamic judement leads to the neck can not be traced, thus the neck have not been inserted fakequant automatically.
So you can try deleting the line according to your requirement or passing a fixed value to self.with_pts_neck

Hi @shuyuan-wang, can you explain where exactly you put those lines in tools/test.py?

@shuyuan-wang
https://github.com/open-mmlab/mmdetection3d/blob/fcb4545ce719ac121348cab59bac9b69dd1b1b59/mmdet3d/models/detectors/mvx_two_stage.py#L201
I guess that the dynamic judement leads to the neck can not be traced, thus the neck have not been inserted fakequant automatically.
So you can try deleting the line according to your requirement or passing a fixed value to self.with_pts_neck

Hi @humu789, this does not seem to have any effect now (a year later). Any idea what else I would have to change to quantize also the backbone and neck?

This is related to how mmdetection create modules. in mmcv, for example, mmcv/cnn/bricks/conv.py/build_conv_layer, it uses nn.Conv2d, however, in pytorch_quantization/quant_modules.py, it looks for torch.nn.Conv2d. When I changed from nn.Conv2d to torch.nn.Conv2d in mmcv, it works

@shuyuan-wang
https://github.com/open-mmlab/mmdetection3d/blob/fcb4545ce719ac121348cab59bac9b69dd1b1b59/mmdet3d/models/detectors/mvx_two_stage.py#L201
I guess that the dynamic judement leads to the neck can not be traced, thus the neck have not been inserted fakequant automatically.
So you can try deleting the line according to your requirement or passing a fixed value to self.with_pts_neck

Hi @humu789, this does not seem to have any effect now (a year later). Any idea what else I would have to change to quantize also the backbone and neck?

This is related to how mmdetection create modules. in mmcv, for example, mmcv/cnn/bricks/conv.py/build_conv_layer, it uses nn.Conv2d, however, in pytorch_quantization/quant_modules.py, it looks for torch.nn.Conv2d. When I changed from nn.Conv2d to torch.nn.Conv2d in mmcv, it works

@shuyuan-wang Great, thank you for the information. I will take a look at this!


Update location of current meeting notes

This pull request updates the Meeting Notes location of the README to point at the 2023 notes page.  I've also updated the 2023 notes to include "backlinks" to years 2020, 2021, and 2022.  (I have not updated the 2021 and 2022 issues to have their respective backlinks, but we can do that independently of a PR.)

I'm not sure how to deal with the CI failure, but it looks like previous (merged) PRs had similar issues.

The pre-commit app is enabled for all repos.  You can put in a place holder .pre-commit-config.yaml with the content below to fix the error.
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: end-of-file-fixer

Thanks Steve.  I'll go ahead and make that part of this PR if that's ok.


Add build system

This adds package.json and Webpack-powered build system.
For building, run ./build.sh.
It runs npm run build and npm run build-min and outputs gzipped file size after minification.
The result files are in dist folder in UMD format.
We can later extend this to add examples with watcher, if desired.

Note I'm not adding ES6 (via 6to5) here. Let's see if this suits your purposes first. If all is fine, I'll add 6to5 in a separate commit.

Awesome! I'm not using any ES6 features yet nor planning on it, so we can leave 6to5 for now. Thanks for doing this :).

Please check if exports work properly. I haven't put this in test project yet..

The Gravitas object is exported, so everything's working. I just tried it in the Slalom example. I need to pull in all of the gravitas samples from the physics post at some point.

OK, let me know if I can help you getting examples running in this repo.
Basically we can put them in examples folder and give them their own Webpack config with watcher.


Resource destructors via Symbol.dispose

We should support resource destructors for the ComponentizeJS resources implementation.
Specifically - Symbol.dispose allows resources authored in JS to define a destructor. And Symbol.dispose also provides a mechanism for early destruction of own resources, instead of having to wait for the GC.
In addition, the finalization registry implemented for resources doesn't currently cater to dtor calls, which can be looked up with a custom parse of the component Wasm.

As far as I can tell, the dtor information is not actually available to the wit parser types though, and requires a custom parse of the component like in  https://github.com/bytecodealliance/wasmtime/blob/5062e34/crates/environ/src/component/translate.rs#L421.
Unless there is a way to get this from the bindgen types that I don't know about? (cc @alexchricton)


Updated Nal Driver (2010 version) other versions soon

I added the newer version of the intel nal driver, the ioctl and structs are same and have been confirmed working by me.

I will check it, I didn't know that intel release more new versions with this vulnerability

Not working:

Don't look vulnerable, can you recheck how did you do the tests? else I will reject the merge

can you add me in discord real quick? unreal#4096

edit: so I loaded the existing driver thinking it was the new driver, however the new driver has 1 single check which fails and doesn't allow the the request:

I'll work on finding a way to pass this check in the meantime I found another driver from 2010 (not blacklisted yet afaik) which works perfectly fine, ill remove the 2019 driver bytes from my fork and upload the 2010 one which works like a charm.

Since go to older version don't make too much sense and about the driver is flagged by EAC or not isn't important because they can add all of them I reject this pull


ENH: update package version

Hi! This is the friendly automated conda-forge-webservice.
I've started a version update as instructed in #19.
I'm currently searching for new versions and will update this PR shortly if I find one! Thank you for waiting!
Fixes #19

I guess the bot isn't smart enough to tell that 2.12 hasn't actually been published so it will require a manual PR....


Integrated server start-up

For practical use, would it not be more convenient to integrate the start-server directly into the program。It will  allow you to run on more systems

You mean installing and starting the modpack-server all in one command?
I am not sure this is helpful for many people tho because running the server as a service (e.g. systemd unit service) is usually better because of handling the startup etc. But thats just my use-case.
This could be added to the root command as a option flag as --start or --start-server or something simmilar.

Maybe it would also be a good feature to have another option flag to generate a systemd service unit file simmilar to this one.

For example, you can run mrpack-install run to start the server and download jre according to the system, adding the --install-service flag will install this command to the system service at the same time, so the package is more for cross-platform.
About the installation and management service https://github.com/kardianos/service
Now that the installer is ready, why not make it a server launcher?

After thinking about it for a while, this feature is not necessary.

For automatic updates, do you think there is a need for development?
We can record the file name and its corresponding Hash value during the first installation, compare it during the update, add or delete to the mod file according to the file record, and overwrite (merge) only the modified files after judging the configuration file according to the Hash value

After thinking about it for a while, this feature is not necessary.
I think the idea of having all steps of the deployment done by the tool is good.
The --start-server flag for start after installation and a subcommand systemd for generating the service unit file will go on the todo list.

For automatic updates, do you think there is a need for development?

Yeah this would be a nice feature to have.

We can record the file name and its corresponding Hash value during the first installation, compare it during the update, add or delete to the mod file according to the file record, and overwrite (merge) only the modified files after judging the configuration file according to the Hash value

I think the problem with comparing hashes is, that it is not required for override files to be declared in the index file. Some mod packs distribute mod jar files as overrides in their mrpack. It will be very hard to cover all mrpack use cases for the updates.
In the labrinth api, there is an endpoint to get file information from a hash value, so we could take a hashsum of each file in the mods/ directory and call the endpoint https://api.modrinth.com/v2/version_file/{hash} -> example.
If the files detected mod is present in the up-to-date index, we can delete the old file.
Whatever we do, I would prefer to not save a state for the tool to refer to at all, to keep it simple.

// edit: I just realized that will also only work for files published on Modrinth 🤔

The best I can think of is to record the file structure from the last installation and then incrementally update the installation directory

Could we also achieve the same by comparing the old and the new modrinth.index.json?
The process i am thinking of is the following:
Step 1:
Delete the set of old mods that are not present in the new index.
Step 2:
Download the set of mods files that are not present in the old index.
Step 3:
Extract new overrides but do not override existing files.
This would require to store the mrpack file with the server deployment (we do this already). To solve the problem of ordering the archive files (inconsistent naming, bad timestamps possible), I would suggest to only keep the currently installed mrpack archive. At the end of an update process, the old mrpack file should be deleted or marked to be not used for update comparsion anymore.
What do you think about this?

The biggest problem with modrinth.index.json is that modrinth.index.json only contains information about the files that need to be downloaded, which does not include information about the files in the overrides.

Yes you are right. When handling overrides i can only see 2 possibilities; either overwriting all old override files with new ones or skipping all existing files.
If someone chooses to include mods as override files and later updates also via override files, that will be an issue.
Also it will be hard to decide to keep old override files or use new files if the files are changed by the server at runtime.
We could however ask the user for confirmation in a dialog to either keep or delete the file. Maybe with an additional flag --silent / --force.

Yes, we can tell the user what actions the program will do at the end of the analysis, and he can agree to each or all of them.

update feature was implemented in #8 :ok_hand:


Fix StudentId error message

Fix #305

Pull latest version and solve merge conflicts @erwinqxy

Codecov Report

Merging #324 (542bd38) into master (7190c83) will decrease coverage by 0.35%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #324      +/-   ##
============================================
- Coverage     60.98%   60.62%   -0.36%
  Complexity      542      542
============================================
  Files           101      101
  Lines          2040     2052      +12
  Branches        209      209
============================================
  Hits           1244     1244
- Misses          708      720      +12
  Partials         88       88

Impacted Files
Coverage Δ

...ain/java/seedu/programmer/model/student/Email.java
80.00% <ø> (ø)

...java/seedu/programmer/model/student/StudentId.java
80.00% <ø> (ø)

src/main/java/seedu/programmer/ui/HelpWindow.java
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4e5520a...542bd38. Read the comment docs.


Install to computer instead of user profile

We would like a package that installs to the computer instead of into the users profile.   Security policies prevent execution of programs installed to the profile and this will make the software available to all users of the computer.

The install location is based on the UserProfile environment variable so just change that variable to a location that is acceptable for your security policy.

Hi Kevin,
When we launch the installation package we are not given a choice of installation locations.
Group Policy for our organization blocks all executable files that are not installed in C:\Program Files
Doug
From: Kevin Sawicki<EMAIL_ADDRESS>Sent: Monday, January 26, 2015 9:16 AM
To: atom/atom
Cc: rbcmhelpdesk
Subject: Re: [atom] Install to computer instead of user profile (#5259)
The install location is based on the UserProfile environment variable so just change that variable to a location that is acceptable for your security policy.
—
Reply to this email directly or view it on GitHub https://github.com/atom/atom/issues/5259#issuecomment-71497558 . https://github.com/notifications/beacon/AKNzuam4rs0GT7V8Elx5G0n-zTAzqaa_ks5nlm23gaJpZM4DXS0l.gif

Hey Doug,
Sorry, Atom will only install to a user's profile directory, you should change your GP settings so that users can execute code from their own folders. In future versions, a Program Files-compatible version might exist but that's a long way off.

How about just giving people an option where to install? It's pretty standard...

When we run the installation program there is no point where there is a choice on where to install it.
If you know of a switch or something similar we could use that would be very helpful
Thanks,
From: Zireael07<EMAIL_ADDRESS>Sent: Monday, February 23, 2015 5:35 AM
To: atom/atom
Cc: rbcmhelpdesk
Subject: Re: [atom] Install to computer instead of user profile (#5259)
How about just giving people an option where to install? It's pretty standard...
—
Reply to this email directly or view it on GitHub https://github.com/atom/atom/issues/5259#issuecomment-75541141 . https://github.com/notifications/beacon/AKNzuQ2HAuo7dfSKwxxxOb4E0aKFLGdYks5nuyQFgaJpZM4DXS0l.gif

How about just giving people an option where to install? It's pretty standard...

Nope, we won't do that, sorry.

In future versions, a Program Files-compatible version might exist but that's a long way off.

Why is that exactly? I was surprised to see it when the install location changed to the user directory. It's unusual and confusing to most Windows users.
What's the difficulty to just put it either into the Program Files, or any random location of the user's choice?

I believe installing to Program Files requires administrator permissions, which is a no no.

No UAC dialogs, which means....

...installs to the local user account (i.e. under %LocalAppData%)

What's the difficulty to just put it either into the Program Files, or any random location of the user's choice?

If we put it in Program Files, we can no longer update silently, since changing those files requires us to pop a UAC dialog. This also prevents users who aren't Administrator from installing the app at all.
I do want to solve the case that @rbcmhelpdesk describes, where they want to provision an entire lab with Atom and manage it via GP, but I want that to be a special-case scenario, not the mainstream one.

Disappointing.  Yet another OSS that doesn't respect the Windows security model.  I can't wait until somebody blames Microsoft because a vulnerability is exploited by allowing users to patch/overwrite application EXE since it's installed to the user's data folder instead of the application folder.

@thx1200 UAC is not a security boundary

UAC is not a security boundary, but Program Files is, and Atom won't install to Program Files because, apparently, UAC.  Probably laziness, but okay, UAC.

@thx1200 Google Chrome doesn't ask for UAC either.
I personally find UAC annoying and it's nice when a program doesn't ask for it when installing (or the few that require it every single startup).

I can tell this is a losing battle because nobody here apparently understands enterprise security in a Windows domain.  That's fine, there are plenty of other text editors out there that don't install to %appdata%.  And, you are right, Google Chrome does also install to %AppData% OR %ProgramFiles% if you want it to, which Atom does not.  User choice.  Imagine that!  http://www.google.com/intl/en/chrome/business/browser/

@thx1200 There is a .zip Windows distribution which you can install to the location that makes sense for you. It is available as atom-windows.zip on https://github.com/atom/atom/releases/latest

Yes, but remember that Squirrel is still in its infancy and that @paulcbetts has indicated that a Program Files-compatible version will be available eventually.

Also, let's try and stay constructive and friendly. No need to wrap valid
concerns into passive-aggressive woohaa.
On Mon, Mar 2, 2015 at 10:32 PM Wliu<EMAIL_ADDRESS>wrote:

Yes, but remember that Squirrel is still in its infancy and that
@paulcbetts https://github.com/paulcbetts has indicated that a Program
Files-compatible version will be available eventually.
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/5259#issuecomment-76841293.

So, @thx1200 is technically right in that installing to Program Files is a bit more secure than installing to the User's directory - though I'd argue that if someone is in a position to overwrite your user files with arbitrary data, you are already in a very bad position, one that isn't worth defending; they are already on the other side of the airtight hatch.
We've intentionally made this decision to be slightly less secure, in exchange for a number of benefits:

Users that don't have Admin privileges at all can install Atom (i.e. in a Corp domain)
We do not have to show UAC dialogs to update the app, so that we can do background updates
We do not have to show UAC dialogs to install the app either
We do not have to require the user to reboot in order to install an app update, because our files in Program Files are in-use by the currently running app.

May I make a suggestion?  With all the recent issues of cryptolocker, et al, I'm testing and hoping to deploy soon a GPO that will block many locations from allowing "arbitrary" .exe files to execute.  This includes the %localappdata%*.exe and one path deeper, %localappdata%**.exe.  So far the only real program blocked by that is Spotify, and users have been up in arms over it for years without a resolution.  I have seen many prorgrams (Chrome included) that run two folders deep.  Inside of AppData local it goes AppData\Local\CompanyName\ProductName\product.exe.  This is allowed on our network.  I have yet to see any viruses hide 2 folders deep.  Could you just add an extra layer (say, GitHub\Atom) to the install path?  I got the idea for the software restriction policies from many suggestions of the same paths all over the internet, so I know that many other organizations have similar SRPs.  Just a thought.  It might not help @rbcmhelpdesk that much, but it would at least help others with slightly less restrictive policies.

This is 100% fixed in the latest version of Squirrel, see these two PRs for more details:

https://github.com/Squirrel/Squirrel.Windows/pull/337
https://github.com/Squirrel/Squirrel.Windows/pull/308

Thanks @paulcbetts.  I used the --machine argument and it worked flawlessly.  Just one last suggestion... notating that somewhere on the download page (I understand if you just want atomsetup.exe to install with zero interaction and not adding it as an option).

"you should change your GP settings so that users can execute code from their own folders"
Ha, you're funny! Feel free to run as you please, CryptoLocker!

May I suggest that silent updates suck?
As a user, I want to know when a program is updating itself. You want to talk security? Hiding installs/updates/changes is something that malware does.
I'd also suggest that telling people to change group policy in a way that makes their domains and computers less secure is... ok, I'll be blunt... obnoxious. And wrong. Especially when the decisions you've already made are allegedly related to "security."
It wouldn't be the first time an OSS author or group of authors has made lousy security decisions and when the community complained, told them to go pound salt. (Filezilla FTP client and plaintext passwords, anyone?)

Atom is an excellent text editor. I love SO many things about it.  Oh, and upgrading silently breaks file associations too)

I would point out that if I had the time, I'd fork Atom and make better decisions regarding the installer. I don't have anywhere near enough time.

Thanks @stevesobol for your feedback. If you want to be 100% in control of the installation and update process, you have that option. You can download the zip format for your platform and install it wherever you like. You can manage exactly when and how Atom updates in this way, Atom will not try to autoupdate when you've installed using the zip format.
We're also making progress on running Atom from a portable install, so you can install Atom to a USB drive and unplug it when you're not using it.
So while you may not approve of the choices that were made in designing the installer, there are options.

No autoupdater for the zip is a big nuisance, though. And the zip is not advertised enough.

@lee-dohm - Actually, I like that answer. It's a very good compromise between doing nothing, and building everything from source. I could create an installer using (for example) InnoSetup that installs the program into \Program Files (x86) and sets up file associations, etc.
I was pretty harsh, wasn't I... let me just say that other than the silent updates, I agree that there are valid reasons for the design and packaging choices that have been made... I think I need to probably tone it down a little bit in the future... thank you for not responding to my snark with more snark. I honestly wasn't trying to be snarky (although I ended up succeeding, despite my best efforts).
@Zireael07 here's what I'm thinking. I do this, and include an Atom plugin that checks if a new version of my installer is available (I would update it when new versions of Atom are released), but I prompt the user to download and install, rather than updating silently.
@thx1200 @shawnr13 @rbcmhelpdesk  if I was to start packaging and making Atom releases available this way, in a way that won't cause problems with corporate group policies, would y'all be interested in using the fruits of my labor?

@lee-dohm Also, if I end up creating these alternate installers on a regular basis, would it be possible to get a link on atom.io somewhere? Probably not on the homepage; individuals and SMBs that don't use group policies won't need it, and putting the link there is likely to cause confusion. Some prominent place somewhere else on the site, though.

Also, if I end up creating these alternate installers on a regular basis, would it be possible to get a link on atom.io somewhere?

I'd be willing to add a link to them (making it very clear that they are unofficial) from Discuss, the official Atom and Electron message board. That should get sufficient :eyes: on them.

I was pretty harsh, wasn't I

You were. I'm glad we worked things out though :grinning:

I'd be willing to add a link to them (making it very clear that they are unofficial)

That'd be fine... just to get the links into Google. I will also make clear that I am solely responsible for supporting my work, and that it is not officially blessed by Github or by any of the Atom developers.
This is on my radar. I don't know when it will happen but I'm hoping I can make it happen soon.
Thanks :) and since I see upthread that I didn't apologize, I would like to apologize. I must have been having a pretty bad day - but that's no excuse. Won't happen again.

Thanks :) and since I see upthread that I didn't apologize, I would like to apologize. I must have been having a pretty bad day - but that's no excuse. Won't happen again.

It's quite alright. We all have bad days, believe me! Hopefully we just don't all have the same bad day :laughing:

This is on my radar. I don't know when it will happen but I'm hoping I can make it happen soon.

Thanks for keeping us updated. Just let me know when you've got something :grinning:

This also prevents users who aren't Administrator from installing the app at all.

That's why there is administrator : installing softwares for non administrator people.
User directory based install sucks a lot. Just put it in program files like any other software so it can be managable by windows server admins.

That's my goal with the alternate packaging. I haven't had any time to start working on it though. It's something I very badly want to do - but I'm not getting paid to do it - so it sits at the bottom of my list of priorities. :(

I'm having a problem with this right now. I need to install this in several computer labs, and it must be there for all users. That's easy for the typical Windows app, you just install for the system and manage the updates. But the instructor is asking for Atom by name, unfortunately.
Notepad++ is workable in this scenario, so he'll probably have to settle for that or go someplace else.
It would be nice to keep the application files in "program files", and all user data in the profile folder. Admins could manage patches the way they manage other apps. I realize this flies in the face of the way modern dev tools work,. But these are public access PCs and will be managed as such.
Is there a supported way to install the app in the default user profile? Then it could be pre-installed for each user when their profile is built.

I found a solution in packaging this app admin-style for all users.
Instead of the EXE, get the ZIP file. You have to look for it, but it's on the download page.
Don't even bother with the MSI, I know it's tempting.
Write a script to unpack the ZIP to %programdata%
All users have write access to this folder, and they can update freely. This would only get awkward if multiple users are logged in at the same time (terminal server / rds / etc)
In the same script, make shortcuts for Atom.EXE in start menu and/or desktop for all users.
To disable the auto-updater and/or enable the welcome screen, save a config file with your desired settings. Then put more code in the install script to sweep all profiles and copy the config to c:\users.atom\
This will be used in various public-access computer labs, most of them mobile (thus the auto-update disabler).

yeah, +1 on the support for system based installer (program files) as well.  so that it can be deployed in a corporate environment.  we're trying to burn into our base image for our fleet.  user profile based installs don't let us do that.  we had similar issues with other apps like dropbox, but they've since updated it when we've complained.  so i say....offer both like chrome and bluejeans :)

Giving people an option where to install, will be good. I think.
Automatic install on UserProfile ugly things.

@lovebdsobuj Yeah, it's not a big deal (in general!) for standalone computers, or even maybe computers running on a small AD network, but as you get into the bigger enterprises I can see where it'd be a problem.
Unfortunately, I haven't been able to start my "enterprise installer" project yet. It'll continue to be low-priority unless, of course, someone is willing to step up with some money to pay me to get it done. That said, I haven't forgotten about it.

I apologize for my abruptness, but I'm holding back my frustration as much as possible.  I mean, no offense, but you guys (the developers) present the editor like it's the best thing since ice cream was invented, allowing for extensibility with thousands of addon packages and a vibrant community. And I have to say, even though it's got one of these new-age "Web app/mobile app" UIs that I can't stand, and is written (at least partially) in my least favorite language, JavaScript, it's a damn good product, and this is why I switched from VS Code.
 Are we merely numbers and not people?! Doing this is similar to spending three months working on a masterpiece oil painting and then shoving it half-assedly into a 35 cent beat up old picture frame! It makes no sense whatsoever. That's more like the kind of dirty tactics Micro$oft and crApple are so fond of, rather than a forward-thinking FOSS advocate team; forcing users to automatically install every update there is and taking away a user's choice to set up their box the way they like. I mean, if I didn't know this was an open source project, I'd think it was created by Microsoft. You do understand geeks like to tweak the heck out of their boxes and have orgasms over the tedium of reading hundreds of pages of documentation or having countless ways to customize our software, right? I assumed you were developers ...
I don't mean to sound ungrateful, and definitely intend no offense. Atom is a splendid tool, and I've no doubt it will continue to remain used by many.
This is a fact I've learned based on twenty-plus years of development experience, a master's in computer science and a lifetime of entrepreneurship and using computers. I'm not bragging. I'm simply giving some advice. But it's your project. If you don't like having a lot of users, or just like to read a lot of negative comments, by all means, please continue your asinine practice. Maybe I'll switch back to VS Code or Notepad++ when I use Windoze, or even just use Vim/Emacs like I do on Linux.
Anyway, thanks for Atom, anyway. There is a lot of good about it, but much more room for improvement, and I don't mean the application itself.

@frosztbyte Please see my comment above. We do offer options by using the Zip file method. We know that people like to set up their computers many, many different ways. In so many different ways, as a matter of fact, that trying to include options for all of that in the installer would quickly get out of hand. So this system keeps the installer simple and much more maintenance-free so that we can spend more time working on the editor itself.


Support @class and @constructor jsdoc attributes

http://usejsdoc.org/tags-class.html
@class and @constructor behave the same as @this, but unlike @this, which needs an explicit type name, these two attributes define the 'this' parameter as the current function without having to implicitly name it.
Only the default syntax without explicit type/name is supported.

Should this really refer to the constructor function in this case? The way I understand it, it should be pointing at an instance of that constructor (i.e. an object derived from its prototype property).

Doesn't the parseType take care of that?
/** @param {Foo} f */
var method = function(f) {
  // f is instance of 'Foo'
}

/** @class */
var Foo = function() {
  // 'this' is instance of 'Foo'
}

.. or then I'm completely failing at jsdoc. Will look whether I'll figure out how the jsdoc type definitions work with self defined types.

I'm going by your tests, which assert the type of this to be fn(), which looks suspicious.

Oh right. That one.
I admit that confused me as well, but figured that was some acorn-specific detail that I didn't understand.
Did more testing. Apparently somewhere there is code that compares the case of the function. 'abc' -> fn(), 'Abc' -> Abc. Fixed tests.

Ah, I see what was going on now -- because the constructors weren't capitalized, the parseType didn't treat them as constructors. I've pushed a somewhat robust implementation in d45e911, and merged your tests in 1ac35c058b2


Plugin - install specific version

Hi,
Me again :)
I have another suggestion :would it be possible to select the version of a plugin to install / revert to ? (instead of latest ?) .

Hi,
Thanks for your suggestion. No plans to do this any time soon. PRs are welcome if it can be done in a user friendly way.


[master] Add rollback for refresh_bootmap script

Register cleanup function to EXIT sigual

@dongyanyang  please review

/lgtm.
@jichenjc Could you pls take a look?


WeekDays are not showing

I installed vue-cal yesterday and I found the following problem.
As you can see in the picture below the weekdays (Monday, Tuesday, Wednesday ecc) are not show in the Months view but they work correctly in the day view. I used the italian translation.

Why does it happens? How can I solve it?
Thank you in advance for the answer.

Hi @MarcoVdn,
Please share your code so I can help. :)

Same problem after updating vue-cal yesterday to make it work with splitdays.
Vue 2<EMAIL_ADDRESS>The day label is ok in day-view, but not in week & month-view.
Tested with the simplest implementation. ;)

Hi @redbeavermedia, Thanks for the details!
First off, can you see the documentation examples correctly? If not what is your browser and OS.
If yes: it could be a version of Vue, which one are you using? Vue Cal definitely needs 2.6.7+, but if you already have above it will be helpful to know the exact version to find out where the problem comes from.
Cheers!

Hi @redbeavermedia, Thanks for the details!
First off, can you see the documentation examples correctly? If not what is your browser and OS.
If yes: it could be a version of Vue, which one are you using? Vue Cal definitely needs 2.6.7+, but if you already have above it will be helpful to know the exact version to find out where the problem comes from.
Cheers!

Updating vue was THE fix.
Hero! ;)
Op vr 1 jan. 2021 om 23:22 schreef Antoni<EMAIL_ADDRESS>
Hi @redbeavermedia https://github.com/redbeavermedia, Thanks for the
details!
First off, can you see the documentation examples correctly? If not what
is your browser and OS.
If yes: it could be a version of Vue, which one are you using? Vue Cal
definitely needs 2.6.7+, but if you already have above it will be helpful
to know the exact version to find out where the problem comes from.
Cheers!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/antoniandre/vue-cal/issues/366#issuecomment-753394442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH6NIGPOVTAWCP6DZ276LVLSXZDKHANCNFSM4VGY3TDQ
.

Updating vue was THE fix.
Hero! ;)
Op vr 1 jan. 2021 om 23:22 schreef Antoni<EMAIL_ADDRESS>
Hi @redbeavermedia https://github.com/redbeavermedia, Thanks for the
details!
First off, can you see the documentation examples correctly? If not what
is your browser and OS.
If yes: it could be a version of Vue, which one are you using? Vue Cal
definitely needs 2.6.7+, but if you already have above it will be helpful
to know the exact version to find out where the problem comes from.
Cheers!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/antoniandre/vue-cal/issues/366#issuecomment-753394442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH6NIGPOVTAWCP6DZ276LVLSXZDKHANCNFSM4VGY3TDQ
.

Closing the issue then, please reopen if not solved!

Closing the issue then, please reopen if not solved!


Update Blue Archive - add Specialties, Armor, DR, and Initiative

Adding various new fields; Specialties, DR, Armor, and Initiative (and an Init button)

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is:  Blue Archive  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: SPRUG Workshop (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: Blue Archive (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[x] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[x] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

Character Sheet Info Roll20 Internal Use only.


Microchip XEC rtos Timer breaks gpios and k_sleep?

Describe the bug
Before commit bdaab8cfa0071127bbe28fcce33a0037fb661077 code below was working:
#include <sys/printk.h>
#include <device.h>
#include <drivers/gpio.h>

#include <soc.h>

#define GPIO_OUT_DRV_NAME DT_GPIO_XEC_GPIO140_176_LABEL
#define GPIO_OUT_PIN MCHP_GPIO_157

void main(void)
{
	struct device *gpio_out_dev;
	int ret;

	gpio_out_dev = device_get_binding(GPIO_OUT_DRV_NAME);
	if (!gpio_out_dev) {
		printk("Cannot find %s!\n", GPIO_OUT_DRV_NAME);
		return;
	}

	/* Setup GPIO output */
	ret = gpio_pin_configure(gpio_out_dev, GPIO_OUT_PIN, (GPIO_DIR_OUT));
	if (ret) {
		printk("Error configuring pin %d!\n", GPIO_OUT_PIN);
	}

	while (1) {
		gpio_pin_write(gpio_out_dev, GPIO_OUT_PIN, 0);
		k_sleep(300);
		gpio_pin_write(gpio_out_dev, GPIO_OUT_PIN, 1);
		k_sleep(300);
	}
}

led3 on MEC evaluation board is then flashing.
After that commit: it does not work anymore.
Reverting that commit makes things work again.
To Reproduce
Steps to reproduce the behavior:

get the code to compile against board mec15xxevb_assy6853 (replace the hello_world sample for instance)
flash (with flashrom or dediprog's software)

Expected behavior
led 3 on the evaluation board should blink
Impact
gpio and/or k_sleep are affected by this commit?
I really need this board to work (still having issues with UART2, partially solved via #17763) and this kind of commit is going against that. I reverted on my local branch obviously, and it worked fine again.

@scottwcpg have a look please.

I have fixed this issue in PR 17776.
Root cause: k_busy_wait takes a parameter in units of microseconds and its default implementation calls the timer driver k_cycle_get_32. This will not work for timer drivers using a 32KHz time base. This fix in PR 1776 enables CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT and implements z_arch_busy_wait in the MEC1501 SoC layer. SoC layer z_arch_busy_wait uses a MEC1501 32-bit peripheral counter configured for 16MHz, count-up, auto-reload, and no interrupt. 16MHz was chosen as it allow a shift of 4 to convert microseconds to 16MHz time units instead of the more expensive multiply.

@scottwcpg  This PR only resolves https://github.com/zephyrproject-rtos/zephyr/issues/17897
Lets address this k_sleep issue inaccuracy issue in in a different PR.

@tbursztyka can we close this?

yes your patch fixed the issue


[release-1.9] Properly handle KafkaSource initial offset (#2962)

Cherry-pick of https://github.com/knative-sandbox/eventing-kafka-broker/pull/2962

/test unit-tests

/retest-required

/retest

/retest

/retest

/test upgrade-tests

/cc @matzew @aliok

/test upgrade-tests

/test upgrade-tests

/test upgrade-tests

/test upgrade-tests


remove duplicate code

Ⅰ. Describe what this PR did
remove duplicate code

Codecov Report

Merging #1448 into develop will increase coverage by 0.25%.
The diff coverage is 1.08%.

@@              Coverage Diff              @@
##             develop    #1448      +/-   ##
=============================================
+ Coverage      45.43%   45.69%   +0.25%
  Complexity      1664     1664
=============================================
  Files            345      345
  Lines          12708    12639      -69
  Branches        1611     1588      -23
=============================================
+ Hits            5774     5775       +1
+ Misses          6287     6218      -69
+ Partials         647      646       -1

Impacted Files
Coverage Δ
Complexity Δ

...ta/rm/datasource/exec/SelectForUpdateExecutor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../rm/datasource/exec/BaseTransactionalExecutor.java
17.39% <0%> (-16.51%)
6 <0> (ø)

...va/io/seata/rm/datasource/exec/DeleteExecutor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...va/io/seata/rm/datasource/exec/UpdateExecutor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...va/io/seata/rm/datasource/exec/InsertExecutor.java
85.07% <100%> (+17.21%)
20 <0> (ø)
:arrow_down:

...server/store/file/FileTransactionStoreManager.java
47.38% <0%> (+0.34%)
19% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4472d9b...769bfb4. Read the comment docs.


Makefile: dont't run "test" as part of default "all" make target

The unit tests require CAP_NET_ADMIN permissions, so commonly they fail in a developer environment for valid reasons.
Having the "test" target part of the default make target ("all") will fail in such an environment, which is inconvenient.
Running unit tests should be a separate make target. To run tests, explicitly run make test.
Fixes: f2dbb73a9938 ('Makefile refactor')

Follow-up to https://github.com/k8snetworkplumbingwg/sriov-cni/pull/305#issuecomment-2259950853

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

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

Totals

Change from base Build<PHONE_NUMBER>5:
0.0%

Covered Lines:
535

Relevant Lines:
1294

💛  - Coveralls

This applies in a similar way to https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin/pull/579
CC: @adrianchiris


error in send Config file on email

At the end when tool ask for to generate config file and send it on my email this secetion is not working and giving error i cant send email and canot get the config file

Its very hard to comment without knowing your env setup.  Could you check out this SSL CERTS , PORTS ?


Pattern error VAC?

Heard someone got red trust factor because of this pattern error.
Will this lead to VAC ban?
I injected and crashed several times on my main account yesterday.
Now trying to sell my knife

iq?

i dont think that this can result to red trust factor. if u got red trust factor, go check lfg option. if you get below 10 that means that either no one playing near u yet or red trust (if u get 2-3 ppl most of the time)

i dont think that this can result to red trust factor. if u got red trust factor, go check lfg option. if you get below 10 that means that either no one playing near u yet or red trust (if u get 2-3 ppl most of the time)

That's just false. Seeing more or less people in LFG is not how you determine trust factor lol.

I suggest you don't use opensource cheat on ur main account, as time goes by it may cause VAC ban.

i dont think that this can result to red trust factor. if u got red trust factor, go check lfg option. if you get below 10 that means that either no one playing near u yet or red trust (if u get 2-3 ppl most of the time)

That's just false.


UrlRecognizer detects many false positives when analyzing code snippets

Describe the bug
The BASE_URL_REGEX pattern of presidio_analyzer.predefined_recognizers.url_recognizer.UrlRecognizer generates several false positives when analyzing text that contains code snippets, filenames, or any non-URL token in the format <foo>.<bar>. In particular, regex patterns like (?:sy), (?:mt), (?:py) etc. match with os.system (Python module), zeus.mtia.local (hostname), rpc.py (Python file) and others, causing unintended false positives like os.sy, zeus.mt, rpc.py, etc.
To Reproduce
Install presidio_analyzer and run this:
from presidio_analyzer import AnalyzerEngine

text = '''
# Exploit Title: - rpc.py: Remote Code Execution (RCE)
# Google Dork: N/A
# Date: 2022-07-12
# Exploit Author: Elias Hohl
# Vendor Homepage: https://github.com/abersheeran
# Software Link: https://github.com/abersheeran/rpc.py
# Version: v0.4.2 - v0.6.0
# Tested on: Debian 11, Ubuntu 20.04
# CVE : CVE-2022-35411
import requests
import pickle
HOST = "zeus.mtia.local:65432"
HEADERS = {
"serializer": "pickle"
}
def generate_payload(cmd):
  class PickleRce(object):
    def __reduce__(self):
      import os
      return os.system, (cmd,)
  payload = pickle.dumps(PickleRce())
  print(payload)
  return payload
'''

analyzer = AnalyzerEngine()
results = analyzer.analyze(text=text, entities=['URL'], language='en')
piis = []
for result in results:
    pii = text[result.start:result.end]
    piis.append(pii)

print(piis)

Expected behavior
['https://github.com/abersheeran/rpc.py', 'https://github.com/abersheeran']
Actual behavior
['https://github.com/abersheeran/rpc.py', 'https://github.com/abersheeran', 'rpc.py', 'zeus.mt', 'os.sy']
Screenshots
UrlRecognizer.BASE_URL_REGEX:

Additional context
If this behavior is intended, adding (?![a-z]) to the expression at least prevents false positives like os.system (see the screenshots below). Cases like rpc.py (Python file) and rpc.py (valid Paraguayan URL) don't seem to have a simple solution though.

Thanks for raising this issue. Agree this isn't straightforward as website.ru is a valid URL as well as website.py.
One way to overcome this is to set the confidence threshold above 0.5, which is the current base URL pattern score. In case of a real URL, context words around the url text could help boost the score (but not in all cases).
If you have a suggestion for improvement, we'd be happy to review it.


minimum size for flame elements

Flame elements can be so small as to be unclickable. There should be a minimum size for flame elements, to prevent a loss of interactivity with the graph. The demo flamegraph on this site has several good examples of small (but deep, from a stack perspective) spikes that are very challenging to click.

I agree, but it's accurate representation of the stack. Zoom helps with the problem, but clicking on a small frame without zooming first can be challenging sometimes. Any suggestions solving the problem without affecting accuracy? I'm contemplating the idea of hiding small frames until you zoom in. It will help with performance too.

This might be tied to #54

Done on https://github.com/spiermar/d3-flame-graph/commit/ea645fec38cb9c8e7dfa744710e38ea9bc6badb7.


RuntimeManagementTest is not shutting down Threads properly

As revealed in the investigation related to memory leaks.
Seems like every time RuntimeManagementTest is run, we keep two threads up and running:

Not sure if this is caused by the bug in a test or in the implementation (finalizers) of ManagedResource.

One possible culprit:
"pool-1-thread-1-ScalaTest-running-RuntimeManagementTest"
	at java.lang.Thread.genThreadName(Thread.java:1118)
	at java.lang.Thread.<init>(Thread.java:736)
	at java.lang.Thread.<init>(Thread.java:1165)
	at org.graalvm.polyglot.Engine$APIAccessImpl.newEngine(Engine.java:890)
	at com.oracle.truffle.polyglot.PolyglotImpl.buildEngine(PolyglotImpl.java:374)
	at org.graalvm.polyglot.Engine$Builder.build(Engine.java:756)
	at org.graalvm.polyglot.Context$Builder.build(Context.java:1925)
	at org.enso.interpreter.test.InterpreterContext.ctx(InterpreterTest.scala:146)
	at org.enso.interpreter.test.semantic.RuntimeManagementTest.$anonfun$specify$1(RuntimeManagementTest.scala:18)
	at org.enso.interpreter.test.semantic.RuntimeManagementTest$$Lambda/0x00000007c0222190.apply$mcV$sp
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
	at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
	at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
	at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
	at org.scalatest.Transformer.apply(Transformer.scala:22)
	at org.scalatest.Transformer.apply(Transformer.scala:20)
	at org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply(AnyWordSpecLike.scala:1240)
	at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
	at org.scalatest.TestSuite.withFixture$(TestSuite.scala:195)
	at org.scalatest.wordspec.AnyWordSpec.withFixture(AnyWordSpec.scala:1880)
	at org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1(AnyWordSpecLike.scala:1238)
	at org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTest$1(AnyWordSpecLike.scala:1250)
	at org.scalatest.wordspec.AnyWordSpecLike$$Lambda/0x00000007c0290000.apply
	at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
	at org.scalatest.wordspec.AnyWordSpecLike.runTest(AnyWordSpecLike.scala:1250)
	at org.scalatest.wordspec.AnyWordSpecLike.runTest$(AnyWordSpecLike.scala:1232)
	at org.scalatest.wordspec.AnyWordSpec.runTest(AnyWordSpec.scala:1880)
	at org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTests$1(AnyWordSpecLike.scala:1309)
	at org.scalatest.wordspec.AnyWordSpecLike$$Lambda/0x00000007c0285c08.apply
	at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:413)
	at org.scalatest.SuperEngine$$Lambda/0x00000007c02861b0.apply
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
	at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:427)
	at org.scalatest.SuperEngine$$Lambda/0x00000007c02861b0.apply
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
	at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:427)
	at org.scalatest.SuperEngine$$Lambda/0x00000007c02861b0.apply
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
	at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
	at org.scalatest.wordspec.AnyWordSpecLike.runTests(AnyWordSpecLike.scala:1309)
	at org.scalatest.wordspec.AnyWordSpecLike.runTests$(AnyWordSpecLike.scala:1308)
	at org.scalatest.wordspec.AnyWordSpec.runTests(AnyWordSpec.scala:1880)
	at org.scalatest.Suite.run(Suite.scala:1114)
	at org.scalatest.Suite.run$(Suite.scala:1096)
	at org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run(AnyWordSpec.scala:1880)
	at org.scalatest.wordspec.AnyWordSpecLike.$anonfun$run$1(AnyWordSpecLike.scala:1354)
	at org.scalatest.wordspec.AnyWordSpecLike$$Lambda/0x00000007c0280f60.apply
	at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
	at org.scalatest.wordspec.AnyWordSpecLike.run(AnyWordSpecLike.scala:1354)
	at org.scalatest.wordspec.AnyWordSpecLike.run$(AnyWordSpecLike.scala:1352)
	at org.scalatest.wordspec.AnyWordSpec.run(AnyWordSpec.scala:1880)
	at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
	at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
	at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:414)
	at sbt.ForkMain$Run$$Lambda/0x00000007c02057e0.call
	at java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.lang.Thread.runWith(Thread.java:1596)
	at java.lang.Thread.run(Thread.java:1583)

One possible fix:
$ git diff
diff --git engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/semantic/RuntimeManagementTest.scala engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/semantic/RuntimeManagementTest.scala
index 876b42ab20..7f3b018f3a 100644
--- engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/semantic/RuntimeManagementTest.scala
+++ engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/semantic/RuntimeManagementTest.scala
@@ -47,7 +47,7 @@ class RuntimeManagementTest extends InterpreterTest {
       }

       def runTest(n: Int = 5): Unit = {
-        val threads = 0.until(n).map(_ => new Thread(runnable))
+        val threads = 0.until(n).map(_ => new Thread(runnable, "RuntimeManagementTest-Thread"))
         threads.foreach(_.start())
         var reportedCount = 0
         while (reportedCount < n) {

that names one of the testing threads.

Seems like every time RuntimeManagementTest is run, we keep two threads up and running:

What do you mean. "Every time" it is run? I can:
sbt:runtime-integration-tests> testOnly *RuntimeManagementTest

however that runs the test only once. How do I reproduce "every time"?

Taking heap dump shows the Thread-144 hanging there after RuntimeManagementTest gets executed in a sequence of tests started by
sbt:runtime-integration-tests> test

is a LanguageSystemThread:

There are four tests in RuntimeManagementTest and only the last three are leaving the threads behind. The first one creates new suspicious threads:
[info] RuntimeManagementTest:
[info] Enso Code Execution
[info]   when Context is Cached
SLF4J: Attempting to load provider "org.enso.logger.TestLogProvider" specified via "slf4j.provider" system property
[info]   - should Interrupt threads through Thread#interrupt() (1 second, 812 milliseconds)
[info]   - should Automatically free managed resources !!! IGNORED !!!
[info]   - should Automatically free managed resources amongst manual closure of other managed resources !!! IGNORED !!!
[info]   - should Automatically free managed resources amongst manual takeover of other managed resources !!! IGNORED !!!
[info] Enso Code Execution
[info]   when Context is Uncached
[info]   - should Interrupt threads through Thread#interrupt() (326 milliseconds)
[info]   - should Automatically free managed resources !!! IGNORED !!!
[info]   - should Automatically free managed resources amongst manual closure of other managed resources !!! IGNORED !!!
[info]   - should Automatically free managed resources amongst manual takeover of other managed resources !!! IGNORED !!!
Found 0 suspicious threads
[info] Test run org.enso.interpreter.test.instrument.RuntimeManagementCleanupTest finished: 0 failed, 0 ignored, 1 total, 1.057s

Culprit: RuntimeManagementTest doesn't close the EnsoContext!

Culprit: RuntimeManagementTest doesn't close the EnsoContext!

At the end

#10890

fixes the problem by finishing the threads when they become idle.


Specifying groups per user

Currently it looks like the way groups are assigned per user, is to defined one keycloak_user_group_mapping that has a list of all the user IDs in user_ids.
Looking at the Keycloak REST API docs, group memberships are created by requesting this endpoint: PUT /{realm}/users/{id}/groups/{groupId}. For ref this is also the endpoint we're already using in this project.
That endpoint gives an impression that group memberships are relative to a particular user. That's quite different from the mentioned keycloak_user_group_mapping which seems to be modelled around one group having its members declared to it.
@mahpatil have I completely misunderstood the intention of keycloak_user_group_mapping? If not, did you consider an user -> group membership where a keycloak_user has a groups field or similar?

Thanks for chiming in @tazjin! To me that's a confirmation that others has also realised that enforcing one way of modelling things isn't always ideal.
I'll close this issue for now since I've gotten the input I was looking for. If we decide to use groups in Keycloak more extensively, I'll probably end up adding a second way of modelling group memberships per user.


Expose repo to migrations

I'm likely in the minority that would need or use this, but it seems logical to have access to the repo during migrations and I didn't see an obvious way to get to it already.  If nothing else, this may save others from digging for it.

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Gh pages

git clone https://git.gnu.io/gnu/gnu-social.git

Hi @brodie7301!
Thanks for wanting to contribute to Bootstrap by sending this pull request!
Unfortunately, your pull request seems to have some problems:

Normally, the gh-pages branch should never be merged into master branch.

You'll need to fix these mistakes and revise your pull request before we can proceed further.
Once you've fixed these problems, you can either ask the maintainers to re-open this pull request, or you can create a new pull request.
Thanks!
(Please note that this is a fully automated comment.)


HHH-13689 Replace uses of the deprecated osgi plugin with the biz.aQute.bnd plugin

https://hibernate.atlassian.net/browse/HHH-13689
DO NOT MERGE: This pull request is based on #3078 (upgrade to Gradle 5), which should be merged first. This means the first few commits are those from #3078 , but they will disappear once #3078 is merged and I rebase the PR on master.
The OSGi plugin is deprecated in Gradle 5, meaning we will have to switch to its replacement before we can think about upgrading to Gradle 6. And we will have to upgrade to Gradle 6 at some point, for JDK13+ support.
This PR addresses two points:

Switching to the recommended replacement for the OSGi plugin, the BND Gradle plugin, and adapting the configuration (the syntax is a bit different).
Adding more configuration to remove unwanted Import-Packages, unwanted package versions, etc.

I tried to keep the changes in the MANIFEST.MF files to a minimum. Compared to 5.4.7.Final, here is what will change:

In hibernate-core, there are two new imported packages (Import-Package header): com.ibm.websphere.jtaextensions and org.objectweb.jonas_tm. The old plugin didn't detect the dependencies, but the new one does: we load classes from these packages dynamically, if they are present, in the transaction manager code. I made the imports optional and removed the version constraints, since I'm not sure what the version constraints are.
In hibernate-core, there is a new Private-Package header that references two packages: org.hibernate.xsd.cfg and org.hibernate.xsd.mapping. From what I can tell, those packages only contain resources (XSD files). They weren't exported in 5.4.7.Final. The Private-Package header is just a byproduct of BND and does not change anything in OSGi runtimes (it's ignored).
In hibernate-gradle-plugin, the Import-Packages for the Groovy APIs no longer point to a specific version (the "version" bit was removed). As far as I can tell, we don't have an explicit dependency to a specific version of Groovy in our own gradle files, so I think it makes sense? I can add a version manually, but I would need to know which version we want to target. Or, you know, we just leave it as is: I might be wrong, but running a Gradle plugin in an OSGi environment looks pretty niche.
All OSGi instructions were removed from javadoc and sources JARs. Apparently they were copied there by mistake. If we wanted to restore them, it would be quite complicated with the new plugin.

I just rebased and force-pushed, and checked the generated manifests again, just to be sure.
The changes mentioned in the description of this PR are still valid:

In hibernate-core, there are two new imported packages (Import-Package header): com.ibm.websphere.jtaextensions and org.objectweb.jonas_tm. The old plugin didn't detect the dependencies, but the new one does: we load classes from these packages dynamically, if they are present, in the transaction manager code. I made the imports optional and removed the version constraints, since I'm not sure what the version constraints are.
In hibernate-core, there is a new Private-Package header that references two packages: org.hibernate.xsd.cfg and org.hibernate.xsd.mapping. From what I can tell, those packages only contain resources (XSD files). They weren't exported in 5.4.7.Final. The Private-Package header is just a byproduct of BND and does not change anything in OSGi runtimes (it's ignored).
In hibernate-gradle-plugin, the Import-Packages for the Groovy APIs no longer point to a specific version (the "version" bit was removed). As far as I can tell, we don't have an explicit dependency to a specific version of Groovy in our own gradle files, so I think it makes sense? I can add a version manually, but I would need to know which version we want to target. Or, you know, we just leave it as is: I might be wrong, but running a Gradle plugin in an OSGi environment looks pretty niche.
All OSGi instructions were removed from javadoc and sources JARs. Apparently they were copied there by mistake. If we wanted to restore them, it would be quite complicated with the new plugin.

You can find the diff here.

Yes, that all sounds reasonable to me.

I had already run it locally and it passed for me


Trufflehog add unverified secret KPI

Closed in favor of https://github.com/fraunhofer-iem/spha/issues/40


ACL support

Add support for ACL at Boostrap side (I think we should go for a better generic way : be able to send any write request).
Add support for ACL at client side.

implemented by #666.
We didn't add any UI to set acl config in leshan-bs-demo.
But you can use REST API :
import requests
import json

BASE_URL = "https://leshan.eclipse.org/bs/"  # the URL of the server.
url = BASE_URL + "api/bootstrap/clientendpoint"  # the client endpoint here !
data = {"servers": {"0": {"shortId": 123,
                        "lifetime": 20,
                        "defaultMinPeriod": 1,
                        "defaultMaxPeriod": None,
                        "disableTimeout": None,
                        "notifIfDisabled": True,
                        "binding": "U"}},
        "security": {"0":{"uri": "coaps://leshan.eclipse.org:5784",
                        "bootstrapServer": True,
                        "securityMode": "PSK",
                        "publicKeyOrId": [98,111,111,116,115,116,114,97,112,95,99,108,105,101,110,116,95,105,100,101,110,116,105,116,121], #binary represenation of "bootstrap_client_identity"
                        "serverPublicKey" : [],
                        "secretKey": [115,101,99,114,101,116,95,107,101,121], #binary representation of "private_key", the hexa value is<PHONE_NUMBER>745f6b6579
                        "smsSecurityMode": "NO_SEC",
                        "smsBindingKeyParam" : [],
                        "smsBindingKeySecret" : [],
                        "serverSmsNumber" : "+3343577911",
                        "serverId" : 0,
                        "clientOldOffTime" : 20},
                   "1":{"uri": "coaps://leshan.eclipse.org:5684",
                        "bootstrapServer": False,
                        "securityMode": "PSK",
                        "publicKeyOrId": [115,101,99,117,114,101,95,99,108,105,101,110,116,95,105,100],#represenation of "secure_client_id"
                        "serverPublicKey" : [],
                        "secretKey": [112,114,105,118,97,116,101,95,107,101,121], #binary representation of "private_key", the hexa value is<PHONE_NUMBER>74655f6b6579
                        "smsSecurityMode": "NO_SEC",
                        "smsBindingKeyParam" : [],
                        "smsBindingKeySecret" : [],
                        "serverSmsNumber" : "+3343577464",
                        "serverId" : 123,
                        "clientOldOffTime" : 1}},
        "acls": {"0":{
                        "objectId": 3,
                        "objectInstanceId": 0,
                        "acls": {3333: 1},
                        "AccessControlOwner":123
                     }}};

headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(data), headers=headers)
print r.status_code
print r.content

For the better/flexible approach #437, this will probably not available in 1.0.0 maybe for 2.0.0.
For the 1.0.0, I plan to add a way to set your own BootstrapHandler, which should cover most of the use cases.

Adding a custom BootstrapHandler is now possible : see #669


Modify README.md to add prerequisite(openjdk)

You need java to use this plug-in.
If there is no java, below error occurs.
Loaded plugin typedoc-umlclass

Using TypeScript 3.9.7 from /home/circleci/project2/node_modules/typescript/lib
Rendering [=---------------------------------------] 3%events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:78:25)
    at writeGeneric (internal/stream_base_commons.js:73:3)
    at Socket._writeGeneric (net.js:714:5)
    at Socket._write (net.js:726:8)
    at doWrite (_stream_writable.js:415:12)
    at writeOrBuffer (_stream_writable.js:399:5)
    at Socket.Writable.write (_stream_writable.js:299:11)
    at PlantUmlDiagramGenerator.generate (/home/circleci/project2/node_modules/typedoc-umlclass/dist/plantuml/plantuml_diagram_generator.js:38:25)
    at Plugin.processPage (/home/circleci/project2/node_modules/typedoc-umlclass/dist/plugin.js:260:43)
    at Plugin.onRendererEndPage (/home/circleci/project2/node_modules/typedoc-umlclass/dist/plugin.js:206:22)
Emitted 'error' event at:
    at errorOrDestroy (internal/streams/destroy.js:107:12)
    at onwriteError (_stream_writable.js:430:5)
    at onwrite (_stream_writable.js:461:5)
    at _destroy (internal/streams/destroy.js:49:7)
    at Socket._destroy (net.js:614:3)
    at Socket.destroy (internal/streams/destroy.js:37:8)
    at afterWriteDispatched (internal/stream_base_commons.js:78:17)
    at writeGeneric (internal/stream_base_commons.js:73:3)
    at Socket._writeGeneric (net.js:714:5)
    at Socket._writeGeneric (net.js:714:5)
    at Socket._write (net.js:726:8)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>html-docs-gen: `rm -rf html-docs && typedoc --includeDeclarations --excludeExternals --plugin typedoc-umlclass --mode file --out html-docs s
rc`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>html-docs-gen script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/circleci/.npm/_logs/2020-11-13T07_34_34_859Z-debug.log

Hi @amazingguni!
thanks for your feedback.
Actually you need Java and Graphviz because it is required by the plantuml-pipe dependency as described here: https://github.com/krisztianb/plantuml-pipe#installation
A corresponding test is run when you install the plugin and that depencency. Doesn't that test work for you?
Honestly I don't want to include this in the README as it is an implementation detail of one of the dependencies.

@krisztianb
You are right. I'll close this PR :smile:

To explain my situation a little more, when running CI in CircleCI, the above error occurred because there was no java in the node:10 image. I created this PR because I think there are many people experiencing this problem.

I can see how it might not be clear for users of the plugin that there are dependencies that require third party tools. It probably makes sense to add a note about this to the README.

@krisztianb
If so, may i open this pr again? :smile:

No need to do so. I already added a note to the README. :+1:


Optimisation of the code for less DOM polution

Added "var" in front of $overlay and overlayID to reduce var scope to the function

thanks