clangd crashing soon after startup when launched with MallocScribble=1 in the environment

Please describe the problem.

I'm developing and maintaining an LSP client (BBEdit), and during development I run the application in Xcode with ASAN and various Malloc debugging aids enabled; this includes the "Malloc Scribble" diagnostics option, which is a convenience for setting MallocScribble=1 in the application's Unix environment.
When MallocScribble is turned on, clangd crashes within a few seconds of being started, with what sure seems like use-after-free based on the address:
Crashed Thread:        118  */Containing.mm1

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x5555555555555555 -> 0x0000555555555555 (possible pointer authentication failure)
Exception Codes:       0x0000000000000001, 0x5555555555555555

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [17867]

VM Region Info: 0x555555555555 is not in any region.  Bytes after previous region:<PHONE_NUMBER>9734
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      commpage (reserved)<PHONE_NUMBER>-7000000000   [384.0G] ---/--- SM=NUL  ...(unallocated)
--->
      UNUSED SPACE AT END

Here's the backtrace from thread 118:
Thread 118 Crashed:: */Containing.mm1
0   libsystem_malloc.dylib        	       0x18d909374 medium_free_scan_madvise_free + 396
1   libsystem_malloc.dylib        	       0x18d8f1a74 free_medium + 3296
2   clangd                        	       0x100eb5934 llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>::~BumpPtrAllocatorImpl() + 88
3   clangd                        	       0x1015d5984 clang::ASTContext::~ASTContext() + 1368
4   clangd                        	       0x101cdea5c llvm::IntrusiveRefCntPtr<clang::ASTContext>::release() + 40
5   clangd                        	       0x100e50d1c clang::clangd::CapturedASTCtx::~CapturedASTCtx() + 72
6   clangd                        	       0x100ef4574 void llvm::detail::UniqueFunctionBase<void>::DestroyImpl<clang::clangd::(anonymous namespace)::UpdateIndexCallbacks::onPreambleAST(llvm::StringRef, llvm::StringRef, clang::clangd::CapturedASTCtx, std::__1::shared_ptr<clang::include_cleaner::PragmaIncludes const>)::'lambda'()>(void*) + 72
7   clangd                        	       0x1012081d8 void* llvm::thread::ThreadProxy<std::__1::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::$_1>>(void*) + 148
8   libsystem_pthread.dylib       	       0x18dac7fa8 _pthread_start + 148
9   libsystem_pthread.dylib       	       0x18dac2da0 thread_start + 8

Thread 118 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000001   x1: 0xffffffffffffffff   x2: 0x0000000000000007   x3: 0x5555555555555555
    x4: 0x0000000000000000   x5: 0x0000000000000020   x6: 0x0000000000000025   x7: 0x0000000000000001
    x8: 0x00000002ff0070ac   x9: 0x000000000000b607  x10: 0x0000000000002026  x11: 0x0000000150000000
   x12: 0x0000000000000b25  x13: 0x00000000ffff8022  x14: 0x0000000000000fdd  x15: 0x00000000ffff7fff
   x16: 0x000000000000004b  x17: 0x00000001ed67be18  x18: 0x0000000000000000  x19: 0x0000000148000000
   x20: 0x00000002ff0070e0  x21: 0x00000001029d0680  x22: 0x5555555555555555  x23: 0x5555555555555555
   x24: 0x00000001029f8000  x25: 0x00000000ffff8022  x26: 0x0000000148000000  x27: 0x0000000000110000
   x28: 0x0000000000000022   fp: 0x00000002ff006de0   lr: 0x2a1500018d909398
    sp: 0x00000002ff006d70   pc: 0x000000018d909374 cpsr: 0x60001000
   far: 0x5555555555555555  esr: 0x92000004 (Data Abort) byte read Translation fault

Logs
Unfortunately I can't provide much in the way of logging; the stderr log from clangd doesn't show any diagnostics. The complete crash report contains file and path name references that expose more information than I am comfortable with, but if necessary please let me know and I'll figure out some way to get the data to you privately.
I've also found that I can't reproduce the crash with a trivial project directory, so there is some additional complexity in my project which is surely contributing.
If you can't reproduce the crash by setting MallocScribble=1 when running clangd with a suitably complicated project, I can try to come up with some minimal reproducible case.
System information
Output of clangd --version:
Homebrew clangd version 17.0.5
Features: mac+xpc
Platform: arm64-apple-darwin22.6.0

Editor/LSP plugin: BBEdit (engineering version, but reproducible with 14.6.9)
Operating system: macOS 13.6.1

Can you share what LSP messages your client sends to clangd before it crashes? It's fine if it doesn't include paths or contents, just what messages and in what order.

 Since it happens not long after application startup which includes reopening documents, there's certainly a storm of textDocument/didOpen notifications sent to the server as soon as initialization is complete.

…so, I've been working on this, adding logging code and finding that the OS console inconveniently truncates stuff, but I think I've got the trace that you asked for. I did redact paths and file contents, but hopefully that won't reduce its utility. clangd-trace.txt
I had been hoping to find a simpler repro case in a project that I could share, but no joy.

Ok, so the server is opening a large number of files (about 40 in the posted trace) in quick succession on startup.
Obviously that shouldn't cause the server to crash in and of itself, but as a side point I'm curious how you're finding the performance of that? The editor I use, VSCode, only sends a didOpen when a document's tab is in the foreground for the first time, so on startup it would only send a small number of didOpen requests (e.g. just one, or two if my window is in a split-pane configuration), and then for other open documents it sends the didOpen when I first switch to it.
I'm wondering what the performance impact of sending them all up front is. Each one does trigger a large amount of work in clangd (it has to parse the open document's "preamble", i.e. all included headers), so it feels like trying to do 40 of them in parallel might slow the system down / increase the time until the foreground document becomes responsive to requests triggered by user interaction like go-to-def.

Regarding the crash, I believe the stack trace suggests that it's taking place on a dedicated thread clangd spins up for adding the contents of the document's preamble to the dynamic index.
Doing this preamble indexing on a separate thread is a new change in clangd 17, introduced in https://reviews.llvm.org/D148088 and then enabled unconditionally in https://reviews.llvm.org/D155619. It appears this feature has caused other memory / thread safety issues which have since been fixed (e.g. https://reviews.llvm.org/D148088#inline-1457131, https://github.com/llvm/llvm-project/commit/27ade4b554774187d2c0afcf64cd16fa6d5f619d). Maybe you are running into a latent issue of a similar nature.
cc'ing the folks who worked on this feature: @kuganv, @ivanmurashko, @kadircet

@siegel If you're able to test with clangd 16 and see whether the crash occurs with that release, that would help gain confidence in async preamble indexing being the cuplrit.

@siegel it looks that clangd-17 does not contain an important fix I made at https://reviews.llvm.org/D159363. Is it possible for you to create a binary from the master and test it?

Ok, so the server is opening a large number of files (about 40 in the posted trace) in quick succession on startup.
Obviously that shouldn't cause the server to crash in and of itself, but as a side point I'm curious how you're finding the performance of that?

I haven't noticed any significant performance impact. By the time the application has finished launching and reopening all of the documents that were previously open, clangd is up to speed and the diagnostics have been returned. There's usually enough time before the user actually starts doing anything that the server is ready to respond to interactive requests (completion, go-to-def, etc) and does so as expected.

Using this build I get a crash with MallocScribble enabled. Here's an excerpt from the crash log:

This clangd 16 crash is in a different place in the code (during the actual parsing of the preamble), so it may could be a different issue. Maybe this one is more stable / amenable to reproduction in a minimal testcase?
It would be interesting to try a trunk build as well, e.g. from https://github.com/clangd/clangd/releases/tag/snapshot_20231210. If the async preamble indexing crash doesn't occur there, then the crash seen on clangd 17 was likely fixed by the patch @ivanmurashko linked to above.

@HighCommander4 I downloaded the indicated snapshot (https://github.com/clangd/clangd/releases/tag/snapshot_20231210) and I'm seeing this crash:
Crashed Thread:        9  background-worker-8

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x5555555555555555 -> 0x0000555555555555 (possible pointer authentication failure)
Exception Codes:       0x0000000000000001, 0x5555555555555555

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [4382]

VM Region Info: 0x555555555555 is not in any region.  Bytes after previous region:<PHONE_NUMBER>9734
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      commpage (reserved)<PHONE_NUMBER>-7000000000   [384.0G] ---/--- SM=NUL  ...(unallocated)
--->
      UNUSED SPACE AT END

Thread 9 Crashed:: background-worker-8
0   libsystem_malloc.dylib        	       0x193eb1374 medium_free_scan_madvise_free + 396
1   libsystem_malloc.dylib        	       0x193e99a74 free_medium + 3296
2   clangd                        	       0x100a45488 clang::SourceManager::~SourceManager() + 284
3   clangd                        	       0x101fe9088 clang::CompilerInstance::~CompilerInstance() + 796
4   clangd                        	       0x101fe9184 clang::CompilerInstance::~CompilerInstance() + 12
5   clangd                        	       0x10160c75c clang::clangd::BackgroundIndex::index(clang::tooling::CompileCommand) + 2800
6   clangd                        	       0x10160ee70 std::__1::__function::__func<clang::clangd::BackgroundIndex::indexFileTask(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_3, std::__1::allocator<clang::clangd::BackgroundIndex::indexFileTask(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_3>, void ()>::operator()() + 436
7   clangd                        	       0x1016120a4 clang::clangd::BackgroundQueue::work(std::__1::function<void ()>) + 272
8   clangd                        	       0x10160db24 void llvm::detail::UniqueFunctionBase<void>::CallImpl<clang::clangd::BackgroundIndex::BackgroundIndex(clang::clangd::ThreadsafeFS const&, clang::clangd::GlobalCompilationDatabase const&, llvm::unique_function<clang::clangd::BackgroundIndexStorage* (llvm::StringRef)>, clang::clangd::BackgroundIndex::Options)::$_1>(void*) + 152
9   clangd                        	       0x101669d70 void* llvm::thread::ThreadProxy<std::__1::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::$_1>>(void*) + 96
10  libsystem_pthread.dylib       	       0x19406ffa8 _pthread_start + 148
11  libsystem_pthread.dylib       	       0x19406ada0 thread_start + 8

This version reports:
clangd version 18.0.0git (https://github.com/llvm/llvm-project 774295ca1d5ff752cb478b61f22a5b1dbe33074f)
Features: mac+grpc+xpc
Platform: arm64-apple-darwin22.6.0; target=x86_64-apple-darwin22.6.0

For some reason I seem to be having difficulty building clangd from the llvm-project sources; everything builds but I can't find a clangd executable in the output. I'll be happy to build a Debug or RelWithDebInfo build if there's a way to do so, assuming that would help at all.

I downloaded the indicated snapshot (https://github.com/clangd/clangd/releases/tag/snapshot_20231210) and I'm seeing this crash:

This one is again in a different place, occuring during background indexing.
So, it looks like the async preamble indexing UAF you were seeing in clangd 17 was likely fixed by Ivan's patch on trunk, but there are other UAFs lurking around which are being caught by MallocScribble.
I'm not really sure how to investigate the remaining ones further based on the stack trace only, without a reproducer.

Unfortunately the only reproducible case I have at the moment is my own source code. I suspect that any sufficiently large project would work, though.
Try this, assuming you're on macOS:

Clone WebKit

Add the following lines to the end of /path/to/WebKit/.clangd:

---
CompileFlags:
  Remove: [-index-store-path, -MMD, -MT, -MF, -clang-vendor-feature=*, -fno-odr-hash-protocols, -fmodules, -gmodules, -fmodules-cache-path=*, -fmodules-prune-after=*, -fmodules-validate-once-per-build-session, -fmodules-prune-interval=*, -fbuild-session-file=*, -ivfsstatcache, -analyzer-tidy-checker=*]
---
Diagnostics:
  ClangTidy:
    Remove: readability-misleading-indentation

ccmake .

c to configure, then t to toggle advanced mode. Locate CMAKE_EXPORT_COMPILE_COMMANDS and turn it ON.

c to configure again, then g to generate build commands, then e to exit.

Build WebKit: make

Install BBEdit and configure it to use clangd by following the instructions here for C-family languages. You can download the current public release of BBEdit here.

Drag the WebKit folder onto the BBEdit application in the Dock or Finder. This will open a browser window. Open a whole bunch of C/C++/etc source files from WebKit/Source/* into BBEdit.

Assuming everything's configured properly, each file will open and the bar above the text area will show a diagnostics indicator (hopefully a green check mark).

Quit BBEdit without closing any files, then relaunch it.

At this point, assuming that your clangd is running with MallocScribble=1 or running under ASAN, this may reproduce the crash. (I haven't tried myself yet; I'm still waiting for step 6 to complete.)


10629 - BaseStringHelper::truncateHtml fix - should not add suffix if words count less than needed

Fix for #10629

Thank you, merged


BUG: google_maps_flutter_web - Polylines not showing up

It seems POLYLINES are not supported. I can see it on Mobile but not on the web.
Here is what my code looks like:

GoogleMap(
gestureRecognizers: Set()
..add(Factory(() => PanGestureRecognizer()))
..add(Factory(() => ScaleGestureRecognizer()))
..add(Factory(() => TapGestureRecognizer()))
..add(Factory(
() => VerticalDragGestureRecognizer())),
tiltGesturesEnabled: true,
myLocationEnabled: true,
myLocationButtonEnabled: true,
mapToolbarEnabled: true,
buildingsEnabled: true,
markers: _markers,
polylines: [
Polyline(
width: 4,
polylineId: PolylineId("1"),
color: userLocation.urgencyColor,
points: [
LatLng(userLocation.latitude, userLocation.longitude),
UserLocation.kaaba,
],
)
].toSet(),
mapType: widget.mapType,
zoomGesturesEnabled: true,
scrollGesturesEnabled: true,
rotateGesturesEnabled: true,
compassEnabled: true,
onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: LatLng(userLocation.latitude, userLocation.longitude),
zoom: 19.0,
),
),
);
}

Thanks for drawing my attention to the Readme.
It says in the readme:
"There's no defaultMarkerWithHue in web. If you need colored pins/markers, you may need to use your own asset images"
Can someone give me an example on how to add a marker and pins between two locations using my own assets ?

Use : google_maps_flutter: ^0.5.28+1
Marker Code :
Set markers = Set();
markers.addAll([
Marker(
markerId: MarkerId('value'),
position: LatLng(12.943450, 77.574100),
infoWindow: InfoWindow(
title: "Tital",
anchor: Offset(1.0, 0.0),
onTap: (){
launchURL();
}
),),
]);
Then in the build you have to add widget like :
GoogleMap(
mapType: MapType.normal,
         markers: markers,
            mapToolbarEnabled: true,
            onMapCreated: (GoogleMapController controller) {
              _controller.complete(controller);
              markers.lookup(0).infoWindow.onTap();
            },
          ),

Can someone give me an example on how to add a marker and pins between two locations using my own assets ?

@real1900 there's an example of markers with custom assets in the example app.
Please, let us know if that example helps!

Sorry for the confusion -
I meant POLYLINES are not showing up not MARKERS.
My apologies

@darshankawar @ditman i updated the question

I meant POLYLINES are not showing up not MARKERS.

Polylines should be showing up, check this sample.
What polyline are you trying to plot?

I am basically trying to add one straight polyline between two latlngs .

I have shared my code in my original question

I'll take a look, this should work, but the example seems to be adding polylines after the fact, instead of adding them on the initial payload of the map. I'll make sure that works.

Thanks . Please update me on the progress for this @ditman

Taking a look right now.

I've posted a PR with a fix for this issue (linked right above this message)

The fix for this has been published in google_maps_flutter_web v0.1.0+3


10Gig links

Is it possible to use 10Gig links in mininet ? how?

Please do not abuse the GitHub issue system with random questions. :(


gltfpack: option to disable mesh consolidation?

I want to get the "goodness" of gltfpack while still allowing a web application to access some individual meshes that I've grouped for accessing individually in a web app.
Perhaps I'm doing something that should be done through separate gltf files, in other words maybe it doesn't make sense to have this option since it's a core feature of gltfpack?
I can provide code example if helpful but at least wanted to start the thread to see if this makes sense as an issue.
I'm using this component for A-Frame to access individual parts of the gltf:
https://github.com/supermedium/superframe/tree/master/components/gltf-part/
Versions:
A-Frame Version: 1.0.4 (Date 2020-05-07, Commit #9022b97e)
THREE Version (https://github.com/supermedium/three.js): ^0.115.1
installed gltfpack with npm install -g gltfpack, I think it's using commit hash 9e89bf3

gltfpack has a command-line option -kn that preserves unconsolidated meshes attached to named nodes. The general idea there is that for an application to be able to retrieve nodes, they must be accessible using some stable identifier, which is a name in glTF.

Perfect, I should have simply read the help text on the CLI. I was looking in gltf/readme.md assuming that was the complete set of options, sorry!
I tried using -kn and now my project no longer throws a console error saying the parts can't be found, however it's not rendering anything. It could be a gltf loader issue and it's an exercise for me to figure out since it does load fine in https://gltf-viewer.donmccurdy.com/ so it's probably an error in my gltf loader component or some other application logic.
I'll mark this ticket as closed since gltfpack already supports this feature.

Tried this again using -kn and -ke
I still can't seem to access meshes using their name after using gltfpack as I am able to prior to using gltfpack.
In my example file, the pre-gltfpack code has 3 nodes. The output has 6 nodes - 3 with meshes but no name, and then 3 with names but no meshes.
Original GLTF (left), gltfpack output (right)

That's expected - the extra matrices are dequantization matrices. I'm not sure why you need to access the mesh specifically, since you should be able to perform transformation on the node - if you need to of course you can find the mesh in the subtree.
You can disable quantization by using -noq to get rid of those but that's not recommended as it will result in larger file sizes and larger memory consumption.

You're right -noq did fix that at the expense of a much larger file size.
The culprit must be in the way that the three.js / A-Frame gltf loader I'm using access the named mesh. Here is the function:
https://github.com/supermedium/superframe/blob/master/components/gltf-part/index.js#L56
@donmccurdy I hope you don't mind me tagging you but since you brought up gltfpack originally I don't feel as guilty -- do you mind weighing in if there is a way for the gltf-part A-Frame component to exhibit same behavior when a gltf file processed with gltfpack? See thread above for context.

It looks like after gltf-part clones a part of a model, it should be applying that part's matrixWorld to its matrix, or at least keeping the inherited scale. Otherwise that information is lost when the part is reattached somewhere else. There are two ways this could play out depending on the model, so a JSFiddle might help. I'd consider that a bug in gltf-part, or at least a limitation... maybe related to https://github.com/supermedium/superframe/issues/115.

I'm not sure why you need to access the mesh specifically, since you should be able to perform transformation on the node...

This would be accessing the parsed result of GLTFLoader, where the node/mesh pair may be flattened to a THREE.Mesh. Would gltfpack always apply the the quantization transform to the mesh's parent node, or might it ever be further up the tree?

Would gltfpack always apply the the quantization transform to the mesh's parent node, or might it ever be further up the tree?

The structure is always:
original_node -> dequant_node with a .mesh reference

In that case, @kfarr, you may find that the model already has names on parents or grandparents of the mesh that you can use with gltf-part, rather than the name of the mesh itself. If you're not sure of the final structure in three.js/A-Frame, try opening the model in https://gltf-viewer.donmccurdy.com/ and viewing the printed graph in the JS console.

Hi Don and Arseny, sorry for long delay. I have posted a full example of the failing attempt to load just a part of the gltf model by name when using gltfpack and a-frame "gltf-part" component loader:
https://kfarr.github.io/aframe-gltf-helpers/examples/09-meshopt-gltf-part.html
You can find docs, full source, and the sample models here:
https://github.com/kfarr/aframe-gltf-helpers
Would love any advice on my path to create a reasonable gltf pipeline web 3d projects with many assets if I'm going in the wrong direction here.

I'm not sure I can say why that workflow isn't giving the results you expect, but changing an object's parent without using its worldMatrix would not be safe. It will be necessary to call .updateMatrixWorld() at least once on the root of the glTF model, and then use its world position — rather than its local position — after parenting it to an object whose own parents are at the origin.
Translating all of that into the aframe scene graph is tricky, and converting BufferGeometry -> Geometry in the process makes me a bit nervous as well.
The approach in https://github.com/pmndrs/gltfjsx is an interesting option, they generate the declarative syntax for the model offline. But either approach feels a little hard to manage if/when your assets get more complicated. I think it would be easier to have every asset centered at the origin, and have some external source of truth for where they should be placed in the application?
If you want to script any of this offline, some other workflows might be possible with https://gltf-transform.donmccurdy.com "merge" and "dedup" commands, which would let you export individual assets, then merge them and deduplicate their textures.

@kfarr Is that more or less how this should've looked?

(don't have an uncompressed glb to verify this)
I think the actual selection in your code is working fine, it's able to find the right mesh properly (although there's actually two meshes attached to the node with that name). But what doesn't work well is this code:
    if (this.data.buffer) {
      mesh.geometry = mesh.geometry.toNonIndexed();
      return mesh;
    }
    mesh.geometry = new THREE.Geometry().fromBufferGeometry(mesh.geometry);
    return mesh;
  }

If I comment out both assignments to mesh.geometry I get the screenshot above. I believe the issue is that toNonIndexed at least doesn't correctly support interleaved geometry, which quantized geometry extension uses in this case, so you get mangled geometry.
This is something I can fix in three.js but I'm wondering, why do you need to run this code in the first place?

Thanks Don and Zeux, yes that's the correct model display in your screenshot.
The goal here was to gltf-pack on an entire set of assets in one glb that share material to then load selectively for scenes that change. There are good workarounds already, such as just having them as separate files anyway, so I don't think any more work is warranted here but I highly appreciate your and Don's willingness to take a look. I think the best answer is simply to use separate files.


Fix debug_traceCall to handle underpriced transactions

Fixes: #7503 where debug_traceCall was failing due to gas price checks, while eth_call was succeeding.
Output from debug_traceCall
curl --data '{
  "jsonrpc": "2.0",
  "id": 0,
  "method": "debug_traceCall",
  "params": [ {
    "to": "0x0aae40965e6800cd9b1f4b05ff21581047e3f91e",
    "data": "0x000000000000000000000000000000000000000000000000000000000001A00E"
  }, "latest"]
}' -H "Content-Type: application/json" -X POST http://<IP_ADDRESS>:8545
{"jsonrpc":"2.0","id":0,"result":{"gas":21164,"failed":false,"returnValue":"","structLogs":[{"pc":0,"op":"STOP","gas":7978836,"gasCost":0,"depth":1,"stack":[],"memory":[],"storage":{},"reason":null}]}}

This fix the issue with debug_traceCall, but since it part of a group of RPC methods extending the AbstractTraceByBlock class, it is better to review if the issue affects other methods in the group, and compare the behavior with other clients to be sure there are not other differences.

@fab-10 What do you expect the next steps to be here?

@7suyash7 first I suggest to review if  trace_call, trace_callMany and trace_rawTransaction that extend AbstractTraceByBlock like debug_traceCall have a similar issue and depending on that uniform the fix across all of them.

Thanks @7suyash7 for checking, I think that is enough and the change can be limited to this call, could you just add a test case and a changelog entry to complete the fix?

@fab-10 I just did, can you please check?

LGTM


Fix README typo

Looks like it's only in the readme and not in code 😊
Cool project btw!

Thank you!!🤗


Derived preview resources are too large

Recently, we have implemented generating derived/preview resources, which are first 10k rows of the original resource. It was decided to make it in JSON format for convenience in the frontend. However, as we can see now, JSON versions usually are larger in size than CSV versions. E.g., for finance-vix dataset, original resource is ~228KB, while derived/preview version is ~528KB. It becomes crucial when loading resources that are several MB in sizes.
Another point is we could skip generating derived/preview if the number of rows is <10k as it does not make a lot of sense or am I missing something? Frontend would use original resource for the preview if derived/preview is not found. Notice, that we have to generate preview views anyway.
In addition, we could reduce number of rows for preview resources, e.g., only first 1k rows. Consider https://pkgstore.datahub.io/f512ef8d39ada702fde60efe1ca59c17/farm-url/latest/datapackage.json which has a resource with 4987 rows . What do you think?

We can fine-tune the number of rows, 1k rows sounds reasonable to me as well (#32)
As for JSON vs. CSV - generally speaking, if we store/get stuff from S3 in compressed form then it doesn't really matter (the savings would be very small). Need to check on how to do that with S3 (#30)
Lastly, we should skip creating the preview resource in case it's already small (#31).
I opened an issue for each of those tasks.


car Game

Is your feature request related to a problem? Please describe.
Car game using html ,CSS , JS
Describe the solution you'd like.
Using basic concepts of js
Describe alternatives you've considered.
To further improve game in design and features
Add any other context or screenshots about the feature request here.
No response

@nitishsaini706 Good Luck 👍🏻

@swapnilsparsh I already opened a pr


Drop GraphQL.js 15 support

The goal of yoga is to be a lightweight server. Supporting a lot of different graphql-js versions adds additional overhead and code for doing so. I don't think we need to support many different graphql-js versions.
I see PRs like https://github.com/dotansimha/graphql-yoga/pull/1270 adding special helpers for constructing GraphQLError instances in a type-safe and backward-compatible way.

I think we agreed on being engine agnostic.


Error Handler middleware doesn't work with TypeScript

The following use case of error handling middleware won't work:
app.use(
  error: Error,
  req: Request,
  res: Response,
  next: NextFunction
) => {
  console.error(error)
  res.json(processError(error))
}

The reason is that TypeScript strips out the next argument in the resulting .js bundle because it's unused so the middleware ends up being treated as usual middleware instead of an error handler.
an I have found no way to disable this unused arguments stripping with TypeScript configuration but feel free to suggest some proper way to do that if one exists.
The temporary solution I used is to call next() after res.json(...) which shouldn't really affect anything.

Hi @vilnytskyi I'm sorry to hear that! Definitely a strange thing. Unfortunately it sounds like this is happening outside of Express.js, probably in a TypeScript -> JavaScript transpilation operation. You'll want to open an issue ticket against the system that is performing this action, as there isn't a way we can change that transpilation stuff from the Express.js project, unless I'm missing something. If I am missing something and there is some way this can be fixed within Express.js itself, please let me know and I can re-open the issue 👍

@dougwilson the question is if it's a good practice to rely on count of function arguments instead of introducing something like app.useErrorHandler that would be more reliable ofcourse.

Hi @vilnytskyi , gotcha.the argument count thing is from even before I was with the project, so quite old. And remember error middleware can be used anywhere a normal middleware can be used, like in app.post, app.route and every other way you can add middleware, not just in app.use.
There is an issue open currently to brainstorm other ways to do error middleware without counting argument length, if that is what your issue is about.


traefik v2 RedirectScheme to HTTPS in Docker Provider does not redirect

Do you want to request a feature or report a bug?
Bug
What did you do?

I created a traefik.toml file below
[global]
  sendAnonymousUsage = false
  logLevel = "DEBUG" #DEBUG, INFO, WARN, ERROR, FATAL, PANIC
  debug = true

[entrypoints]
  [entrypoints.http]
    address = ":80"

  [entrypoints.https]
    address = ":443"

[providers]

  [providers.docker]
    # Connection to docker host system (docker.sock)
    endpoint = "unix:///var/run/docker.sock"
    watch = true
    # This will hide all docker containers that don't have explicitly
    # set label to "enable"
    exposedbydefault = false
    #network = "traefik_proxy"

[api]

and I created a docker-compose file below
version: "3.6"
services:

  traefik:
    image: traefik:2.0.0-alpha2 # The official v2.0 Traefik docker image
    container_name: traefik
    restart: always
    networks:
      - default
      - traefik_proxy
    ports:
      - "80:80"     # The HTTP port
      - "443:443"     # The HTTPS port
    environment:
      - CF_API_EMAIL=${CLOUDFLARE_EMAIL}
      - CF_API_KEY=${CLOUDFLARE_API_KEY}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik1_router.rule=Host(`traefik.${DOMAINNAME}`)"
      - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik1_router.middlewares=https_redirect"
      - "traefik.http.routers.traefik1_router.tls"
      - "traefik.http.services.traefik1_service.loadbalancer.server.port=8080"
    volumes:
      - ${DOCKER_SOCK}:/var/run/docker.sock:ro # So that Traefik can listen to the Docker events
      - ./traefik/docker-config/etc/traefik:/etc/traefik
      - ./docker-shared:/shared

networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge

Run docker-compose up
Navigate to http://traefik.example.com
What did you expect to see?
I expected the browser to redirect to https://traefik.example.com and the traefik dashboard placeholder page to load.
What did you see instead?
I received a 404 page not found
$ curl -v traefik.example.com
* Expire in 0 ms for 6 (transfer 0x55ed8718b2f0)
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55ed8718b2f0)
* Connected to <SNIPPED> (<IP_ADDRESS>) port 80 (#0)
> GET / HTTP/1.1
> Host: <SNIPPED>
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Thu, 28 Mar 2019 18:48:09 GMT
< Content-Length: 19
<
404 page not found
* Connection #0 to host <SNIPPED> left intact

If I navigate directly to https://traefik.example.com, the dashboard page does load properly.
Output of traefik version: (What version of Traefik are you using?)

Version:      2.0.0-alpha2
Codename:     faisselle
Go version:   go1.12.1
Built:        2019-03-19T18:44:59Z
OS/Arch:      linux/amd64

If applicable, please paste the log output in DEBUG level (--logLevel=DEBUG switch)
Attaching to traefik                                                                                traefik    | time="2019-03-28T19:14:53Z" level=info msg="Using TOML configuration file /etc/traefik/traefik.toml"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Traefik version 2.0.0-alpha2 built on 2019-03-19T18:44:59Z"                                                         traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Static configuration loaded {\"Global\":{\"Debug\":true,\"CheckNewVersion\":false,\"SendAnonymousUsage\":false},\"S
erversTransport\":{\"InsecureSkipVerify\":false,\"RootCAs\":null,\"MaxIdleConnsPerHost\":200,\"ForwardingTimeouts\":null},\"EntryPoints\":{\"http\":{\"Address\":\":80\",\"Transport\":{\"LifeCycle\":{\"RequestAcceptGraceTimeout\":0,\"GraceTimeOut\":10000000000},\"RespondingTimeouts\":{\"ReadTimeout\":0,\"WriteTimeout\":0,\"IdleTimeout\":18000000
0000}},\"ProxyProtocol\":null,\"ForwardedHeaders\":{\"Insecure\":false,\"TrustedIPs\":null}},\"https\":{\"Address\":\":443\",\"Transport\":{\"LifeCycle\":{\"RequestAcceptGra
ceTimeout\":0,\"GraceTimeOut\":10000000000},\"RespondingTimeouts\":{\"ReadTimeout\":0,\"WriteTimeout\":0,\"IdleTimeout\":180000000000}},\"ProxyProtocol\":null,\"ForwardedHea
ders\":{\"Insecure\":false,\"TrustedIPs\":null}},\"traefik\":{\"Address\":\":8080\",\"Transport\":{\"LifeCycle\":{\"RequestAcceptGraceTimeout\":0,\"GraceTimeOut\":1000000000
0},\"RespondingTimeouts\":{\"ReadTimeout\":0,\"WriteTimeout\":0,\"IdleTimeout\":180000000000}},\"ProxyProtocol\":null,\"ForwardedHeaders\":{\"Insecure\":false,\"TrustedIPs\"
:null}}},\"Providers\":{\"ProvidersThrottleDuration\":0,\"Docker\":{\"Watch\":true,\"Filename\":\"\",\"Constraints\":null,\"Trace\":false,\"DebugLogGeneratedTemplate\":false
,\"Endpoint\":\"unix:///var/run/docker.sock\",\"DefaultRule\":\"Host(`{{ normalize .Name }}`)\",\"TLS\":null,\"ExposedByDefault\":false,\"UseBindPortIP\":false,\"SwarmMode\"
:false,\"Network\":\"\",\"SwarmModeRefreshSeconds\":15},\"File\":{\"Watch\":true,\"Filename\":\"\",\"Constraints\":null,\"Trace\":false,\"DebugLogGeneratedTemplate\":false,\
"Directory\":\"\",\"TraefikFile\":\"/etc/traefik/traefik.toml\"},\"Marathon\":null,\"Kubernetes\":null,\"KubernetesCRD\":null,\"Rest\":null},\"API\":{\"EntryPoint\":\"traefi
k\",\"Dashboard\":true,\"Statistics\":null,\"Middlewares\":null},\"Metrics\":null,\"Ping\":null,\"Log\":null,\"AccessLog\":null,\"Tracing\":null,\"HostResolver\":null,\"ACME
\":{\"Email\":\"<SNIPPED>@yahoo.com\",\"ACMELogging\":true,\"CAServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"Storage\":\"/etc/traefik/acme/acme.json\",\"Entry
Point\":\"\",\"KeyType\":\"\",\"OnHostRule\":false,\"DNSChallenge\":{\"Provider\":\"cloudflare\",\"DelayBeforeCheck\":0,\"Resolvers\":null,\"DisablePropagationCheck\":false}
,\"HTTPChallenge\":null,\"TLSChallenge\":null,\"Domains\":[{\"Main\":\"*.example.com\",\"SANs\":[\"example.com\"]}]}}"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc
s.traefik.io/basics/#collected-data\n"
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="No default certificate, generate one"
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Start TCP Server" entryPointName=http
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Start TCP Server" entryPointName=traefik
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Start TCP Server" entryPointName=https
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Starting provider aggregator.ProviderAggregator {}"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Starting provider *file.Provider {\"Watch\":true,\"Filename\":\"\",\"Constraints\":null,\"Trace\":false,\"DebugLogGe
neratedTemplate\":false,\"Directory\":\"\",\"TraefikFile\":\"/etc/traefik/traefik.toml\"}"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Starting provider *docker.Provider {\"Watch\":true,\"Filename\":\"\",\"Constraints\":null,\"Trace\":false,\[12/3990]
GeneratedTemplate\":false,\"Endpoint\":\"unix:///var/run/docker.sock\",\"DefaultRule\":\"Host(`{{ normalize .Name }}`)\",\"TLS\":null,\"ExposedByDefault\":false,\"UseBindPor
tIP\":false,\"SwarmMode\":false,\"Network\":\"\",\"SwarmModeRefreshSeconds\":15}"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Starting provider *acme.Provider {\"Email\":\"<SNIPPED>@yahoo.com\",\"ACMELogging\":true,\"CAServer\":\"https://acme-
v02.api.letsencrypt.org/directory\",\"Storage\":\"/etc/traefik/acme/acme.json\",\"EntryPoint\":\"\",\"KeyType\":\"\",\"OnHostRule\":false,\"DNSChallenge\":{\"Provider\":\"cl
oudflare\",\"DelayBeforeCheck\":0,\"Resolvers\":null,\"DisablePropagationCheck\":false},\"HTTPChallenge\":null,\"TLSChallenge\":null,\"Domains\":[{\"Main\":\"*.example.com\",\"SANs\":[\"example.com\"]}],\"Store\":{}}"
traefik    | time="2019-03-28T19:14:53Z" level=info msg="Testing certificate renew..." providerName=acme
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Looking for provided certificate(s) to validate [\"*.example.com\" \"example.com\"]..." provi
derName=acme
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="No ACME certificate generation required for domains [\"*.example.com\" \"example.com\"]." pro
viderName=acme
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Configuration received from provider file: {\"HTTP\":{\"middlewares\":{\"redirectSSL\":{\"redirectscheme\":{\"schem
e\":\"https\",\"port\":\"443\"}}}},\"TCP\":{},\"TLSOptions\":{},\"TLSStores\":{}}" providerName=file
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Configuration received from provider ACME: {\"HTTP\":{},\"TCP\":null,\"TLSOptions\":null,\"TLSStores\":null}" provi
derName=ACME
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="No default certificate, generate one"
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Provider connection established with docker 18.09.3 (API 1.39)" providerName=docker
traefik    | time="2019-03-28T19:14:53Z" level=debug msg="Configuration received from provider docker: {\"HTTP\":{\"routers\":{\"traefik1_router\":{\"entryPoints\":null,\"mi
ddlewares\":[\"https_redirect\"],\"service\":\"traefik1_service\",\"rule\":\"Host(`traefik.example.com`)\",\"tls\":{}}},\"middlewares\":{\"https_redirect\":{\"red
irectscheme\":{\"scheme\":\"https\"}}},\"services\":{\"traefik1_service\":{\"loadbalancer\":{\"servers\":[{\"url\":\"http://<IP_ADDRESS>:8080\",\"weight\":1}],\"method\":\"wrr
\",\"passHostHeader\":true}}}},\"TCP\":{},\"TLSOptions\":null,\"TLSStores\":null}" providerName=docker
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="No store is defined to add the certificate MIIGgTCCBWmgAwIBAgISA/H4XldVQmqr0y+HlNdLZfpbMA0GCS, it will be added to
the default store."
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Add certificate for domains *.example.com,example.com"
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="No default certificate, generate one"
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Add certificate for domains *.example.com,example.com"
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="No default certificate, generate one"
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating middleware" serviceName=traefik1_service routerName=docker.traefik1_router entryPointName=http middlewareN
ame=pipelining middlewareType=Pipelining
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating wrr load-balancer" routerName=docker.traefik1_router entryPointName=http serviceName=traefik1_service
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating server 0 at http://<IP_ADDRESS>:8080 with weight 1" entryPointName=http serviceName=traefik1_service routerN
ame=docker.traefik1_router serverName=0
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Added outgoing tracing middleware traefik1_service" routerName=docker.traefik1_router middlewareType=TracingForward
er middlewareName=tracing entryPointName=http
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating middleware" entryPointName=http middlewareType=RedirectScheme routerName=docker.traefik1_router middleware
Name=docker.https_redirect
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Setting up redirection to https " middlewareType=RedirectScheme routerName=docker.traefik1_router middlewareName=do
cker.https_redirect entryPointName=http
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Adding tracing to middleware" routerName=docker.traefik1_router entryPointName=http middlewareName=docker.https_red
irect
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating middleware" entryPointName=http middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating middleware" entryPointName=https middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik    | time="2019-03-28T19:14:54Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery

I encounter the same issue when I try to use TLS enabled router on HTTP entrypoint.
Not sure about the reasons but I'm unable to use the same router for HTTP and HTTPS
Maybe not the best way but I use two different routers to fix this, so you can try with
version: "3.6"
services:

  traefik:
    image: traefik:2.0.0-alpha2 # The official v2.0 Traefik docker image
    container_name: traefik
    restart: always
    networks:
      - default
      - traefik_proxy
    ports:
      - "80:80"     # The HTTP port
      - "443:443"     # The HTTPS port
    environment:
      - CF_API_EMAIL=${CLOUDFLARE_EMAIL}
      - CF_API_KEY=${CLOUDFLARE_API_KEY}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik1_router.rule=Host(`traefik.${DOMAINNAME}`)"
      - "traefik.http.routers.traefik1_router.entryPoints=http"
      - "traefik.http.routers.traefik1_router.middlewares=https_redirect"
      - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik1_tls_router.rule=Host(`traefik.${DOMAINNAME}`)"
      - "traefik.http.routers.traefik1_tls_router.entryPoints=https"
      - "traefik.http.routers.traefik1_tls_router.tls"
      - "traefik.http.services.traefik1-tls_service.loadbalancer.server.port=8080"
    volumes:
      - ${DOCKER_SOCK}:/var/run/docker.sock:ro # So that Traefik can listen to the Docker events
      - ./traefik/docker-config/etc/traefik:/etc/traefik
      - ./docker-shared:/shared

networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge

Thanks @cypx. I think I figured it out about the same time you posted.
I ended up getting it to work with this docker-compose file
version: "3.6"
services:

  traefik:
    image: traefik:2.0.0-alpha2 # The official v2.0 Traefik docker image
    container_name: traefik
    restart: always
    networks:
      - default
      - traefik_proxy
    ports:
      - "80:80"     # The HTTP port
      - "443:443"     # The HTTPS port
    environment:
      - CF_API_EMAIL=${CLOUDFLARE_EMAIL}
      - CF_API_KEY=${CLOUDFLARE_API_KEY}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik1_router_http.rule=Host(`traefik.${DOMAINNAME}`)"
      - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik1_router_http.middlewares=https_redirect"
      - "traefik.http.routers.traefik1_router_https.rule=Host(`traefik.${DOMAINNAME}`)"
      - "traefik.http.routers.traefik1_router_https.tls"
      - "traefik.http.services.traefik1_service.loadbalancer.server.port=8080"
    volumes:
      - ${DOCKER_SOCK}:/var/run/docker.sock:ro # So that Traefik can listen to the Docker events
      - ./traefik/docker-config/etc/traefik:/etc/traefik
      - ./docker-shared:/shared

The hint that I needed was in the docs under Routers:TLS and the Routers for HTTP & HTTPS section that states:

If you need to define the same route for both HTTP and HTTPS requests, you will need to define two different routers: one with the tls section, one without.

This seems kind of silly and overly verbose. traefik v1 allowed you to easily defined a redirect in the entrypoint section. Now we need double the number of labels for every service defined in the docker-compose.

Thank for explanation, I assume something like but do not find the right part of the doc.
The label number increase is a bit embarrassing but probably necessary to manage all new features.

to enable TLS, the syntax is:
 - "traefik.http.routers.traefik1_router.tls=true"

The following syntax is not valid:
 - "traefik.http.routers.traefik1_router.tls"

also note that the log level must be define in the section [log] and not in the section [global]
https://docs.traefik.io/v2.0/observability/logs/#loglevel

Thanks for the clarifications @ldez. Do we have an example traefik.toml file for v2? It's difficult to figure out the different sections for that file as it's broken up in a lot of places in the docs.

https://github.com/containous/traefik/blob/v2.0/traefik.sample.toml

Much appreciated for everyone's help. Especially, @dtomcej who spent a bunch of time today working with me in Slack and asked me to open the bug report. It doesn't look like this is a bug, and should be closed as working as intended .

Thanks @Zaxim for this feedback!

This seems kind of silly and overly verbose. traefik v1 allowed you to easily defined a redirect in the entrypoint section. Now we need double the number of labels for every service defined in the docker-compose.

Agree about this part. Hoping it's something that can be smoothed out down the line. Ideally I'd set up static stuff and defaults in traefik.toml, and then leave the host rule and similar things to the docker labels.


How to adapt EWC and LWF for dynamic number of classes?

Hello,
does  FACIL support multihead classification for EWC and LWF ?
To elaborate, I am trying to setup each dataset (with different umber of classes) as a task and perform continual learning. Do you have any suggestions on this?
Thanks

Hi @appledora ,
Yes, it is supported. If each dataset is a different task, you can define them in src/datasets/dataset_config.py, and each will have their own head (check how to add the datasets in this README).
Most of the methods like EWC and LwF work with a concatenation of those heads, but you have access to each individually if needed. You can always modify if you want single- or multi-head in both the train_epoch and eval methods. Check the default behaviour from the parent class for the metric calculation here to get an idea of how to do it.
If you need the dataset or task setting to be different, you can just modify the main script to add the heads you need with net.add_head( #numclasses ), and all heads added to that ModuleList will be available for the network architecture.
Hope that helps :)

This makes sense. Thanks!


autocomplete not working

never working, not at all?

If you do a fresh install, it doesn't work. Only after playing around with it for a while, it does. I'm not exactly sure how to reproduce; but I am guessing it's related to the settings default value.

Yeah, flipping it on and off seems to make it work.

Is this fixed? @fgei @nilnilnil

yes, working fine now for me


move tx to own component (do not return from use-cardano)

Should be stand-alone and opt-in

I will move this to the examples folder instead. Doesn't belong in the library itself IMO

fixed


Add Active Directory Recycle Bin is Not Enabled health check

Accidental deletion of Active Directory objects is common for Active Directory Domain Services (AD DS) users. With the Recycle Bin Feature, one could recover accidentally deleted objects in Active Directory.
Enable the AD Recycle Bin for the forest.
On a domain controller in the customer.com parent domain, from an elevated PowerShell prompt, enter the following command as one line:
$RootDomain = (Get-ADForest).Name
$ADForestconfigurationNamingContext = (Get-ADRootDSE).configurationNamingContext
Enable-ADOptionalFeature -Identity "CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services, $ADForestconfigurationNamingContext" -Scope ForestOrConfigurationSet -Target $RootDomain


Add integrity validation when downloading Swiftlint (#162)

Hello 👋🏻,
I added integrity verification concerning #162 👍🏻. However I am not sure if it is okay for me to move the commands that were inside sh [ ] before, I did that because I was having trouble with the if else multiline command. Let me know if I need to change that. Also if the names of the environment variables are okay or if I should not use them env variables for this at all.
I tested this locally and it works 🚀, also I added the -o flag to unzip to avoid the prompt to override the previous file. I saw that the issue requested a respective unit test as well but I do not have much ruby experience and I could not find where or how to make that unit test. My first thought was 2 tests: one that downloads and succeeds and another one that fails. I was hoping someone could give me a hint on how to start the tests.
Thanks 👍🏻

@ashfurrow I deleted the frozen~ line and I also went for the arguments instead of env variables, I believe arguments are safer and cleaner, thanks for the suggestion. Let me know if this looks good.
Also thanks @dirtyhabits97  for the observation.
👍🏻🚀

Okay! Thanks again – this has been released in version 0.29.0. Let me know when you have a chance to test it out 👍

@ashfurrow So @dirtyhabits97 reached out, letting me know the swiftlint:install rake task step was failing. I gave it a look and it was failing because of a -> Command failed with status (127) error, I did a bit of research and I got to the conclusion  that the script did not have execution capabilities or was not being found. I also found this as reference similar-issue. The fix is one line in line 18 inside ext/swiftlint/Rakefile.
sh "./downloadSwiftlint.sh -u #{URL} -d #{DESTINATION} -a #{ASSET} -dh #{SWIFTLINT_MD5_HASH}" <- old line
sh "sh downloadSwiftlint.sh -u #{URL} -d #{DESTINATION} -a #{ASSET} -dh #{SWIFTLINT_MD5_HASH}" <- new line
Should I create a new pull request for this? Worth to mention that this problem does not exist locally.

Gotcha, okay. Let's open up a new PR for this 👍


All tested images to be stored in Kyverno org

We're hitting rate limits when doing e2e tests pulling images from Docker Hub. This causes tests to fail and take significantly longer in running when doing so. We should mirror any images we need into the Kyverno org here in GHCR so we remove this failure point.

Probably start by collecting the value of the image: field for all YAML files in directories named .kyverno-test and .chainsaw-test.


Laravel 5.0 : Auth::check() return false inside Serviceprovider->boot() ?!! Thanks

Yes it suppose to return null because booting service providers is done much earlier then loading session (middleware).

@crynobone, it's strange, cause i'm using Auth inside event handler closure, which is executed
after auth middleware. Notice: $user arg to this closure is ok.

That because the event is fired before setting the user. https://github.com/laravel/framework/blob/5.0/src/Illuminate/Auth/Guard.php#L442-L444
I don't see why you should still need to use Auth::user() when $user provide the same expected value.

Because it's supposed to work, at least - according to documentation.
Nothing said about 'facades are ok, except cases of event handling'.

Nothing said about 'facades are ok, except cases of event handling'.

This has nothing to do with facades.


M3-882 Fixes for Create Slave Zone

Start with 1 IP address
Update label
Client-side validation

Coverage decreased (-0.01%) to 25.921% when pulling 88e0a94699dd2b9e2b341f39241b1fdfc028618c on asauber:M3-882-slave-domain-fixes into 499bbd5dd845708a61d53f840ba420d191bda559 on linode:develop.


watch-sass error after building marbles app offline

I'm trying to build the marbles app offline and connect it to a Bluemix blockchain.
after changing mycreds.json to appropriate values, installing dependencies I get this error:
[15:01:41] Using gulpfile ~/SchoolCode/capstone/marbles/gulpfile.js
[15:01:41] Starting 'build-sass'...
[15:01:41] Finished 'build-sass' after 16 ms
[15:01:41] Starting 'watch-sass'...
[15:01:41] 'watch-sass' errored after 9.2 ms
[15:01:41] Error: watch /home/andreibuiza/SchoolCode/capstone/marbles/scss/ ENOSPC
    at exports._errnoException (util.js:1026:11)
    at FSWatcher.start (fs.js:1429:19)
    at Object.fs.watch (fs.js:1456:11)
    at Gaze._watchDir (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:289:30)
    at /home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:358:10
    at iterate (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:52:5)
    at Object.forEachSeries (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:66:3)
    at Gaze._initWatched (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:354:10)
    at Gaze.add (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:177:8)
    at new Gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:74:10)
    at gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:86:10)
    at Object.module.exports [as watch] (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/glob-watcher/index.js:12:17)
    at Gulp.watch (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gulp/index.js:35:16)
    at Gulp.<anonymous> (/home/andreibuiza/SchoolCode/capstone/marbles/gulpfile.js:42:7)
    at module.exports (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/index.js:273:3)

Anyone have a clue to solve this ?

Its either your gulp-sass did not install correctly in your environment or the script isn't able to write to your file system.  Do you have any errors when running npm install. if that works fine then the script isn't able to write to its local disk.  disk could be full, or maybe permission of the script? though i think permissions would be a different error.

alternatively you could bypass sass completely.  Its only needed if you plan to edit the css/layout of the marbles application.  If you do not plan to modify it then simply comment it out from gulpfile.js.
remove these line:
gulp.task('watch-sass', ['build-sass'], function () {
	gulp.watch(path.join(__dirname, '/scss/*.scss'), ['build-sass']);
});

and edit
gulp.task('default', ['watch-sass', 'watch-js', 'watch-server']);

to be
gulp.task('default', ['watch-js', 'watch-server']);

@dshuffma-ibm
commeting out  watch-sass led to an error involving watch-js
[16:26:20] Using gulpfile ~/SchoolCode/capstone/marbles/gulpfile.js
[16:26:20] Starting 'build-js-hash'...
[16:26:20] Finished 'build-js-hash' after 11 ms
[16:26:20] Starting 'watch-js'...
[16:26:20] 'watch-js' errored after 8.42 ms
[16:26:20] Error: watch /home/andreibuiza/SchoolCode/capstone/marbles/public/js/ ENOSPC
    at exports._errnoException (util.js:1026:11)
    at FSWatcher.start (fs.js:1429:19)
    at Object.fs.watch (fs.js:1456:11)
    at Gaze._watchDir (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:289:30)
    at /home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:358:10
    at iterate (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:52:5)
    at Object.forEachSeries (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:66:3)
    at Gaze._initWatched (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:354:10)
    at Gaze.add (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:177:8)
    at new Gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:74:10)
    at gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:86:10)
    at Object.module.exports [as watch] (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/glob-watcher/index.js:12:17)
    at Gulp.watch (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gulp/index.js:35:16)
    at Gulp.<anonymous> (/home/andreibuiza/SchoolCode/capstone/marbles/gulpfile.js:46:7)
    at module.exports (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/index.js:273:3)

I commented out watch-js as well and this time there is error but this time the server is able to run
[16:27:50] Using gulpfile ~/SchoolCode/capstone/marbles/gulpfile.js
[16:27:50] Starting 'server'...
[16:27:50] Finished 'server' after 2.48 ms
[16:27:50] Starting 'watch-server'...
[16:27:50] 'watch-server' errored after 9.26 ms
[16:27:50] Error: watch /home/andreibuiza/SchoolCode/capstone/marbles/routes/ ENOSPC
    at exports._errnoException (util.js:1026:11)
    at FSWatcher.start (fs.js:1429:19)
    at Object.fs.watch (fs.js:1456:11)
    at Gaze._watchDir (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:289:30)
    at /home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:358:10
    at iterate (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:52:5)
    at Object.forEachSeries (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/helper.js:66:3)
    at Gaze._initWatched (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:354:10)
    at Gaze.add (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:177:8)
    at new Gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:74:10)
    at gaze (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gaze/lib/gaze.js:86:10)
    at Object.module.exports [as watch] (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/glob-watcher/index.js:12:17)
    at Gulp.watch (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/gulp/index.js:35:16)
    at Gulp.<anonymous> (/home/andreibuiza/SchoolCode/capstone/marbles/gulpfile.js:50:7)
    at module.exports (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/home/andreibuiza/SchoolCode/capstone/marbles/node_modules/orchestrator/index.js:273:3)
cache busting hash js b6c91e67aae91b0a72d91073606ff4b4 css 5c5213ec16de93e801c4aaf7a7eb956b
------------------------------------------ Server Up - localhost:3000 ------------------------------------------
Running using Developer settings
- Tracking Deployment
loading hardcoded peers
loading hardcoded users
[ibc-js] Peer:  vp0-0150fa9c-167...:443
[ibc-js] Registering  vp0-0150fa9c-167...:443  w/enrollId - user_type1_709c4181a9
[ibc-js] Registration success x1 : user_type1_709c4181a9
[ibc-js] removing temp dir
[ibc-js] Downloading zip
redirect... https://codeload.github.com/IBM-Blockchain/marbles-chaincode/zip/master
[ibc-js] Downloading zip
[ibc-js] Unzipping zip
[ibc-js] Unzip done
[ibc-js] Scanning files [ 'part2_chaincode.go' ]
[ibc-js] Parsing file for shim version
[ibc-js] Found shim version: github.com/hyperledger/fabric/core/chaincode/shim
[ibc-js] Parsing file for invoke functions - part2_chaincode.go
[ibc-js] Found cc invoke function:  init
[ibc-js] Found cc invoke function:  delete
[ibc-js] Found cc invoke function:  write
[ibc-js] Found cc invoke function:  init_marble
[ibc-js] Found cc invoke function:  set_user
[ibc-js] Found cc invoke function:  open_trade
[ibc-js] Found cc invoke function:  perform_trade
[ibc-js] Found cc invoke function:  remove_trade
[ibc-js] Parsing file for query functions - part2_chaincode.go
[ibc-js] Found cc query function:  read
[ibc-js] load_chaincode() finished
[ibc-js] Deploy Chaincode - Starting
[ibc-js] 	function: init , arg: [ '99' ]

	 Waiting...

The app is now working in the browser. Now I'm thinking if there's functionality/features that I will be missing if I go about with
gulp.task('default', ['watch-server']);
I can create and transfer marbles but maybe there is something else I'm missing I can't see?

http://stackoverflow.com/questions/16748737/grunt-watch-error-waiting-fatal-error-watch-enospc
@MrBuggySan It could be that the watch command is trying to watch too many files at once.  I google that ENOSPC error message from your logs and found the above SO thread.

also see this about ENOSPC: http://stackoverflow.com/questions/22475849/node-js-error-enospc

@masterDev1985 thank you for your suggestion
this solved it for me:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
@dshuffma-ibm thank you for the support!
Now, I have other problems and will be making another issue about it.


Cross DC - Better UT Coverage

We should separate msbuilder, into interface and implementation, so we can mock and have better UT coverage.

Closing this one as we have already added UT coverage for core components.  Will file explicit workitems for things which need more coverage.


Add patch to set SSH password dynamically during image builds

Pulling in https://github.com/kubernetes-sigs/image-builder/pull/1607 as a patch until it's merged and released upstream. We need this to fix an SSH password bug introduced in image-builder v0.1.38.
/hold
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve

/approve

/unhold

/cherry-pick release-0.20


breaking up ActiveWebService

This PR cleans up ActiveWebService, adding ActiveWebService_util.py, removing extraneous code, cleaning flow, and adding documentation.
Motivation and Context
ActiveWebService  contained all the view related and ws communications utilities. These are now separated, cleaned up, functions living in a util file. This makes it easier to follow the logic, understand variable scope, inner/inter dependencies and continue dev.
Approach
Move anything related to views/html and basic ws message handling out of ActiveWebService.
How Has This Been Tested?
Running and testing object_database_webtest.py
Types of changes

[x] Cleanup/refactor
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

Note: this work was previously branched from daniel-maquette but that will not be merged in the near future, so it made sense to branch from top of dev and checkout (+adjust) the relevant code. It was easier to check out the final commit than to check them out separately and test accordingly. Hence, everything is in one squashed commit here.

These changes were merged in as a part of the process that resolved #102


Separate secrets from configuration files

Is your feature request related to a problem? Please describe.
Currently there are secrets such as those related to the dashboard or the JWT that are within the  config.json file. It would be good that they could be separated so that they can be mapped more easily to Kubernetes Secrets for instance. One option could be to allow secrets to be read by Hornet from an environment variable.
Describe the solution you'd like
If those secrets can be read from an environment variable that would be great.
Describe alternatives you've considered
Separate files.
Additional context
We want to improve Hornet deployments so that are more robust in production-ready environments based on Kubernetes.

All settings in the config can be read from an environment variable.
In your case that would be for example:
DASHBOARD_AUTH_USERNAME
DASHBOARD_AUTH_PASSWORDHASH
DASHBOARD_AUTH_PASSWORDSALT


I have a question, how to calculate the privacy epsilon?

For details, please find our paper here: https://arxiv.org/abs/2006.10919

When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?
Thank you!

When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?
Thank you!

Thank you!

Thank you!

Thank you! I have another question. When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?

Thank you! I have another question. When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?

Thank you! I have an another question. When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?

Thank you! I have an another question. When epsilon=7 or 3, what is the size of the parameters epochs and batch_size?

Hi,
Here are hyperparameters

Hi,
Here are hyperparameters

Thank you!

Thank you!

How about the  hyperparameters of ResNets? Thank you!

How about the hyperparameters of ResNet? Thank you!

Thank you!
When epslion is equal to different values, what is the size of  z , clip, epochs and batch_size for ResNet?

When epslion is equal to different values, what is the size of z , clip, epochs and batch_size for ResNet?


setup.py build dependencies: numpy/cython and PEP recommendations

As explained in the last comments of issue #272 :

pip install runs setup.py
setup.py, in tofu, needs numpy and cython at import time, which means the user would need to install them by hand before running pip install. We want to avoir that, pip should handle all dependencies (run and build)
The recommended modern solution is PEP517 and PEP518, which implies creating a tofu.toml file list build-time dependencies with proper formatting
The recommended solution is applicable since pip >= 18.0

To be clarified : should we still include setup(setup_requires=['cython', 'numpy']) in addition to the tofu.toml file ?
Ressources:

Issue #272
Hacky solutions before PEP517 and PEP518:

https://stackoverflow.com/questions/19919905/how-to-bootstrap-numpy-installation-in-setup-py/21621689#21621689
https://stackoverflow.com/questions/54117786/add-numpy-get-include-argument-to-setuptools-without-preinstalled-numpy
https://stackoverflow.com/questions/21605927/why-doesnt-setup-requires-work-properly-for-numpy/21621493#21621493

Opened issue on setuptools
PEP517 and PEP518

Presumably fixed, in devel, by PR #283  (to be validated by users on tofu 1.4.2a3)

Ping @Didou09 @lasofivec I think this issue is largely fixed too by the introduction of the pyproject.toml file. Candidate for closing :)


fix: return empty string instead of the error message if not in a git directory

Fixes the current GIT_BRANCH content since the merge of this PR:

GIT_BRANCH=fatal: not a git repository (or any parent up to mount point /)

Hi @hervelemeur. Thanks for your PR.
I'm waiting for a jenkins-x-plugins or todo member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign rajdavies
You can assign the PR to them by writing /assign @rajdavies in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/ok-to-test
/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


socket hang up

socket hang up
When I open mapbox-studio I get this error every time.
I have Internet connection and able to open mapbox site.

Try clearing out your .mapbox-studio folder and see if that fixes it.


Feature register integration help

Now To dev.
@rqc now to dev, sorry about that!

@mosheBelostotsky it looks like it is going in the right direction. There are some improvements that I am suggesting. Please address accordingly and I will check everything tomorrow. Thanks! :+1:

@mosheBelostotsky I've highlighted some improvements, please move them to a separate issue to track them, they are not high priority right now. There was a bug with the space in the regex_suffix. Make sure that the tests are expanded and fixed. After that I will merge. Thanks! 👍

@rqc Fixed bug, updated tests and added more for robot.e.registerIntegration()
Moving all rest, to separate issues- as required


Add cmake function to add cpus by function rather than assume consecutive cpu ids.

Currently, the cmake rules require that cpus are built in order and will stop looking for cpu targets when a cpu idx is not found.
Propose that a cmake function can be executed from the targets.cmake file which explicitly adds the cpus to be built for the mission.

Imported from trac issue 234.  Created by tbrain on 2018-03-30T13:08:24, last modified: 2019-07-03T12:58:32

Trac comment by jhageman on 2019-03-04 18:03:43:
Owner - please provide updates/responses.

Trac comment by sseeger on 2018-05-28 13:38:55:
Thomas,
Just to be clear are you wanting something in targets.cmake that looks like
SET(TARGETS cpu1 cpu3 test123)
Which will then tell cmake to build TGT_CPU1 TGT_CPU3 and TGT_TEST123?

Trac comment by jhageman on 2019-07-03 12:58:32:
Moved unfinished 6.7.0 tickets to next release

Ping @excaliburtb - no action in a while, I'll tag as a mission priority.

@jphickey thoughts?

The actual requirement is to be able to specify multiple targets in targets.cmake
set(TGT1_NAME)
set(TGT2_NAME)
but if I have an environmental or variable-based conditional do:
if(DEFINED foo)
build TGT1
else()
build TGT2
endif()
Last I looked, this was an impossible setup because read_targetconfig looks for sequential targets. Also, one might want to build just TGT3 for some reason. Right now, one has to rename the TGT3 configurations. Not impossible but definitely inconvenient.

FWIW, the CMake build system was designed to view the build as a "system" - a set of services/apps that are deployed across one or more CPUs (maybe or maybe not discrete/separate) that collectively implement your spacecraft operation software.   In that view it shouldn't be "different" depending on an environment variable.
The thought was hardware differences should be abstracted by the PSP, allowing the same set of high level apps to run, with only perhaps different configuration files/tables as you moved to a different host system type.  It wasn't anticipated that there might be a fully different CPU definition.  Or if there was, that one of these two approaches could work:

it could be built but optionally not deployed/ignored; OR
if it really had to be configured differently, that an entirely separate "defs" directory (and targets.cmake file) would be used to describe the alternative configuration (this does work but requires to redefine the mission/platform config too).

As adding/changing CPUs has implications on the MSGID assignment/allocations, there is a mission config component to redefining a CPU - so not really something that should be done via environment variable IMO.
What would be fairly trivial to do, however, would be to allow one to configure the CPU number that is returned by default from CFE_PSP_GetProcessorId() - i.e. something like TGTx_NUMBER where it would match the CMake target number by default if unspecified, but can present a different number at runtime if you so choose.  That is probably easy to do.

If we had the opportunity to re-think the targets.cmake file entirely, I would do it again using name-based lists rather than number-based.  That is, have a list of CPU names, then define <name>_APPLIST, <name>_PLATFORM, <name>_SYSTEM, etc.
That might be still worth considering, but it would have a major impact on backward compatibility.

I'd say fair game for 7.0 if stakeholders are on board.

Just to clarify a bit.. when i build a specific target, I keep all the configuration that goes along with it because we have already diverged from the cpu<N>_*.h default approach to configurations and tables and have switched to using named targets instead. All our organization is based on <name>_*.h or <name>/*.h. I am also seeing several other projects take the same approach.
As far as having multiple target_defs to piece up the build, that approach has two failings. 1.) It greatly increases the integration efforts to keep everything in sync. and 2.) it doesn't take into account the problems faced with heterogenous targets where not all tool chains are available to all users of missions or, even simply, tools like continuous integration.
I consider target_defs to be an integration point between flight computers of a single vehicle and we almost always run into a situation where we need to build a single piece of the configuration, rather than the whole thing. My point being, users are already doing this but they are having to alter the cmake scripts to do it. So, yes, name-based lists would be much better than index-based.

For stakeholders of this, see PR #776 (above) which is a follow on to my previous PR #773.  It's a bit more of a change but it seems to work nicely from my testing so far.  Looking for feedback.  Thanks!


Raygun.Blazor: Add User-Agent to HttpClient

See HttpClient setup in:

IServiceCollectionExtensions
HostBuilderExtensions
WebAssemblyHostBuilderExtensions

closing as won't do (for now)


build: tag images under the quay.io/csiaddons org

It seems that quay.io does not allow a dash - in the name of the
organization. Therefore images should get tagged and pushed to
quay.io/csiaddons.
Closes: #8

@nixpanic closes  in PR description is pointing to already merged PR

Looks good. Manually merging as we are waiting on #36 .


Remove second background from #lighbox_overlay.

The child ".image-preview" has a background which is ordinarily
invisible (as it is the same color as the #lightbox_overlay bg,
however when fading in it is noticeable.

Automated message from Dropbox CLA bot
@brockwhittaker, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @brockwhittaker!


Upgrade Ethereum libraries

Upgrade Ethereum libraries.
Align with recent Lighthouse release

The recent Lighthouse release removed Goerli spec, so need more work here to port tests to Holesky


Food Certification Process

HI...Im doing Project about Food Certification Process Using BlockChain...Im a fresher...can u share me Where i can start to find the traceability of from consumer to farmer??
then what way i want to make the Attributes of Stakeholders????pls suggest me...

Hey man, did you have any progress?


"playerMana" is null

It seems like this problem only happens if I'm in the Nether or End and die. I can't rejoin the server once this happens and I have to clear my player data to join again.
crash-2022-07-23_23.16.54-client.txt

I haven't been able to reproduce this bug, so i'm not sure what's causing it. In my experience though I have been crashed out of the game with certain versions of forge with the same error, so maybe try it with different versions of forge and see what happens. I did try it with version 60, the version you're on, but I didn't get crashed out of the game.

I just tried it in a single player world and didn't get the crash either. Must be a server problem.

Never mind! I just had it happen in a survival world. I killed the Ender Dragon and jumped in the portal while holding the Spellblade and it gave the same error. I'll try other Forge versions, though.

I know it's late and the bug hasn't been confirmed, but theoretically with the new way I assign Ward to players, it should be impossible for it to be null.


[BUG] Missing Page Titles

Description
All the pages have the same title: Ezyshop. I want to add respective names of the pages to make the website more readable and accessible and remove any ambiguity from the minds of the user and Contributors while navigating through the web pages.
Screenshots

Any additional information?
I also want to know what plans do you have for the Teams page. I was wondering about working on it but noticed a prompt on the navbar:

Please share your thoughts on this matter.
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I am willing to work on this issue (optional)

@rajdeepchakraborty-rc Please explain further, as you mentioned it’s not readable. Do you mean you want to change the name Ezyshop to something else?
Actually, I don’t have any ideas for the team page design as I already designed and then cleaned the entire layout. I want the team page to have a fresh, unique, and professional look.
Additionally, our Contributors page doesn’t fetch correctly from the GitHub repository. Could you please check and confirm why it’s not fetching correctly? It would be great if you could correct this. Below, I’ll share a screenshot; clicking on it will redirect you to the Ezyshop website.

@rajdeepchakraborty-rc Please explain further, as you mentioned it’s not readable. Do you mean you want to change the name Ezyshop to something else?
Actually, I don’t have any ideas for the team page design as I already designed and then cleaned the entire layout. I want the team page to have a fresh, unique, and professional look.
Additionally, our Contributors page doesn’t fetch correctly from the GitHub repository. Could you please check and confirm why it’s not fetching correctly? It would be great if you could correct this. Below, I’ll share a screenshot; clicking on it will redirect you to the contributor page.

@mdazfar2 Sorry for the delay, I had a power at my place yesterday and then I signed off for the day.

If you have noticed in day-to-day websites, the title of the page reflects the content.
For example, let's consider your project. Each of the webpages has the same title: Ezyshop.
I was suggesting to change the name from Ezyshop to something like this:

Home - Ezyshop (For Homepage)
Shops - Ezyshop (For Shops page), Etc

This will help in navigation through the webpages and remove ambiguity from the minds of the users. Hope you get the idea.

Regarding the "Team" page, I understood that the objective is to showcase the Project Admin, Mentors, and Maintainers contributing to this repository. If you could share the layout you've designed along with your ideas on the desired structure and style, I would be glad to review them. This would allow me to offer constructive feedback and suggestions to help achieve an optimal outlook for the Team page.

Concerning the issue with the Contributors page not fetching data correctly from the GitHub repository, I will certainly investigate it. I have already reviewed all the pages in your project. However, as this feature was developed by another contributor, I will need some time to thoroughly examine the code and identify the root cause. I will update you in this issue thread if I manage to find the cause of the problem. I appreciate your cooperation as I work through this.

If you have noticed in day-to-day websites, the title of the page reflects the content.
For example, let's consider your project. Each of the webpages has the same title: Ezyshop.
I was suggesting to change the name from Ezyshop to something like this:

Home - Ezyshop (For Homepage)
Shops - Ezyshop (For Shops page), Etc

Sorry, @rajdeepchakraborty-rc, I can’t understand what you’re saying. It would be great if you could share some demo videos or relevant screenshots.
As for the team page, I don’t have any design right now, as I deleted everything.
Thank you!

@mdazfar2 Sorry that I couldn't provide screenshots and make the explanation precise.
These are the Page Titles of a website for different subpages:

About page

Advertising page

Your website is just showing Ezyshop for all the pages, may it be Help, Contributors, Home page.

@mdazfar2 Thanks for assigning the issue. I will share some samples while working. Please review them and let me know which is suitable for you and I can apply that to all the pages accordingly.

Also about the Contributor page issue that you mentioned before, Do you want me to open a separate issue for that or try to resolve it within this issue itself?

Also about the Contributor page issue that you mentioned before, Do you want me to open a separate issue for that or try to resolve it within this issue itself?

Yes you can.

@mdazfar2 I just noticed that I have not yet been assigned to this issue. Please assign the issue to me.
I have a bit of work right now. I will share the samples of the page Title with you later today.

@mdazfar2 I just noticed that I have not yet been assigned to this issue. Please assign the issue to me.
I have a bit of work right now. I will share the samples of the page Title with you later today.

Ohw, I was not paying attention.

@mdazfar2 I apologize for the delay. I was assigned urgent tasks at my college, which has caused a slight delay with this issue. I hope for your understanding and cooperation.
Also, I would appreciate your feedback on the feature I implemented for updating the project repository structure. Could you please let me know if it is functioning fine for you in this repository?

@rajdeepchakraborty-rc No problem take your time.
Yea, it is working fine and is really helpful for the new contributor. Thank you!

@mdazfar2 I am facing some issue with the build of the file. The GSSoC website stated the Tech Stack as HTML, CSS and JS:

The project has been revamped with typescript and I am facing some difficulty with building it locally. Can you help me out with it? I read the Contributing.md, but I am a bit confused with the local build.

@rajdeepchakraborty-rc what problem you are facing with tell me

@mdazfar2 I want to set up the local build and check the changes I made. But I am unable to host it locally. Could you tell me how can I host and check the changes on my system?

Open terminal run below commands

npm install

npm run dev

Then open your browser and search localhost:3000 you will get the website.
But for running the backend part like login/signup then you have to setup the environment variable file and put all keys for running the backend functionality.

Since I will work with the page title, I do not need the backend, So I think I don't need to run the env variable.

@mdazfar2 I studied a few websites and listed the following titles below:

Ezyshop ~ Terms & Conditions

Ezyshop • Terms & Conditions

Ezyshop: Terms & Conditions

Ezyshop ~ Terms & Conditions

Please let me know which one suits your liking. I will add it to all the pages.

Also while working on my local build, I noticed that the Shops Page is not working properly:

I noticed that it is working fine on the live deployment link. I am not sure why it is showing the error code for my local build. I came across this so felt I should inform you about it.

@mdazfar2 I studied a few websites and listed the following titles below:

Ezyshop - Terms & Conditions

Ezyshop • Terms & Conditions

Ezyshop: Terms & Conditions

Ezyshop ~ Terms & Conditions

Please let me know which one suits your liking. I will add it to all the pages.

@rajdeepchakraborty-rc Look at it according to your convenience and choose it yourself.

Also while working on my local build, I noticed that the Shops Page is not working properly:
image

I noticed that it is working fine on the live deployment link. I am not sure why it is showing the error code for my local build. I came across this so felt I should inform you about it.

I already told you that it is backend part. You have to create account with login as a seller and upload your shops and products after that you will be accessible to this page. I hope you understand.


KYLIN-3898 Cube level properties are ineffective in the some build steps

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Hi Temple, I think the more clear way is in :
org.apache.kylin.job.JoinedFlatTable#generateCreateTableStatement(org.apache.kylin.metadata.model.IJoinedFlatTableDesc, java.lang.String)
Change  String storageFormat = flatDesc.getDataModel().getConfig().getFlatTableStorageFormat();
to
 String storageFormat = flatDesc.getSegment().getConfig().getFlatTableStorageFormat();
Which is to say, here using segment level config (which is also the cube level) is better than the model level config. Just let me know your idea.

Codecov Report

Merging #538 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #538      +/-   ##
============================================
- Coverage     24.42%   24.42%   -0.01%
+ Complexity     5026     5024       -2
============================================
  Files          1161     1161
  Lines         70461    70461
  Branches      10020    10020
============================================
- Hits          17211    17208       -3
  Misses        51517    51517
- Partials       1733     1736       +3

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/org/apache/kylin/job/JoinedFlatTable.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...he/kylin/dict/lookup/cache/RocksDBLookupTable.java
72.97% <0%> (-5.41%)
6% <0%> (-1%)

...a/org/apache/kylin/dict/Number2BytesConverter.java
81.74% <0%> (-0.8%)
17% <0%> (-1%)

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
69.6% <0%> (-0.61%)
7% <0%> (ø)

...he/kylin/job/impl/threadpool/DefaultScheduler.java
76.74% <0%> (+2.32%)
12% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build 4288

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.003%) to 26.891%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core-job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java
1
78.12%

core-dictionary/src/main/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTable.java
1
81.08%

Totals

Change from base Build 4284:
0.003%

Covered Lines:
18948

Relevant Lines:
70461

💛  - Coveralls

Hi Temple, I think the more clear way is in :
org.apache.kylin.job.JoinedFlatTable#generateCreateTableStatement(org.apache.kylin.metadata.model.IJoinedFlatTableDesc, java.lang.String)
Change  String storageFormat = flatDesc.getDataModel().getConfig().getFlatTableStorageFormat();
to
 String storageFormat = flatDesc.getSegment().getConfig().getFlatTableStorageFormat();
Which is to say, here using segment level config (which is also the cube level) is better than the model level config. Just let me know your idea.

Oh ~ you are right, changing the dataModel is a foolish way as there are different cube use same model.
I have tested the change you advised, no problem.


Not Authenticated

Since PTC moved to cloud front, the issue of not authenticated has increased. It seems to occur when a number of accounts try to reauth at the same time. Unsure if this is entirely proxy related as if I restart the instances it works fine. If it is entirely proxy related can we add a Max reauth limit.

Two different instances, different amount of workers, same proxies.

None of my accounts can login via proxy configured by Monocle. Works through proxychains but then it can't seem to communicate with the web server or anything.

Just an update on this. It seems to me that this issue arises in the 30 minute intervals when we need to renew the sessions. It only occurs for the accounts that have not already been rotated out by the settings in config.py


speed up runtime by removing the styled proxy

Right now in next-yak, we use Proxy to provide the same API like styled components.
It lets devs write code like styled.div to style any html element tag or even custom elements.
Unfortunately according to https://romgrk.com/posts/optimizing-javascript proxies prevent compiler optimization and therefore might slow down our runtime during SSR and hydration.
As next-yak compiles the code anyway we can change the components from styled.div`... to styled("div", ...).

probably we could go a step further:
import { styled } from "next-yak";

const Button = styled.button`...`

could be compiled to (at least for all currently known tags)
import { _styled_button } from "next-yak/internal";

const Button = styled_button`...`

This would:

minify even better (c.button becomes just n)
reduce garbage collection as factories stay defined
dead code eliminate unused tags
dead code eliminate the proxy (if only known tags are used)


Flower shop website

Describe the project you want to add with tech stack
I want to create a flower shop website using only HTML and CSS. The website will serve as an online platform for customers to browse and purchase various flowers and floral arrangements. It will have a visually appealing and user-friendly interface. Customers will be able to explore the products and view their details.
Expected behavior
The flower shop website should provide an aesthetically pleasing design and easy navigation for users to explore the available flower options. It should showcase product details, images, and prices effectively.
Screenshots (optional)

@pranjay-poddar , @MohitGupta121 Hey please assign me this issue under GSSOC'23 contribution.

I think this is a template

No i made this of my own.


Fix missing modal-open class when toggle modals

Possible fix for #36463

I feel like we removed this at some point because we weren't using it for anything anymore. Anyone know for sure?

We left it as there were opinions it would be a breaking change (wasn't documented, & doesn't have any usage on bootstrap code anymore)
Although this tweak seems to work (at least on preview build), reading the code, I would try to move the class add-on a little later (_showElement =>transitionComplete). Just I feel it more safe

@nstungcom Any chance you can tackle @GeoSot's feedback?

Sorry for the late response, I almost forgot about this PR if not for @mdo ping. I have updated the code and testet it with the $modal-transition set between 0-0.3s and it seems to work.
I hope the updated code is what @GeoSot meant.
For me, the modal-open class is not that important to have if there are no use anymore. In my in opinion it's better to use the modal events to add or remove the css classes when needed, so you are on the safer side.

And probably would be nice to add a specific test for this case :wink:

@GeoSot I updated the codes and added a test case, could you take a look?


Unify tab names in Assets -> Nodes & Assets -> Containers

Is your feature request related to a problem? Please describe.
Assets -> Containers does only have icons, not written tab names.
Describe the solution you'd like
Please add tab names in writing for Assets -> Containers.
Additional context
Nodes vs Containers

Make the window wider, the tab names will be shown, otherwise, hover over the icon, the text is shown.

Why not make the back end settings the same for both views?
For me, in the same window width, one shows the names, the other does not.
Would it be possible to make the outcome the same?


support the standard $http_proxy env var, like cURL and many programs do

This should "just work", and can build on the resolution to #68 .
https://www.google.com/search?q=http_proxy
This would allow proxying behind a corporate firewall without any/every 3rd party module using axios requiring code changes to support proxying.

I agree this should be supported. Should work with process.env.http_proxy, and process.env.https_proxy. Would gladly accept a PR for this.

Documenting a Stack Overflow thread re: http_proxy with node's http module. http://stackoverflow.com/questions/3862813/how-can-i-use-an-http-proxy-with-node-js-http-client

looking into this!

Fixed via #366


Chunksize for SimEfficciency

This PR adds a quick fix to CreateSimEfficiency.sh to be able to manage datasets with several thousands of files.

Hi @soleti,
You have proposed changes to files in these packages:

Scripts

which require these tests: build.
@Mu2e/write, @Mu2e/fnalbuild-users have access to CI actions on main.
:hourglass: The following tests have been triggered for 9ca77c234f3dcdffe019c356f6275292ba36a880: build  (Build queue is empty)
About FNALbuild. Code review on Mu2e/Offline.

:sunny: The tests passed at 9ca77c234f3dcdffe019c356f6275292ba36a880.

Test
Result
Details

merge
:white_check_mark:
Merged 9ca77c234f3dcdffe019c356f6275292ba36a880 at cb557d6e9ed502c7d3b5ddbac2faa0bb2d5e9ab3

build (prof)
:white_check_mark:
Log file. Build time: 27 min 42 sec

ceSimReco
:white_check_mark:
Log file.

g4test_03MT
:white_check_mark:
Log file.

transportOnly
:white_check_mark:
Log file.

POT
:white_check_mark:
Log file.

g4study
:white_check_mark:
Log file.

cosmicSimReco
:white_check_mark:
Log file.

cosmicOffSpill
:white_check_mark:
Log file.

ceSteps
:white_check_mark:
Log file.

ceDigi
:white_check_mark:
Log file.

muDauSteps
:white_check_mark:
Log file.

ceMix
:white_check_mark:
Log file.

rootOverlaps
:white_check_mark:
Log file.

g4surfaceCheck
:white_check_mark:
Log file.

FIXME, TODO
:white_check_mark:
TODO (0) FIXME (0) in 0 files

clang-tidy
:white_check_mark:
0 errors 0 warnings

N.B. These results were obtained from a build of this Pull Request at 9ca77c234f3dcdffe019c356f6275292ba36a880 after being merged into the base branch at cb557d6e9ed502c7d3b5ddbac2faa0bb2d5e9ab3.
For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.


Correctly scale the render panel on high resolution displays

On Apple retina displays, the render widget only occupies a quarter of the available screen estate due to the higher DPI resolution. This PR fixes the problem for the render display and the mouse events.

Fixes #1077 and (I hope) #1069

Backported in https://github.com/ros-visualization/rviz/pull/1110