libasan detects leaks

Hi!
We compile all binaries with the libasan, which detects several memory leaks:
Sample code:
#include <Foundation/Foundation.h>

@interface Obj: NSObject
@end

@implementation Obj
@end

int main(void)
{
return 0;
}

Compile with:  gcc $(gnustep-config --objc-flags --gui-libs) -fsanitize=address -lgnustep-base -lobjc test.mm -o test
Error returned:
=================================================================
==521628==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1840 byte(s) in 115 object(s) allocated from:
    #0 0x7f18e02179cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f18dfabbc9c in objc_malloc (/lib/x86_64-linux-gnu/libobjc.so.4+0xac9c)

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7f18e02179cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f18dfabbe4c in class_copyMethodList (/lib/x86_64-linux-gnu/libobjc.so.4+0xae4c)

Indirect leak of 6496 byte(s) in 406 object(s) allocated from:
    #0 0x7f18e02179cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f18dfabbc9c in objc_malloc (/lib/x86_64-linux-gnu/libobjc.so.4+0xac9c)

SUMMARY: AddressSanitizer: 8376 byte(s) leaked in 522 allocation(s).

system:
Linux NAME <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Thu Oct 5 21:02:42 UTC 2023 x86_64 GNU/Linux

As you are using libs-base and NSObject as root class, you should open an issue in the libs-base GitHub repository instead.

More information about the toolchain (libobjc2, or GCC libobjc), compiler version, linker, and libs-base version would be helpful as well.

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-14)

sudo apt list --installed | grep gnustep
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

gnustep-back-common/stable,now 0.29.0-3 amd64 [installed,automatic]
gnustep-back0.29-cairo/stable,now 0.29.0-3 amd64 [installed,automatic]
gnustep-back0.29/stable,now 0.29.0-3 all [installed,automatic]
gnustep-base-common/stable,now 1.28.1+really1.28.0-5 all [installed,automatic]
gnustep-base-doc/stable,now 1.28.1+really1.28.0-5 all [installed,automatic]
gnustep-base-runtime/stable,now 1.28.1+really1.28.0-5 amd64 [installed,automatic]
gnustep-common/stable,now 2.9.1-2 amd64 [installed,automatic]
gnustep-core-devel/stable,now 7.10 all [installed,automatic]
gnustep-core-doc/stable,now 7.10 all [installed,automatic]
gnustep-devel/stable,now 7.10 all [installed]
gnustep-gui-common/stable,now 0.29.0-2 all [installed,automatic]
gnustep-gui-doc/stable,now 0.29.0-2 all [installed,automatic]
gnustep-gui-runtime/stable,now 0.29.0-2+b3 amd64 [installed,automatic]
gnustep-icons/stable,now 1.0-10 all [installed,automatic]
gnustep-make-doc/stable,now 2.9.1-2 all [installed,automatic]
gnustep-make/stable,now 2.9.1-2 all [installed,automatic]
gnustep/stable,now 7.10 all [installed]
libgnustep-base-dev/stable,now 1.28.1+really1.28.0-5 amd64 [installed,automatic]
libgnustep-base1.28/stable,now 1.28.1+really1.28.0-5 amd64 [installed,automatic]
libgnustep-gui-dev/stable,now 0.29.0-2+b3 amd64 [installed]
libgnustep-gui0.29/stable,now 0.29.0-2+b3 amd64 [installed,automatic]

If you're compiling with GCC (which I strongly recommend against), then it will emit the ancient GCC Objective-C ABI where a large number of features will not work.  We do an upgrade pass on loading, which constructs the structures for the new ABI with heap memory for all loaded classes.  This will probably show up as leaked, because we never free it (it is expected to be present for the lifetime of the program and there is no benefit from calling free a bunch of times before exit).
If you compile with clang and -fobjc-runtime=gnustep-2.0 (or 2.2 if you're using trunk), then you should not see these copies.


Getting 'Uncaught TypeError: Unable to determine current node version'

Getting the following in my Vite React project:
Uncaught TypeError: Unable to determine current node version
    at versionIncluded (babel-plugin-glsl_macro.js?v=9bfece69:517:15)
    at isCore (babel-plugin-glsl_macro.js?v=9bfece69:531:30)
    at ../../node_modules/resolve/lib/core.js (babel-plugin-glsl_macro.js?v=9bfece69:1047:22)
    at __require2 (chunk-GFT2G5UO.js?v=74ec9d9a:18:50)
    at ../../node_modules/resolve/index.js (babel-plugin-glsl_macro.js?v=9bfece69:1273:18)
    at __require2 (chunk-GFT2G5UO.js?v=74ec9d9a:18:50)
    at ../../node_modules/babel-plugin-glsl/node_modules/babel-plugin-macros/dist/index.js (babel-plugin-glsl_macro.js?v=9bfece69:11044:21)
    at __require2 (chunk-GFT2G5UO.js?v=74ec9d9a:18:50)
    at ../../node_modules/babel-plugin-glsl/macro.js (babel-plugin-glsl_macro.js?v=9bfece69:72632:39)
    at __require2 (chunk-GFT2G5UO.js?v=74ec9d9a:18:50)

I am using babel-plugin-glsl/macro for fragment shading. Didn't have an issue before switching from CRA recently.
Code sample:
import glsl from 'babel-plugin-glsl/macro';

class SimulationMaterial extends THREE.ShaderMaterial {
  constructor() {
    super({
      vertexShader: `varying vec2 vUv;
      void main() {
        vUv = uv;
        gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
      }`,
      fragmentShader: glsl`uniform sampler2D positions;
      uniform float uTime;
      uniform float uCurlFreq;
     ....

// vite.config.mts
import react from '@vitejs/plugin-react-swc';
import svgr from 'vite-plugin-svgr';
import glsl from 'vite-plugin-glsl';

export default defineConfig({
  base: '/',
  plugins: [react(), svgr(), glsl()],
 ...

// package.json
    "vite-plugin-glsl": "^1.3.0",
    "vite-plugin-svgr": "^4.2.0",
    "@vitejs/plugin-react-swc": "^3.6.0",

Honestly not sure if this is an issue with the plugin, if I even need the plugin or if this is an issue with vite itself. Any help is appreciated.

Hello and thanks for using this plugin! I'm afraid I need more info to understand the root cause of this issue. Will it be possible to create a minimal reproducible example somewhere or have a link to a public GitHub repository? Thanks!
Honestly, looks like this issue is caused within the babel plugin (babel-plugin-glsl_macro.js?v=9bfece69:517:15), so first thing I would remove vite-plugin-glsl completly from your project and give it a try since it looks like you're not importing GLSL anyway but have template literals for you shaders.
If you do import GLSL as external files, try to do that with vite's ?raw suffix and check if it works. Please note that if you do that, you cannot use #include directives in your shaders without this plugin, but that might help to track down the issue you're facing.
If this issue persists, I would advise to open it here. I have never tested it with babel plugins, but usually, vite-plugin-glsl doesn't play well with glslify. You should generally consider using one over another.
Anyway, I think I could help more if I had access to some code to check how those plugins are running together. Let me know, thanks!

Thanks for the quick response.
Yeah I tried at first without the plugin, didn't work. Removing the plugin didn't work either.
You meant adding ?raw to end of import, like import glsl from 'babel-plugin-glsl/macro?raw';? That gave me a type error when trying to use glsl.
Yeah I checked the babel-plugin-glsl repo, looks like the last open issue is related to vite and the process is not defined error. I got that at first but fixed it with define: { 'process.env': {}, }.
Here's a reproduced example. Not sure if it meets the definition of 'minimal' but you can ignore most of the code. See DevBox here

Hi again! Honestly, I haven't figured out what's the issue with vite & babel-plugin-glsl but it seems like it's not related to this plugin since it persists even without vite-plugin-glsl being installed.
I would advice against this babel plugin since it looks pretty old and not compatible with vite out of the box. If I had to use glslify, I would opt for a simpler solution like vite-plugin-glslify or vite-plugin-glslify-inject. And here's an example of how to use the first one with R3F.
If, on the other hand, you don't need to use glslify, and want to write your shaders on your own or import them using a different strategy (#include), then feel free to add this plugin to your devDependencies and check the Readme of this repo on how to set and use it in your project.
Cheers!


Loot pet duplication bug

Hi there!
I've started my own friends MC eternal server recently and was lucky enough to find the "Loot pet" the one that when in hot bar and fed with golden nuggets gives increased drops from mobs and mining.
However the pet also duplicates loot from boss drops (double the same enchant book drop for example).
We've also updated the server to 1.3.51 and the behavior is still the same.
Modpack: MC Eternal 1.3.51
~Proscure

This bug was already reported to the original mod? If not, please, report it to the author and link the issue here.

I remember that and the mod author said it was intentional because that's how he made the pet function so in order to fix it you would probably need to rewrite the entire pet I think.

I took a look at their github and the mod is not open source, but they have good support so I recommend reporting this bug there.
https://github.com/capnkirok/Inventory-Pets/issues

https://github.com/capnkirok/Inventory-Pets/issues/178

I could have sworn he said he wouldn't fix it but I guess I'm thinking of something else maybe lol


what license is onedrive.js released under

There does not appear to be a specific license that OneDrive.js is released under, can you please clarify the licensing.

@KevinTCoughlin any update here?

@KevinTCoughlin any update here?

Not yet, but hopefully soon. Still in-progress.

@nhopp, I have a call tomorrow (Wednesday 3/6) and hope to have resolution shortly thereafter.

I have guidance from legal, but the changes require some work on my part and should roll-out within the next week or two. I need to verify a few things then I should be able to share status here prior to changes rolling out.

I have guidance from legal, but the changes require some work on my part and should roll-out within the next week or two. I need to verify a few things then I should be able to share status here prior to changes rolling out.
cc: @aditima

Hi Kevin, what is the guidance that you got from your legal ?  Can you give us some summary until you officially publish the info. We would also like to  discuss this with our legal, hence looking to find out guidance.

I have guidance from legal, but the changes require some work on my part and should roll-out within the next week or two. I need to verify a few things then I should be able to share status here prior to changes rolling out.
cc: @aditima

Hi Kevin, what is the guidance that you got from your legal ? Can you give us some summary until you officially publish the info. We would also like to discuss this with our legal, hence looking to find out guidance.

Also, let us know based on your legal guidance whether we (Cisco) will have permission to take existing OneDrive.Js and modify it to support O365 Germany for our customers ?

Also, let us know based on your legal guidance whether we (Cisco) will have permission to take existing OneDrive.Js and modify it to support O365 Germany for our customers ?

@rajcisco, I reached out to legal to support your scenario. We need to check a few more boxes and update the scripts to be fully compliant. Once done I anticipate your scenario to be supported.
I'm hoping for EOW to have the scripts deployed. But it depends on some paperwork.

@rajcisco what version(s) do you anticipate using? Just 7.2?

@KevinTCoughlin @rajcisco We'll be using 7.2

Note that the changes are pending deployment, but we've relicensed the existing and future releases of the OneDrive File Picker under MIT license.
The updated scripts with the license headers will roll-out this week. I will update this thread once I see them live in the production and will update the documentation accordingly. Stay tuned.

Updated scripts for the existing File Picker releases have been released to production. The scripts are now licensed under MIT license. Thanks for your patience.
7.2

http://js.live.net/v7.2/OneDrive.debug.js
http://js.live.net/v7.2/OneDrive.js

7.1

http://js.live.net/v7.1/OneDrive.debug.js
http://js.live.net/v7.1/OneDrive.js

7.0

http://js.live.net/v7.0/OneDrive.debug.js
http://js.live.net/v7.0/OneDrive.js

6.0

http://js.live.net/v6.0/OneDrive.debug.js
http://js.live.net/v6.0/OneDrive.js

5.0

http://js.live.net/v5.0/OneDrive.debug.js
http://js.live.net/v5.0/OneDrive.js

Future releases will continue to be released under MIT. I will update the documentation mentioning this and close out the issue.


Use single difficulties across the Ada site

Includes tidying up existing QF design code removing the check on whether all difficulties are the same. The content team for Ada do not want to set multiple difficulties that could be inconsistent.

Have adjusted the quiz builder to use a single difficulty. I added an additional change to prevent the exam-board tags from being repeated for each stage and rather have the exam-boards specific to each stage shown.
The manage assignments should still have multiple difficulties as the difficulties correspond to the different questions in the assignment. And assignment may have a question for GCSE and A level P1 and a question for A level P2 this should show:
GCSE (P1)
A level (P1, P2)
So it doesn't make sense trying to collapse these into a single difficulty. Maybe a discussion to just have Core and Advanced is needed?


Fix key.get() undefined issue. Fix #102.

LGTM - when you specify an id it returns that as a singular (because it knows that there can only be either 0 or 1 results - never more)


WebSocket connection can't be made after one is disconnected

I observe the following behavior: after a Websocket is disconnected, no new connection can be made to the server. That can be reproduced with the example server, using a tool like https://www.websocket.org/echo.html (connect, disconnect, then try to connect again).
Any idea what's happening there?

Yep, I noticed that too. The websocket thing can end up being very sensitive to interruptions, like if an interruption happens then the whole selector loop gets interrupted. I have a PR up that fixes it I think, at least to some degree. I am not sure how to completely prevent the selector loop from getting interrupted (at least not without preventing the entire app from stopping on SIGTERM), but I hopefully the main issue will be resolved.

I tried with 0.1.2 and it's definitely better, but with some issues still.

Connect > Disconnect > Connect => seems to work well now.
Connect > Disconnect > Connect > Disconnect => for some reason, the second Disconnect hangs for 1 minute, then disconnects.

Oh, and once a WebSocket is open, the other endpoints (like a simple GET) don't seem to respond anymore 😅

How are you generating the output frames? And what are you doing with the input frames?

Output frames come from a queue: ZStream.fromQueue(sendQueue)). I consume the input frames in a separate fiber (forkDaemon), and sometimes it will offer items to sendQueue.

To reproduce:
case req @ Request.WebsocketRequest(_, uri, _, _, _) if uri.getPath startsWith "/ws" =>
            for {
              queue <- zio.ZQueue.unbounded[Frame]
              ws    <- Response.websocket(req, ZStream.fromQueue(queue))
            } yield ws

As soon as I send something inside the websocket from the client side, my other endpoints become unresponsive.

It actually seems inputFrames terminates too quickly. It's supposed to be generating items for the whole life of the WebSocket connection, right?

Yes, if inputFrames terminates then something is wrong with the connection. Can you try with debug logging enabled?

Ah, that last issue is happening only with my graphql client. There must be something else, maybe the Sec-WebSocket-Protocol. I will dig deeper to find what's causing this, sorry for the confusion.
Apart from this, what is reproducible easily:

with Response.websocket(req, inputFrames), using https://www.websocket.org/echo.html just Connect, Disconnect, Connect, Disconnect  => hangs for 1 minute
Log:

[DEBUG]   /ws/graphql?encoding=text 101 Switching Protocols (Unknown size) (74 ms to start)
[DEBUG]   Closing connection
[REQUEST] GET /ws/graphql?encoding=text 101 Switching Protocols (3 s 383 ms to finish, 3 s 457 ms total) (closed)
[DEBUG]   /ws/graphql?encoding=text 101 Switching Protocols (Unknown size) (1 ms to start)
[DEBUG]   Closing connection
[REQUEST] GET /ws/graphql?encoding=text 101 Switching Protocols (1 m to finish, 1 m total) (closed)

with:

for {
  _     <- inputFrames.runDrain.onExit(exit => zio.UIO(println(exit))).forkDaemon
  queue <- zio.ZQueue.unbounded[Frame]
  ws    <- Response.websocket(req, ZStream.fromQueue(queue))
} yield ws

using https://www.websocket.org/echo.html just Connect, Disconnect  => hangs for 1 minute then doesn't accept new connections
Log:
[DEBUG]   /ws/graphql?encoding=text 101 Switching Protocols (Unknown size) (80 ms to start)
[DEBUG]   Closing connection

@ghostdogpr
I think the issue you're seeing with the echo test is that you're not doing anything with the input frames. The library does nothing for you, so it's up to you to handle Close frames, for example – if you don't do that, the client might never actually disconnect (if it waits for a responding Close frame). For me, it looks like Chrome (or the Javascript on that test page) doesn't actually close the connection, even after receiving a Close frame, which means you also have to handle stopping the stream after sending the Close response.
Here's a test that seems to work fine:
  case req @ Request.WebsocketRequest(_, uri, _, _, inputFrames) if uri.getPath startsWith "/ws" =>
    for {
      ws    <- Response.websocket(req, Stream.flatten(inputFrames.mapM(handleWebsocketFrame)).unTake)
    } yield ws

Where handleWebsocketFrame looks like this:

  private def handleWebsocketFrame(frame: Frame): UIO[Stream[Nothing, Take[Nothing, Frame]]] = frame match {
    case frame@Binary(data, _)       => log(s"Binary frame: 0x${formatHex(data)}") as Stream(Take.Value(frame))
    case frame@Text(data, _)         => log(s"Text frame: $data") as Stream(Take.Value(frame))
    case frame@Continuation(data, _) => log(s"Continuation frame: 0x${formatHex(data)}") as Stream(Take.Value(frame))
    case Ping => log("Ping!") as Stream(Take.Value(Pong))
    case Pong => log("Pong!") as Stream.empty
    case Close => log("Close") as Stream(Take.Value(Close), Take.End)
  }

This handles the input frames by echoing them, and responds to Ping frames as required. It handles Close frames by sending a Close frame and then terminating the stream with Take.End.
I guess there's a case to be made that the library should handle at least Close for you, and maybe Ping/Pong as well... maybe there is a higher-level API we could add to abstract that away, but given how low-level the rest of the library is I think there needs to be a low-level API where user code receives all the frames and decides what to do.

I'm not quite sure why the entire server seems to collapse if you don't handle the websocket input frames properly... that's not super great. Will dig into it a bit more. But the good news is that if you do handle them everything seems to work fine. I added an example echo websocket endpoint to the example TestServer:  https://github.com/polynote/uzhttp/blob/master/src/test/scala/uzhttp/server/TestServer.scala

It seems to work indeed, thanks! Will try again with after your PR is merged to confirm.

@jeremyrsmith I confirm now it works without me handling the input Close messages! For the output frames though, if I send Close I have to send it wrapped in Take and send a Take.End afterwards. If I just send Close it's in a weird state again. Maybe the library could also take care of that case?
Anyway I now have a fully working uzhttp adapter for Caliban! Usage is by far the simplest of all the adapters. I'll push a PR for it once you release the latest changes.


A separate version of React without support for classes

The objective with this is that there are two versions of React.

With support for both functional components and class components, as it currently remains.
With unique support for functional components.

This will allow developers to continue working on their legacy projects by implementing the full version of React.
While in the new projects they may choose to use only class components or functional components.
This last would bring a considerable reduction of the bundle size.

Disclaimer: I work on preactjs an 3kB alternative where we treat size as our top priority
Since hooks have been announced we got several requests if we could ship a hooks-only version alongside the current one. Dropping the code for classes and replacing it with hooks leads to some savings, but not as much as people tend to think it does.
Despite our focus on size, we backed out of that idea for now and postponed it for a later time. The main issue is the burden of maintenance overhead of supporting 2 versions of a framework. Both classes and hooks are somewhat tightly integrated into the reconciler and making it pluggable would likely defeat potential size savings.
Then there is also the issue of a less ideal developer experience. The current ecosystem is huge, and there is a non-trivial amount of components on npm that is written with classes and won't receive an update. Same for facebook which is made of 15.000+ components, which would need to be updated. For new users we (at preactjs) fear that having to be aware of which npm packages will work or not is too much for new users. We'd rather have everything work out of the box.
Again, I don't work with react team and they may have a different opinion on that matter :slightly_smiling_face:

@marvinhagemeister Thank you very much for your opinion, friend. Now I understand things much better.


chore/document minimum node version requirement for contributing guidelines

Overview
Was noticing that when running test cases I was getting this error
✗ npm run test

> test
> npm run test:not-starter-kits && npm run test:lit-starter-js && npm run test:lit-starter-ts

> test:not-starter-kits
> wireit

❌ [packages/labs/eslint-plugin:test] exited with exit code 9. Output:

node: bad option: --test-reporter=dot
❌ 1 script failed.

Per discussions on the Discord, it was determined that a minimum Node version was required as the project uses Node's built-in test runner, which only came out in Node 20.x
Changes

Added a callout to the CONTRIBUTING.md for expected minimum NodeJS version
Added a .nvmrc capturing latest LTS version of NodeJS

Let me know your thoughts on the .nvmrc file and / or version, happy to set that to whatever you prefer (or I can remove it)
Also, I don't think this change requires a changeset but can certainly generate one of those if desired.

The problematic command line argument --test-reporter was introduced in Node v18.5.0 (https://nodejs.org/api/test.html#test-reporters) so that should be our minimum Node version. I confirmed the project can be built with that.

Interesting, I (thought) I was originally testing on 18.15.0 when I ran into that issue but tested again on that version and seems fine now. 😅

I am hesitant about adding an .nvmrc though since that forces a very specific version rather than a semver match: https://github.com/nvm-sh/nvm/issues/2562

Fair enough.
Maybe instead we bump the engine in the root package.json to 18.5.0 instead?

Maybe instead we bump the engines in the root package.json to 18.5.0 instead?

I did have that thought (although with a wrong version) https://github.com/lit/lit/pull/4504#discussion_r1456739756 but found it reasonable that the version of Node to use the code is different than the version of Node to develop it.
I suppose it does make a difference if we're putting the engine on the monorepo package.json rather than the individual packages.

All set!


Implemented CORS header handler middleware

Description

Implemented CORS header handler middleware.
Motivation and Context
close: #215
How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

@yoshuawuyts  @prasannavl  I fixed all! Please re review 🙇

Looks great, thanks for your contribution! :+1:

@prasannavl  I think it's good! A lot of things to do!

Should these extensions be done with this PR?

I say we go ahead and merge this! -- thanks heaps @k-nasa!


Fix incorrect bond name issue

This PR is a fix for issue:
https://github.com/k8snetworkplumbingwg/bond-cni/issues/32
It removed the ifname paramter from config, in favor of the standard interface name parameter as specified by the CNI specification.

@killianmuldoon @Eoghan1232 could you please take a look?

Just to mention again, Killian is no longer working in this area and won't be reviewing issues/PR's.


Auto-update timestamps on insert in seed file

Hi. I have a Section model defined as:
// base-model.js
base.Model = baseBookshelf.Model.extend({
  hasTimestamps: true
});
module.exports = base;

// section-model.js
var Section = base.Model.extend({
  tableName: 'sections',
  classifieds: function() {
    return this.belongsToMany('Classified');
  }
});

module.exports = {
  Section: base.model('Section', Section)
};

Running this seed below doesn't populate the created_at and updated_at fields in the sections database. I know I can set them manually in the seed file, but would like to stay DRY and have these fields updated automatically. Is this possible in Bookshelf?
exports.seed = function(knex, Promise) {
  return knex('sections').insert([
    { id: 1, code: 'cdc' },
    { id: 2, code: 'psd' },
    { id: 3, code: 'for' }
  ]);
};

I also ran into this same issue a while back. What happens is that the feature to auto-update the timestamp columns is a part of Bookshelf, when you use its models to access and modify data.
Seeds, on the other hand, are a feature of Knex which has no knowledge of model definitions. It accesses the databases directly (well, through the respective node driver). Notice how you're not using any models in the seed definition, but using the table name directly.
Currently you must update those columns explicitly in your seeds.

@ricardograca Thank you for detail explanation. That makes sense. I wonder if setting up a trigger at Postgres db level will have much advantage or side-effects. My understanding I would need to remove hasTimestamps: true from each model.

You're better off just setting the default value to NOW() on your table definitions. If you also use knex for migrations you can do that with something like:
knex.schema.createTable('stuff', function(t) {
    // ...
    t.timestamp('created_at').notNullable().defaultTo(knex.raw('now()'))
}

or using plain old SQL:
CREATE TABLE stuff (..., created_at DATETIME WITH TIMEZONE NOT NULL DEFAULT NOW());

@ricardograca Thanks!

@ricardograca What about the updated_at field? Will i need to create some sort of DB trigger via knex.raw to have this field updated only on UPDATE and INSERT or is there a more elegant way doing that in knex? Sorry, just starting out with it.

Just set updated_at to new Date() or whatever value you want when you do the inserts.

If you are only going to use Bookshelf to update the database, then it will set the value for you already (provided you use the timestamps: true model option). In this case you only need the initial value, so use the same logic as for the created_at column. Or set its value in JavaScript as bendrucker mentioned.

@ricardograca Like your approach, since these fields should be managed in my app automatically.

how can i make for updated_at be auto as well??? thank you

Exactly the same as created_at.

Whend i do in it i get this error:
{ [Error: create table if not exists users (id int unsigned not null auto_increment primary key, name varchar(255), email varchar(255), password varchar(255), rol enum('Admin', 'superUser', 'User'), birthdate date, movil varchar(255), code varchar(255), state enum('active', 'inactive'), created_at timestamp not null default now(), updated_at timestamp not null default now()) - ER_TOO_MUCH_AUTO_TIMESTAMP_COLS: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause]
code: 'ER_TOO_MUCH_AUTO_TIMESTAMP_COLS',
errno: 1293,
sqlState: 'HY000',
index: 0 }
Here is the code i am using:
knex.schema.createTableIfNotExists('users', function (table) {
table.increments('id').primary()
table.string('name')
table.string('email')
table.string('password')
table.enu('rol', ['Admin', 'superUser', 'User'])
table.date('birthdate')
table.string('movil')
table.string('code')
table.enu('state', ['active', 'inactive'])
// table.timestamps()
table.timestamp('created_at').notNullable().defaultTo(knex.raw('now()'))
table.timestamp('updated_at').notNullable().defaultTo(knex.raw('now()'))
})
.catch(function (err) {
console.error(err)
})
thank you

You're using an old version of MySQL apparently: http://stackoverflow.com/questions/4489548/why-there-can-be-only-one-timestamp-column-with-current-timestamp-in-default-cla

Thank you ricardograca, I update to MYSQL 5.6 and now is working BUT does not work ATTRIBUTE	on update CURRENT_TIMESTAMP
How can i add this to the create table?
Thanks

I did it, for a automatic update you must do:
table.timestamp('updated_at').defaultTo(knex.raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))

Just some random notes I've found here:
If you're using MySQL, and you want to add updated_at and created_at timestamps that are non null and have default values, you can just do the following:
// migration file

exports.up = function(knex, Promise) {
  return knex.schema.table('users', function (table) {
    table.timestamps();
  });
};

exports.down = function(knex, Promise) {
  return knex.schema.table('users', function (table) {
    table.dropTimestamps();
  });
};

Digging into the source here...
https://github.com/tgriesser/knex/blob/32fec2bfc1da475906b33c4a9702b98b5090d149/src/schema/tablebuilder.js#L162
callingtimestamps() sets a not null with default value of CURRENT_TIMESTAMP. dropTimestamps() doesn't even seem to be documented.
However, if you're using PostgreSQL this won't work, since that's now how you do a current.  Instead you have to swap out your up function with:
exports.up = function(knex, Promise) {
  return knex.schema.table('users', function (table) {
    table.timestamp('created_at').notNullable().defaultTo(knex.fn.now());
    table.timestamp('updated_at').notNullable().defaultTo(knex.fn.now());
  });
};

Hopefully this helps.

Why isn't that the default?   Automatic time-stamps should happen, and be specified, on the database level.  If you have some (abhorrently documented) shortcut, namely timestamps(),  then why wouldn't it set this up by default?

@refactorized there is no function called timestamps in the Bookshelf API.

And the fact that using Bookshelf mitigates this is not a valid reason. Things are feeling way to tightly coupled here.

Bookshelf doesn't mitigate anything. It allows insertion of timestamps if you don't have triggers. That is all. You can create your columns however you like.

Automatic time-stamps should happen, and be specified, on the database level.

Some databases don't support having multiple columns with timestamps. Some users don't want to trigger timestamp updates on every update/insert, and would prefer to omit them on certain changes. There is not necessarily a portable solution here.

You know what's dumb? The fact you're complaining about a feature that you don't even want to use, on the issue tracker of a different project.
This is what you need to do:

Refrain from insulting the free software that people have made for you to use
Go to the correct issue tracker (knex's in this case)
Search for an issue dealing with the problem (or create one if it doesn't exist)
Submit a pull request fixing the problem.
Go away forever.

whoa, this name calling is uncalled for completely. its also to do with knex not bookshelf!
Sent from my iPhone

On Jun 21, 2016, at 6:58 PM, Rhys van der Waerden<EMAIL_ADDRESS>wrote:
@refactorized there is no function called timestamps in the Bookshelf API.
And the fact that using Bookshelf mitigates this is not a valid reason. Things are feeling way to tightly coupled here.
Bookshelf doesn't mitigate anything. It allows insertion of timestamps if you don't have triggers. That is all. You can create your columns however you like.
Automatic time-stamps should happen, and be specified, on the database level.
Some databases don't support having multiple columns with timestamps. Some users don't want to trigger timestamp updates on every update/insert, and would prefer to omit them on certain changes. There is not necessarily a portable solution here.

You know what's dumb? The fact you're complaining about a feature that you don't even want to use, on the issue tracker of a different project.
This is what you need to do:
Refrain from insulting the free software that people have made for you to use
Go to the correct issue tracker (knex's in this case)
Search for an issue dealing with the problem (or create one if it doesn't exist)
Submit a pull request fixing the problem.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@rhys-vdw
A. Sorry.
B. No Really, Sorry.
C. I have amended my comment to be a tad less inflammatory.
D. But why we are talking about things, bookshelf and knex work together, and are made the same people, and knex is practically necessary for using bookshelf. so I don't think this grievance is especially misplaced.
The problem here is that the docs are exceedingly unclear in not only what is, but what should be.  I would make a effort to fix something, if I actually understood what would count as fixed here. So maybe help me out understanding this.
We are talking about a default, convenience function - I would imagine the entire point of that default would be to provide the simplest and most useful configuration.  I am not claiming auto-incrementing should be automatic, and without specification when declaring types - but the incerments() function serves no other purpose by to make things easier, so it's kind of confusing agreed?
Furthermore, if behavior varies based on underlying implementations, then the default is broke, or the function should not even exist.  At very least there should be examples and caveats.  The best documentation right now for this library is on other peoples blogs, which will not evolve with the changes in your library.
It gets really frustrating to get information on these issues from blogs and inexplicably closed issues like this.  Maybe I don't get github issue culture - but I have seen several closed issues for problems that were not solved and this is for possibly the most used SQL library for node.
So who do I talk to? I want to help - I certainly don't want to bitch about something when I am perfectly capable of fixing it, but I also don't want to create duplicate issues to the ones that are already closed without real resolution.
E. Seriously, I am sorry, I don't usually fly off the handle online, I generally try to keep things very classy, and fit for real, constructive discourse. - this felt like something no one cared about, your immediate response has demonstrated otherwise.  Thank you for your input.

I have seen several closed issues for problems that were not solved and this is for possibly the most used SQL library for node.

Bookshelf is not the most popular SQL library for Node. Knex might be, I'm not sure. If there are issues that appear to be closed prematurely you can request them to be reopened. We have several Knex collaborators watching the issues, and timestamps in particular has been in discussion a lot recently.
Even though I am a collaborator on Knex, I did not "make" these features and don't use them for the exact same reasons you listed above. Because I use database triggers I have no need for them.
If there are particular functions in Bookshelf that required clarification please open new issues here. I consider missing or incorrect documentation to be bug.
As it is the coupling between Bookshelf and Knex with regard to timestamps is certainly not tight. There is nothing compelling you to use Knex migrations at all.

I have amended my comment to be a tad less inflammatory.

Likewise.
tl;dr This is a Knex issue. I am not going to even think about a Knex problem in the context of Bookshelf, which represents a small portion of Knex's use.

Alright, cool - I will take this to the knex issues, and see what I can do.  Thanks.

@rhys-vdw @refactorized
One approach to populating created_at and updated_at timestamps with values generated by the database rather than by the application would be a plugin like this, which monkey-patches Model.prototype.timestamp:
var knex = require('knex')({ ... });
var bookshelf = require('bookshelf')(knex);
var _ = require('lodash');

var dbTimestamps = function(Bookshelf) {
  var Model = Bookshelf.Model.prototype;

  Bookshelf.Model = Bookshelf.Model.extend({
    timestamp: function (options) {

      var applicationTimestampAttributes = Model.timestamp.apply(this, arguments);
      var dbTimestampAttributes = _.mapValues(applicationTimestampAttributes, function(val, key) {
        return 'now()';
      });

      this.set(dbTimestampAttributes, options);

      return dbTimestampAttributes;
    }
  });
};

bookshelf.plugin(dbTimestamps);

This makes Bookshelf defer to the database in setting the timestamp value, which I've specified with the now() datetime function which in Postgres returns the date and time at the start of the current transaction.
This way avoids the overhead of having to create an update trigger for every table that you want to have the timestamps.
@rhys-vdw
I think it'd be pretty straightforward to support this behavior via e.g. a useDbTimestamps option:
model.save(null, { useDbTimestamps: true ))

If that is welcome and you think it'd be helpful, I can create a PR.

What is the status of this? hasTimestamps: true, stopped working when we upgraded from 8.2 to 10.2. We are on Postgres.

@AndrewKiri table.timestamps() is not provided by Bookshelf, but Knex. According to the source, .timestamps() doesn't return anything, so your example will not work. Where did you get that example from?

According to this:
https://github.com/tgriesser/knex/blob/32fec2bfc1da475906b33c4a9702b98b5090d149/src/schema/tablebuilder.js#L162
When I use .timestamps() my created_at and updated_at columns should get the current timestamp when a new record is inserted. But I just attempted to recreate this and the default value is definitely NULL in MariaDB.
Any clues what I'm missing here?

However, if you're using PostgreSQL this won't work, since that's now how you do a current. Instead you have to swap out your up function with:
exports.up = function(knex, Promise) {
  return knex.schema.table('users', function (table) {
    table.timestamp('created_at').notNullable().defaultTo(knex.fn.now());
    table.timestamp('updated_at').notNullable().defaultTo(knex.fn.now());
  });
};

Hopefully this helps.

I am facing an issue with this, it also updates created_at to current time even when firing update query. so both created_at and updated_at are assigned same value everytime.


error no compatible gpus found(reopened because it was closed due to inactivity)

I get an error called "No compatible GPUs detected GPUs found" when it does checks.
As I have an Nvidia Geforce Gtx 1650 2GB VRAM(Probably enough for mining)I expected the checks to get success.
So as soon as I open it immediately says the error.
Just open Verthash and there is an error.
I am using the V2.0 - 8 - 3eab099 downloaded it using the official release from the GitHub website(Posted by vertiond)
I am getting the error on windows 10 Home edition and I have an Nvidia GeForce gtx 1650(game ready driver)
I have tried reinstalling but it just shows the same error again

updating the drivers does nothing

Is this a laptop?

yes

I have seen a lot of issues with the GTX 1650 on laptops and never seen a solution.  I'll keep this open for awhile to let any others chime in.  Regardless, laptop mining is generally ill advised due to poor cooling capabilities.

I have the same problem with a nvidia geforce gtx 1660ti 6gb on my desktop. version number is  V2.0-5f5696d.


eth0 interface IP lost

Hi,
I've got an issue with my IP address getting dropped.
In my cloud config I've got:
#cloud-config

coreos:
  units:
    - name: 00-eth0.network
      runtime: true
      content: |
        [Match]
        Name=eth*

        [Network]
        Address=<IP_ADDRESS>/24
        Address=<IP_ADDRESS>/17
        Gateway=<IP_ADDRESS>
        DNS=<IP_ADDRESS>
        DNS=<IP_ADDRESS>
        DNS=<IP_ADDRESS>

After reboot ip a s gives me:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether f2:3c:91:89:75:84 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/17 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a01:7e00::f03c:91ff:fe89:7584/64 scope global dynamic
       valid_lft 2591986sec preferred_lft 604786sec
    inet6 fe80::f03c:91ff:fe89:7584/64 scope link
       valid_lft forever preferred_lft forever

Hours later ip a s gives me:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether f2:3c:91:89:75:84 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/17 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a01:7e00::f03c:91ff:fe89:7584/64 scope global dynamic
       valid_lft 2591997sec preferred_lft 604797sec
    inet6 fe80::f03c:91ff:fe89:7584/64 scope link
       valid_lft forever preferred_lft forever

As you can see the <IP_ADDRESS>/24 ip gets dropped. This makes ssh access impossible. I rebooted 1 machine in my cluster and the network was restarted and both IP addresses were available allow ssh access. My other machines still couldn't be accessed from outside. Using the private network from the rebooted host allowed me to log in on the other hosts. Running sudo systemctl restart systemd-networkd restarted the network and reassigned the external IP address.
Running journalctl gives me
Every 10-15 min. I get a kernel message about access attempts from unauthorised IP addresses. In the log below the 16:11:19 message is the last one I got until restarting the network.
Nov 10 16:11:19 li142-120 kernel: IN=eth0 OUT=eth0 MAC=f2:3c:91:89:75:84:84:78:ac:5a:1a:41:08:00 SRC=<IP_ADDRESS> DST=<IP_ADDRESS> LEN=412
Nov 10 16:12:19 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:12:19 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:prefs.cc(54)] certificate-report-to-send-update not present in /var/lib/upd
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:prefs.cc(54)] certificate-report-to-send-download not present in /var/lib/u
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:WARNING:libpolicy.cc(29)] Could not load the device policy file.
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(195)] No device policies/settings present.
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(239)] Scattering disabled since scatter factor is set t
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:omaha_request_params.cc(61)] Current group set to alpha
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(206)] update_disabled = false, target_version_prefix =
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(213)] Wall Clock Based Wait Enabled = 0, Update Check C
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(664)] Already updated boot flags. Skipping.
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:update_attempter.cc(847)] Scheduling an action processor start.
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:action_processor.cc(36)] ActionProcessor::StartProcessing: OmahaRequestActi
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:omaha_request_action.cc(265)] Posting an Omaha request to https://public.up
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:omaha_request_action.cc(266)] Request: <?xml version="1.0" encoding="UTF-8"
Nov 10 16:13:16 li142-120 update_engine[524]: <request protocol="3.0" version="CoreOSUpdateEngine-<IP_ADDRESS>" updaterversion="CoreOSUpdateEngi
Nov 10 16:13:16 li142-120 update_engine[524]: <os version="Chateau" platform="CoreOS" sp="494.0.0_x86_64"></os>
Nov 10 16:13:16 li142-120 update_engine[524]: <app appid="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}" version="494.0.0" track="alpha" bootid="{
Nov 10 16:13:16 li142-120 update_engine[524]: <ping active="1"></ping>
Nov 10 16:13:16 li142-120 update_engine[524]: <updatecheck targetversionprefix=""></updatecheck>
Nov 10 16:13:16 li142-120 update_engine[524]: <event eventtype="3" eventresult="2" previousversion=""></event>
Nov 10 16:13:16 li142-120 update_engine[524]: </app>
Nov 10 16:13:16 li142-120 update_engine[524]: </request>
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed
Nov 10 16:13:16 li142-120 update_engine[524]: [1110/161316:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Nov 10 16:13:20 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:13:20 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:13:26 li142-120 fleetd[612]: ERROR event.go:91: etcd watcher {Watch /_coreos.com/fleet/job} returned error: unexpected end of JSO
Nov 10 16:13:46 li142-120 update_engine[524]: [1110/161346:ERROR:libcurl_http_fetcher.cc(264)] Unable to get http response code: name looku
Nov 10 16:13:46 li142-120 update_engine[524]: [1110/161346:INFO:libcurl_http_fetcher.cc(281)] No HTTP response, retry 1
Nov 10 16:13:56 li142-120 fleetd[612]: ERROR event.go:91: etcd watcher {Watch /_coreos.com/fleet/job} returned error: unexpected end of JSO
Nov 10 16:13:56 li142-120 update_engine[524]: [1110/161356:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Nov 10 16:13:56 li142-120 update_engine[524]: [1110/161356:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed
Nov 10 16:13:56 li142-120 update_engine[524]: [1110/161356:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Nov 10 16:14:21 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:14:21 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:14:26 li142-120 update_engine[524]: [1110/161426:ERROR:libcurl_http_fetcher.cc(264)] Unable to get http response code: name looku
Nov 10 16:14:26 li142-120 update_engine[524]: [1110/161426:INFO:libcurl_http_fetcher.cc(281)] No HTTP response, retry 2
Nov 10 16:14:36 li142-120 update_engine[524]: [1110/161436:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Nov 10 16:14:36 li142-120 update_engine[524]: [1110/161436:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed
Nov 10 16:14:36 li142-120 update_engine[524]: [1110/161436:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Nov 10 16:15:06 li142-120 update_engine[524]: [1110/161506:ERROR:libcurl_http_fetcher.cc(264)] Unable to get http response code: name looku
Nov 10 16:15:06 li142-120 update_engine[524]: [1110/161506:INFO:libcurl_http_fetcher.cc(281)] No HTTP response, retry 3
Nov 10 16:15:16 li142-120 update_engine[524]: [1110/161516:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Nov 10 16:15:16 li142-120 update_engine[524]: [1110/161516:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed
Nov 10 16:15:16 li142-120 update_engine[524]: [1110/161516:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Nov 10 16:15:22 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:15:22 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:ERROR:libcurl_http_fetcher.cc(264)] Unable to get http response code: name looku
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:libcurl_http_fetcher.cc(295)] Transfer resulted in an error (0), 0 bytes do
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:omaha_request_action.cc(588)] Omaha request response:
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:ERROR:omaha_request_action.cc(602)] Omaha request network transfer failed.
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:action_processor.cc(68)] ActionProcessor::ActionComplete: OmahaRequestActio
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:action_processor.cc(73)] ActionProcessor::ActionComplete: finished last act
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:update_attempter.cc(460)] Processing Done.
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:ERROR:update_attempter.cc(787)] Update failed.
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:utils.cc(724)] Converting error code 2000 to kActionCodeOmahaErrorInHTTPRes
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:payload_state.cc(97)] Updating payload state for error code: 37 (kActionCod
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:payload_state.cc(103)] Ignoring failures until we get a valid Omaha respons
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:action_processor.cc(36)] ActionProcessor::StartProcessing: OmahaRequestActi
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:omaha_request_action.cc(265)] Posting an Omaha request to https://public.up
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:omaha_request_action.cc(266)] Request: <?xml version="1.0" encoding="UTF-8"
Nov 10 16:15:46 li142-120 update_engine[524]: <request protocol="3.0" version="CoreOSUpdateEngine-<IP_ADDRESS>" updaterversion="CoreOSUpdateEngi
Nov 10 16:15:46 li142-120 update_engine[524]: <os version="Chateau" platform="CoreOS" sp="494.0.0_x86_64"></os>
Nov 10 16:15:46 li142-120 update_engine[524]: <app appid="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}" version="494.0.0" track="alpha" bootid="{
Nov 10 16:15:46 li142-120 update_engine[524]: <event eventtype="3" eventresult="0" errorcode="2000"></event>
Nov 10 16:15:46 li142-120 update_engine[524]: </app>
Nov 10 16:15:46 li142-120 update_engine[524]: </request>
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed
Nov 10 16:15:46 li142-120 update_engine[524]: [1110/161546:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:ERROR:libcurl_http_fetcher.cc(264)] Unable to get http response code: name looku
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:libcurl_http_fetcher.cc(295)] Transfer resulted in an error (0), 0 bytes do
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:omaha_request_action.cc(588)] Omaha request response:
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:action_processor.cc(65)] ActionProcessor::ActionComplete: finished last act
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:action_processor.cc(73)] ActionProcessor::ActionComplete: finished last act
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:update_attempter.cc(460)] Processing Done.
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:update_attempter.cc(467)] Error event sent.
Nov 10 16:16:16 li142-120 update_engine[524]: [1110/161616:INFO:update_check_scheduler.cc(82)] Next update check in 40m57s
Nov 10 16:16:23 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:16:23 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:17:24 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:17:24 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:17:38 li142-120 etcd[605]: [etcd] Nov 10 16:17:38.041 INFO      | 6249a20137f14b9a9990f1f0955549b6: snapshot of 10004 events at i
Nov 10 16:18:25 li142-120 systemd[1]: Starting Generate /run/coreos/motd...
Nov 10 16:18:25 li142-120 systemd[1]: Started Generate /run/coreos/motd.
Nov 10 16:18:26 li142-120 fleetd[612]: ERROR event.go:91: etcd watcher {Watch /_coreos.com/fleet/job} returned error: unexpected end of JSO
Nov 10 16:18:56 li142-120 fleetd[612]: ERROR event.go:91: etcd watcher {Watch /_coreos.com/fleet/job} returned error: unexpected end of JSO
Nov 10 16:19:26 li142-120 systemd[1]: Starting Generate /run/coreos/motd...

Friendly bump. cc: @marineam @crawford

FWIW, We were having the same problem.  We updated our DHCP server to expire addresses after 30 days and the issue hasn't happened again (yet -- <30 days so far).

Sorry about dropping the ball on this. What version of CoreOS is this on?

@marineam for us I think we last saw this in 522.4.0 or 494.x.x builds

@rosskukulinski OK, I think the issue is that promote secondaries is not set in those versions, this commit fixes it: https://github.com/systemd/systemd/commit/ad8bc9ea508740074cead005aa3cfd1ba10a5dac
We really should have backported that to systemd 215 which is what 522.x.x uses but never did. Fortunately the current beta and alpha versions should be OK.

duly noted -- I'll update our pxe-boot bare metal staging cluster to use one more beta system to shift quorum to beta channel.  I should eventually see 1/2 the cluster ('stable' channel) get nuked when the problem occurs.

May be related to #435

I'm running 557.2.0 and still having a similar issue.
I was working with:
    - name: 00-ens32.network
      runtime: true
      content: |
        [Match]
        Name=ens32

        [Network]
        DNS=<IP_ADDRESS>
        Address=<IP_ADDRESS>/24
        Gateway=<IP_ADDRESS>

This configuration was working, but the valid_lft ended up being 48h, so I was loosing my IP after 2 days.
I updated the cloud-config to runtime: false, rebooted 2 times (one for the config to be installed, and a second time for it to be used), and now I have the expected valid_lft "forever".
With the runtime as true, I get two network config for ens32: one with DHCP and then the static config provided by 00-ens32.network. Maybe the valid_lft from the DHCP is not reconfigured properly ?

I'm still having this issue on 717.1.0.


Don't own volsync resources if disabled

If volsync is disabled in ramen-dr-cluster-operator-config:
  volSync:
    disabled: true

ramen-dr-cluster-operator fails many times with:
2022-11-11T00:50:12.795Z	ERROR	controller-runtime.source
source/source.go:139	if kind is a CRD, it should be installed before
calling Start	{"kind": "ReplicationDestination.volsync.backube",
    "error": "no matches for kind \"ReplicationDestination\" in version
        \"volsync.backube/v1alpha1\""}

Reproduced by deploying ramen in drevn setup that contains no volsync crds:
$ kubectl api-resources | grep volsync
(nothing)

This will probably not be an issue once we add volsync to the environment, but it makes sense to respect the configuration.
Skip owning volsync resources in the same way we skip kube object protection watching.
Signed-off-by: Nir Soffer<EMAIL_ADDRESS>

The problem here is that the operator needs a restart if the config is updated to support Volsync (or k8s object protection). The order of steps would look like below:

dr-cluster comes up without volsync enabled, hence does not watch for the same
operator config is updated to enable volsync
operator detects config map change and exits, such that k8s restarts the operator at which point it enables watching for volsync resources

Without the above, a setup that rolls out an initial dr-cluster deployment without volsync will have to be manually triggered to restart. Current bundle defaults are disabled: false and so this will not be observed, but we need the config map change tracked to complete this detection feature.
When dr-cluster auto deployment is enabled, the dr-cluster bundle would be installed first and then (or in parallel) the config map updated, so for such cases as well, if the operator detects a change to the config map that is running with, it should restart to run with the new config.
Further, checking if a CRD is present before owning it to ensure a more useful error is thrown is required, as in #271

With the above in perspective, looking at the current default bundles in different platforms, this code will not kick in for the same (as in all cases Volsync is NOT disabled). As it relates to only dev environments, merging this change and opening an issue for the above.

With the above in perspective, looking at the current default bundles in different platforms, this code will not kick in for the same (as in all cases Volsync is NOT disabled). As it relates to only dev environments, Ack'ing this change and opening an issue for the above.

#603

@ShyamsundarR can we merge you wait for another ack?

I am waiting on closing up any further PRs that may need a backport, before merging this.


blockbook-frontend: fix&update extraConfig example

Motivation for this change
Provide better and correct (missing quotes) example for Bitcoin configuration.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

@GrahamcOfBorg test blockbook-frontend

@GrahamcOfBorg test blockbook-frontend


Feature/upgrade react 16

upgrade should be done now.
Stepper Control is still an issue. But i notice that is an issue in development even now.. So we need to rewrite it or probably ask whoever wrote it to have a look
#69 is closed for now.

@vichu1988 - It is throwing error when I try to start the project.
Module not found: Error: Can't resolve 'emotion/react' in '/Users/bsrin2/Documents/CodeBase/XT-Fusion/fusion'
I tried to run npm install as well. Looks like this is current approach is to use another npm module react-emotion and the emotion/react is deprecated

For some reason your revert had caused my merge to go crazy.. now all the issues seem to have been fixed including the stepper control. have a look and merge if ok @sbmadhav

Thanks @vichu1988 for the PR!


Code overhaul

What has currently been written needs to be modified and cleared out for future development to continue. There is a lot of issue, lack of docstrings, and a general lack of design focus.

Completed with 74017a77a309e39c2e7562fffd80556ee8700aab


Unable to upload crashlytics

fastlane script:
crashlytics(
groups: 'iOSTest',
notifications: true,
notes: "Nagesh commit",
ipa_path: "/Users/nageshkumarmishra/Downloads/iOSTest.ipa",
api_token: "Added”,
build_secret: "Added"
)
Output: --
[19:17:18]: 2017-07-12 19:17:01.664 submit Crashlytics: Crashlytics.framework/submit 1.3.5 (18)
2017-07-12 19:17:18.362 submit Crashlytics: Unable to add release notes: Project iOSTest is inactive
2017-07-12 19:17:18.362 submit Crashlytics: Failed to add notes to the release
+--------------------+-----------------------------------------------------------------------------+
|                                           Lane Context                                           |
+--------------------+-----------------------------------------------------------------------------+
| DEFAULT_PLATFORM   | ios                                                                         |
| VERSION_NUMBER     | 1.0.19                                                                      |
| PLATFORM_NAME      | ios                                                                         |
| LANE_NAME          | ios beta                                                                    |
| IPA_OUTPUT_PATH    | /Users/nageshkumarmishra/Downloads/ios-build- ...
| DSYM_OUTPUT_PATH   | /Users/nageshkumarmishra/Downloads/ios-build-....
| XCODEBUILD_ARCHIVE | /Users/nageshkumarmishra/Library/Developer/Xcode/Archives/2017-07-12/iOSTest. |
+--------------------+-----------------------------------------------------------------------------+
[19:17:18]: Shell command exited with exit status 1 instead of 0.
+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | default_platform                    | 0           |
| 3    | increment_version_number            | 1           |
| 4    | get_version_number                  | 0           |
| 5    | cocoapods                           | 2           |
| 6    | gym                                 | 280         |
| 💥   | crashlytics                         | 16          |
+------+-------------------------------------+-------------+
[19:17:18]: fastlane finished with errors
[!] Shell command exited with exit status 1 instead of 0.

submit Crashlytics: Unable to add testers: Could not find a group for one or more of: ["iOSTest"]
2017-07-12 19:57:57.400 submit Crashlytics: Failed to add testers/groups to the release

Downgrading fixed this issue for me.

To which version ?

Please don't downgrade, that's not a good solution, and probably won't help much. Is this issue still happening?

Can you please let me know, if we want to active the App in Crashlytics, we need to lunch the app at least one ?

@KrauseFx dont have much of an option at this point, but downgrading to 2.4.60 fixed it.

This resolved for me.

@kylebrowning are you still on the old version of fastlane? Have you tried updating to more recent versions?

I am on the latest version. I feel like this may have been an issue with a " in my FastFile.

Amazing! I am going to close this issue for now. Thanks for following up! 🚀


docs: Add docs for runing foundry

Adds docs to CONTRIBUTING.md about how to run foundry locally

Current dependencies on/for this PR:

10-18-feat_Add_cli_action_config

PR #41

PR #42

PR #44

PR #45   👈

PR #43
PR #39

This comment was auto-generated by Graphite.


[SPARK-35881][SQL][FOLLOWUP] Remove the AQE post stage creation extension

What changes were proposed in this pull request?

This is a followup of #33140
It turns out that we may be able to complete the AQE and columnar execution integration without the AQE post stage creation extension. The rule ApplyColumnarRulesAndInsertTransitions can add to-columnar transition if the shuffle/broadcast supports columnar.
Why are the changes needed?

remove APIs that are not needed.
Does this PR introduce any user-facing change?

No, the APIs are not released yet.
How was this patch tested?

existing and manual tests

@andygrove  @tgravescs Can you try it out? Thanks!
also cc @dongjoon-hyun @maryannxue

Test build #142310 has started for PR 33701 at commit 076bd71.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46818/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46818/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46818/

Test build #142310 has finished for PR 33701 at commit 076bd71.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/142310/

Thank you for pinging me. If @andygrove and @tgravescs are okay, I'm +1 with this.

thanks, we will look at it.  I think we don't need these anymore, but doing some verification on that.  At the same time does it hurt to leave these in case someone wants to use these in the future?

Yes, @tgravescs , it's a little so because we cannot remove any public things in these days technically. Since this extension api is not released yet, we had better remove now and let someone add it in the future when it becomes inevitable. It might be added with different names according to the contexts which I don't know yet. Or, we can remove this from branch-3.2 first if we need more discussion.

Yeah, I would remove it if that's possible before a release too.

thanks for the review and verification! merging to master/3.2

Late LGTM

Thank you all!


Merge to main for 1.5

- Description of the problem which is fixed/What is the use case
This is merging the devel branch into main in order to prepare the v1.5.0 release.
- What I did

Cloned the main branch locally as merge-to-main-for-1.5
Reverted #339 from merge-to-main-for-1.5 (see below for justification)
Merge the devel branch into merge-to-main-for-1.5

- How to verify it

git diff ${clone_of_this_PR} devel should be empty.
Run QE tests

- Description for the changelog
Goal of this PR is to merge devel into main. This required some care as plain git merge devel was failing to start with. This was the consequence of git merge not being able to correlate cherry-picks in #339 with the original commits on devel. This got workaround by reverting #339 (backport of #327) and proceeding with the merge, which brought back the original changes from #327.

make test is broken as explained in https://github.com/openshift/sandboxed-containers-operator/pull/310#issuecomment-1562572732.
/override ci/prow/check


apply kde to target distribution

the hope is that smoothing out the target distribution so that values are continuous between 0 and 1 will smoothen the cost landscape

local minima are very pronounced.. not a good choice to do this

without applying kde to target is better. will keep target clipped at 0 or 1


Target the latest Android version

We must increase targetSdk in the manifest.
This is needed for release to Play Store.

I would be glad to help , please assign this issue to me.

Looking forward to your pull request! :-)

@iligeoili Any progress on this? Have you found the manifest, and the value of the latest version? 🙂

@nicolas-raoul @iligeoili I guess we will need to add a couple of lines here.
And if this is what I think this might help

Please set compileSdkVersion and compileSdkVersion to 33 in both app/build.gradle and data-client/build.gradle, then test the app and make sure unit tests are running successfully.
If no pull request from @iligeoili within 24 hours, @shankarpriyank feel free to can take over it.
Thanks both! :-)

I think I wont be able to fix this, cause I have the latest android studio version and I will be blocked until #5208 is merged

I can take it up if no one is currently working on it :)

wow thanks so much Ritika!


$ in member id URL sometimes terminates URL from being clickable

On my friend's Samsung Galaxy S5 running the Textra SMS app, the link
https://raha.io/m/mark.ulrich$2777
Got interpreted as a link ending at ulrich; and then $2777 was omitted from it.
Consider using a different scheme for deduplicating member ids.

Transitioned to "." instead of "$".


How to use Dev Services with @QuarkusIntegrationTest

I'm using SQS dev services succesfully in @QuarkusTest.
  @InjectSpy
  protected lateinit var sqsClient: SqsClient

  @BeforeAll
  fun setUp() {
    sqsClient.createQueue(CreateQueueRequest.builder().queueName("TestQueue").build())
  }

But in @QuarkusIntegrationTest SqsClient is not initialized.
kotlin.UninitializedPropertyAccessException: lateinit property sqsClient has not been initialized
Should it be possible to use sqs dev services to test native image?

It should work, we have IT tests here https://github.com/quarkiverse/quarkus-amazon-services/blob/main/integration-tests/src/test/java/io/quarkus/it/amazon/AmazonSqsITCase.java but clients are not injected in the test classes, due to some limitation with native testing https://quarkus.io/guides/getting-started-testing#native-executable-testing.
You can try get the configuration and create a client manually using DevServicesContext.

Thank you! My use-case should be covered with https://github.com/quarkiverse/quarkus-amazon-services/pull/566

Meanwhile, you may use init scripts. Have a look to https://github.com/quarkiverse/quarkus-amazon-services/pull/317

Thank you. Managed to workaround with init scripts. Although discovered that they are not working with latest LocalStack. Opened a separate issue.

Not sure what you mean by that exactly. For @QuarkusIntegrationTest it really doesn't matter where you run your production application. DevServices use testcontainers and spin up Docker containers for integration tests. In this case I'm using custom init scripts to create the queues my tests are using.
application.properties
quarkus.aws.devservices.localstack.init-scripts-folder=src/test/resources/localstack-init
quarkus.aws.devservices.localstack.init-completion-msg=completed

src/test/resources/localstack-init/create-queues.sh
#!/usr/bin/env bash
## TODO Can be replaced with https://github.com/quarkiverse/quarkus-amazon-services/commit/afcd123fdce8b198496b6953da767858ebb5a56c
set -euo pipefail

# enable debug
set -x

echo "configuring sqs"
echo "==================="
LOCALSTACK_HOST=localhost
AWS_REGION=us-east-1

# https://docs.aws.amazon.com/cli/latest/reference/sqs/create-queue.html
create_queue() {
  local QUEUE_NAME_TO_CREATE=$1
  awslocal --endpoint-url=http://${LOCALSTACK_HOST}:4566 sqs create-queue --queue-name ${QUEUE_NAME_TO_CREATE} --region ${AWS_REGION} --attributes VisibilityTimeout=30
}

create_queue "YourQueueNameHere"
echo "completed"

Reference to created queue: http://<IP_ADDRESS>:52549/000000000000/YourQueueNameHere

I am getting connection refused when the address http://<IP_ADDRESS>:{mapped_port} is used
http://{localstack_address_in_bridge_network}:4566 works, however this is not what is injected by the framework

Seems that I am hitting this issue https://github.com/quarkusio/quarkus/issues/34049

Override has to be dynamic, after the IP address of the localstack container is known.
This can be done from a QuarkusTestResourceLifecycleManager, only issue is that you cannot override the properties from dev services..
Just got https://github.com/quarkusio/quarkus/pull/34685 approved to change that behavior


973 items value to integer in cents

Resolves #973
Description
Changing Item.value to be an integer, in cents. Also, changing Purchase.amount_spent to Purchase.amout_spent_in_cents. Some other changes were needed, please check all codes.
Type of change

Breaking change (fix or feature that would cause existing functionality to not work as expected)
This change requires a documentation update

First, I changed the Item.value to Item.value_in_cents and  I turned the column type from Decimal to Integer. Some changes were needed on the controllers, models, views, queries, and helpers to deal with those changes. I also changed some tests because they are using values in Decimals, so I multiply all the Item values per 100 to combine with Integer and in_cents.
To finish, I changed the Purchase.amount_spent to Purchase.amount_spent_in_cents and I make some updates on the controllers, models, and views to combine with the change.
How Has This Been Tested?
All the tests passed.

@jeduardo824 This looks good, thank you for grabbing that issue!


DPS5020 UI support (currents above 9.99A)

Adds support for current display of over 9.99A on DPS5020. Is based off and therefore relies on the following PRs to first be merged:
https://github.com/kanflo/opendps/pull/200 DPS5020 support
https://github.com/kanflo/opendps/pull/189 DPS5015 UI support

Thanks!


Support for yolov4/5

Do you plan to support yolov4 (darknet) or yolov5 (pytorch)?

Well, I won't be using PyTorch or Darknet - aXeleRate is based on tf.keras and that won't change.
I could just port YOLOv4 or v5 to tensorflow or use existing port - but I do not think that v4 or v5 worth it. Upgrade to v3 however is necessary and long overdue.
Do you have a specific use case for v4 or v5?

@AIWintermuteAI I was hoping to use the increased FPS found in Yolov4 or Yolov5 for object detection on a Jetson Nano. I converted my yolov5 model to .onnx, then used your onnx_to_rt.py conversion successfully, but when running classifier_video.py with the .plan file, it I get a ValueError: could not broadcast input array from shape (150528) into shape (519168) which I assume has to do with AxeleRate not supporting Yolov5.

There is confusion about quite a few things here, let me clarify.
YOLO is a detector architecture, which is different from classifier. To understand the difference, look at this picture with cats :)

This is why running classifier_video.py with object detection model produces an error it has nothing to do with YOLO v5 support.
aXeleRate is a package, that is meant for training and conversion of CV neural network models - and you're supposed to use the example scripts provided for inference with models trained using aXeleRate. It is not specific to my framework - different network architectures have different outputs and thus require different post-processing (parsing the inference results). You cannot just take a random model, take an inference script from another repository and expect it to work.
Having said all of that, NVIDIA Dev boards are really special here - I would recommend you using their Transfer Learning toolkit for training the object detector models. It is a bit of hassle to get it running with Docker, but the end result will be better, since it is already tailored to NVIDIA boards.
https://developer.nvidia.com/transfer-learning-toolkit
Use MobileNet v1 or v2 backbone and detection layer of your choice - could be YOLO or DetectNet.


Make logHandler print to stdout instead of stderr

For some reason, logging to stderr makes test execution hang on Windows when running tests in parallel – it appears that stdout and stderr are handled the same way but there must be some difference, I wasn’t able to reduce the issue.
When running the sourcekit-lsp binary, stdout gets redirected to stderr, so logging printing to stdout ends up with the same result as fputs to stderr.

@swift-ci Please test


Conditional store spike.

Thinking this could help with https://github.com/JasperFx/marten/issues/35


Bug: Race Condition in WorkflowSweeper Leading to Inconsistent Workflow States

Describe the bug
We have identified a race condition in the WorkflowSweeper class, which causes workflows to be in inconsistent states across different threads. This issue is critical as it affects the reliability and correctness of workflow execution and completion checks.
Details
Conductor version: 3.17
Persistence implementation: Postgres,Opensearch
Queue implementation: RedisCluster
Lock: Redis
Steps to Reproduce:
Deploy the application with at least 30 replicas in a Kubernetes environment.
Use a high sweeper rate of about 25ms and a high thread count.
Use a Redis cluster with Redis lock for workflow execution.
Execute workflows at a rate of approximately 75-90 workflows per second.
Monitor the state of workflows and observe for inconsistencies.
Observed Behavior
Workflows are fetched from executionDaoFacade before acquiring a lock.
The verifyAndRepair method mutates the workflow state without proper synchronization.
The workflow lock is released before the workflow is removed from the queue.
These conditions create a time window of roughly 50µ to 100µ seconds where a workflow can be in two states concurrently on different threads.
Workflow listeners or completion checks may fail as a result, with workflows erroneously marked as "Running" even after triggering the finish.
Expected Behavior
Workflows should maintain consistent states across all threads.
Proper locking should be enforced to prevent state mutations without synchronization.
Workflow locks should only be released after the workflow is securely removed from the queue.
Screenshots

Hi @rq-dbrady we are investigating.


is the "Using Multiple Keys" section still accurate?

I setup two yubikeys with the same PGP keys. I tested out switching between them and it works seamlessly without any manual intervention other than entering the new PIN. Then is the "Using Multiple Keys" section outdated or have I done something wrong?

Well, I've had similar experiences - switching identically-provisioned keys without fuss when I've expected pushback.
I've also had the situation where the same key used on the same Mac twice in succession has told me that I need to insert the key which is actually already inserted, and no amount of unplug/replug will fix it.
Overall though, mostly the only time I get pushback is the "Keys A then B on same host" scenario.
Bottom line, in my experience it mostly just works but, when it doesn't, the command  in the Multiple Keys section is a pretty good fix.


Files to load kennel modules see systemctl status systemd-modules-load.service provides no clues except to show modules are not loaded!

quick fix is:
`apt-get install --reinstall pwm-soft-dkms
systemctl status systemd-modules-load.service
systemctl start systemd-modules-load.service
`

that said ... @dmitriykovalev I think with new update of raspbian the kernel is now v7+
"Building for 4.14.98+ and 4.14.98-v7+ "
so it seems all aiy dkms drivers don't get rebuilt upon latest dist-upgrade ...
so all these would need a rebuild/reinstall:
root@raspberrypi:~# apt-cache search aiy |grep dkms
aiy-dkms - Hardware device drivers for AIY Projects Kits.
aiy-vision-dkms - AIY Vision DKMS driver.
aiy-voicebonnet-soundcard-dkms - AIY Voice DKMS driver.
leds-ktd202x-dkms - Hardware device drivers for AIY Projects Kits.
pwm-soft-dkms - Hardware device drivers for AIY Projects Kits.
@dmitriykovalev could it be the dkms modules won't get picked up?


docs.flutter.io can't be searched on mobile

https://ibb.co/eEdyfK
There's no search bar

Duplicate of #19988


how to go about using the repository from scratch.

Thanks for making the repo public. I am new to the machine translation and your repo seems promising to me. could you please explain about how to go about train and evaluate the model for my datasets.

There are some parameters to be set before training, as file multi_gpu_train.sh and train.sh show. If you want to use single computer and multiple GPUs to train this model, you can run following command:
bash multi_gpu_train.sh

If you want to use single computer and single GPU for training, please make sure your current working directory is $your_path/NMT/ and run following command:
bash trainer/train.sh

Here is an example command with some descriptions of each parameter which can be used for multi GPU training.
python -m torch.distributed.launch --nproc_per_node=3 multi_gpu_train.py \
    --device_id 1 2 3 \
    # device_id is the id of GPU that used for training

    --src_language combine \
    # name of source language

    --tgt_language en \
    # name of target language

    --src_path /data/rrjin/corpus_data/lang_vec_data/bible-corpus/train_data/train_src_combine_bpe_32000.txt \
    # location of corpus of source language

    --tgt_path /data/rrjin/corpus_data/lang_vec_data/bible-corpus/train_data/train_tgt_en_bpe_32000.txt \
    # location of corpus of target language

    --src_vocab_path /data/rrjin/NMT/data/src_combine_32000.vocab \
    # location where the vocabulary of source language stores, the vocabulary will be automaticly generated according to the corpus

    --tgt_vocab_path /data/rrjin/NMT/data/tgt_en_32000.vocab \
   # location where the vocabulary of target language stores, the vocabulary will be automaticly generated according to the corpus

    --rnn_type lstm \
    # the kind of RNN used in encoder and decoder, it can be "rnn" or "gru" or "lstm"

    --embedding_size 512 \
    # size of word embedding

    --hidden_size 512 \
    # hidden size of RNN in the encoder

    --num_layers 3 \
    # number of layers of RNN in encoder and decoder. for example, if ${num_layers} is 3, the encoder and decoder have 3 recurrent layers separately

    --checkpoint /data/rrjin/NMT/data/models/basic_multi_gpu_lstm \
    # prefix of the path where the model after training saves

    --batch_size 32 \
    # number of sentence to be processing per training step

    --dropout 0.2 \
    # probability of an element to be zeroed in RNN

    --rebuild_vocab \
    # build vocabulary for corpus

    --normalize
    # preprocess the sentence, please refer `normalizeString` function in `NMT/utils/process.py` for more details

After training, you can run eval.py or quick_eval.py for translating (just run eval.sh or quick_eval.sh for simplicity). The difference between eval.py and quick_eval.py is that beam search is used in eval.py when decoding and greedy decodeing is used in quick_eval.py

Thank you so much for your help! I will let you know if need anything.


Google Authentication Added with Log-in and Log-Out Facility

issue no.: #16
Hello mam @shagun25 ... I added Google Auth Facility with log-in and log-out event...... Hope you review it and merged it
Closes: #16
Describe the changes you've made
Added Google Authentication with log-in and log-out..... Log-out button provided in both screen(Safety and Danger)
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Mention any unusual behaviour of your code (Write NA if not)
If my code not run on your machine at first....that may be due to SHA-1 key problem or multiplatform exception....
Maintain Following Steps:

add SHA-1(if possible SHA-256 also) key in Add Fingerprint in firebase account settings.....Picture added

Download google-services.json file again and put in the desired location....

Run command flutter clean and then flutter pub get in terminal

Re-run the program.....

In my machine....it works fine and smoothly.....After following above steps, if still you have a problem, you can freely tell me....

Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[ ] My changes generate no new warnings.
[x] Any dependent changes have been merged and published in downstream modules.

Additional Info (optional)
If my code work nicely, hope you review it and merged it.... I am also a GSSOC'21 participant.....So, after merge pls raised the required tag for that program...Thank you @shagun25

Required changes done..... google-sign-in version not specified as error came of compatibility..... But not specify version of that..... not create any problem to run the app....hope you review and merged it...Thanks @hiashutoshsingh @shagun25

Required changes done..... google-sign-in version not specified as error came of compatibility..... But not specify version of that..... not create any problem to run the app....hope you review and merged it...Thanks @hiashutoshsingh @shagun25

Thanks for being active.
PR looks great!

Required changes done..... google-sign-in version not specified as error came of compatibility..... But not specify version of that..... not create any problem to run the app....hope you review and merged it...Thanks @hiashutoshsingh @shagun25

Thanks for being active.
PR looks great!

Thanks for merge

Required changes done..... google-sign-in version not specified as error came of compatibility..... But not specify version of that..... not create any problem to run the app....hope you review and merged it...Thanks @hiashutoshsingh @shagun25

Thanks for being active.
PR looks great!

Thanks for merge.....

Required changes done..... google-sign-in version not specified as error came of compatibility..... But not specify version of that..... not create any problem to run the app....hope you review and merged it...Thanks @hiashutoshsingh @shagun25

Thanks for being active.
PR looks great!

Thanks for merge


floating point calculations?

Hello,
Maybe I'm stupid, but I cannot get floating point calculations working.
This works: 2.2 f.  -> 2.20000
This not: 2.2 3.3 f+ f.  -> 3.30000
I tested this with a vanilla c4, only in the makefile I omitted the -m32 option (not needed for linux)
---- Edit:
I tried the program on an old 32bit computer, and there everything works.  Stil I am not going to cripple down my 64bit machine but will try to find another solution.

Linux I assume? f+ doesn't work when it is a 64 bit build? Weird, I'll  look into that

I bet it is because floats are 32 bits and longs on Linux are 64 bits, and c4 uses the same stack for  both. So it works when both are the same size,

Actually, it's not the same stack. In c4.h:
typedef union { float f[STK_SZ + 1]; CELL i[STK_SZ + 1]; } STK_T;
Here, float is 32bit and CELL is 64bit, so you have to always use the right union component. I didn't trust that, so I modified the code using one stack, with a union as stack component. However: this didn't change anything, the errors stayed the same!
Then, totally by accident, I found out that if I hit return between typing the float numbers, everything worked as expected! The cause if this I coudn't find yet however.

There are 2 problems, there was a place where it was hard-coded to step by 4 even on 64-bit systems, where is should step by 8. The other problem is that floats are 32-bit, and the ST_T union of the 2 different sizes are messing up the slots for the entries, because of the different sizes. The fix is to use a double for 64-bit systems and a float for 32-bit systems.
I have a fix and will upload it shortly.

Please have a look at this branch.
https://github.com/CCurl/c4/tree/float-fix
Thanks

FWIW, the LSP my neovim uses reformatted the file, so it added like 500 lines to the source. I doubt I will complete this PR, because there were really only less than 5 changes total.
I will do another PR with the formatting turned off.

Don't bother about formatting: floats are working. Next problem: strings don't. An example:
variable v1
v1 80 allot
v1 " Harry " str-cpy
v1 ztype cr
" meets Sally" v1 str-cat
v1 ztype cr
On 32bit: no problem, 64bit: wrong or no output.

I think it's the same problem, where it was +4'ing instead of "+CELL_SZ"

This was wrong on 64-bit systems:

Float's and strings are okay now, only 2 lines had to be modified.
As said before, I use one kind of stack, so floats didn't have to be changed to doubles.

Float's and strings are okay now, only 2 lines had to be modified. As said before, I use one kind of stack, so floats didn't have to be changed to doubles.

Which 2 lines? The 2 that were incorrectly hard-coded to "pc += 4"?

Yes.
That was simple, I had been searching for a solution myself, but in vain.

Excellent! Thanks for trying out my stuff. :)


long-running VPN session was dead but uProxy didn't know it

I left my phone (Moto G) connected overnight, in VPN mode, to a nearby cloud server. When I came back this morning the VPN was still active and uProxy thought it was connected but no traffic was flowing in or out of my system.
It's not clear what happened...how would I even debug this?

FYI, same thing just happened - I left VPN mode on overnight and now, although uProxy believes the connection is alive, I can't send or receive any network traffic.

I was finally able to reproduce this issue. Going over the logs I found the following exception in the DNS resolver code:
java.net.ConnectException: failed to connect to /<IP_ADDRESS> (port 35505): connect failed: ECONNREFUSED (Connection refused)
The local address refusing the connection is the SOCKS server. I will keep investigating, but until we fully diagnose the problem, would it make sense to stop the VPN and display the disconnect dialog?

Some more findings:

The same exception occurs when network connectivity is interrupted while in VPN mode. It could be related connectivity issues; see #2748, most notably the one where, "long disconnections [...] often seem to run into WebRTC-related issues (e.g. no UDP candidates, or candidates only on the defunct VPN interface)."
I simulated a memory constrained device (which kills activities as soon as the user is done with them) in order assess whether the OS reclaiming memory while uProxy is in the background leads to the conditions we're seeing. However, under these settings, the app's main activity is destroyed and uProxy restarts (even if VPN mode is on). More info on the Cordova-Android app lifecycle.
I verified that without these memory constraints and for short periods of time (i.e. not overnight) uProxy runs in the background normally.

DNS resolver latency

DNS resolver success rate


models.yaml is missing ,..

models.yaml is missing ,..
Please provide a file from where one can load different models,.. with colab its little buggy. lwys

please try again and check the new tutorial


Replace Tools::encrypt wich is decprecated since 1.7.0 by Tools::hash.

Questions
Answers

Description?
Replace the deprecated Tools::encrypt function by Tools::hash. Tools::hash is here since 1.7.0 and this new version of ps_facetedsearch is compatible with version 1.7.1 or higher, so it's OK I think !

Type?
refacto

BC breaks?
no

Deprecations?
no

How to test?
Check that CRON tasks do not trigger a Bad Token error due to a bad token hash

This change is

Thank you @Sinepel


[2.6.9] Transition enter broken

Version
2.6.9
Reproduction link
https://codepen.io/frlinw/pen/zbLOZq
Steps to reproduce
click the "click me" zone
What is expected?
the red block should fade in
What is actually happening?
the enter transition is ignored

Probably related to https://github.com/vuejs/vue/commit/4de4649d9637262a9b007720b59f80ac72a5620c
It works if I add appear to te transition tag.
But to me it look like a breaking change

You need the appear as you are toggling the transition component itself instead of the inner content

@posva yes, I figured out but is it not what we can call a breaking change as it break the existing ? (and there is no notes about it, except the doc itself which does not specify it was introduced in 2.6.9)

no, it was wrong before when it shouldn't have

It is indeed different behavior, but the old behavior is "wrong" so it's considered a fix.

@yyx990803 Of course and now I can see how inconsistent was the previous behavior (even if It was exactly what I wanted).
You are right when you say it's a bugfix, but it is only in the library perspective.
it's a 2,5 years old bug (or even older) that means lot of people started to use Vue as if this issue was the normal behavior and in usage, for a lot of people, it will be a breaking change.
I didn't know about appear before then (because it worked without it) and I didn't know something was wrong with it, there are plenty of guides/examples/tuto which does not talk about appear even in the vue example https://vuejs.org/v2/examples/modal.html

@frlinw yes, but the behavior is indeed incorrect based on how <transition> is supposed to work.


Error parsing a stitching vector

Filepattern throws an error while trying to infer a pattern for a what seems a valid stitching vector :
pattern = fp.infer_pattern(STITCHING_VECTOR_PATH)

throws
'PosixPath' object is not iterable

Below is a link to the stitching vector
stitching vector
Parsing similar vector worked just fine, for example this one

Actually not a bug, but it is rather a distribution issue related to #10.
On osx, Filepattern needs to be build manually as there is no packaged version available for version 2.
However by default, pip will reinstall 1.4.7 in place of the local build if tight requirements are not in place
(ex : filepattern=^2.0.0)
Thus the error message above popping up as filepattern 1.4.7 had replace the local 2.0.1 build when installing a dependency through poetry (poetry check that all dependencies are met before adding a new package and try to fix the environment).
I would guess one way to address this would be to find a way to add prebuilt binaries for apple silicone.

Fixed in v2.0.3


enable unit test in arm64

change base image tag from 1.8.4 to 1.8.5  to enable unit test in arm64 as golang:1.8.4 does not support arm64v8 . help me check @calavera @vdemeester @tomdee @erikh
Signed-off-by: Jianyong Wu<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@26531e5). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2042   +/-   ##
=========================================
  Coverage          ?   40.05%
=========================================
  Files             ?      137
  Lines             ?    21973
  Branches          ?        0
=========================================
  Hits              ?     8801
  Misses            ?    11863
  Partials          ?     1309

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 26531e5...0c216bb. Read the comment docs.

LGTM


add associate HPO example

an example on how to associate training jobs created by a hyper parameter tuning job with a trial
https://github.com/aws/sagemaker-experiments/issues/94

can we add a small section at the top to bulletpoints what will be done in each step?  for instance:

create experiment and trial
using Search to search trial components auto-created by the HPO job.
associate

This can make the notebook more textual, hence more friendly IMO