lxd: Add VMs support

Description of changes
This PR updates the changes made in #105651 by about 12 months.
Original description:

LXD has support for virtual machines, but this support isn't present in nixpkgs.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

[x] NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

More info about testing
I ran the NixOS tests and they passed successfully.
This PR does not currently include automated tests for VMs, but I did perform manual tests. After building, I ran sudo result/bin/lxd, then used the lxc CLI to successfully launch a Fedora VM. I was additionally able to interact with lxd-agent and run bash inside the VM.

Shell output
$ sudo lxc launch images:fedora/35/cloud testvm -s data -n br0 --vm
Creating testvm
Starting testvm

$ sudo lxc exec testvm bash
[root@testvm ~]#

$ sudo lxc info testvm
Name: testvm
Status: RUNNING
Type: virtual-machine
Architecture: x86_64
PID: 2467145
Created: 2022/04/01 11:57 PDT
Last Used: 2022/04/01 11:57 PDT

Resources:
  Processes: 18
  Disk usage:
    root: 11.55MiB
  CPU usage:
    CPU usage (in seconds): 0
  Network usage:
    enp5s0:
      Type: broadcast
      State: UP
      Host interface: tap9048ab67
      MAC address: 00:16:3e:42:a2:25
      MTU: 1500
      Bytes received: 2.27kB
      Bytes sent: 3.12kB
      Packets received: 14
      Packets sent: 25
      IP addresses:
        inet:  <IP_ADDRESS>/24 (global)
        inet6: fd73:e7aa:784e::20e/128 (global)
        inet6: fd73:e7aa:784e:0:216:3eff:fe42:a225/64 (global)
        inet6: fe80::216:3eff:fe42:a225/64 (link)
    lo:
      Type: loopback
      State: UP
      MTU: 65536
      Bytes received: 0B
      Bytes sent: 0B
      Packets received: 0
      Packets sent: 0
      IP addresses:
        inet:  <IP_ADDRESS>/8 (local)
        inet6: ::1/128 (local)

EDIT: I have verified that it works seamlessly on NixOS if you override the package as follows.
{
  virtualisation = {
    lxd = {
      enable = true;
      package = pkgs.lxd.override { useQemu = true; };
      recommendedSysctlSettings = true;
    };
  };
  boot.kernelModules = [ "vhost_vsock" ];
}

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/805

Currently, there seems to be an issue with nixostests:
machine # [   11.315508] lxd[909]: Error: exec: "ip": executable file not found in $PATH
machine # [   11.326115] systemd[1]: lxd.service: Main process exited, code=exited, status=1/FAILURE

I'll be looking into this issue.

I've fixed that issue, so the NixOS tests pass. Also, I've confirmed that the .dev libraries aren't needed. @SuperSandro2000 could you look it over again?

I'm applying patches to this PR to use 5.0.0.

I added another NixOS test for when we set useQemu = true on the package. It's the same as the regular one for now, but we can add VM tests into it if we eventually upload certain files to the server.

Hello, I am using your pull request to launch VMs using LXD in NixOS. However, I can't seem to be able to make it work. My error is something along the lines of:
What I do:
lxc launch ubuntu:16.04 --vm

Error:
Error: Failed instance creation: Failed creating instance from image: Failed setting nodatacow on "/var/lib/lxd/storage-pools/local/images/fdfe665ab7484ae2c6cbf043f66d112d4195a159c7331baf042330023e67531d": Failed to run: chattr +C /var/lib/lxd/storage-pools/local/images/fdfe665ab7484ae2c6cbf043f66d112d4195a159c7331baf042330023e67531d:

@kellianoy what storage backend are you using? Seems to work fine on ZFS for me. Also, when did you last pull from my fork?

@astralbijection I'm using BTRFS, as you mentionned. I pulled your branch 5 hours ago.
I don't actually have any data on my pool, so it is not even a problem. I'll try switching to ZFS, see if it resolves the problem.
Thank you for the quick answer !

@astralbijection Have you set specific parameters to enable ZFS on your fork branch ?

@astralbijection I can see that you tried to implement what stevenewey did in his lxd-vms-on-nixos repo, but it doesn't seem to work, as I still do have lxd-agent problems.
I will try to fork your repo and see if I can come up with a different solution, because I need both lxd-agent and virtfs-proxy-helper.
I don't think you implemented his virtiofsd.nix file. Have you encountered limitations or is it simply that you didn't need this functionnality ?
Best regards.

Hi @ifd3f , would you mind addressing the latest comment so we can get this merged? Thanks!

@jmgilman will do. Sorry, I got a bit distracted from this due to school, but I'll figure out how to update and rebase this commit.

Should VM support be enabled by default? Upstream treats VMs as first class guests. New users may expect VMs to be supported with the default package.
I think this is worth emerging either way, and am happy to see it added.

Sure, we could do that.

@SuperSandro2000 I applied the suggested changes, could you look over it again?

I've been unable to get this PR working with lxd 5.8:
─❯ lxc launch images:alpine/3.17 t1 --vm -c security.secureboot=false
Error: Failed parsing vsock address: input does not match format

This section of code was modified https://github.com/lxc/lxd/pull/11080 which was in the 5.8 release.
I tried rolling the PR back to lxd 5.7. Which allows me to create a VM, but they crash on start.
KVM internal error. Suberror: 1
extra data[0]: 0x0000000000000000
extra data[1]: 0x0000000000000400
extra data[2]: 0x0000000100000014
extra data[3]: 0x00000000000a0000
extra data[4]: 0x0000000000000000
extra data[5]: 0x0000000000000000
emulation failure
EAX=0000ef11 EBX=00000272 ECX=00000271 EDX=00000103
ESI=00000000 EDI=00000271 EBP=0000000c ESP=0000aa8c
EIP=0008b000 EFL=00003002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =6fe8 0006fe80 ffffffff 00809300
CS =1500 00015000 ffffffff 00809b00
SS =5000 00050000 ffffffff 00809300
DS =0000 00000000 ffffffff 00809300
FS =0000 00000000 ffffffff 00809300
GS =0000 00000000 ffffffff 00809300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     000f6720 00000037
IDT=     00000000 000003ff
CR0=00010032 CR2=00000000 CR3=3fc01000 CR4=00000648
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000800
Code=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

LXD needs modprobe from kmod package and mkisofs from cdrkit package in binPath, when working with VMs.

I tried rolling the PR back to lxd 5.7. Which allows me to create a VM, but they crash on start. This was also run with images:alpine/3.17.
KVM internal error. Suberror: 1
...

After much troubleshooting, I discovered this is due to the OVMF files. I was able to copy a set of OVMF files from the LXD snap and start VMs. I tried bumping edk2 (and the downstream OVMF) in #204052 but that made no difference. So I suspect maybe they're being generated incorrectly? I verified this on both an AMD nested VM and an Intel physical machine.
I could replicate the failure using the following command. With the nixpkgs OVMF code I get no serial output. With the LXD snap OVMF code it outputs its attempts to boot from the (missing) disk and network.
/nix/store/n12432cd9biha7wgx0q9pa33ysyxd296-qemu-host-cpu-only-7.1.0/bin/qemu-system-x86_64 -drive if=pflash,format=raw,unit=0,readonly=on,file=OVMF_CODE.fd -nographic -enable-kvm

@ifd3f does this PR work for you? Are you able to successfully create VMs with it?

@adamcstephens It seems to be something with OVMFull being used, which was introduced in oct. I think. I never got around to debugging why, but I managed to fix my own little hack around this in my dotfiles by using OVMF instead of OVMFFull, but with your PR to bump the version, now it seems to just be booting into an UEFI shell on my VMs. I think it might have somethign to do with the csmSupport option which is causing the KVM error.

Sorry, I kinda word-salad'd that message.
To clarify: the KVM error appears to be caused by the OVMF option in the nixpkgs for "csmSupport" -- I previously worked around the KVM option in a different bit of lxd fuckery I have for my systems by using OVMF instead of OVMFFull from nixpkgs, however your recent PR to bump OVMF made it so that it seems to always be booting into an UEFI shell.

using OVMF instead of OVMFFull

Switching to OVMF works for me as well.

is there any open topic besides the code formatting?

The wrapper changes are already in, and I've staged a few more PRs towards this effort. Thank you for your effort, it was incredibly helpful for me as I worked through this.
I'm going to close, and recommend watching #244093 and the attached PRs.


Items get stuck in pipes

mod version: 1.8.2
issue:
items get stuck in pipes when two inventories are connected to same block (only tested with crafting terminal and modular storage)
steps to reproduce:

connect crafting terminal and any  inventory to the same pipe
try sending items through crafting terminal
they probably are stuck in the pipe

Can confirm, moving the crafting terminal one block further fixes it. Multiple inventories connected to the same pipe works fine, just not when one of those is the crafting terminal.


Support Build 10.0.17074.1002

Request build support to resolve [not supported] status
Edit:

update.bin has been run several times just to make sure latest has been retrieved without clearing [not supported]
here is screenshot of teamsrv.dll

Also using the same build, would love support for this one :)
How can we help further besides reporting the unsupported build?

For any one who looking for temporary fix.
use old termsrv.dll from this thread work fine for me.
https://github.com/stascorp/rdpwrap/issues/357

x86 (32-bit) DLL with build number 10.0.17074.1002 is also required to resolve this issue.

x86 (32-bit) DLL with build number 10.0.17074.1002 is also required to resolve this issue


[GitHub; msftbot] Let the @msftbot suggest and request PR reviews

Note: I am not sure if this is possible to realise!
Adding bot suggestions for PR reviewers
The idea is that after writing a action phrase into a PR comment the @msftbot suggest reviewers which could be accepted.
This would enable people without repo permissions to request PR reviews and would help the PR authors to select the reviewers.
How it could work

The PR owner or a people with full/triage permission writes a comment in the PR with the text /request review
The bot check which people could review the PR based on some criteria and answer with a comment:

Hi <name>.
You have requested a review.

I suggest the following reviewers:
1. name
2. nane
....

If you don't answer within the next 15 minutes I will request the reviews for you.
You can answer with `@msftbot set review <number list>` to request only the selected people of my suggestion.
You can answer with `@msftbot skip review` to stop the automatic request.

The bot request the reviews.

If you'd like to see this feature implemented, add a 👍 reaction to this post.

Added to #7733

Reopened to track the idea as own issue!

@crutkas
Is the implementation possible or should we close as "Won't-fix"?


Add tagging to object

Can you add 'Tagging' to the ALLOWED_UPLOAD_ARGS?
(boto3 put_object doc)
Thanks

Marking as a feature request.

This would be very helpful for me as well. I avoid using the upload_file() call because it does not support Tagging, so I am forced to read the contents into memory and use put_object() simply because I want to have the files Tagged when created.


How to use inside my package templates?

I'm trying to use this package inside my package (I'm building a layout package for my apps). But when the app loads I'm getting:
Exception in template helper: Error: No supported router installed. Please install iron:router or meteorhacks:flow-router.

The dependencies of my package are:
api.use('jquery');
api.use('twbs:bootstrap@3.3.5');
api.use('fortawesome:fontawesome@4.5.0');
api.use('alanning:roles@1.2.14');
api.use('zimme:active-route@2.3.3-rc.1');

My app uses the kadira:flow-router as router. I tried to add the kadira:flow-router as a dependency but didn't works... How can I resolve this dependency tree?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/29033393-how-to-use-inside-my-package-templates?utm_campaign=plugin&utm_content=tracker%2F522373&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F522373&utm_medium=issues&utm_source=github).

try adding api.use('kadira:flow-router@<version>'); to the package too.
if the package it self doesn't need to setup it's own routes then you can just do
api.use('kadira:flow-router@<version>', { weak: true });
I think this is needed to make sure the router is loaded before the use of my package properly.

Thanks @zimme


email address not comply with RFC 2822

I'm triying to do some email simulations. I got an error when i have used some email addresses generate via faker, like this:
Address in mailbox given<EMAIL_ADDRESS>does not comply with RFC 2822, 3.6.2.
Address in mailbox given<EMAIL_ADDRESS>does not comply with RFC 2822, 3.6.2.

out of Yii scope, https://www.google.nl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi_su66wp7QAhUJOhoKHeYZA2cQFggdMAA&url=https%3A%2F%2Fgithub.com%2Fswiftmailer%2Fswiftmailer%2Fissues%2F382&usg=AFQjCNHmer62hFAoVZp7RPAeT1N8ABHvVw&sig2=Tc5WmV6rVDZIPyt4KfejgA


settings_users: Fix for filter search text issue in settings users.

CZO
Before:

After:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@zulipbot add "buddy review"

@adnan-td  can you review this one?

@zulipbot remove "buddy review"
@zulipbot add "mentor review"

@adnan-td  changed the named. @yogesh-sirsat PR is ready for your review

@alya is this pr ready for maintainer review ?

Looks like it! @sahil839 are you up for reviewing this one? I haven't tested.

@sahil839  added the change in the PR, with fix for invitation table too.

Invitation table can be fixed in a similar way.

made the change @sahil839  kindly review :)

Looks good. @timabbott ready for your review.

Merged this just after https://github.com/zulip/zulip/pull/31418, so one of the hunks got dropped. Thanks @sujalshah-bit!


s-max-age support

Great project, was using it on the airplane recently :)
I noticed cache-control s-max-age is not working but max-age does.
Is this intended?
Thanks!

sorry, my bad 🤦 I indeed used the wrong one, all working now! 😃


Odd bug regarding types in member expressions.

There are some cases where the types (MemoryLayout and Float) are not highlighted as types in the following expression:
MemoryLayout<Float>.stride

In other (most) cases, the types are highlighted correctly. The simplest (and oddest) example I could find was the following:
let a = MemoryLayout<Float>.stride
let b = MemoryLayout<Float>.stride + 1

In the first line, the types are not highlighted, while on the second line they are.
Note: I'm working with Helix (trying to update their Swift support), and came across this issue there. I'm assuming it's upstream, as their highlights.scm file is not very different from yours (despite being well over a year out of sync).

This is odd indeed. I’m going to baselessly speculate that we’re parsing as (MemoryLayout < Float) > (.stride) (i.e. comparison operators). I have to think a bit about how we would restructure the precedence to handle that properly.

Thanks for looking into it for us. It's not urgent. Just bringing it to your attention really.
Thanks for all your hard work. Much appreciated.

I asked a question regarding this on the swift forums and got a very helpful response, linking me to this function that does a lookahead to decide if it can parse it as a generic arguments list, it first parses the generic arguments list and does checks for the next token:
extension Lexer.Lexeme {
  var isGenericTypeDisambiguatingToken: Bool {
    switch self.rawTokenKind {
    case .rightParen,
      .rightSquare,
      .leftBrace,
      .rightBrace,
      .period,
      .comma,
      .semicolon,
      .endOfFile,
      .exclamationMark,
      .postfixQuestionMark,
      .colon:
      return true
    case .binaryOperator:
      return self.tokenText == "&"
    case .postfixOperator:
      return false
    case .leftParen, .leftSquare:
      // These only apply to the generic type if they don't start a new line.
      return !self.isAtStartOfLine
    default:
      return false
    }
  }
}


build error

Hello, thank you for your research. When I build DeepLCD, I get this error:
haosu@haosu-B85-HD3:~/LCD/calc/DeepLCD/build$ make
[  5%] Performing update step for 'googletest'
当前分支 master 是最新的。
[ 11%] Performing configure step for 'googletest'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/haosu/LCD/calc/DeepLCD/build/src/googletest-build
[ 16%] Performing build step for 'googletest'
[ 25%] Built target gtest
[ 50%] Built target gmock
[ 75%] Built target gmock_main
[100%] Built target gtest_main
[ 22%] No install step for 'googletest'
[ 27%] Completed 'googletest'
[ 44%] Built target googletest
[ 55%] Built target deeplcd
[ 66%] Built target demo
make[2]: *** No rule to make target 'src/googletest-build/googlemock/gtest/libgtest.a', needed by 'deeplcd-test'。 停止。
CMakeFiles/Makefile2:211: recipe for target 'CMakeFiles/deeplcd-test.dir/all' failed
make[1]: *** [CMakeFiles/deeplcd-test.dir/all] Error 2
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2
I use cuda 8.0 and https://github.com/BVLC/caffe , can you help me?

thank you！


ProductiveCard Component overflowActions menu direction issue

@davidmenendez  The default nature of overflowActions prop in C&CS ProductiveCard component is…
if the actionsPlacement=‘bottom’ , then menu items will open in upwards direction, and if actionsPlacement=“top” menu items will open in downward direction.
If design requirement is to open menu items in downward  direction with actionsPlacement=‘bottom’. ,
there should be one option to change the menu item direction according to users need. i.e 'top' or 'bottom'

hey @Nishi-Chandra1 thanks for opening up this issue. i believe that the original design specs specified that the overflow menus open in these directions when in each respective position. maybe @johanna-koval would like to comment on this further, but i believe this is working as intended.

Hi @Nishi-Chandra1 could you provide more information on why the user needs to have the menu opening downwards?
We defined the direction based on products that were already using the bottom placement of the overflow in cards, one of the main reasons is to keep the overflow menu within the card context and avoid having it overlapping on other cards of components in the UI.

@Nishi-Chandra1 is this still an issue for you?

@davidmenendez No, we have changed overflowActions to actionIcons. Not required this fix now. Thank you.


typo in image

Text (and repo) mentions ADNS2026 but the image https://github.com/biomurph/Mouse/blob/master/images/mouseAnatomy.png says "ADNS2016".

And the SparkFun link is a breakout for "ADNS2620".

Thanks! Nice to see some interest in the Mouse project!
Did you folks get one at the Summit a couple years ago?
Just getting to it in the COVID time of digging through old schwag bags?

Thanks! Nice to see some interest in the Mouse project!
Did you folks get one at the Summit a couple years ago?
Just getting to it in the COVID time of digging through old schwag bags?

Someone posted it to Hacker News: https://news.ycombinator.com/item?id=23041747
You probably want to drop some insights there too!


Remove overrides of PlatformContext

The importation of com.ossuminc.riddl.utils.pc in non test code overrides a user-supplied variant of PlatformContext.
To support better platform operations, such uses must be replaced throughout mainline code.

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

4 of 21 (19.05%)  changed or added relevant lines in 4 files are covered.
86 unchanged lines in 31 files lost coverage.
Overall coverage increased (+0.05%) to 73.387%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/validate/TypeValidation.scala
0
1
0.0%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/validate/BasicValidation.scala
0
3
0.0%

commands/src/main/scala/com/ossuminc/riddl/commands/InfoCommand.scala
0
13
0.0%

Files with Coverage Reduction
New Missed Lines
%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ContextParser.scala
1
93.75%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/prettify/PrettifyVisitor.scala
1
62.2%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/StreamingParser.scala
1
91.8%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ProjectorParser.scala
1
93.75%

language/shared/src/main/scala/com/ossuminc/riddl/language/Messages.scala
1
85.64%

language/shared/src/main/scala/com/ossuminc/riddl/language/parsing/ParsingContext.scala
1
81.82%

passes/jvm/src/main/scala/com/ossuminc/riddl/passes/translate/TranslatingState.scala
1
87.5%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/resolve/ReferenceMap.scala
1
78.13%

passes/shared/src/main/scala/com/ossuminc/riddl/passes/diagrams/DiagramsPass.scala
1
88.39%

commands/src/main/scala/com/ossuminc/riddl/commands/InfoCommand.scala
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>7:
0.05%

Covered Lines:
4925

Relevant Lines:
6711

💛  - Coveralls


Skipping the timestamp check for permission failures

Summary

Moved the permission check before timestamp check. If permission fails, skipped the timestamp check
Why / Goal

User reported an issue in analyzer: the job failed open when users don't have permission to certain Hive tables. The correct behavior should be that any table permission issues should be caught in the analyzer step.
The root cause is that the timestamp check is enabled by default, and it runs before the table permission check. Since timestamp check requires accessing data, it failed open.
Test Plan

[+ ] Added Unit Tests
Checklist

[ ] Documentation update

Reviewers

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1208513316458489

@pallavia7 you could run sbt scalafmt for the CI failure.


fix: bind handleStripeLoad in constructor

Bound handleStripeLoad to this in the constructor to prevent "setState is not a function" errors.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

Thank you for the quick review and merge, @ojeytonwilliams :1st_place_medal:


Upgrade to v3.10.0

Issue
https://devtopia.esri.com/runtime/red-october/issues/684
Description
Mechanical upgrade to v3.10.0. Contains breaking API changes.
Associated RTC PR: TBC
Test build
https://runtime-rtc.esri.com/view/vTest/job/vtest/job/3rdparty-interface/599/downstreambuildview/

@chri7325 EnTT now ships with a bunch of VS natvis files that I want to be copied along with the headers when the user gets dependencies. Is the change I have made to conanfile_rtc.py enough to do it? I don't see them included in the vtest archive of 3rd party, but I don't know what is driving that.


Pinot Dedup requires a lot of memory

This problem was reported by @ybrankov
Currently Pinot stream ingestion with exact deduplication requires a lot of memory because it uses ConcurrentHashMap.

Let use say we want to ingest 1K/node and want to keep data for 11 days, we want to be able to deduplication about 1K/sec * 86400 sec/day * 11 days ~ 1B rows.
Assuming the primary key is a UUID string, it takes about 36 byes.
So, this will require 36 GB just for keys. There is also java overhead and memory needed for storing values.

All this adds up to become too expensive and does not work.

I identified deduplication to be very frequently necessary in use cases with kafka ingestion. Even if the produced messages are unique, it is still a challenge to build an exactly-once kafka delivery in order to avoid duplication. This is where I found pinot upsert (deduplication) to come very useful.


[Fix #7177] Do not insert spaces into string literals when aligning

This fixes #7177 and fixes #7370.
There was a bug in the AlignmentCorrector used by many cops to shift pieces of code to the left or right: The corrector already knew not to touch the contents of some heredocs, but was not aware that the contents of other string literals must not be changed either. So it happily inserted or removed leading spaces inside string literals.
I started by writing some specs for the AlignmentCorrector because there were none and that class was only implicitly covered by specs in the cops that use the corrector.
While doing that I stumbled across a few bugs/shortcomings in the heredoc handling and fixed them straight away. Finally it felt safe enough to teach the corrector to recognize and avoid regular string literals.
In order to exercise the AlignmentCorrector in the specs in a concise way independent of actual cops, I added a little cop Test/AlignmentDirective that reacts to comments such as # << 4 in the code and shifts the code into the indicated direction. I am not 100% convinced of this approach, but it is the best one I have come up with so far.

Looks great! Just squash that fixup commit.

Just squash that fixup commit.

Done.

Thanks!


encoding/simplifiedchinese: Fixes € encoding in GB18030

The euro sign is an exception which is given a single byte code of 0x80
in Microsoft's later versions of CP936/GBK and a two byte code of A2 E3
in GB18030. https://en.wikipedia.org/wiki/GB_18030#cite_note-4
Fixes golang/go#48691

@googlebot I signed it!

Can GB18030-2022 be supported？


Team Stats Project

We want to create, retrieve, and add information about our favorite sports team. Basketball, soccer, tennis, or water polo, we pick it ourselves. It’s our job to create data using the JavaScript data structures at our disposal: arrays and objects.
After we create these data structures in this project, feel free to challenge ourselves to gain insights from them. For example, we might want to get the total number of games our team has played, or the average score of all of their games.

// Completed by @Meow.Nalini98

const team = {
  _players : [
    {firstName: 'Pete', lastName: 'Wheeler', age: 54},
    {firstName: 'Nalini', lastName: 'Vo', age: 25},
    {firstName: 'Austin', lastName: 'Trang', age: 28}
  ],
  _games : [
    {opponent: 'Soccer', teamPoints: 10, opponentPoints: 4},
    {opponent: 'Tennis', teamPoints: 17, opponentPoints: 5},
    {opponent: 'Voleyball', teamPoints: 20, opponentPoints: 8}
  ],

  get players() {
    return this._players;
  },

  get games() {
    return this._games;
  },

  addPlayer(newFirstName, newLastName, newAge) {
    let player = {
      firstName: newFirstName,
      lastName: newLastName,
      age: newAge
    };
    this.players.push(player);
  },

  addGame(newOpponent, newTeamPoints, newOpponentPoints) {
    let game = {
      opponent: newOpponent,
      teamPoints: newTeamPoints,
      opponentPoints: newOpponentPoints
    };
    this.games.push(game);
  }
};

team.addPlayer('Bugs', 'Bunny', 76);
team.addGame('Titans', '100', 98);
console.log(team.players);
console.log(team.games);


Bidirectional exchange

Be able to easily share file from web server host to by using same shortcut
probably need web socket and upload a web socket client to the target

Instead of using web socket in both side
Add a for loop that will interrogate specific endpoint serving file continuously and download them
this endpoint is a temporary dir in which the attacker machine put files (and remove them once dl)
attacker load shortcut with an alias
And then pull and push are possible (~copy file in temp dir h

Instead of using web socket in both side
Add a for loop that will interrogate specific endpoint serving file continuously and download them
this endpoint is a temporary dir in which the attacker machine put files (and remove them once dl)
attacker load shortcut with an alias
And then pull and push are possible (~copy file in temp dir )


Update or change vector map dependencies

Mapbox GL is no longer open source as of v2.
Consider pricing and tiers for low usage.
Likely open alternative is the fork of v1 at https://github.com/maplibre/maplibre-gl-js/
Tileserver-gl (which we use to serve vector tiles) is looking at similar migration needs: https://github.com/maptiler/tileserver-gl/ issue 542

Shifted to Deck.GL for mapping. See #8 for next step


Are heap addresses reliable across heap diffs?

This is a question, not a bug report, but I wasn't sure where discussions around this tool happen.
I've been looking at heapy diff, and one thing I noticed is that it keys on an object's address to decide whether it was present in the heap dump we compare against.
Is this reliable? I looked at MRI, and address is just an object's VALUE pointer: https://github.com/ruby/ruby/blob/e315f3a1341f123051b75e589b746132c3510079/ext/objspace/objspace_dump.c#L238
The way I understood the Ruby GC to work is that each 40B slot (once populated) always contains an RVALUE, which is a union type so it can "morph" into a different type. If this object gets GC'ed, it is not removed from the heap page, but rather a flag is cleared that tags this slot (or object) as "empty": https://github.com/ruby/ruby/blob/6ef46f71c743507a0e2ae0eef14dce0539b0ff52/gc.c#L569. This makes a slot reusable by changing its union type, but its memory address does not change.
Wouldn't this mean that if an object is GC'ed between two snapshots and the same slot is reused for a completely different object, it would then be omitted from the heapy diff, because the slot address already appeared in the first snapshot?
I'm sure I'm missing something but I wanted to make sure I understand how this works. Thanks!

A related problem with this is that diffs do not survive heap compaction:
require 'objspace'

BEFORE = 'before.json'
AFTER = 'after.json'

GC.start

ObjectSpace.dump_all(output: open(BEFORE, 'w'))

# GC.compact

ObjectSpace.dump_all(output: open(AFTER, 'w'))

Semantically, there should be no heap difference between the two calls to dump_all aside from objects allocated by the first dump_all call:
$ruby ./heap.rb && heapy diff before.json after.json
Allocated STRING 5 objects of size 256/824 (in bytes) at: :
Allocated HASH 2 objects of size 336/824 (in bytes) at: :
Allocated FILE 1 objects of size 232/824 (in bytes) at: :

When I uncomment the call to compact:
$ruby ./heap.rb && heapy diff before.json after.json
Allocated STRING 2153 objects of size 110441/657516 (in bytes) at: :
Allocated IMEMO 683 objects of size 461852/657516 (in bytes) at: :
Allocated ARRAY 232 objects of size 28784/657516 (in bytes) at: :
Allocated OBJECT 66 objects of size 7272/657516 (in bytes) at: :
Allocated CLASS 25 objects of size 16608/657516 (in bytes) at: :
Allocated HASH 24 objects of size 16736/657516 (in bytes) at: :
Allocated DATA 20 objects of size 1678/657516 (in bytes) at: :
Allocated REGEXP 19 objects of size 12769/657516 (in bytes) at: :
Allocated STRUCT 5 objects of size 200/657516 (in bytes) at: :
Allocated ICLASS 4 objects of size 160/657516 (in bytes) at: :
Allocated MODULE 2 objects of size 1016/657516 (in bytes) at: :

This makes sense because many of these objects moved around on the heap and had their address changed.
I wonder if there is a more stable way to identify an object on the heap? I'm not sure whether this is fixable, but it could be worth pointing out in the README?

I constructed a simple program that should demonstrate what I meant in the original question, i.e. without even considering heap compaction:
# frozen_string_literal: true

require 'objspace'

BEFORE = 'before.json'
AFTER = 'after.json'

class Before; end
class After; end

GC.start

ObjectSpace.trace_object_allocations_start

# Allocate nested array.
a = []
1000.times do
  a << Before.new
end

ObjectSpace.dump_all(output: open(BEFORE, 'w'))

# Free all array elements and make sure they are GC'ed;
# This will merely tag these object slots as T_NONE.
a.clear
GC.start

# Refill the original array with different objects. These will use the same heap slots
# we just freed, i.e. they will have the same memory address.
1000.times do
  a << After.new
end

ObjectSpace.dump_all(output: open(AFTER, 'w'))

Here, we first allocate an array of Before instances that require a heap slot, then dump heap to take the before-snapshot. We then GC all of these elements, and refill the array and dump heap again.
The expected diff should be 1000 instances of the After class, but it isn't:
$ruby ./heap.rb && heapy diff before.json after.json
Allocated HASH 1 objects of size 40/40 (in bytes) at: :

This is because when Ruby GCs an object, it merely uses type tagging to indicate that this heap slot can be reused by another allocation. But the memory address does not change. So heapy thinks these objects aren't new in the second dump.
You can double-check as follows: find the memory address of the Before and After types, then compare memory addresses of instances of these types in the before and after dumps and we see:
$ grep 0x15b4ae0 before.json | head
{"address":"0x1414028", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414050", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414118", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x14141e0", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414208", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414230", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414258", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414280", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x14142f8", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414410", "type":"OBJECT", "class":"0x15b4ae0", "ivars":0, "file":"./heap.rb", "line":18, "method":"new", "generation":9, "memsize":40, "flags":{"wb_protected":true}}

grep 0x15b49a0 after.json | head
{"address":"0x1414028", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414050", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414118", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x14141e0", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414208", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414230", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414258", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414280", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x14142f8", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}
{"address":"0x1414410", "type":"OBJECT", "class":"0x15b49a0", "ivars":0, "file":"./heap.rb", "line":31, "method":"new", "generation":10, "memsize":40, "flags":{"wb_protected":true}}

Based on this, maybe a better (though not perfect) solution would be to key on both address and type? That is still not accurate of course since ivar values may change. It would also not solve the problem with compaction since unfortunately heap dumps don't appear to serialize the moved flag of an object slot (though that could be fixed by patching MRI)?

We only work with what we are given. This won’t work with compaction as
you’ve mentioned. It’s somewhat expected and I don’t have a fix or plans
for working on a fix. If you or someone else wants to work on it, awesome.
I generally won’t be able to answer arbitrary questions. I suggest trying
to use heapy and if it’s behaving in a strange manner then you can ask
questions on other Q&A sites or sometimes Reddit to understand the
mechanics at play.
On Saturday, August 27, 2022, Matthias Käppler @.***>
wrote:

Based on this, maybe a better (though not perfect) solution would be to
key on both address and type? That is still not accurate of course since
ivar values may change. It would also not solve the problem with compaction
since unfortunately heap dumps don't appear to serialize the moved flag
of an object slot (though that could be fixed by patching MRI)?
—
Reply to this email directly, view it on GitHub
https://github.com/zombocom/heapy/issues/31#issuecomment-1229146791, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOSYHQXXWQFJ7HTXNLB7LV3HDOZANCNFSM57W4W5XA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Richard Schneeman
https://www.schneems.com
he/him

Fair enough. I wonder if the typical heapy user expects that heapy diff can yield both false negatives (objects being GC'ed whose heap slots are reused) and false positives (objects move around on the heap).
With that in mind, would it make sense to just document this as a known limitation? I think that's always a good first step.
I don't think the issue itself is dramatic, considering the most likely use case is to detect differences in tenured objects i.e. heap growth that isn't just temporary. In order to make this more reliable, the following ideas come to mind:

Instead of keying on address, key on the JSON entry in the heap diff. This might have to ignore the flags and potentially other fields but it would likely provide a better proxy for object identity than just a pointer value.
When taking diffs, only consider old objects. The issue with reusing addresses only occurs when objects get GC'ed and slots are reused. To detect long-term heap growth or memory leaks, temporary garbage is just noise, so we might as well exclude it.

I generally won’t be able to answer arbitrary questions. I suggest trying
to use heapy and if it’s behaving in a strange manner then you can ask
questions on other Q&A sites or sometimes Reddit to understand the
mechanics at play.

I believe the reproducible test case I provided is sufficient evidence that we have moved from "arbitrary question" territory into issue territory. Do you disagree?

I updated the issue title and description to restate it as an issue report rather than a question. Let me know if I am missing anything.

Do you disagree?

Nope. Seems good. That comment had less to do with this being a question originally and more with my availability.

With that in mind, would it make sense to just document this as a known limitation? I think that's always a good first step.

Totally. Send me a PR? While Calling GC.compact in the middle of a heap generation is probably unlikely (right now) its good to document edge cases . No matter how unlikely, even one in a million bugs still happen at enough scale.

Happy to help out with this! I took a stab at it here: https://github.com/zombocom/heapy/pull/32


Threads keep restarting at Verse.AI.JobDriver.DriverTick

Specs:
Ryzen 9 3900x oc 4.4GHz
gtx 1080 oc
RimThreaded Version: 1.0.60
Modlist:
-Harmony
-Core
-HugsLib
-Mod Manager
-Smart Speed
-TicksPerSecond
-RimThreaded
-Camera+
Appears in vanilla: false
Reproducible: true
Similar to error 123 (https://github.com/cseelhoff/RimThreaded/issues/123), when running 2 or more raids on a new map when they attack each other the threads keep restarting at Verse.AI.JobDriver.DriverTick
Whole error is as follows:
https://gist.github.com/FervidFiend/05691bc064b6e1ae90670317ecc791c5

Closing bug. Many bugs have been fixed since this was reported. Please reopen in new bug report using the new templates if this issue persists.


Improve ol.source.StaticImage

Brings back the imgSize property, and puts all image load handler code in a single listener.

This looks good to me.  Thanks for the updates & test @ahocevar.  Please merge.


[WIP][RFC] support user namespaces

Disclaimer:
This is a not working-yet WIP PR.
I am opening it mostly for running the CI tests and get some early feedback.
- What I did
Added support for user namespaces
- How I did it
Added a new configuration to specify what subuidname/subgidname use for setting up the user namespace
- How to verify it
Containers have a different uid/gid mapping
- Description for the changelog
user namespaces support

Excellent, I agree with @mrunalp that we use --uid-mappings.

Yes, Mrunal and I talked.  I think it is best if we get this in, and then create a new job that runs the integration tests with UserNS Enabled.  Once we have that we can start looking at the E2E tests.

/test all

/test all

@giuseppe The integration tests are failing. You can take a look at testout.txt in the S3 artifacts. https://ci.openshift.redhat.com/jenkins/job/test_pull_request_crio_integration_rhel/848/s3/

/retest

/retest

/test all

Also FYI - Here is the WIP for kubernetes support - https://github.com/kubernetes/kubernetes/pull/63651/files

/test all

@runcom @mrunalp integration tests are passing now! :v:

/test all

/test all

Typo: "fo" -> "for" in the PR topic (which will be included in the merge commit GitHub generates).

/retest

/retest

The USERNS tests are failing https://ci.openshift.redhat.com/jenkins/job/test_pull_request_crio_integration_rhel/863/s3/download/gathered/artifacts/testout.txt

there is one issue with the version of runc available, the issue was fixed upstream.
Is SELinux enabled?  Is there a way to disable it for a test?
I'll also need to enable user namespaces in RHEL

@rhatdan should we skip the test if selinux is enabled or disable selinux for this test until the fix in runc hits the CI?
I am for skipping the test for now, as it looks it doesn't make much sense to test a different environment.

Does it fail for the same reason on Fedora?  I am fine with disabling selinux for the test.

:tada: tests are passing :tada:

@mrunalp @runcom @wking PTAL

In a follow-on, we should also expose the UID/GID mappings in the /info endpoint.


Power graph 2x higher then domotic value

The power in the domoticz screen is way lower then the value shown in the graph. This seems to be an factor 2. Yhe value shown in de domoticz screen and the value in the sems portal seem to match nicely. What is wrong with the graphs? Am I doing something wrong? setting??
best regards,
Arno

Hi,
Please provide some more details about which values you mean, as this is a bit unclear.
Please note that the actual value sometimes seems to hang, but then the cumulative values always get correct.

Hi,
Please provide some more details about which values you mean, as this is a bit unclear.
Please note that the actual value sometimes seems to hang, but then the cumulative values always get correct.


Config file upgrade utility

We've briefly discussed but I wanted to re-open this conversation topic.
The currently released config version is 0.3. The development version is 0.4. Do we need to provide an automatic upgrade? The big difference is that version 0.4, genomes are now indexed by digest rather than human-readable identifier.
It should be possible to write an 'upgrader' script that would handle this, perhaps integrated into a refgenie release. A few reasons that might be worth it:

if someone has been using refgenie in their work, it will suddenly stop working when we release the new refgenieserver, with no apparent way to fix things other than starting over. this will not be good for users
we are going to face additional config 'upgrades' like this -- for instance, when we switch from refgenie genome digests to GA4GH digests (once that spec is finalized). We'll have to upgrade again.

Given these things, maybe it makes sense to some basic infrastructure for upgrading a config file. the refgenconf object would have an 'upgrade' function, which operates on a 0.3 and converts it to 0.4. perhaps it uses a server to do this, retrieving the checksums from the server, so it doesn't have to recompute them? at least where possible.
Given that refgenie has started to be adopted and used in practice, I now think it's important to provide this upgrade capability, so that users can seamlessly use refgenie even as we upgrade, and not require a rebuild every time something changes.

I was able to create an 'upgrade' function that converts the 0.3 config to the 0.4 config.  But some functions, like  refgenie seek, are still affected because the genome_folder structure is different between the current released version and the dev version.  Should the 'upgrade' function also take care of this issue?

Should the 'upgrade' function also take care of this issue?

yes, I think that upgrading just the config would be pointless. Renaming the directories and all the asset files is the most cumbersome and hard part for manual version upgrade.
I've already built some infrastructure that will help:
https://github.com/refgenie/refgenconf/blob/d9d64246953850123e036fc13abaff41a137a826/refgenconf/refgenconf.py#L2091-L2113
So with this, the process should  be relatively easy:

Remove alias dir
Move contents of data dir up one level
Run _swap_names_in_tree on the contents from 2.

And I think that's it

make sure to control for the case that something fails halfway through. So make these changes in a sandbox, and then remove old stuff as a last step, or something, so you don't break things if it fails halfway through.

related thought: isn't this process too "invasive" to be carried out automatically when the the config version is not compliant? No other refgenie command makes so many changes to the config and asset dir. Additionally, I think one might want to run refgenie upgrade as a separate task, after taking care of, e.g FS writability permissions or whatever. For instance, if the refgenie asset dir is writable to me and I'm in charge of maintaining it for a group of people and another user, just with write permissions, tries to call refgenie seek this would trigger the upgrade process that would fail right away. I would personally prefer to be presented with error saying sth like: This genome config  is not compliant with current standards. Please call: refgenie upgrade --target-version 0.4 in the first place. What do you think?

I think if it just updates the config file we can do it automatically. But if it includes changing the file structure, I think the user should have the option to either upgrade config and genome_folder or downgrade to the old refgenie depends on the individual need.
The current ConfigNotCompliantError message is
This genome config (v0.3) is not compliant with v0.4 standards. To use it, please downgrade refgenie: 'pip install "refgenie>=0.7.0,<0.10.0"'
Maybe we can change to This genome config (v0.3) is not compliant with v0.4 standards. Do you want to upgrade to v0.4? (n/y) if y, then run refgenie upgrade; if n, then raise the ConfigNotCompliantError?

Remove alias dir
Move contents of data dir up one level
Run _swap_names_in_tree on the contents from 2.

why are we removing the alias dir? The dev refgenie build creates both the alias and the datadir. The structure inside alias is almost identical to the genome_folder the old refgenie build creates (except the __ASDs.json file).  The contents inside data are similar but use the digest as the file names instead of the alias.
For the new version, should thegenome_folder only has contents inside data?

Sorry, the instructions I listed were for the config version downgrade which is wrong, obviously...
You need to create the data and alias directories and rename the files in the data directory to include digest names instead of genome names. Additionally, create the symlinks in alias directories.
The alias creation is already implemented in refgenconf so you'll probably just need abstract this away and reuse.

Sorry, the instructions I listed were for the config version downgrade which is wrong, obviously...
That makes more sense. Thank you

I agree with requriing a separate call to refgenie upgrade in general -- but can you imagine a situation where this is happening on a remote cron job or something and somebody wants to just set it to "always upgrade" and never have to do this manually?
Anyway, I'm fine with:
Just raise a ConfigNotCompliantError with message:
This genome config (v0.3) is not compliant with v0.4. To use it, please upgrade the config file: 'refgenie upgrade --target-version 0.4', or downgrade refgenie: 'pip install "refgenie>=0.7.0,<0.10.0"'.
For refgenie upgrade, prompt by default with a note that it will alter the files on disk and then make sure there's a --force option to skip the prompt.


CU-85zrn505a_Auth-refreshkeep-alive_leonardo-salas

implemented auto refresh token and keep alive

Task linked: CU-85zrn505a Auth refresh(keep alive)

Task linked: CU-85zrn505a Auth refresh(keep alive)


Result Panel: Data Grid view bug

After the new update, data grid view on result panel, doesn't work. I'm using Eclipse plug-in version <IP_ADDRESS>904071344

May it be the same problem as #5680 ?

@mojamedali also please post information about your environment.

I am also seeing this:
System information:
Windows 10 1709
Eclipse Oxygen.3a Release (4.7.3a)
DBeaver Eclipse plugin <IP_ADDRESS>904071344
Java version: 1.8.0_181

Connection specification:
I am seeing the same problem with Postgres, Oracle and Sqlite connections

The display of the data grid is not working, clicking around reveals some tooltips and fields that are not displayed properly.

Workaround: shift to text/plain text

Think my issue is a dupe of #5679 ...

Just upgraded Eclipse, and the problem went away:
Version: 2019-03 (4.11.0)
Build id: 20190314-1200

It is a duplicate of #5679.
Thanks for the bug report anyway.